问题描述
我的代码如下:
template <typename T>
void func(T&& param){
using boost::typeindex::type_id_with_cvr;
cout << "T = " << type_id_with_cvr<T>().pretty_name() << ","
<< "param = " << type_id_with_cvr<decltype(param)>().pretty_name() << '\n';
}
int main(void){
const char name[] = "J. P. Briggs";
func(name);
func("Hello World");
func(24);
return 0;
}
其结果:
T = char const(&)[13],param = char const(&)[13]
T = char const(&)[13],param = char const(&)[13]
T = int,param = int &&
文字“ Hello World”不是右值吗?如果是这样,为什么语句func("Hello World");
的结果是T = char const (&) [13],param = char const (&) [13]
而不是T = char const[13],param = char const(&&) [13]
??
有什么问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)