template<class T> constexpr bool has_single_bit(T x) noexcept;
template<class T> constexpr T bit_ceil(T x);
template<class T> constexpr T bit_floor(T x) noexcept;
template<class T> constexpr int bit_width(T x) noexcept;