我知道,在英特尔TBB模板类似退出,除此之外我找不到对谷歌或Boost库的任何实现。

有帮助吗?

解决方案

您可以找到有关该功能的实现在提升有讨论: HTTP: //lists.boost.org/Archives/boost/2008/11/144803.php

  

>能否N2427 - C ++原子类型和操作来实现

     

>没有编译器的帮助?

     

没有。

     

他们并不需要是内在如果你可以写内嵌汇编(或单独编译汇编程序   就此而言),那么你可以写   操作本身直接。您   甚至可以使用简单的C ++   (用于负载例如只是简单的分配   或存储)。你需要的原因   编译器支持阻止   不恰当的优化:原子   操作不能被优化掉了,而   一般不得重新排序   之前或之后任何其他操作。   这意味着,即使非原子   之前的原子进行存储   商店必须是完整的,不能   在寄存器(例如)被高速缓存。   此外,该加载后会出现   原子操作不能被吊起   之前的原子运算。一些   编译器,只用内联汇编   足够。在别人的呼唤   外部功能就足够了。 MSVC   提供   _ReadWriteBarrier()来提供编译器排序。其他编译器   需要其他标志。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top