Я хочу удалить предупреждение о производительности преобразования с плавающей точкой в функцию шаблонного класса, и в этом случае boost::enable_if
выглядит как избыточное.
Может быть, есть способ проверить тип шаблона во время компиляции, а затем использовать соответствующее приведение типа в зависимости от типа?
T val;
float val2;
val = (T)(val+val2); // warning here for objects of type bool
Я хочу что-то вроде этого:
#if (boost::is_same<CType, bool>::value == true)
val = (val+val2)!=0;
#else
val = (T)(val+val2);
#endif
Я бы предпочел не просто отключить предупреждение.
Редактировать: добавлен визуальный тег студии