여러 스레드에서 읽고 쓰는 오류 상태 boolean이 있습니다. 처음에는 true로 설정되고, 조작이 실패하면 false로 설정되어야합니다.bitwise AND with std :: atomic <bool>
std::atomic<bool> status;
status &= func1();
status &= func2();
하지만 operator&=
이 std::atomic<bool>
및 bool
사이에 허용되지 않습니다 :
동일한 결과를 얻으려는 시도로 std::atomic<int>
을 사용할 수 있었지만 버그를 도입 할 수 있다고 걱정됩니다.
& 연산자를 사용하거나 사용할 수있는 유일한 구문을 func1()/func2()의 반환 값을 확인하고 상태를 false로 덮어 씌울 수 있습니까?
'func1'을 호출하는 동안 '상태'가 변경 될 가능성에 대한 계획을 세우지 못합니다. –