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見事に非表示になり、タイプについては1回だけ言及します。 とにかく、ここに私の実装の試みがあります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)...どういう意味ですか?コンパイラはそれを何で作っていますか?