[英]Multi Value DWORD Enum as One Function Argument C++
我無法使它正常工作。 我想在第一個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) { ... }
請注意,這只是偽代碼。
試試DWORD(arg_a :: Black,arg_a :: Color)//預定義的宏或(arg_a :: Black | arg_a :: Color)//按位或
您正在使用邏輯運算符,但需要一些按位運算才能完成此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.