考虑以下结构:
struct MyStruct
{
int my_number;
std::string my_string;
};
是否可以使用Designated初始化器创建std::unique_ptr
?像这样:
// like this
auto my_struct = std::make_unique<MyStruct>{.my_number = 4, .my_string = "two"};
// not like this
auto my_struct = std::make_unique<MyStruct>(4, "two");
我设法创建了一个新对象作为unique_ptr
的参数,但发现它很丑:
auto my_struct = std::unique_ptr<MyStruct>(new MyStruct{.my_number = 4, .my_string = "two"});
1条答案
按热度按时间siotufzp1#
是否可以使用Designated初始化器创建
std::unique_ptr
?否,最好使用CTAD避免冗余:
或者是