问:为什么 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中文网其他相关文章!