<<
is the stream insertion operator, it is overloaded and not the same as a bitshift. It keeps the same operator precedence as a bitshift though which is higher than &
which is why you are experiencing your issues.
The <<
gets evaluated first causing a type mismatch.
Edit: 1 is considered the highest operator precedence for clarification.