gpt4 book ai didi

c++ - C++ 模板中的 const 引用

转载 作者:IT老高 更新时间:2023-10-28 22:09:23 26 4
gpt4 key购买 nike

在泛型类型 T 的 C++ 模板中,我可以使用

const T &

获取对常量 T 的引用。但是,如果现在 T 本身是引用类型(例如 T = int &),则上述术语解析为

int &

而不是

const int &

这很有意义,因为任何引用本身总是不变的。但是,还有没有办法要求一个

const T &

如果 T 本身是引用类型?

编辑:要评估的示例代码(g++ 编译器):

template <typename T> class TemplateClass
{
public:
void foo(const T &bar) { }
};

int main()
{
TemplateClass<int &> x;
x.foo(0); // <-- compile error: no conversion from int to int&
return 0;
}

最佳答案

删除引用:

template<typename T>
void Test(const typename std::remove_reference<T>::type & param)
{
param = 20;
}

现在它可以按预期工作了。

关于c++ - C++ 模板中的 const 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8302638/

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