在 enum class 中使用 bitmask 组合的方法
可以通过重载 | 运算符实现 bitmask 组合,例如:
1enum class SystemNamespaceType
2{
3 MOUNT = CLONE_NEWNS, // Mount Namespace
4 UTS = CLONE_NEWUTS, // UNIX Time-Sharing Namespace
5 IPC = CLONE_NEWIPC, // Inter-Process Communication Namespace
6 PID = CLONE_NEWPID, // Process ID Namespace
7 NET = CLONE_NEWNET, // Network Namespace
8 USER = CLONE_NEWUSER, // User Namespace
9 CGROUP = CLONE_NEWCGROUP, // CGroup Namespace
10};
11
12SystemNamespaceType operator | (SystemNamespaceType x, SystemNamespaceType y)
13{
14 return static_cast<SystemNamespaceType>(static_cast<int>(x) | static_cast<int>(y));
15}