Это неудобно, но побитовый оператор AND определен в стандарте С++ следующим образом (выделение мое).
Выполняются обычные арифметические преобразования; результатом является побитовая функция И его операндов. Оператор применяется только к интегральным или неперечисленным операндам перечисления.
Это выглядит для меня бессмысленным. Насколько я могу видеть, "побитовая функция И" не определена нигде в стандарте.
Я понимаю, что функция И хорошо понятна и, следовательно, может не потребовать объяснений. Значение слова "побитовое" также должно быть довольно ясным: эта функция применяется к соответствующим битам ее операндов. Однако то, что составляет биты операндов, не ясно.
Что дает?