make
War*_*ers 7
正如 yksisarvinen 在评论中提出的那样,解决此问题的一种方法是替换make_unique<T>为std::unique_ptr<T>(new T(S)).
class S { public: S() {}};class T { private: std::unique_ptr<S> a; T(S); public: static std::unique_ptr<T> make_item() { // Create S std::unique_ptr<S> s_instance = std::make_unique<S>(); return std::unique_ptr<T>(new T(s_instance)); }};