Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么C++;11?_C++_C++11 - Fatal编程技术网

C++ 为什么C++;11?

C++ 为什么C++;11?,c++,c++11,C++,C++11,简单地说:为什么C++0X/C++11标准中的nullptr关键字是小写的,而它的近亲NULL是大写的?我确实意识到这两个国家遵循不同的标准nullptr是一个关键字,而NULL是一个宏。但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,对他们来说不是更清楚吗 (并不是说要记住太麻烦-我只是对设计决策感到好奇。)NULL是一个宏,一个常见的约定是宏是大写的,而nullptr不是一个宏而是一个关键字,与所有其他关键字一样是小写的 但是,由于它们将在类似的情况下使用,如果新用户遵循相同的

简单地说:为什么C++0X/C++11标准中的
nullptr
关键字是小写的,而它的近亲
NULL
是大写的?我确实意识到这两个国家遵循不同的标准
nullptr
是一个关键字,而
NULL
是一个宏。但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,对他们来说不是更清楚吗


(并不是说要记住太麻烦-我只是对设计决策感到好奇。)

NULL是一个宏,一个常见的约定是宏是大写的,而
nullptr
不是一个宏而是一个关键字,与所有其他关键字一样是小写的

但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,对他们来说不是更清楚吗


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

null是一个宏,通常的约定是宏是大写的,而
nullptr
不是一个宏,而是一个关键字,与所有其他关键字一样是小写

但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,对他们来说不是更清楚吗


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

好的,我正在编辑我的原始答案,因为我误读了这个问题。我要声明它是小写的,原因与true和false关键字都是小写的相同。

好的,我正在编辑我的原始答案,因为我误读了这个问题。我要说,这是小写,因为同样的原因,真和假关键字是小写。

小写绝对适合于一般的命名约定的C++。使用所有大写字母对新用户毫无帮助

我相信,在C++中使用 NUL/<代码>(或者使用C++代码> NULL/<代码>而不是<代码> 0 < /代码>的老用户,实际上会对所有的用户有用。
当然,在这种情况下,我看不出任何违反命名约定的理由。

小写绝对适合C++的一般命名约定。使用所有大写字母对新用户毫无帮助

我相信,在C++中使用 NUL/<代码>(或者使用C++代码> NULL/<代码>而不是<代码> 0 < /代码>的老用户,实际上会对所有的用户有用。

当然,在这种情况下,我看不出有任何理由可以违反命名约定。

您已经回答了您的问题。一个是关键字,另一个是宏。我不知道,它需要比
nullptr
清晰多少<代码>空指针?:)@jrok
POINTER\u,其值为零
使宏全部大写的关键在于,宏是一种危险的结构,因此使它们全部大写会使它们在代码中脱颖而出。对实际上不是宏的任何内容使用大写都会破坏该约定的实用性。@Ferruccio:但是
FILE*
?您已经回答了您的问题。一个是关键字,另一个是宏。我不知道,它需要比
nullptr
清晰多少<代码>空指针?:)@jrok
POINTER\u,其值为零
使宏全部大写的关键在于,宏是一种危险的结构,因此使它们全部大写会使它们在代码中脱颖而出。对实际上不是宏的任何内容使用全大写会破坏该约定的实用性。@Ferruccio:但是
FILE*
呢?
nullptr
不是一个类型,而是一个关键字,
nullptr\t
就是这个类型。啊!是的,我把它看作是一种意义。我现在就闭嘴。@SpencerWysinger,欢迎来到Stack Overflow!请注意,您可以编辑答案以使其正确。这样你就可以避免不必要的否决票,最终可能赢得更多的选票和声誉。谢谢,@avakar。全部固定。:)
nullptr
不是一种类型,而是一个关键字,
nullptr\u t
是一种类型。啊!是的,我把它看作是一种意义。我现在就闭嘴。@SpencerWysinger,欢迎来到Stack Overflow!请注意,您可以编辑答案以使其正确。这样你就可以避免不必要的否决票,最终可能赢得更多的选票和声誉。谢谢,@avakar。全部固定。:)