草庐IT

MoveAFoo

全部标签

C++11:移动/复制构造歧义?

在C++11中,我们可以定义复制和移动构造函数,但都允许在同一个类上使用?如果是这样,你如何消除它们的用法?例如:FooMoveAFoo(){Foof;returnf;}以上是拷贝吗?一个Action?我怎么知道? 最佳答案 通常不会因为RVO.如果无法执行该优化,那么这将是一个移动,因为返回的对象超出了范围(并且将在之后被销毁)。如果它不能移动,那么它将被复制。如果无法复制,则无法编译。移动构造函数的全部意义在于,当要对即将被销毁的对象进行复制时,通常不需要进行整个复制,并且可以移动资源从垂死的对象改为正在创建的对象。您可以根据被

C++11:移动/复制构造歧义?

在C++11中,我们可以定义复制和移动构造函数,但都允许在同一个类上使用?如果是这样,你如何消除它们的用法?例如:FooMoveAFoo(){Foof;returnf;}以上是拷贝吗?一个Action?我怎么知道? 最佳答案 通常不会因为RVO.如果无法执行该优化,那么这将是一个移动,因为返回的对象超出了范围(并且将在之后被销毁)。如果它不能移动,那么它将被复制。如果无法复制,则无法编译。移动构造函数的全部意义在于,当要对即将被销毁的对象进行复制时,通常不需要进行整个复制,并且可以移动资源从垂死的对象改为正在创建的对象。您可以根据被