问题描述
我尝试了解带有模板参数的功能签名如何在符号表中反映出来。特别是为什么如果我将rvalue或lvalue引用传递给模板函数,为什么我看不到符号表中的更改。
main.cpp的内容:
class MyClass{ };
template <class T>
void f(T t){
}
int main(){
MyClass&& b = MyClass();
f(b);
return 0;
}
要查看我仅编译main.cpp的符号,请列出main.o的符号并对其进行解密:
g++ -std=c++11 -c main.cpp | nm main.o | c++filt | grep MyClass
输出为:
0000000000000030 T void f<MyClass>(MyClass)
我期望的是这样的:
0000000000000030 T void f<MyClass&&>(MyClass&&)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)