我无法使它正常工作。我想在第一个func arg spot中包括两个值(彩色和黑色)。

在arg1中使用一个arg可以正常工作:
    func(arg_a::Color, 5);

我在arg1中尝试了以下变体:

arg_a::Color || Black arg_a::Color && Black (arg_a::Color, arg_a::Black) DWORD test = arg_a::Color&&Black;

我的文档如下:
arg_a
类型:DWORD

arg_a可以是以下值之一或多个:
颜色
白色
黑色

最佳答案

要将两个“枚举值”合二为一,通常为每个值使用一位:

enum {
    Black = 0x01;
    White = 0x02;
    Color = 0x04;
}


然后,您可以将它们与按位运算符组合:

call(Black|White);
// or perhaps easier to read
call(Black + White);


在接收端

call(int val) {
    if (val & Black) { ... }
    if (val & White) { ... }


请注意,这只是伪代码。

关于c++ - 多值DWORD枚举作为一个函数参数C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26333704/

10-13 09:31