Рассмотрим пример вывода типа:
auto var = 1.0 ;
Это оценивает как float или double при выводе типа C ++ 11? Можно ли управлять этим поведением?
Это будет оценено как double
и да, вы можете контролировать это.
В стандарте ISO-14882: 2011, 2.14.4 Плавающие литералы, пункт 1:
Тип плавающего литерала — двойной, если явно не указано суффиксом. Суффиксы f и F задают float, суффиксы l и L указывают long double. Если масштабированное значение не находится в диапазоне представимых значений для его типа, программа является некорректной.
Других решений пока нет …