кажется, чтоПочему нет! (не) перегружен?
!
используется для логических операндов
и
~
используется для целочисленных типов, чтобы сделать btitwise отрицанием.
Почему бы не просто перегрузить !
для работы с целыми типами?
Я предполагаю, что есть более глубокая причина, чем потому, что «спецификация говорит так»
Например &
перегружен обрабатывать как целочисленные типы и логические типы без проблем.
Я не думаю, что видел '!', Используемый для поразрядного отрицания на любом языке, может быть неправильным? –
@Joni - целочисленные типы также могут представлять собой ряд бит, я полагаю, вы тоже не знакомы с поразрядным '&'? –
Вероятно, это именно то, что сказал Кевин: на других языках '!' Может иметь различное значение для целых чисел (например, когда логические значения также могут быть представлены как целые числа), и, таким образом, '~' используется для побитового отрицания - и почему изменяется синтаксис, который разработчики уже используются? – Thomas