c++中的函数名带箭头

1.概览

  • 1.1 函数名中的箭头,用来表明函数的return type,其使用在函数的返回类型需要通过模板参数进行推导,使用在decltype()和declval()不方便的场景

2.正文

c++ 中提供了如下的方式,定义一个函数以及返回值

return-type identifier ( argument-declarations... )
如: int fn(....){...}

以及

auto identifier ( argument-declarations... ) -> return_type
如: auto identifier(...) -> int {...}

原因是: 当使用decltype进行返回类型推导的时候,是无法获取到模板参数的,需要使用declval进行辅助推导

//这种方法无法做到
template <typename T1, typename T2>
decltype(a + b) compose(T1 a, T2 b);

//需要使用declval
template <typename T1, typename T2>
decltype(std::declval<T1>() + std::declval<T2>()) compose(T1 a, T2 b);

由于使用declval()这种方法太过于繁琐,所以搞出了这东西

template <typename T1, typename T2>
auto compose(T1 a, T2 b) -> decltype(a + b);

3.ref

3.1arrow-operator-in-function-heading

原文链接: https://www.cnblogs.com/ishen/p/13190179.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++中的函数名带箭头

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/199462

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午8:08
下一篇 2023年2月12日 下午8:08

相关推荐