为什么在C++ 11中nullptr是小写的?

Dan*_*ter 1 c++ c++11

简单地说:为什么nullptrC++ 0X/C++ 11标准中的关键字是小写的,而它的紧密伴侣NULL是大写的?我确实意识到这两者遵循不同的标准; nullptr是一个关键字,而是NULL一个宏.但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,它会不会更清楚?

(并不是说要记住这么多麻烦 - 我只是对设计决定感到好奇.)

Dav*_*eas 12

NULL是一个宏,常见的惯例是宏是大写的,而nullptr不是宏而是关键字,并且与所有其他关键字一样小写.

但是,既然它们会在类似的情况下使用,那么如果新用户遵循相同的惯例,那么它们会不会更清楚?

混淆的潜在根源会发生变化,其他人会问为什么关键字是大写的(假设NULLPTR,这null会破坏语言的向后兼容性)