Я хотел бы определить внутри класса константу, значение которой является максимально возможным int. Что-то вроде этого:
class A
{
...
static const int ERROR_VALUE = std::numeric_limits<int>::max();
...
}
Это объявление не компилируется со следующим сообщением:
numeric.cpp:8: ошибка: 'std::numeric_limits::max()' не может отображаться в постоянном выражении numeric.cpp:8: ошибка: вызов функции не может отображаться в постоянном выражении
Я понимаю, почему это не работает, но две вещи кажутся мне странными:
Мне кажется естественным решение использовать значение в константных выражениях. Почему разработчики языка решили сделать max() функцией, не допуская такого использования?
- #P6# <блочная цитата> #P7# блочная цитата> #P8#
Спасибо.
climits
плохо работает с шаблонами. - person UncleBens   schedule 29.04.2010integer_traits <>::const_max/const_min
- person Anycorn   schedule 29.04.2010