Как вывод типа C ++ 11 решает между числами с плавающей запятой или двойными?

Рассмотрим пример вывода типа:

auto var = 1.0 ;

Это оценивает как float или double при выводе типа C ++ 11? Можно ли управлять этим поведением?

8

Решение

Это будет оценено как double и да, вы можете контролировать это.

В стандарте ISO-14882: 2011, 2.14.4 Плавающие литералы, пункт 1:

Тип плавающего литерала — двойной, если явно не указано суффиксом. Суффиксы f и F задают float, суффиксы l и L указывают long double. Если масштабированное значение не находится в диапазоне представимых значений для его типа, программа является некорректной.

14

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]