) 在 C 函数头中? " />
理解函数标题中的箭头运算符 (->)
相关代码在函数标题中引入了箭头运算符 (->):
template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; }
此语法引用了 C 11 中引入的替代函数声明语法。它提供了指定返回类型的传统方法的替代方法:
return-type identifier (argument-declarations...)
函数声明语法
C 11 中的两种函数声明语法是:
传统语法:
<return-type> <identifier> (<argument-declarations...>)
替代语法:
<auto> <identifier> (<argument-declarations...>) -> <return-type>
使用 Dectype 确定返回类型
箭头运算符 (->) 允许使用 decltype 根据参数类型派生返回类型。decltype 使我们能够指定表达式的类型,而无需明确声明它。
在给定的示例中,decltype(a b)根据表达式 a b 确定返回类型。 - > 运算符表示返回类型将是表达式的类型。
C 14 Update
C 14 引入了另一种语法简化:
<auto> <identifier> (<argument-declarations...>)
如果函数在使用前完全定义并且所有 return 语句推导为相同类型,则这是允许的。然而,->语法对于在标头中声明的公共函数的源文件中隐藏函数体仍然很有用。
以上是C 函数头中箭头运算符 (->) 的用途是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!