по этому вопросу:
Вызов функции шаблона без <>; вывод типа
функция округления, которую я буду использовать в будущем, теперь выглядит так:
template < typename TOut, typename TIn >
TOut roundTo( TIn value ) {
return static_cast<TOut>( value + 0.5 );
}
double d = 1.54;
int i = rountTo<int>(d);
Однако это имеет смысл только в том случае, если он будет использоваться для округления до целочисленных типов данных, таких как char, short, int, long, long long int и его аналоги без знака.
Если он когда-либо будет использоваться с плавающим или длинным двойным TOut As, то получится s ***.
double d = 1.54;
float f = roundTo<float>(d);
// aarrrgh now float is 2.04;
Я думал об определенной перегрузке функции, но ...
это невозможно ...
Как бы вы решили эту проблему?
большое спасибо заранее
К сожалению