我正在查看与我正在进行的宠物项目相关的库的C++源代码,遇到了一些我不理解的问题。在我期望进行指针解引用和赋值的地方,库作者使用
std::swap()
在函数末尾写入结果:std::swap(*out, result);
。我期望看到像这样的东西:*out = result;
请注意,result
是size_t
的typedef
而out
是指向同一类型的指针。当涉及“系统编程”时,我的背景是C和C#,但几乎没有C ++方面的知识。这种类型的“赋值”有什么特殊原因吗?
result
的值,那么std::move
可能是更好的选择。另请参见什么是C++中的R-Value?。 - jwwstd::swap
后,result
没有被使用。 - easuter