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
-
Changelog
core
:any
.is_equality_comparable
trait.type_list_diff[_t]
trait.any::reset()
.any
always 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_ref
is a member function rather than an in-class friend function exported in the global namespace.basic_any
supports configurable sbo size,any
is an alias forbasic_any<sizeof(double[2])>
.type_seq
.type_hash
.type_name
.basic_any
takes now in consideration implicit alignment requirements for in_situ tests.basic_any
to specify desired alignment requirements for the SBO storage.entity
:sparse_set::clear
and component-lessregistry::clear
.entt::any
to store context variables in a registry.registry::storage
returns actual references (eventually const) to the poly storage objects.basic_sparse_set<E>::at
to get entities at given positions.remove
for sparse sets.remove
member function by default.registry::clear
that delegates to pools.basic_sparse_set<E>::remove
andbasic_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
:void
support (dereference to invalidmeta_any
).meta_type::base
return instances ofmeta_type
now.is_invocable<F, [const] T &>
instead ofis_invocable<F, [const] T *>
).as_ref_t
adapts to the constness of the underlying object/return type,as_cref_t
always returns by const reference.meta_any::reset()
.meta_function_descriptor
andmeta_invoke
) are now public for use as needed.std::vector<bool>
and the like as meta containers.meta_any
when used as pointer-like types.meta_handle::operator bool()
.meta_any
always 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_ref
is a member function rather than an in-class friend function exported in the global namespace.meta_prop
key is now returned by const reference rather than by copy.has_meta_sequence_container_traits[_v]
andhas_meta_associative_container_traits[_v]
.meta_any
objects.resource
:shared_ptr<T>
from the loader/cache.poly
:poly::reset()
.poly
always returns a copy of the contained object, even in case of references to external elements.poly<T>::as_ref
is a member function rather than an in-class friend function exported in the global namespace.poly
supports configurable sbo size with a default ofsizeof(double[2])
.poly
to specify desired alignment requirements for the underlying storage.signal
:dispatcher
class work fine withstd::is_copy_constructible
.Bazel
configuration.pkg-config
support upon installation.lcov
for 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
:any
requires the argument to be an actual lvalue reference and not a pointer.any
always returns a copy of the contained object, even in case of references to external elements. Move theany
object, pass it by reference or useas_ref
to propagate elements without copying them.as_ref
no longer exists forany
, useany::as_ref()
instead.ENTT_PAGE_SIZE
sets 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::storage
returns poly storage objects by reference rather than by copy. Capture them by reference before using.remove
member function by default.registry::view
is 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::base
return instances ofmeta_type
now.meta_handle::operator*
isn't available anymore, no alternatives provided.meta_any
always returns a copy of the contained object, even in case of references to external elements. Move themeta_any
object, pass it by reference or useas_ref
to propagate elements without copying them.meta_ctor::size
andmeta_func::size
tometa_ctor::arity
andmeta_func::arity
.meta_handle
copy constructor. No alternatives provided. Meta handles should never be copied.as_ref
no 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
:poly
always returns a copy of the contained object, even in case of references to external elements. Move thepoly
object, pass it by reference or useas_ref
to propagate elements without copying them.as_ref
no 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