【发布时间】:2020-03-25 13:20:22
【问题描述】:
有没有办法将引用作为参数传递给模板类型名参数?我的意思是,而不是传递一个 int,例如,传递一个对 int 的引用。
template <typename T>
struct Foo
{
Foo(T arg) : ptr(arg) {}
T ptr;
};
int main()
{
int* a = new int(6);
Foo<decltype(a)> foo1(a); // ptr is a copy of a pointer
Foo<decltype(&a)> foo1(&a); // ptr seems to be a pointer to a pointer
}
我知道我可以通过在类中将“ptr”成员设置为对指针的引用,但我想知道这是否可以通过传递给模板参数的参数来完成。
【问题讨论】:
-
我想你想留在
decltype,因为从字面上看你可以简单地写Foo<int*&>