template <class... Types> struct hash<variant<Types...>>;
Специализация hash<variant<Types...>> включена ([unord.hash]) тогда и только тогда, когда hash<remove_const_t<Types>>... включена каждая специализация в . Функции-члены не гарантируются noexcept.
template <> struct hash<monostate>;
Специализация включена ([unord.hash]).