Здравствуйте, Cyberax, Вы писали:
C>Аноним wrote:
>> Это большой соблазн: "раз переменная содержит только неотрицательные значения, то пусть будет unsigned". В эту ловушку уже попалось много программистов (включая меня) и, видимо, ещё много попадётся.
C>Есть случаи, когда без unsigned очень плохо. Например, при работе с флагами.
Да, но обратите внимание на тему: "Беззнаковая арифметика". Речь не о том, что unsigned опасен, а о том, что беззнаковая арифметика опасна. Если переменная типа unsigned интерпретируется не как целое число, а как последовательность битов, то беззнаковой арифметики нет.
Кстати, я не люблю флаги. Во-первых, не type-safe. Я видел на просторах RSDN что-то вроде:
WS_OVERLAPPEDWINDOW | CS_OWNDC
Это как "2 метра + 3 секунды". Во-вторых, в отладчике тяжело узнать состояния отдельных флагов, потому что отладчик интерпретирует переменную как целое число.