namespace std {
  // [bit.cast], bit_cast
  template<typename To, typename From>
    constexpr To bit_cast(const From& from) noexcept;
  // [bit.pow.two], integral powers of 2
  template <class T>
    constexpr bool ispow2(T x) noexcept;
  template <class T>
    constexpr T ceil2(T x) noexcept;
  template <class T>
    constexpr T floor2(T x) noexcept;
  template <class T>
    constexpr T log2p1(T x) noexcept;
}template<typename To, typename From>
  constexpr To bit_cast(const From& from) noexcept;
template <class T>
  constexpr bool ispow2(T x) noexcept;
template <class T>
  constexpr T ceil2(T x) noexcept;
template <class T>
  constexpr T floor2(T x) noexcept;
template <class T>
  constexpr T log2p1(T x) noexcept;