c++ - 由于右值引用,C++0x 中的 std::swap 是原子的吗?

标签 c++ c++11

因为我们在 C++0x 中有右值引用,所以在我看来,应该可以将 std::swap 实现为 CAS 的原子操作。新标准是否属于这种情况?如果不是,原因是什么?

最佳答案

它不是原子的。原子操作并不便宜,99% 的时间你不需要原子性。有 (IIRC) 一些其他方法来获得原子操作,但 std::swap() 不是其中之一。

关于c++ - 由于右值引用,C++0x 中的 std::swap 是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446957/

相关文章:

c++ - 模板enable_if函数实现是否可行?

qt - 具有作用域枚举的 QFlags 的相等运算符

c++ - 在 Clang 中激活 C++11 支持

C++ 可变参数模板 : different priorities in gcc and nvcc/intel

c++ - 在下面的代码中 tr ("%1") 和 .arg() 在这里吗?

c++ - Qt ISO C++ 禁止没有类型的声明 - 是否包含头文件?

c++ - 按 vector 中的距离对 vector 值进行排序

c++ - 如何将结构的 C++/CLI 数组编码为非托管 C++

c++ - 在 C++ 中获取选项卡 URL

c++ - 在 C++ 中防止整数 0 隐式转换为指针的最佳方法是什么