V>Т.е. это такое завуалированное сообщение о том что не найден оператор для En ? Если у меня будет еще куча перегрузок, то он их все выведет?
Ну clang говорит
prog.cc:19:20: error: invalid operands to binary expression ('En' and 'En')
En en3 = En::a & En::b;
~~~~~ ^ ~~~~~
/opt/wandbox/clang-head/include/c++/v1/bitset:1061:1: note: candidate template ignored: could not match 'bitset<_Size>' against 'En'
operator&(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT
^
prog.cc:11:9: note: candidate template ignored: could not match 'A<size>' against 'En'
A<size> operator&(const A<size>&, const A<size>&);
^
1 error generated.
Разница с VC как я понимаю только в том, что VC генерирует по ошибке на кандидата, а clang перечисляет их в note к одной ошибке.