Meh*_*dad 4 c++ move-semantics c++11
给定已分配但未初始化的内存位置,如何将某个对象移动到该位置(销毁原始对象),而不构建可能昂贵的中间对象?
你可以使用placement new来在内存中构建它:
void * memory = get_some_memory();
Thing * new_thing = new (memory) Thing(std::move(old_thing));
Run Code Online (Sandbox Code Playgroud)
如果它有一个非平凡的析构函数,那么你需要在完成时明确地销毁它:
new_thing->~Thing();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |