make_unique和完美的转发
为什么std::make_unique标准C ++ 11库中没有功能模板?我发现 std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); 有点冗长。以下内容会更好吗? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); 这new很好地隐藏了,只提及了一次类型。 无论如何,这是我尝试实现的make_unique: template<typename T, typename... Args> std::unique_ptr<T> make_unique(Args&&... args) { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); } 我花了很std::forward长时间才可以编译这些东西,但是我不确定它是否正确。是吗?到底是什么std::forward<Args>(args)...意思?编译器如何处理?