Operator | = для логического значения в C ++

Я наткнулся на следующую конструкцию в C ++:

bool result = false;
for(int i = 0; i<n; i++){
  result |= TryAndDoSomething(i);
}

Я предположил, что это | = было ярлыком для Оператор OR, и этот результат будет равен true в конце, если хотя бы один из этих вызовов TryAndDoSomething вернул true .

Но теперь мне интересно, может ли несколько вызовов действительно вернуть true .В самом деле, если мы расширим операцию как:

result = result || TryAndDoSomething(i);

, то метод будет вызываться только в том случае, если return оценивается как false , то есть, если никакой другой вызов до этого не возвратил true . Таким образом, после того, как один вызов вернул истину , другой вызов не будет выполнен.

Это правильная интерпретация?

13
задан Dunaril 26 January 2012 в 16:02
поделиться