C 11 标准库缺少 std::make_unique 函数模板,导致开发人员需要编写冗长的代码来创建独特的指针。考虑以下示例:
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
为了减轻这种冗长,一些开发人员提出了 make_unique 函数:
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
此语法隐藏了 new 运算符并仅提及一次类型。
但是,实现这样的功能需要了解完美转发的复杂性。具体来说,std::forward表达式:
std::forward<Args>(args)...
涉及以下操作:
总而言之, std::forward
以上是尽管'std::make_unique”很复杂,但为什么它对 C 来说是一个有价值的补充?的详细内容。更多信息请关注PHP中文网其他相关文章!