specializations hash<remove_const_t<A>> and hash<remove_const_t<B>> are
both enabled, and disabled otherwise.
можно просто кодом написать
template<typename A, typename B>
requires Hashable<remove_const_t<A>> && Hashable<remove_const_t<B>>
struct hash<pair<A, B>>;
, где Hashable определен так:
template<typename T>
concept Hashable = requires(T a) {
{ hash<T>{}(a) } -> size_t;
};
?
ну и так позаменять все фразы "Enabled if..."
Обсуждают сегодня