"недопустимые операнды типов 'bool' и '' to bin ', оператор <<'" </p>
Это означает, что второй оператор <<
пытается выполнить операторы (! T) и 'endl'.
<<
имеет более высокий приоритет, чем &&
, поэтому ваш оператор cout выполняется так:
(cout << t ) && ( (!t) << endl );
Добавьте скобки, чтобы исправить это:
cout << (t && (!t) ) << endl ;
Смотрите здесь для порядка операций, когда операторы не оцениваются должным образом.