) は 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 の 2 つの関数宣言構文は次のとおりです。
伝統的な構文:
<return-type> <identifier> (<argument-declarations...>)
代替構文:
<auto> <identifier> (<argument-declarations...>) -> <return-type>
戻り値の型の決定とDectype
矢印演算子 (->) を使用すると、decltype を使用して引数の型に基づいて戻り値の型を導出できます。decltype を使用すると、明示的に指定せずに式の型を指定できます。
指定された例では、decltype(a b) は式 a b に基づいて戻り値の型を決定します。 - > 演算子は、戻り値の型が の型になることを示します。 expression.
C 14 Update
C 14 では、別の構文簡略化が導入されています:
<auto> <identifier> (<argument-declarations...>)
これは、関数が使用前に完全に定義されている場合に許可されます。すべての return ステートメントは同じ型を推定します。ただし、 - >この構文は、ヘッダーで宣言されたパブリック関数のソース ファイル内で関数本体を非表示にするのに引き続き便利です。
以上がC 関数ヘッダーの矢印演算子 (->) の目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。