Similar to the usual arithmetic conversions the operators of the standard class std::bitset should be templated.with different sizes

For example

template<size_t N1, size_t N2>
bitset<std::max( N1, N2 )> operator &( const bitset<N1> &, const bitset<N2> & ) noexcept;

Or

template <size_t M>
bitset<N> & operator &=( const bitset<M> & rhs) noexcept;

With best regards,
Vlad from Moscow

You can meet me at http://cpp.forum24.ru/ or www.stackoverflow.com or http://ru.stackoverflow.com