Я не могу заставить это работать. Я хочу включить два значения в первое пятно func arg (Color и Black).
Он отлично работает с одним аргументом в arg1:
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) // поразрядно или
Вы используете логические операторы, но для этого вам нужны побитовые операции.