我有代码行
int i =0;
result |= EXPECT_EQUAL(list.size(), 3);
Run Code Online (Sandbox Code Playgroud)
什么|=男子?
我试图编译类似的东西:
int result |= 5;
Run Code Online (Sandbox Code Playgroud)
但得到了错误:
aaa.cpp:26:16: error: expected initializer before ‘|=’ token
Run Code Online (Sandbox Code Playgroud)
Ser*_*sta 14
a |= b;只是语法糖a = a | b;.相同的语法几乎适用于C++中的每个运算符.
但这int i |= 5;是一个错误,因为在定义行中你必须有一个初始化,这是一个不使用被声明的变量的表达式.
int i=3;
i |= 5;
Run Code Online (Sandbox Code Playgroud)
是有效的,将给出值7(3 | 5)i.
它是按位OR分配的运算符.
http://en.cppreference.com/w/cpp/language/operator_assignment
Run Code Online (Sandbox Code Playgroud)int result |= 5;
您无法同时初始化int并为其分配内容.初始化和分配是不同的事情.你必须写:
int result = 0;
result |= 5;
Run Code Online (Sandbox Code Playgroud)
如果这是你想要的,当然.既然int result |= 5;不是C++,我们只能猜测你的意图.