Почему станд.:: numeric_limits <T>:: макс. () функция?

В Библиотеке Стандарта C++ значение std::numeric_limits<T>::max() указан как функция. Дальнейшие свойства определенного типа даны как константы (какstd::numeric_limits<T>::is_signed). Все константы, которые имеют тип T даны как функции, тогда как все другие константы даны как, ну, в общем, постоянные величины.

Каково объяснение позади этого?

27
задан q-l-p 18 November 2017 в 07:18
поделиться

1 ответ

Чтобы расширить замечание Нила, std::numeric_limit доступен для любого типа чисел, включая числа с плавающей точкой, и если вы покопаетесь в потоке comp.lang.c++, то увидите упоминание о том, что может быть невозможно определить статические переменные для значений с плавающей точкой.

Поэтому для согласованности они решили поместить и интеграл, и плавающую точку за методы.

Это изменится в C++0x, так что есть надежда.

17
ответ дан 28 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: