我无法让它发挥作用。我想在第一个功能区域(颜色和黑色)中包含两个值。
在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可以是以下一个或多个值: 颜色 白色 黑色
答案 0 :(得分:2)
编码两个"枚举值"在一,你通常每个值使用一位:
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) { ... }
请注意,这只是伪代码。
答案 1 :(得分:0)
尝试DWORD(arg_a :: Black,arg_a :: Color)//预定义的宏 或(arg_a :: Black | arg_a :: Color)//按位或
您正在使用逻辑运算符,但需要一些按位运算才能完成此操作。