Есть ли какой-либо стандартный параграф С++, в котором говорится, что использование -1
для этого является переносимым и правильным способом или единственный способ сделать это правильно - использовать предопределенные значения?
У меня был разговор с моим коллегой, что лучше: используя -1
для максимального целого числа без знака или используя значение от limits.h
или std::numeric_limits
?
Я сказал своему коллеге, что использование предопределенных максимальных значений из limits.h
или std::numeric_limits
является переносным и чистым способом сделать это, однако, коллега возражал против -1
, будучи таким же переносимым, как числовые ограничения, и больше, у него есть еще одно преимущество:
unsigned short i = -1; // unsigned short max
можно легко изменить на любой другой тип, например
unsigned long i = -1; // unsigned long max
при использовании предопределенного значения из заголовочного файла limits.h
или std::numeric_limits
также требуется переписать его вместе с типом слева.