要让你设计的对象支持移动的话,通常需要下面几步:
你的对象应该有分开的拷贝构造和移动构造函数(除非你只打算支持移动,不支持拷贝——如 unique_ptr)。
你的对象应该有 swap 成员函数,支持和另外一个对象快速交换成员。
在你的对象的名空间下,应当有一个全局的 swap 函数,调用成员函数 swap 来实现交换。支持这种用法会方便别人(包括你自己在将来)在其他对象里包含你的对象,并快速实现它们的 swap 函数。
实现通用的 operator=。
上面各个函数如果不抛异常的话,应当标为 noexcept。这对移动构造函数尤为重要。
移动应用开发:关键步骤与高效交换技术
本文指导如何为移动对象设计支持移动和交换的类结构,包括移动构造、swap函数、通用赋值操作,以及noexcept异常处理。
75万+

被折叠的 条评论
为什么被折叠?



