Если у меня есть vector<bool> vec_bool
, то я не могу изменить содержимое вектора, используя оператор присваивания |=
. То есть, строки
vec_bool[0] |= true;
vec_bool[0] |= vec_bool[1];
выдают ошибки компилятора, а строки
bool a = false;
a |= true;
a |= vec_bool[0];
vec_bool[0] = vec_bool[0] | vec_bool[1];
vec_bool[0] = vec_bool[0] || vec_bool[1];
vector<int> vec_int(3);
vec_int[0] |= vec_int[1];
нет. В чем причина этого?
Приведенная ошибка (по gcc):
test.cpp: 21:17: error: нет соответствия для 'operator | = (типы операндов: std::vector:: reference {aka std:: _ Bit_reference} и' bool)