|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <atomic> | ||
#define ATOMIC_FLAG_INIT /* implementation-defined */ | (since C++11) | |
Defines the initializer which can be used to initializestd::atomic_flag to clear (false) state in the formstd::atomic_flag v= ATOMIC_FLAG_INIT;. It is unspecified if it can be used with other initialization contexts.
If the flag has is acomplete object withstatic storage duration, thisinitialization is static.
This is the only way to initializestd::atomic_flag to a definite value: the value held after any other initialization is unspecified. | (until C++20) |
This macro is no longer needed since default constructor ofstd::atomic_flag initializes it to clear state. It is kept for the compatibility with C. | (since C++20) |
#include <atomic> std::atomic_flag static_flag= ATOMIC_FLAG_INIT;// static initialization,// guaranteed to be available during dynamic initialization of static objects. int main(){std::atomic_flag automatic_flag= ATOMIC_FLAG_INIT;// guaranteed to work// std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // unspecified}
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2159 | C++11 | it was unclear whetherATOMIC_FLAG_INITcan be used with other initialization contexts | other usages are not guaranteed |
| LWG 3659 | C++20 | ATOMIC_FLAG_INIT was deprecated, but needed in C on some platforms | it is undeprecated |
(C++11) | the lock-free boolean atomic type (class)[edit] |
C documentation forATOMIC_FLAG_INIT | |