Есть ли способ передать ссылку в качестве аргумента в аргумент типового имени шаблона? Я имею в виду, что вместо передачи 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' ссылкой на указатель, сделав его T & in класс, но мне было интересно, если это можно сделать из аргумента, который передается в аргумент шаблона.