shared_ptr <int []>无法编译

时间:2020-03-02 12:06:49

标签: c++11 shared-ptr smart-pointers unique-ptr

int main()
{
    //instruction 1 -> OK
    std::unique_ptr<int[]> sp2(new int[10]);

    //instruction 2 ->error does not compile
    std::shared_ptr<int[]> sp1(new int[10]);
}

当分配给智能指针的内存带有new []时,我正在阅读有关delete和delete []的信息。为什么带有std::unique_ptr的指令1没问题,而带有std::shared_ptr的指令1没问题?

1 个答案:

答案 0 :(得分:1)

GCC 7或更高版本将编译您遇到问题的代码:https://godbolt.org/z/pTWWVG

您在评论中链接的“ cpp.sh”网站使用了非常老的GCC 4.9,这是第一个声称支持C ++ 14的版本。