この質問は、この質問の後のフォローアップです。実際の問題は、このリストで示されているように、関数テンプレートの既定のテンプレート パラメーターがVisual Studio 2012 でサポートされていないことです。
既定のテンプレート パラメーターは Visual Studios 2012 でサポートされていないため、それなしで同じ結果を得るための回避策はありますか? したがって、次のようなテンプレート関数を定義することは可能ですか?
template <typename T, typename Ret = T>
Ret round(T val, Ret ret = Ret()) {
return static_cast<Ret>(
(val >= 0) ?
floor(val + (T)(.5)) :
ceil( val - (T)(.5))
);
}
デフォルトのテンプレート引数を使用せずに? 関数は次のように機能します
auto a = round(5.5, int()); // int a = 6
auto b = round(5.5); // double b = 6.0