Replies: 2 comments 3 replies
-
Troll! 😄 |
Beta Was this translation helpful? Give feedback.
3 replies
-
|
Release available upstream. 👍 🥳 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Changelog
core:any.is_equality_comparabletrait.type_list_diff[_t]trait.any::reset().anyalways returns a copy of the contained object, even in case of references to external elements.is_std_hashable[_v]trait.type_id<T>()is a[[nodiscard]]function now.any::as_refis a member function rather than an in-class friend function exported in the global namespace.basic_anysupports configurable sbo size,anyis an alias forbasic_any<sizeof(double[2])>.type_seq.type_hash.type_name.basic_anytakes now in consideration implicit alignment requirements for in_situ tests.basic_anyto specify desired alignment requirements for the SBO storage.entity:sparse_set::clearand component-lessregistry::clear.entt::anyto store context variables in a registry.registry::storagereturns actual references (eventually const) to the poly storage objects.basic_sparse_set<E>::atto get entities at given positions.removefor sparse sets.removemember function by default.registry::clearthat delegates to pools.basic_sparse_set<E>::removeandbasic_sparse_set<E>::clear.sigh_storage_mixin, less instantiations, less code, same functionalities.basic_sparse_set<E>::operator[](pos).operator|to views for piping that creates a new view rather than a view pack.registry::try_get.meta:voidsupport (dereference to invalidmeta_any).meta_type::basereturn instances ofmeta_typenow.is_invocable<F, [const] T &>instead ofis_invocable<F, [const] T *>).as_ref_tadapts to the constness of the underlying object/return type,as_cref_talways returns by const reference.meta_any::reset().meta_function_descriptorandmeta_invoke) are now public for use as needed.std::vector<bool>and the like as meta containers.meta_anywhen used as pointer-like types.meta_handle::operator bool().meta_anyalways returns a copy of the contained object, even in case of references to external elements.meta_type(see for exampleis_template_specialization).meta_any::operator==is now consistent across boundaries.meta_any::as_refis a member function rather than an in-class friend function exported in the global namespace.meta_propkey is now returned by const reference rather than by copy.has_meta_sequence_container_traits[_v]andhas_meta_associative_container_traits[_v].meta_anyobjects.resource:shared_ptr<T>from the loader/cache.poly:poly::reset().polyalways returns a copy of the contained object, even in case of references to external elements.poly<T>::as_refis a member function rather than an in-class friend function exported in the global namespace.polysupports configurable sbo size with a default ofsizeof(double[2]).polyto specify desired alignment requirements for the underlying storage.signal:dispatcherclass work fine withstd::is_copy_constructible.Bazelconfiguration.pkg-configsupport upon installation.lcovfor code coverage on the CI.Bug fixes
entity:registry::clear. There are two ways to get around it in v3.6.x:registry.each([&](auto entity) { registry.destroy(entity); });if interested in signals.registry = {};if not interested in signals.Breaking changes
core:anyrequires the argument to be an actual lvalue reference and not a pointer.anyalways returns a copy of the contained object, even in case of references to external elements. Move theanyobject, pass it by reference or useas_refto propagate elements without copying them.as_refno longer exists forany, useany::as_ref()instead.ENTT_PAGE_SIZEsets the number of elements of a page, not the size in bytes.entity:registry::raw<T>(), useregistry.view<T>().raw()instead.registry::data<T>(), useregistry.view<T>().data()instead.registry::assign(all pools empty -> no entities still alive).registry::has<T...>toregistry::all_of<T...>andregistry::any<T...>toregistry::any_of<T...>.handle::has<T...>tohandle::all_of<T...>andhandle::any<T...>tohandle::any_of<T...>.registry::storagereturns poly storage objects by reference rather than by copy. Capture them by reference before using.removemember function by default.registry::viewis no longer thread safe.meta:meta_conv, it's used internally when needed (egmeta_any::allow_cast).meta_base, it's used internally when needed (egmeta_any::cast).meta_type::basereturn instances ofmeta_typenow.meta_handle::operator*isn't available anymore, no alternatives provided.meta_anyalways returns a copy of the contained object, even in case of references to external elements. Move themeta_anyobject, pass it by reference or useas_refto propagate elements without copying them.meta_ctor::sizeandmeta_func::sizetometa_ctor::arityandmeta_func::arity.meta_handlecopy constructor. No alternatives provided. Meta handles should never be copied.as_refno longer exists formeta_any, usemeta_any::as_ref()instead.has_meta_sequence_container_traits[_v], useentt::is_complete_v<entt::meta_sequence_container_traits<T>>instead.has_meta_associative_container_traits[_v], useentt::is_complete_v<entt::meta_sequence_associative_traits<T>>instead.poly:polyalways returns a copy of the contained object, even in case of references to external elements. Move thepolyobject, pass it by reference or useas_refto propagate elements without copying them.as_refno longer exists forpoly<T>, usepoly<T>::as_ref()instead.Any other business
The documentation is up-to-date and the library is battle-tested with 100% coverage as usual.
I've also updated the section EnTT in Action with more and more examples.
I started a long term process to reduce the number of instantiations and therefore speed up the compilation.
This release contains some more changes in this regard. Still a work in progress though.
Beta Was this translation helpful? Give feedback.
All reactions