template<class T, class S> constexpr T shl(T x, S s) noexcept;
template<class T, class S> constexpr T shr(T x, S s) noexcept;