7

これら2つの機能の違いは何ですか?

auto func(int a, int b) -> int;

int func(int a, int b);
4

3 に答える 3

10

上記の場合、表記以外に違いはありません。1つ以上の引数を参照して関数の戻り型を判別する場合は、代替の関数宣言構文が重要になります。例えば:

template <typename S, typename T>
auto multiply(S const& s, T const& t) -> decltype(s * t);

(はい、それはばかげた例です)

于 2012-12-30T02:13:02.123 に答える
5

これら2つの宣言の間に有用な違いはありません。どちらの関数も。を返しますint

C ++ 11の末尾の戻り型は、引数を持つ関数で役立ちtemplateます。この場合、次の質問のように、戻り型はコンパイル時までわかりません。末尾の戻り型を正しく記述するにはどうすればよいですか。

于 2012-12-30T02:13:44.630 に答える
2

それらは異なる構文を使用し、C++11より前のC++バージョンではそのうちの1つだけが有効です。それ以外は、質問で示した2つの関数宣言の間に違いはありません。

于 2012-12-30T02:12:08.287 に答える