Прочёл о том что при объявлении переменной типа float, значение в ней хранится как double, а для того чтобы задать тип хранения как float мы используем букву f.
Обратите внимание, что литералы типа с плавающей запятой по умолчанию относятся к типу double. Суффикс f используется для обозначения литерала типа float.
f выполнит преобразование своего аргумента и приведет его к типу float. Если этот идентификатор не использовать, то, согласно стандарту, литерал с плавающей точкой имеет тип double, но сужающая конверсия типа все равно будет иметь место для случая, когда литерал используется для инициализации значения отличного от типа double.
тогда для чего он нужен?
template< typename TArgument >
void foo( const TArgument argument );foo<float>( ... ); не указывая тип аргумента явно?Если да, то получается, что мы можем использовать сразу float, а не запихивать в double число с f.