以下はC++03の関数の宣言である。
// int型の仮引数を一つ取り、int型の戻り値を返す関数 int f( int ) ;
以下は、C++11から追加された、新しい関数の宣言である。
auto f( int ) -> int ;
もちろん、関数へのポインター型の宣言にも使える。
// C++03 int (*fp)(int) ; // C++11 auto (*fp)(int) -> int ;
新しい関数の宣言は、単に文法が変わっただけで、意味は変わらない。ただし、戻り値の型を後置できる文法なので、そのためにコードがわかりやすくなる。
例えば、ポインターを返す関数へのポインターが書きやすくなる。
// C++03 int * (*fp)() ; // C++11 auto (*fp)() -> int * ;
他にも、複雑な関数テンプレートを書く際にも使いやすくなる。
C++14では、新しい関数宣言の文法をさらに拡張して、戻り値の型推定の機能が追加された。
// 戻り値の型はint auto f( ) { return 0 ; }
No comments:
Post a Comment