namespace jegp { // [utility.underlying], underlying template <class Enum> constexpr std::underlying_type_t<Enum> underlying(Enum e) noexcept; // [static.downcast], static_downcast template <class DerivedRef, class Base> constexpr DerivedRef static_downcast(Base&& base) noexcept; // [hash.combine], hash_combine template <class... Args> constexpr std::size_t hash_combine(const Args&... args) noexcept(see below); } // namespace jegp