4

テンプレートを使用して合計を見つけるように言われました。なぜこれが機能しないのですか?ありがとう。

template <typename A, typename B, typename C>
auto add(A a, B b, C c = a + b) -> decltype(c) {
    return c;
}

C++ 11 では、引数を宣言した後に使用できると言っていると思いました。なぜこれがうまくいかないのですか?

4

1 に答える 1

3

デフォルトの値として引数を使用することはできません。また、テンプレートの型推論はそのようには機能しません。

次のように書くだけです:

template <typename A, typename B>
auto add(A a, B b) -> decltype(a + b) {
    return a + b;
}

そして、C++ がすぐに戻り値の型推論を取得することを願っています。

于 2012-12-29T02:00:17.707 に答える