特定のタイプがアトミックかどうかを判断できるかどうか疑問に思います (つまり、ミューテックスなしで操作を実行でき、自分自身を危険にさらすことはありません)。
タイプがアトミックかどうか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
}
タイプがアトミックである場合、define/mtl レベルでチェックする方法はありますか (必要に応じてブーストを使用)。