gpt4 book ai didi

c++ - 如何将对象 move 到未初始化的内存中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:39 26 4
gpt4 key购买 nike

给定一个已分配但未初始化的内存位置,我如何将一些对象 move 到该位置(破坏原始位置),而不构造可能昂贵的中间对象?

最佳答案

您可以使用 placement new 在内存中 move 构造它:

void * memory = get_some_memory();
Thing * new_thing = new (memory) Thing(std::move(old_thing));

如果它有一个非平凡的析构函数,那么你需要在完成后显式地销毁它:

new_thing->~Thing();

关于c++ - 如何将对象 move 到未初始化的内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631752/

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