問:為什麼 C 11 標準函式庫缺少集中式 make_unique 函式?
許多人找到了構造樣板unique指針不方便。例如:
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
像這樣的光滑函數將是首選:
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
問:這是一個make_unique 實現嘗試,但有關std::forward 的某些內容似乎已損壞。它在做什麼以及應該如何使用?
template<typename T, typename... Args> std::unique_ptr<T> make_unique(Args&&... args) { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); }
答:C 11 中 std::make_unique 的遺漏被認為是一個疏忽:它是在 C 14 中添加的。
std::forward
以上是為什麼 C 11 中缺少 `std::make_unique`,以及完美轉發在其實作中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!