﻿# V6030\. The function located to the right of the '\|' and '&' operators will be called regardless of the value of the left operand\. Consider using '\|\|' and '&&' instead\.

Анализатор обнаружил возможную опечатку в логическом выражении\. Вместо логического оператора \(&& или \|\|\) написали битовый оператор \(& или \|\)\. Это означает, что правая часть будет выполнена независимо от результата левой части\.

Пример:

```cpp
if (foo() | bar()) {}
```

Если в качестве операндов стоят довольно ресурсоемкие операции, то использование битовых операций не оптимально\. Кроме того, такой код может привести к ошибке из\-за разных типов выражения и разных приоритетов операций\. Также возможна ситуация, когда правая часть не должна быть выполнена, если левая завершилась неудачно\. В таком случае может произойти обращение к неинициализированным ресурсам\. Также битовые операции не гарантируют порядок вычисления операндов\.

Корректный код:

```cpp
if (foo() || bar()) {}
```