错误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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)