我正在浏览一些C++源代码from a library,这些代码与我正在处理的pet-project有关,并且遇到了一些我不明白的东西。在我期望的指针引用,然后分配的地方,图书馆作者使用std::swap()
附近函数的末尾写结果:使用std :: swap代替'='赋值运算符
std::swap(*out, result);
我希望看到这样的事情:
*out = result;
注意result
是size_t
和out
一个typedef
是一个指针,指向同一类型。
说到“系统编程”,我的背景是C和C#,但在C++中并不多。这种“任务”有什么特别的理由吗?
如果在结果交换之后'result'值不被使用,'std :: move'可能是更好的选择。另请参阅[在C++中究竟是什么R值?](http://stackoverflow.com/q/9406121/608639)。 – jww
@jww,调用'std :: swap'后不使用'result'。 – easuter