代码如下:
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.上面的代码语法是否正确?
解决方法
我会转向@ T.C.评论答案,所以每个人都可以看到正在发生的事情,而无需阅读所有评论.
这是一个铿锵的bug,代码应该被接受:http://llvm.org/bugs/show_bug.cgi?id=22924