在符号表中看到右值引用的问题

问题描述

我尝试了解带有模板参数的功能签名如何在符号表中反映出来。特别是为什么如果我将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 (将#修改为@)