@@ -75,7 +75,7 @@ class meta_sequence_container {
7575private:
7676 const meta_ctx *ctx{};
7777 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
78- size_type (*vtable)(const operation, const void *, const void *, iterator *){};
78+ size_type (*vtable)(const operation, const void *, const void *, meta_any *){};
7979 any storage{};
8080};
8181
@@ -137,7 +137,7 @@ class meta_associative_container {
137137 internal::meta_type_node (*key_type_node)(const internal::meta_context &){};
138138 internal::meta_type_node (*mapped_type_node)(const internal::meta_context &){};
139139 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
140- size_type (*vtable)(const operation, const void *, const void *, const void *, iterator * ){};
140+ size_type (*vtable)(const operation, const void *, const void *, const void *){};
141141 any storage{};
142142};
143143
@@ -1808,7 +1808,7 @@ inline bool meta_sequence_container::reserve(const size_type sz) {
18081808 */
18091809[[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::begin () {
18101810 iterator it{*ctx};
1811- vtable (storage.policy () == any_policy::cref ? operation::cbegin : operation::begin, std::as_const (storage).data (), nullptr , &it);
1811+ vtable (storage.policy () == any_policy::cref ? operation::cbegin : operation::begin, std::as_const (storage).data (), &it, nullptr );
18121812 return it;
18131813}
18141814
@@ -1818,7 +1818,7 @@ inline bool meta_sequence_container::reserve(const size_type sz) {
18181818 */
18191819[[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::end () {
18201820 iterator it{*ctx};
1821- vtable (storage.policy () == any_policy::cref ? operation::cend : operation::end, std::as_const (storage).data (), nullptr , &it);
1821+ vtable (storage.policy () == any_policy::cref ? operation::cend : operation::end, std::as_const (storage).data (), &it, nullptr );
18221822 return it;
18231823}
18241824
@@ -1829,7 +1829,7 @@ inline bool meta_sequence_container::reserve(const size_type sz) {
18291829 * @return A possibly invalid iterator to the inserted element.
18301830 */
18311831inline meta_sequence_container::iterator meta_sequence_container::insert (iterator it, meta_any value) {
1832- return ((storage.policy () != any_policy::cref) && vtable (operation::insert, storage.data (), &value , &it )) ? it : iterator{*ctx};
1832+ return ((storage.policy () != any_policy::cref) && vtable (operation::insert, storage.data (), &it , &value )) ? it : iterator{*ctx};
18331833}
18341834
18351835/* *
@@ -1838,7 +1838,7 @@ inline meta_sequence_container::iterator meta_sequence_container::insert(iterato
18381838 * @return A possibly invalid iterator following the last removed element.
18391839 */
18401840inline meta_sequence_container::iterator meta_sequence_container::erase (iterator it) {
1841- return ((storage.policy () != any_policy::cref) && vtable (operation::erase, storage.data (), nullptr , &it)) ? it : iterator{*ctx};
1841+ return ((storage.policy () != any_policy::cref) && vtable (operation::erase, storage.data (), &it, nullptr )) ? it : iterator{*ctx};
18421842}
18431843
18441844/* *
@@ -1884,30 +1884,30 @@ inline meta_sequence_container::iterator meta_sequence_container::erase(iterator
18841884
18851885/* ! @copydoc meta_sequence_container::size */
18861886[[nodiscard]] inline meta_associative_container::size_type meta_associative_container::size () const noexcept {
1887- return vtable (operation::size, std::as_const (storage).data (), nullptr , nullptr , nullptr );
1887+ return vtable (operation::size, std::as_const (storage).data (), nullptr , nullptr );
18881888}
18891889
18901890/* ! @copydoc meta_sequence_container::clear */
18911891inline bool meta_associative_container::clear () {
1892- return (storage.policy () != any_policy::cref) && vtable (operation::clear, storage.data (), nullptr , nullptr , nullptr );
1892+ return (storage.policy () != any_policy::cref) && vtable (operation::clear, storage.data (), nullptr , nullptr );
18931893}
18941894
18951895/* ! @copydoc meta_sequence_container::reserve */
18961896inline bool meta_associative_container::reserve (const size_type sz) {
1897- return (storage.policy () != any_policy::cref) && vtable (operation::reserve, storage.data (), nullptr , &sz, nullptr );
1897+ return (storage.policy () != any_policy::cref) && vtable (operation::reserve, storage.data (), nullptr , &sz);
18981898}
18991899
19001900/* ! @copydoc meta_sequence_container::begin */
19011901[[nodiscard]] inline meta_associative_container::iterator meta_associative_container::begin () {
19021902 iterator it{*ctx};
1903- vtable (storage.policy () == any_policy::cref ? operation::cbegin : operation::begin, std::as_const (storage).data (), nullptr , nullptr , &it);
1903+ vtable (storage.policy () == any_policy::cref ? operation::cbegin : operation::begin, std::as_const (storage).data (), nullptr , &it);
19041904 return it;
19051905}
19061906
19071907/* ! @copydoc meta_sequence_container::end */
19081908[[nodiscard]] inline meta_associative_container::iterator meta_associative_container::end () {
19091909 iterator it{*ctx};
1910- vtable (storage.policy () == any_policy::cref ? operation::cend : operation::end, std::as_const (storage).data (), nullptr , nullptr , &it);
1910+ vtable (storage.policy () == any_policy::cref ? operation::cend : operation::end, std::as_const (storage).data (), nullptr , &it);
19111911 return it;
19121912}
19131913
@@ -1919,7 +1919,7 @@ inline bool meta_associative_container::reserve(const size_type sz) {
19191919 */
19201920inline bool meta_associative_container::insert (meta_any key, meta_any value = {}) {
19211921 const bool valid_key_value = key.allow_cast (meta_type{*ctx, key_type_node (internal::meta_context::from (*ctx))}) && (!mapped_type_node || value.allow_cast (meta_type{*ctx, mapped_type_node (internal::meta_context::from (*ctx))}));
1922- return valid_key_value && (storage.policy () != any_policy::cref) && vtable (operation::insert, storage.data (), std::as_const (key).data (), std::as_const (value).data (), nullptr );
1922+ return valid_key_value && (storage.policy () != any_policy::cref) && vtable (operation::insert, storage.data (), std::as_const (key).data (), std::as_const (value).data ());
19231923}
19241924
19251925/* *
@@ -1929,7 +1929,7 @@ inline bool meta_associative_container::insert(meta_any key, meta_any value = {}
19291929 */
19301930inline meta_associative_container::size_type meta_associative_container::erase (meta_any key) {
19311931 const bool valid_key = key.allow_cast (meta_type{*ctx, key_type_node (internal::meta_context::from (*ctx))});
1932- return valid_key && (storage.policy () != any_policy::cref) && vtable (operation::erase, storage.data (), std::as_const (key).data (), nullptr , nullptr );
1932+ return valid_key && (storage.policy () != any_policy::cref) && vtable (operation::erase, storage.data (), std::as_const (key).data (), nullptr );
19331933}
19341934
19351935/* *
@@ -1939,7 +1939,7 @@ inline meta_associative_container::size_type meta_associative_container::erase(m
19391939 */
19401940[[nodiscard]] inline meta_associative_container::iterator meta_associative_container::find (meta_any key) {
19411941 iterator it{*ctx};
1942- key.allow_cast (meta_type{*ctx, key_type_node (internal::meta_context::from (*ctx))}) && vtable (storage.policy () == any_policy::cref ? operation::cfind : operation::find, std::as_const (storage).data (), std::as_const (key).data (), nullptr , &it);
1942+ key.allow_cast (meta_type{*ctx, key_type_node (internal::meta_context::from (*ctx))}) && vtable (storage.policy () == any_policy::cref ? operation::cfind : operation::find, std::as_const (storage).data (), std::as_const (key).data (), &it);
19431943 return it;
19441944}
19451945
0 commit comments