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

前端之家收集整理的这篇文章主要介绍了c – 初始化非默认可构造对象的动态数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
代码如下:
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

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

原文链接:/c/118478.html

猜你在找的C&C++相关文章