gpt4 book ai didi

c++ - move 没有 move 构造函数的类

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

假设我有一个类型为 A 的对象 a。

如果我想将其 move 到函数foo(A)

一个选择是执行 foo(std::move(a)),这将调用 move 构造函数。

但是,假设我正在使用一个我无法控制的类。如果我还想 move 字体,这还不够吗?

std::unique_ptr<A> a_ptr(new A());
foo(std::move(a_ptr));

foo 更改为接受 unique_ptr。

两者是不是很相似(在第二种情况下使用智能指针的开销很小)?

最佳答案

不,使用此语法,您 move 的是唯一指针,而不是对象。该对象必须支持被 move 。但是由于您可以使用指针,因此请避免 move 和传递指针。开销是单指针间接(非常小)。

关于c++ - move 没有 move 构造函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553134/

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