ATOMIC_FLAG_INIT
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<atomic>
|
||
|
#define ATOMIC_FLAG_INIT /* implementation-defined */
|
(C++11부터) | |
std::atomic_flag 를 clear(false) 상태로 초기화하는 데 사용할 수 있는 초기화자를 정의합니다. 형식은 std:: atomic_flag v = ATOMIC_FLAG_INIT ; 입니다. 다른 초기화 문맥에서 사용할 수 있는지 여부는 명시되어 있지 않습니다.
만약 플래그가 complete object 이면서 static storage duration 을 가진다면, 이 initialization은 static 입니다.
|
이것은 std::atomic_flag 를 명확한 값으로 초기화하는 유일한 방법입니다: 다른 초기화 이후에 보유하는 값은 지정되지 않습니다. |
(until C++20) |
|
std::atomic_flag 의 기본 생성자가 이를 clear 상태로 초기화하므로 이 매크로는 더 이상 필요하지 않습니다. C 언어와의 호환성을 위해 유지됩니다. |
(since C++20) |
예제
#include <atomic> std::atomic_flag static_flag = ATOMIC_FLAG_INIT; // 정적 초기화, // 정적 객체의 동적 초기화 중 사용 가능함이 보장됨 int main() { std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // 동작이 보장됨 // std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // 미지정 }
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2159 | C++11 |
ATOMIC_FLAG_INIT
가
다른 초기화 컨텍스트에서 사용 가능한지 불명확했음 |
다른 사용법은
보장되지 않음 |
| LWG 3659 | C++20 |
ATOMIC_FLAG_INIT
가 폐기되었으나
일부 플랫폼의 C 언어에서 필요했음 |
폐기 상태가 해제됨 |
참고 항목
|
(C++11)
|
락-프리 불리언 원자 타입
(클래스) |
|
C 문서
for
ATOMIC_FLAG_INIT
|
|