gpt4 book ai didi

c++ - c++ 中 make_unique 和 make_unique 与 reference_wrapper 的区别

转载 作者:太空宇宙 更新时间:2023-11-04 15:56:48 24 4
gpt4 key购买 nike

struct Foo{};

std::make_unique<Foo> 之间有什么区别?和 std::make_unique<std::reference_wrapper<Foo>>

最佳答案

std::make_unique<Foo>创建一个 Foo具有动态存储持续时间,无论传递什么参数。 std::make_unique<Foo>(args...)是一个有效的表达式当且仅当 Foo(args...)也是有效的。

std::make_unique<std::reference_wrapper<Foo>>创建一个 std::reference_wrapper<Foo>具有动态存储持续时间,来自另一个 std::reference_wrapper<Foo> , 或者来自将绑定(bind)到 Foo & 的东西但不是 Foo && .它不会创建任何额外的 Foo s,你至少需要一个Foo已经存在于某处。

我想不出使用 std::unique_ptr<std::reference_wrapper<Foo>> 的充分理由,超过gsl::observer<Foo> (又名 Foo * ),std::reference_wrapper<Foo>std::unique_ptr<Foo> ,具体取决于您要执行的操作。

关于c++ - c++ 中 make_unique 和 make_unique 与 reference_wrapper 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55396006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com