template < typename T >
struct atomic
{
static constexpr bool is_always_lock_free = ... ;
} ;
C++17で<atomic>
に追加されたatomic<T>::is_always_lock_free
は、atomic<T>
の実装がすべての実行においてロックフリーであるとコンパイル時に保証できる場合、true
になるstatic constexpr
なbool
型のデータメンバーだ。
atomic
には、他にもbool
を返すメンバー関数is_lock_free
があるが、これは実行時にロックフリーであるかどうかを判定できる。is_always_lock_free
はコンパイル時にロックフリーであるかどうかを判定できる。