gpt4 book ai didi

c++ - 如何传递对模板类型名参数的引用

转载 作者:行者123 更新时间:2023-12-01 09:09:23 31 4
gpt4 key购买 nike

有没有办法将引用作为参数传递给模板类型名参数?我的意思是这样,而不是传递 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
}

我知道我可以通过在类中将它设为 T& 来使 'ptr' 成员成为对指针的引用,但我想知道这是否可以通过传递给模板参数的参数来完成。

最佳答案

您正在寻找 Foo<decltype(a) &> foo1(a) .

一个更模糊的替代方案(在这种特定情况下有效)是 Foo<decltype((a))> foo1(a) .

关于c++ - 如何传递对模板类型名参数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849713/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com