std :: _ Atomic_thread_fence(大写字母A)是正确的吗?

时间:2015-05-04 20:16:18

标签: c++ visual-studio-2012 visual-c++

Visual Studio 2012 c ++文档指出_ReadBarrier_WriteBarrier内在函数现在是deprecated:

  

_ReadBarrier_WriteBarrier_ReadWriteBarrier编译器   intrinsics和MemoryBarrier宏都被弃用了   不被使用。对于线程间通信,使用诸如的机制   在C ++中定义的atomic_thread_fencestd::atomic<T>   标准库参考。对于硬件访问,请使用/ volatile:iso   编译器选项和volatile(C ++)关键字。

按照指示后,我跳转到atomic_thread_fence documentation,并说明该功能是在标题<atomic>上定义的。 如果我在我的解决方案中包含这样的标题,我找不到该函数,但我确实找到了std::_Atomic_thread_fence

命名表明我这是一个特定于Microsoft的实现。这是文档问题还是应该修改默认的#include搜索路径?

1 个答案:

答案 0 :(得分:1)

这似乎只是Visual Studio intellisense的一个问题。如果您将其更正为atomic_thread_fence,则应该按照预期正常工作。