meta: reduce symbol size of meta assoc traits ::size function

This commit is contained in:
Michele Caini
2023-07-03 11:47:09 +02:00
parent 3273c75057
commit b5b4991ae6
2 changed files with 4 additions and 4 deletions

View File

@@ -101,8 +101,8 @@ struct basic_meta_associative_container_traits {
static constexpr auto key_only = is_key_only_meta_associative_container<Type>::value;
[[nodiscard]] static size_type size(const any &container) noexcept {
return any_cast<const Type &>(container).size();
[[nodiscard]] static size_type size(const void *container) noexcept {
return static_cast<const Type *>(container)->size();
}
[[nodiscard]] static bool clear(any &container) {

View File

@@ -141,7 +141,7 @@ private:
internal::meta_type_node (*key_type_node)(const internal::meta_context &){};
internal::meta_type_node (*mapped_type_node)(const internal::meta_context &){};
internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
size_type (*size_fn)(const any &) noexcept {};
size_type (*size_fn)(const void *) noexcept {};
bool (*clear_fn)(any &){};
iterator (*iter_fn)(const meta_ctx &, any &, const bool){};
size_type (*insert_or_erase_fn)(any &, meta_any &, meta_any &){};
@@ -1948,7 +1948,7 @@ inline meta_sequence_container::iterator meta_sequence_container::erase(iterator
/*! @copydoc meta_sequence_container::size */
[[nodiscard]] inline meta_associative_container::size_type meta_associative_container::size() const noexcept {
return size_fn(storage);
return size_fn(storage.data());
}
/*! @copydoc meta_sequence_container::clear */