【发布时间】:2011-09-18 23:19:31
【问题描述】:
最近,manyquestionspop up关于如何提供自己的swap功能。在 C++11 中,std::swap 将使用 std::move 并移动语义以尽可能快地交换给定值。当然,这仅在您提供移动构造函数和移动赋值运算符(或使用按值传递的运算符)时才有效。
现在,鉴于此,是否真的有必要在 C++11 中编写自己的 swap 函数?我只能想到不可移动的类型,但话又说回来,自定义 swaps 通常通过某种“指针交换”(又名移动)来工作。也许有某些参考变量?嗯……
【问题讨论】:
标签: c++ c++11 swap move-semantics obsolete