Czy istnieje sposób na przekazanie odwołania jako argumentu do argumentu o nazwie szablonu? Mam na myśli, że zamiast przekazać int, na przykład przekazać referencję do 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
}
Wiem, że mogę sprawić, by element „ptr” był odniesieniem do wskaźnika, ustawiając go jako T & w klasie, ale zastanawiałem się, czy można to zrobić z argumentu przekazanego do argumentu szablonu.
decltype
, ponieważ biorąc tytuł dosłownie, możesz po prostu napisaćFoo<int*&>