|
|
@@ -29,7 +29,7 @@ template<typename, typename = void>
|
|
|
struct is_dynamic_sequence_container: std::false_type {};
|
|
|
|
|
|
template<typename Type>
|
|
|
-struct is_dynamic_sequence_container<Type, std::void_t<decltype(&Type::clear)>>: std::true_type {};
|
|
|
+struct is_dynamic_sequence_container<Type, std::void_t<decltype(&Type::reserve)>>: std::true_type {};
|
|
|
|
|
|
|
|
|
template<typename, typename = void>
|
|
|
@@ -72,18 +72,18 @@ struct basic_meta_sequence_container_traits {
|
|
|
|
|
|
[[nodiscard]] static iterator begin(any &container) {
|
|
|
if(auto * const cont = any_cast<Type>(&container); cont) {
|
|
|
- return iterator{cont->begin()};
|
|
|
+ return iterator{std::begin(*cont)};
|
|
|
}
|
|
|
|
|
|
- return iterator{any_cast<const Type &>(container).begin()};
|
|
|
+ return iterator{std::begin(any_cast<const Type &>(container))};
|
|
|
}
|
|
|
|
|
|
[[nodiscard]] static iterator end(any &container) {
|
|
|
if(auto * const cont = any_cast<Type>(&container); cont) {
|
|
|
- return iterator{cont->end()};
|
|
|
+ return iterator{std::end(*cont)};
|
|
|
}
|
|
|
|
|
|
- return iterator{any_cast<const Type &>(container).end()};
|
|
|
+ return iterator{std::end(any_cast<const Type &>(container))};
|
|
|
}
|
|
|
|
|
|
[[nodiscard]] static iterator insert(any &container, iterator it, meta_any &value) {
|
|
|
@@ -147,7 +147,7 @@ struct basic_meta_associative_container_traits {
|
|
|
return iterator{std::integral_constant<bool, key_only()>{}, cont->begin()};
|
|
|
}
|
|
|
|
|
|
- return iterator{std::integral_constant<bool, key_only()>{}, any_cast<const Type &>(container).begin()};
|
|
|
+ return iterator{std::integral_constant<bool, key_only()>{}, std::begin(any_cast<const Type &>(container))};
|
|
|
}
|
|
|
|
|
|
[[nodiscard]] static iterator end(any &container) {
|
|
|
@@ -155,7 +155,7 @@ struct basic_meta_associative_container_traits {
|
|
|
return iterator{std::integral_constant<bool, key_only()>{}, cont->end()};
|
|
|
}
|
|
|
|
|
|
- return iterator{std::integral_constant<bool, key_only()>{}, any_cast<const Type &>(container).end()};
|
|
|
+ return iterator{std::integral_constant<bool, key_only()>{}, std::end(any_cast<const Type &>(container))};
|
|
|
}
|
|
|
|
|
|
[[nodiscard]] static bool insert(any &container, meta_any &key, meta_any &value) {
|