c – 如何从对象实例获取成员typedef

c – 如何从对象实例获取成员typedef,第1张

概述在MSVC2010中,以下代码给出: 错误C2039:’my_type’:不是”全局命名空间”的成员 template<typename T>class C{public: typedef T my_type;};C<int> c;auto f = [&c]() { decltype(c)::my_type v2; // ERROR C2039}; 我找到了 在MSVC2010中,以下代码给出:
错误C2039:’my_type’:不是”全局命名空间”的成员

template<type@R_403_6889@ T>class C{public:    typedef T my_type;};C<int> c;auto f = [&c]() {     decltype(c)::my_type v2;   // ERROR C2039};

我找到了一种解决它的蹩脚方法,但我想知道当你只有一个对象实例时,获取typedef的正确方法是什么.

解决方法 从一组非常有用的评论我得到了一个有效的解决方案.感谢大家. remove_reference用作身份对象的双重目的.

template<type@R_403_6889@ T>class C {public:  typedef T my_type;};voID g() {  C<int> c;  auto f = [&c]() {    typedef remove_reference<decltype(c)>::type::my_type my_type;    my_type v;   // Works!!  }; }
总结

以上是内存溢出为你收集整理的c – 如何从对象实例获取成员typedef全部内容,希望文章能够帮你解决c – 如何从对象实例获取成员typedef所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1227641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存