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 回答