template<class T>
  constexpr int countl_zero(T x) noexcept;
template<class T>
  constexpr int countl_one(T x) noexcept;
template<class T>
  constexpr int countr_zero(T x) noexcept;
template<class T>
  constexpr int countr_one(T x) noexcept;
template<class T>
  constexpr int popcount(T x) noexcept;