Почему nullptr строчные в C ++ 11? - PullRequest
1 голос
/ 31 декабря 2011

Просто: почему ключевое слово nullptr в стандартном нижнем регистре C ++ 0X / C ++ 11, а его ближайший компаньон NULL в верхнем регистре? Я понимаю, что оба придерживаются разных стандартов; nullptr - это ключевое слово, тогда как NULL - это макрос. Но поскольку они будут использоваться в аналогичных ситуациях, не будет ли более понятным для новых пользователей, если они будут следовать тому же соглашению?

(Не так уж сложно помнить - мне просто любопытно, какое решение о дизайне.)

Ответы [ 3 ]

12 голосов
/ 31 декабря 2011

NULL - это макрос, и общепринятым условием является то, что макросы пишутся в верхнем регистре, а nullptr - не макрос, а ключевое слово и в нижнем регистре, как и все остальные ключевые слова.

Но так как они будут использоваться в аналогичных ситуациях, разве не будет понятнее для новых пользователей, если они будут следовать тому же соглашению?

Потенциальный источник путаницы изменится, и кто-то еще спросит, почему ключевое слово в верхнем регистре (при условии NULLPTR, поскольку null нарушит обратную совместимость в языке)

4 голосов
/ 31 декабря 2011

Нижний регистр определенно лучше подходит для общих соглашений об именах C ++. Использование всех заглавных букв никак не поможет новым пользователям.

И я не верю, что это на самом деле было бы очень полезно для старых пользователей, которые выросли с использованием NULL в C (или были в кепке пользователей C ++, которые использовали NULL вместо 0).

Конечно, я не вижу ничего, что могло бы оправдать нарушение соглашения об именах в этом случае.

3 голосов
/ 31 декабря 2011

Хорошо, я редактирую свой первоначальный ответ, потому что неправильно прочитал вопрос.Я собираюсь заявить, что это строчные буквы по той же причине, что истинные и ложные ключевые слова строчные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...