Visual Studio 2012 c ++文档指出_ReadBarrier
和_WriteBarrier
内在函数现在是deprecated:
_ReadBarrier
,_WriteBarrier
和_ReadWriteBarrier
编译器 intrinsics和MemoryBarrier宏都被弃用了 不被使用。对于线程间通信,使用诸如的机制 在C ++中定义的atomic_thread_fence
和std::atomic<T>
标准库参考。对于硬件访问,请使用/ volatile:iso 编译器选项和volatile
(C ++)关键字。
按照指示后,我跳转到atomic_thread_fence
documentation,并说明该功能是在标题<atomic>
上定义的。
如果我在我的解决方案中包含这样的标题,我找不到该函数,但我确实找到了std::_Atomic_thread_fence
。
命名表明我这是一个特定于Microsoft的实现。这是文档问题还是应该修改默认的#include
搜索路径?
答案 0 :(得分:1)
这似乎只是Visual Studio intellisense的一个问题。如果您将其更正为atomic_thread_fence
,则应该按照预期正常工作。