标签:name 获取 -o 返回 无法 pre 通过 question compose
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.1arrow-operator-in-function-heading]https://stackoverflow.com/questions/22514855/arrow-operator-in-function-heading
标签:name 获取 -o 返回 无法 pre 通过 question compose
原文地址:https://www.cnblogs.com/ishen/p/13190179.html