33template<typename C, typename =
void>
38template<typename C, typename =
void>
43template<typename C, typename =
void>
48template<typename C, typename =
void>
53template<typename C, typename =
void>
58template<typename C, typename =
void>
63template<typename, typename =
void>
68template<typename, typename =
void>
73template<typename, typename =
void>
78template<typename, typename =
void>
83template<typename, typename =
void>
88template<typename, typename =
void>
93template<typename, typename =
void>
98template<typename, typename =
void>
101inline constexpr
bool has_pop_front_v<C,
std::void_t<decltype(C().pop_front())>> = true;
103template<typename, typename =
void>
106inline constexpr
bool has_pop_back_v<C,
std::void_t<decltype(C().pop_back())>> = true;
108template<typename, typename =
void>
113template<typename, typename =
void>
118template<typename, typename =
void>
123template<typename, typename =
void>
128template<typename, typename =
void>
133template<typename, typename =
void>
138template<typename, typename =
void>
143template<typename, typename =
void>
148template<typename, typename =
void>
153template<typename, typename =
void>
158template<typename, typename =
void>
163template<typename, typename =
void>
168template<typename, typename =
void>
173template<
typename,
typename =
void>
176inline constexpr bool can_insert_key_mapped_v<C, std::void_t<
decltype(C().insert(key_type<C>(), mapped_type<C>()))>> =
true;
178template<
typename,
typename =
void>
183template<
typename,
typename =
void>
186inline constexpr bool has_find_v<C, std::void_t<
decltype(C().find(key_type<C>()))>> =
true;
188template<
typename,
typename =
void>
191inline constexpr bool iterator_dereferences_to_value_v<C, std::void_t<decltype(value_type<C>(*C().
begin()))>> =
true;
193template<
typename,
typename =
void>
196inline constexpr bool iterator_has_key_v<C, std::void_t<decltype(key_type<C>(C().
begin().
key()))>> =
true;
198template<
typename,
typename =
void>
201inline constexpr bool value_type_has_first_v<C, std::void_t<decltype(key_type<C>(value_type<C>().
first))>> =
true;
203template<
typename,
typename =
void>
206inline constexpr bool iterator_dereferences_to_key_v<C, std::void_t<decltype(key_type<C>(*C().
begin()))>> =
true;
208template<
typename,
typename =
void>
211inline constexpr bool iterator_has_value_v<C, std::void_t<decltype(mapped_type<C>(C().
begin().
value()))>> =
true;
213template<
typename,
typename =
void>
216inline constexpr bool value_type_has_second_v<C, std::void_t<decltype(mapped_type<C>(value_type<C>().second))>> =
true;
218template<
typename,
typename =
void>
221inline constexpr bool iterator_dereferences_to_mapped_v<C, std::void_t<decltype(mapped_type<C>(*C().
begin()))>> =
true;