#include <type_traits>
template<typename T>
T f(T&& a, T&& b)
{
return a + b;
}
template<typename T, typename... Args>
T f(T&& a, T&& b, Args&&... args)
{
return f(a, f(b, std::forward<Args>(args)...));
}
int main()
{
f(1, 2, 3);
}
VS 2015の出力:エラーC2672: 'F':なしマッチングオーバーロードされた関数が期待通りに動作しないのはなぜ再帰的バリデーションテンプレートが期待どおりに機能しないのはなぜですか?
を見つけましたか?
:
を、その後に簡略化することができましたか?コードには3つあります。 –
ヒントg ++ 4.9.3では、次のエラーが表示されます。 test.cpp:10:3:注:テンプレート引数の控除/置換に失敗しました: test.cpp:12:49:注:パラメータ 'T'の競合するタイプを推定しました。 'int&'と 'int') return f(a、f(b、std :: forward(args)...)); –
robal
std :: forwardはで定義されていません –
robal