在C中获取运算符的返回类型?
发布时间:2020-12-16 10:32:47 所属栏目:百科 来源:网络整理
导读:考虑以下功能: templateclass T1,class T2,class T3 = /* SOMETHING */ T3 f(const T1 x,const T2 y); 我希望T3等于T1 T2的返回类型.如何用C 11做到这一点? 注意:我不希望std :: common_type T1,T2 :: type的结果,我想要实际类型的T1 T2,考虑到运算符可以
考虑以下功能:
template<class T1,class T2,class T3 = /* SOMETHING */> T3 f(const T1& x,const T2& y); 我希望T3等于T1 T2的返回类型.如何用C 11做到这一点? 注意:我不希望std :: common_type< T1,T2> :: type的结果,我想要实际类型的T1 T2,考虑到运算符可以是非成员函数或者可以是T1的成员函数. 解决方法
通常的方法是decltype和trailing-return-type:
template<class T1,class T2> auto f(const T1& x,const T2& y) -> decltype(x+y); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |