C:如何获取变量的类型并将其用作模板
发布时间:2020-12-16 10:17:54 所属栏目:百科 来源:网络整理
导读:我正在为以这种方式声明的函数的C编写一个包装器: class MyClass{public: template class T T as();}; 我的包装器需要消除显式模板,因为我不想调用myClass.as int(); 所以我尝试实现以这种方式声明的新函数: class MyClass2 : public MyClass{public: temp
我正在为以这种方式声明的函数的C编写一个包装器:
class MyClass { public: template <class T> T& as(); }; 我的包装器需要消除显式模板,因为我不想调用myClass.as< int>(); 所以我尝试实现以这种方式声明的新函数: class MyClass2 : public MyClass { public: template <class T> void get(T & val); }; 通过这种方式我可以打电话 int a; myClass2.get(a); 有没有办法实现这个函数,所以类型是在运行时根据参数类型传递的?就像是: template <class T> void MyClass2::get(T & val) { val = as< typeof(val) >(); /* Of course typeof does not exist */ } 非常感谢您的帮助. 解决方法
这根本不符合逻辑.为什么不写:
template <class T> void MyClass2::get(T & val) { val = as< T >(); } 由于type是模板参数,因此不需要typeof. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |