我想知道是否可以确定给定类型是否是原子的(这意味着您可以在没有互斥锁的情况下对其执行操作,而不会将自己置于危险之中)。
我想知道是否有一些atomic(type)
定义可以确定类型是否是原子的。为了创建类似的东西DEFINE( (int)(do) );
,会创建如下伪代码:
int _do;
#if !atomic(int)
mutex do_mutex;
#endif
void set_do(int do)
{
#if atomic(int)
_do = do;
#else
lock(do_mutex);
_do = do;
#endif
}
如果类型是原子的(如果需要,使用 boost),有什么方法可以检查定义/mtl 级别。