微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在符号表中看到右值引用的问题

我尝试了解带有模板参数的功能签名如何在符号表中反映出来。特别是为什么如果我将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 举报,一经查实,本站将立刻删除。