Подтвердить что ты не робот

Почему std:: numeric_limits <T>:: max() функция?

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

В чем смысл этого?

4b9b3361

Ответ 1

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

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

Он изменится с С++ 0x, так что надеемся.