关于caffe:在C ++中有什么意义?

What does |= signify in C++?

当我遇到|=的时候,我正在浏览英特尔的深度学习框架caffe的源代码。我以前从未在任何代码中看到过这一点。事实上,我在代码中发现了两次。第188行:

1
need_backward |= blob_need_backward_[blob_id];

第254行:

1
need_backward |= param_need_backward;

我知道它们都被封装在一个for循环中,这可能意味着某种关系。我只是假设。


这是"按位或赋值"计算赋值运算符。

1
x |= y;

相当于:

1
x = x | y;

有许多类似的运算符:+=、-=、*=等。

参见:操作员分配


|=是一个复合赋值。

|= 表示 = |

它是递增的OR+=的位等价物。你可以用C++中的大多数数学运算符来实现这一点。

|是按位OR,因此您要将变量重新分配给它的OR结果。


它是

1
need_backward = need_backward | param_need_backward;

您正在执行位或操作