我正在尝试实现一个固定大小的多维数组,其大小在运行时确定。make_shared
与( )的 (2) 重载template<class T> shared_ptr<T> make_shared(std::size_t N) // T is U[]
。但是,我面临编译错误(日志如下)。shared
如果我将s 更改为其对应项,则不会出现该错误unique
。我的问题是,
unique
有效?最小工作示例:
\n#include <memory>\n#include <iostream>\nint main() {\n typedef int cell_t;\n std::size_t x, y;\n std::cin >> y >> x;\n auto layout = std::make_shared<std::shared_ptr<cell_t[]>[]>(y);\n for (std::size_t i = 0; i < y; i += 1) {\n layout[i] = std::make_shared<cell_t[]>(x);\n }\n return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n错误消息如下g++-10
(为简洁起见,省略了注释)
In file included …
Run Code Online (Sandbox Code Playgroud)