Есть ли какой-либо стандартный параграф С++, в котором говорится, что использование -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 также требуется переписать его вместе с типом слева.