Michele Caini/entt: Release v3.2.0
Name: entt
Owner: Michele Caini
Release: EnTT v3.2.0
Released: 2019-10-24
License: MIT
Release Assets:
Changelog:
- Added
EnTT
to the GitHub Sponsors program (link in the README file). - Added the try online badge to the README file.
- Moved CI to GH Actions.
- Use
codecov
instead ofcoveralls
. - Relaxed constraints on the order of types in the group definition.
- The runtime reflection system finally works across boundaries.
- In-depth review of the runtime reflection system, backward compatibility not guaranteed.
- Key/Value pairs, key-only properties, tuples and annotations (invocable) are allowed as meta properties.
meta_any
usesstd::reference_wrapper
instead ofas_alias_t
for aliasing.- Added
meta_type::compare
,meta_any
no longer has to store aside comparison functions. - New
meta_any
constructor for unmanaged objects taken from ameta_handle
. meta_handle
no longer exposesdata
/try_cast
.- All meta functions take their arguments by alias and can edit objects in the outer context.
- Introduced
meta_type::remove_extent
to get the meta type of the elements of an array. - A static assertion forbids using non-copyable types with
meta_any
. - Added
dispatcher::discard
to clear pools of events. - Invocation order guaranteed for signals (
sigh
,registry
,dispatcher
, ...). - Overloaded
sink::before
function to insert listeners at specific locations in the signal. sink::disconnect
andsink::before
support also pointers as instances or payload.delegate
supports also pointers as instances or payload.sparse_set::swap
andstorage::swap
accept entities, no longer positions.- Sorting pools doesn't require to allocate anymore and is much faster.
stomp
& spawn work also with const source registries now.- Make empty components eat arguments on construction.
- Multi-component version of
registry::reserve
,registry::shrink_to_fit
,registry::empty
. - Added
registry::prepare
to force-create component pools within the registry. - Views support exclusion lists (eg
registry.view<T>(exclude<U>)
). view::get
for single component views accepts an optional template parameter for consistency.- Multi-component version of
view::empty
. - Multi-component version of
group:empty
. - Sorting groups doesn't require to allocate anymore and is much faster.
- Nested groups: perfect SoA to the rescue.
- Allow
process
to work with delta types other than fundamental ones. - Utilities:
overloaded
andy_combinator
. - Added
is_equality_comparable[_v]
trait. - Added what is needed for the choice trick, see
choice_t
/choice
fromtype_traits.hpp
. named_type_traits_v<Type>
utility/shortcut fornamed_type_traits<Type>::value
.ENTT_DISABLE_ETO
macro to disable empty type optimization for components.- Macros (for example
ENTT_NAMED_TYPE
) always require a trailing semicolon. resource_handle
,resource_loader
andresource_cache
are nowhandle
,loader
andcache
.cache
exports bothresource_type
andid_type
.basic_continuous_loader
support for map-like containers.- Fixed a bug on groups when dependencies between components were set.
- Fixed a bug of
collector::where
when multiple rules were declared at once. - Marked cmake project explicitly as C++, language C is required only if
BUILD_MOD
is set toON
. - Added cmake support for clang users on Windows.
- Added namespace qualifier in CMake.
- Performance improvements here and there (eg groups lookup, stomp & spawn utilities).
Be aware that this release contains some non-backward compatible changes.
The documentation is up-to-date and the library is battle-tested with 100% coverage as usual.
I've also updated the FAQs and the section EnTT
in Action with more and more examples.