我可以:
auto o1 = new Content;
但不能:
std::shared_ptr<auto> o1(new Content);
std::unique_ptr<auto> o1(new Content);
我应该做什么?
答案 0 :(得分:3)
您可以像这样使用make_shared
/ make_unique
:
auto o1 = std::make_shared<Content>(); // Pass any arguments here as you would normally.
auto o2 = std::make_unique<Content>(); // Pass any arguments here as you would normally.
这些函数将所有参数转发给(在本例中)Content
的构造函数,您可以使用auto
,只需编写一次类型。
答案 1 :(得分:2)
你应该:
auto o1 = std::make_unique<Content>();
auto o2 = std::make_shared<Content>();