C ++ эквивалент java.lang.Integer.MIN_VALUE - PullRequest
12 голосов
/ 16 апреля 2010

Как я могу получить эквивалент java.lang.Integer.MIN_VALUE на C ++?

Ответы [ 2 ]

19 голосов
/ 16 апреля 2010
#include <limits>    
std::numeric_limits<int>::min();
3 голосов
/ 17 апреля 2010

Зависит от того, что вы подразумеваете под «эквивалентом». java.lang.Integer.MIN_VALUE является константой времени компиляции в Java, но std::numeric_limits<int>::min() не является выражением целочисленной константы в C ++. Поэтому его нельзя использовать, например, в качестве размера массива (ну, мин. Значение int в любом случае не может, потому что оно отрицательное, но то же самое относится и к выражениям, в которых он содержится, или другим аналогичным значениям, или другим контекстам, требующим использования льда). ).

Если вам нужна постоянная времени компиляции в C ++, используйте INT_MIN из <climits>. Фактически, вы также можете использовать его в любом случае: numeric_limits необходимо, если вы пишете универсальный код, и у вас есть целочисленный тип T, который может быть int или может быть чем-то другим. В противном случае его основное назначение - доказать свои навыки работы с C ++ и / или сделать код длиннее; -)

...