Название действительно говорит само за себя: в чем разница между минус один и тильда (одно дополнение) ноль?
Вопрос возник во время обсуждения наилучшего способа указать битовую маску, в которойвсе биты установлены.Что из нижеперечисленного лучше?
int func(int value, int mask = -1) {
return (value & mask);
}
или
int func(int value, int mask = ~0) {
return (value & mask);
}
Есть ли другие варианты использования, где это было бы наоборот?
Обновление: Естьаналогичная дискуссия на эту тему обсуждалась на stackoverflow.com / q / 809227/34509 , которую я пропустил во время моего предыдущего исследования.Спасибо Йоханнесу Шаубу за то, что он указал на это.