C++20 引入新函数 std::make_shared_for_overwrite()
除了std::make_shared()
:
https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared
为什么老 make_shared
是不够的,在什么情况下需要使用新功能?
最佳答案
std::make_shared()
value 初始化它创建的对象,如果您打算稍后为其分配值,这可能是不必要的步骤。std::make_shared_for_overwrite()
default 初始化它创建的对象。
差异仅对没有初始化程序的基本类型的(子)对象重要。std::make_shared<int[1000][1000]>()
将分配一百万并归零 int
秒std::make_shared_for_overwrite<int[1000][1000]>()
将分配一百万 int
秒
关于c++ - 何时使用 std::make_shared_for_overwrite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67968070/