C++ 在C+中|=表示什么+;?

C++ 在C+中|=表示什么+;?,c++,caffe,C++,Caffe,我在浏览英特尔深度学习框架Caffe的源代码时,遇到了|=。我以前从未在任何代码中看到过这种情况。事实上,我在代码中发现了两次 以及: 我意识到他们都被安置在一个for循环中,这可能意味着某种关系。我只是假设 它是 need_backward = need_backward | param_need_backward; 您正在执行的按位or运算是复合赋值 |=表示=| 它是按位递增的或等价于+=。你可以用C++中的大多数数学运算符来做这件事。 |是,因此您正在将变量重新分配给它的或'd结果。这

我在浏览英特尔深度学习框架Caffe的源代码时,遇到了
|=
。我以前从未在任何代码中看到过这种情况。事实上,我在代码中发现了两次

以及:

我意识到他们都被安置在一个for循环中,这可能意味着某种关系。我只是假设

它是

need_backward = need_backward | param_need_backward;

您正在执行的按位or运算是复合赋值

|=
表示
=|

它是按位递增的
等价于
+=
。你可以用C++中的大多数数学运算符来做这件事。
|
是,因此您正在将变量重新分配给它的
'd结果。

这是“按位或赋值”计算赋值运算符

x |= y;
相当于:

x = x | y;
有许多类似的运算符:+=、-=、*=,等等


请参阅:

我投票将此问题作为离题题结束,因为这是一个关于充分记录基本语法的问题。“按位包含或和赋值运算符”
|
是按位或运算符
xop=Y
X=xopy
的缩写。因此,
|=
执行两个参数的按位OR运算,并将结果赋给第一个参数。我也不想让您失望,或者实际上:我想--我想知道您是否应该从更简单的开始。我认为它与长版本的不同之处在于,左侧只计算一次。想象一个函数调用产生副作用,返回一个引用。
x |= y;
x = x | y;