Чи є спосіб передати посилання як аргумент на аргумент типу імені шаблону? Я маю на увазі так, замість передачі 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 & у класі, але мені було цікаво, чи можна це зробити з аргументу, переданого аргументу шаблону.
decltype
, адже взявши назву буквально, ви могли просто написатиFoo<int*&>