初始化非默认可构造对象的动态数组

时间:2016-05-20 00:58:08

标签: c++ arrays c++11 language-lawyer

以下代码:

struct Foo
{
    Foo(int){} // no default constructor
};

int main()
{
    Foo* pFoo = new Foo[2]{1,2}; // OK in g++, fails in clang++!
    delete[] pFoo;
}   

compiles in gcc,但fails in clang。上面的代码语法是否正确?

1 个答案:

答案 0 :(得分:0)

我会转向@ T.C.评论答案,所以每个人都可以看到正在发生的事情,而无需阅读所有评论。

这是一个铿锵的错误,应该接受代码:http://llvm.org/bugs/show_bug.cgi?id=22924

相关:http://wg21.link/cwg2102