c ++新数组初始化我在采访中从未见过

时间:2013-11-22 22:30:02

标签: c++

以下代码有什么作用?我猜它会实例化一个MyObjects数组,但我不知道?

new (p) [[MyObject]]

1 个答案:

答案 0 :(得分:6)

这段代码肯定不是一个完整的陈述。我可以想象[[MyObject]]部分是一个用户定义属性,适用于表达式的这一部分之后的任何内容。例如,以下代码编译:

#include <new>

int main()
{
    void* p = operator new(sizeof(int));
    new(p) [[MyObject]] int(17);
}

[[MyObject]]部分正在使用用户定义的属性,这可能毫无意义,我实际上不知道如何使用它(我应该在某个时候看看这个......)。用户定义属性被引入C ++ 11。有关标准见见7.6 [dcl.attr]。