加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读