atomic包含atomic versions of many different variable types。但是,它不包含原子枚举类型。有没有办法使用原子枚举或创建自己的枚举?据我所知,我唯一的选择是不使用枚举或使用互斥量/信号量来保护它们。

注意:我发现的这个bug report提到了“std::atomic枚举支持”,但是在C++ Standard中我没有提到原子枚举类型,因此我不确定该指的是什么。

最佳答案

您可以创建一个原子枚举,如下所示:

#include <atomic>

enum Decision {stay,flee,dance};
std::atomic<Decision> emma_choice {stay}; // emma_choice is atomic

您还可以对枚举类执行相同的操作:
#include <atomic>

enum class Decision {stay,flee,dance};
std::atomic<Decision> emma_choice {Decision::stay}; // emma_choice is atomic

关于c++ - 如何在C++中创建原子枚举?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21756457/

10-11 23:20
查看更多