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