Этот вопрос является продолжением после этого. Фактическая проблема заключается в том, что параметры шаблона по умолчанию для шаблонов функций не поддерживаются Visual Studios 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
template<typename T> T round(T val);
- person dyp   schedule 16.02.2014