これら2つの機能の違いは何ですか?
auto func(int a, int b) -> int;
int func(int a, int b);
これら2つの機能の違いは何ですか?
auto func(int a, int b) -> int;
int func(int a, int b);
上記の場合、表記以外に違いはありません。1つ以上の引数を参照して関数の戻り型を判別する場合は、代替の関数宣言構文が重要になります。例えば:
template <typename S, typename T>
auto multiply(S const& s, T const& t) -> decltype(s * t);
(はい、それはばかげた例です)
これら2つの宣言の間に有用な違いはありません。どちらの関数も。を返しますint
。
C ++ 11の末尾の戻り型は、引数を持つ関数で役立ちtemplate
ます。この場合、次の質問のように、戻り型はコンパイル時までわかりません。末尾の戻り型を正しく記述するにはどうすればよいですか。
それらは異なる構文を使用し、C++11より前のC++バージョンではそのうちの1つだけが有効です。それ以外は、質問で示した2つの関数宣言の間に違いはありません。