struct MyStruct
{
int x = 0;
}
std::array<std::unique_ptr<MyStruct>, 10> Arr;
// Arr[0] = ?
将对象分配给此类数组的语法是什么? My reference。
答案 0 :(得分:1)
飞翔的回答:
Arr[0].reset(new MyStruct);
雷米·勒博的答案:
Arr[0] = std::make_unique<MyStruct>(); // Since C++14
答案 1 :(得分:0)
或者
std::array<std::unique_ptr<MyStruct>, 10> Arr {
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>(),
std::make_unique<MyStruct>()
};
为避免移动分配。