Для указателей, которые не могут быть NULL есть ссылки.
Обычно, когда указатель NULL, то должно быть то же какое-то альтернативное действие - выдать ошибку или еще что-то, так что таким простым вариантом обычно не обходится.
Кроме того, то что вы предлагаете не трудно сделать на шаблонах или макросах. Выглядеть это будет не так, само собой, но эффект тот же.
Это же не ЖС, у которого перекосило страничку - и хрен с ней.
Это Кресты, тут любые подобные нестыковки приводят к эффекту домино, разыменованию нулевых указателей и сегфолту.
В сколько-нибудь надежной программе у этого if должен быть else.
Dyikot, ?? nullptr; // разыменовывайся на здоровье, ага.
В том else скорее будет выброс исключения, который будет обрабатываться где-то на другом уровне.
Кресты - не для одностраничников, поэтому в них и нет таких упрощений.
Dyikot, если в Крестах в указателе оказался null, это сплошь и рядом более сложная ситуация, чем та, которую можно обработать в одну строчку. И однострочные сокращения будут только провоцировать ошибки в таких ситуациях, поскольку они будут выглядеть решенными, но не будут таковыми на самом деле.
Писалось же выше, что в большинстве случаев обработкой в одну строку не обойтись и должна быть реакция как на ==NULL так и на !=NULL.
Так что чаще всего ситуации, где предложенный вами оператор пригодился бы в С/С++, не случится вовсе. Поэтому его до сих пор в языке и нет.
Dyikot, Но ведь стандарт С++ не только для тебя пишут. Допустим, вот такой код:
auto cursor = c.Parent?.GetCursorOn() ?? c.Parent?.GetCursorOff();
Или всё, это уже слишком сложно и не будем оператор ??? вводить?
А мне вот хочется, чтобы в цикле for инкремент итератора был с условием. Сейчас для этого приходится while использовать, а хотелось бы в for как-нибудь по хитрому условие инкремента встроить. Чтобы отслеживало, перешло к следующей итерации автоматом или через continue. Предлагаю оператор о_0
Dyikot, а если не один nullptr надо проверить, а два?
Например: c.Parent()->Get()->Value();
Опять не подходит? То есть целый оператор ради одной строго фиксированной конструкции вводить, которая легко заменяется макросом?
Это не достаточно частая операция в С++, чтобы срочно надо было вводить новый оператор в синтаксис. Комитет занят более интересными вещами на годы вперед.