int * array = new int [size]();
operator()允许将数组的所有值设置为0(所有位都是0),这被称为值初始化。
从哪个版本的g++开始有效?
其他编译器呢?
在标准中我可以在哪里找到它?
int * array = new int [size]();
operator()允许将数组的所有值设置为0(所有位都是0),这被称为值初始化。
从哪个版本的g++开始有效?
其他编译器呢?
在标准中我可以在哪里找到它?
()
初始化(包括您的示例)始终是标准C++的一部分,自C++98以来就存在。尽管在较新版本的标准中有一些更改,但它们不适用于您的示例。
GCC编译器在2.x.x系列的版本中已知会错误处理()
初始化程序。MSVC++编译器在VC6中已知会错误处理()
初始化程序。较新版本的MSVC++根据C++98规范处理()
初始化程序。
()
这一部分吗? - AnT stands with Russia这是来自于2009-11-09的“C++编程语言标准工作草案”:
8.5 初始化
...
7 对于类型为T的对象进行值初始化意味着:
...
C
标签? - pmgstrcpy
实现while(*p1++=*p2++);
- 那种晦涩的运算符拼接令每个新手都感到震惊。(不用争论,后缀自增和解引用对新手程序员来说确实是晦涩的。)在上面的例子中,没有“秘密握手”,也没有专有扩展。它所做的就是允许更安全地分配一个整数数组的版本,同时仍然允许用户使用不太安全但略微更快的版本。这是由 ISO 标准确定的。 - sbi