diff --git a/actor_8hpp_source.html b/actor_8hpp_source.html index e4a5995ae..3af49f0cd 100644 --- a/actor_8hpp_source.html +++ b/actor_8hpp_source.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/algorithm_8hpp_source.html b/algorithm_8hpp_source.html index e41f72189..9a4eab6e5 100644 --- a/algorithm_8hpp_source.html +++ b/algorithm_8hpp_source.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/annotated.html b/annotated.html index ea60ebfbf..cf040679c 100644 --- a/annotated.html +++ b/annotated.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/attribute_8h_source.html b/attribute_8h_source.html index ac00cfe33..dc36fdf1c 100644 --- a/attribute_8h_source.html +++ b/attribute_8h_source.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/cache_8hpp_source.html b/cache_8hpp_source.html index c1b256478..f15e378ad 100644 --- a/cache_8hpp_source.html +++ b/cache_8hpp_source.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/classentt_1_1basic__continuous__loader-members.html b/classentt_1_1basic__continuous__loader-members.html index 45e197a4b..b4387e66d 100644 --- a/classentt_1_1basic__continuous__loader-members.html +++ b/classentt_1_1basic__continuous__loader-members.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/classentt_1_1basic__continuous__loader.html b/classentt_1_1basic__continuous__loader.html index 33c9bb64b..14c3c6940 100644 --- a/classentt_1_1basic__continuous__loader.html +++ b/classentt_1_1basic__continuous__loader.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/classentt_1_1basic__group.html b/classentt_1_1basic__group.html index 49ebfd298..4de74cb29 100644 --- a/classentt_1_1basic__group.html +++ b/classentt_1_1basic__group.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html index 49022332a..796585ba5 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html @@ -22,7 +22,7 @@
EnTT -  3.3.0 +  3.3.1
@@ -189,7 +189,7 @@ class entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get

In all other cases, modifying the pools iterated by the group in any way invalidates all the iterators and using them results in undefined behavior.

Note
Groups share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by all the groups. Moreover, sorting an owning group affects all the instance of the same group (it means that users don't have to call sort on each instance to sort all of them because they share the underlying data structure).
-
Warning
Lifetime of a group must overcome the one of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
+
Warning
Lifetime of a group must not overcome that of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
Template Parameters
diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html index bf17a95f1..d7e965e86 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html index b75beb8a7..9c1ea1fbc 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html @@ -22,7 +22,7 @@ @@ -192,7 +192,7 @@ class entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get

In all other cases, modifying the pools iterated by the group in any way invalidates all the iterators and using them results in undefined behavior.

Note
Groups share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by all the groups.
Moreover, sorting a non-owning group affects all the instances of the same group (it means that users don't have to call sort on each instance to sort all of them because they share entities and components).
-
Warning
Lifetime of a group must overcome the one of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
+
Warning
Lifetime of a group must not overcome that of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
Template Parameters
EntityA valid entity type (see entt_traits for more details).
EnTT -  3.3.0 +  3.3.1
EnTT -  3.3.0 +  3.3.1
diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html index ac96afdb0..7c89f1fd5 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__hashed__string-members.html b/classentt_1_1basic__hashed__string-members.html index f61ece1bd..2654da77e 100644 --- a/classentt_1_1basic__hashed__string-members.html +++ b/classentt_1_1basic__hashed__string-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__hashed__string.html b/classentt_1_1basic__hashed__string.html index 3bd5641cf..040cdf7f8 100644 --- a/classentt_1_1basic__hashed__string.html +++ b/classentt_1_1basic__hashed__string.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__observer-members.html b/classentt_1_1basic__observer-members.html index 472400a6d..b69a00e71 100644 --- a/classentt_1_1basic__observer-members.html +++ b/classentt_1_1basic__observer-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__observer.html b/classentt_1_1basic__observer.html index 503224569..ab08d9645 100644 --- a/classentt_1_1basic__observer.html +++ b/classentt_1_1basic__observer.html @@ -22,7 +22,7 @@ @@ -183,7 +183,7 @@ class entt::basic_observer< Entity >
  • The entity currently pointed is destroyed.
  • In all the other cases, modifying the pools of the given components in any way invalidates all the iterators and using them results in undefined behavior.

    -
    Warning
    Lifetime of an observer doesn't necessarily have to overcome the one of the registry to which it is connected. However, the observer must be disconnected from the registry before being destroyed to avoid crashes due to dangling pointers.
    +
    Warning
    Lifetime of an observer doesn't necessarily have to overcome that of the registry to which it is connected. However, the observer must be disconnected from the registry before being destroyed to avoid crashes due to dangling pointers.
    Template Parameters
    EntityA valid entity type (see entt_traits for more details).
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1basic__registry-members.html b/classentt_1_1basic__registry-members.html index b83d36a3a..2141c2c84 100644 --- a/classentt_1_1basic__registry-members.html +++ b/classentt_1_1basic__registry-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__registry.html b/classentt_1_1basic__registry.html index f247a9e63..62b6c6e71 100644 --- a/classentt_1_1basic__registry.html +++ b/classentt_1_1basic__registry.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__runtime__view-members.html b/classentt_1_1basic__runtime__view-members.html index 6f0bd659a..06386210e 100644 --- a/classentt_1_1basic__runtime__view-members.html +++ b/classentt_1_1basic__runtime__view-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__runtime__view.html b/classentt_1_1basic__runtime__view.html index 13efcae03..049abf689 100644 --- a/classentt_1_1basic__runtime__view.html +++ b/classentt_1_1basic__runtime__view.html @@ -22,7 +22,7 @@ @@ -142,7 +142,7 @@ class entt::basic_runtime_view< Entity >

    In all the other cases, modifying the pools of the given components in any way invalidates all the iterators and using them results in undefined behavior.

    Note
    Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by the views, unless a pool was missing when the view was built (in this case, the view won't have a valid reference and won't be updated accordingly).
    -
    Warning
    Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters
    EntityA valid entity type (see entt_traits for more details).
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1basic__snapshot-members.html b/classentt_1_1basic__snapshot-members.html index 62b4f499c..8e961e20d 100644 --- a/classentt_1_1basic__snapshot-members.html +++ b/classentt_1_1basic__snapshot-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__snapshot.html b/classentt_1_1basic__snapshot.html index d0a35a140..3bb068679 100644 --- a/classentt_1_1basic__snapshot.html +++ b/classentt_1_1basic__snapshot.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__snapshot__loader-members.html b/classentt_1_1basic__snapshot__loader-members.html index 4b4385048..d26995aff 100644 --- a/classentt_1_1basic__snapshot__loader-members.html +++ b/classentt_1_1basic__snapshot__loader-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__snapshot__loader.html b/classentt_1_1basic__snapshot__loader.html index 3dcc4b72f..6cc4d877a 100644 --- a/classentt_1_1basic__snapshot__loader.html +++ b/classentt_1_1basic__snapshot__loader.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__view.html b/classentt_1_1basic__view.html index 8cd0c098b..25b1b95a9 100644 --- a/classentt_1_1basic__view.html +++ b/classentt_1_1basic__view.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html index cec821ca1..5c4ec41c7 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html index 7c97346f6..6b826a83c 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html @@ -22,7 +22,7 @@ @@ -179,7 +179,7 @@ class entt::basic_view< Entity, exclude_t< Exclude... >, Component... &

    In all other cases, modifying the pools iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    Note
    Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    -
    Warning
    Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters
    EntityA valid entity type (see entt_traits for more details).
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html index 7996c8ebf..bcc031d8e 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html index 465535d86..f97d8527a 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html @@ -22,7 +22,7 @@ @@ -170,7 +170,7 @@ class entt::basic_view< Entity, exclude_t<>, Component >

    In all other cases, modifying the pool iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    Note
    Views share a reference to the underlying data structure of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    -
    Warning
    Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters
    EntityA valid entity type (see entt_traits for more details).
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1connection-members.html b/classentt_1_1connection-members.html index f143a9b09..b61b7f6a8 100644 --- a/classentt_1_1connection-members.html +++ b/classentt_1_1connection-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1connection.html b/classentt_1_1connection.html index 959519f2a..c2ac9b672 100644 --- a/classentt_1_1connection.html +++ b/classentt_1_1connection.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1delegate.html b/classentt_1_1delegate.html index 67a085823..3f6be089e 100644 --- a/classentt_1_1delegate.html +++ b/classentt_1_1delegate.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html index 3fd2eb459..88b9da374 100644 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html index 74436ae5c..fee51c639 100644 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1dispatcher-members.html b/classentt_1_1dispatcher-members.html index 22f7aba70..28e95eca5 100644 --- a/classentt_1_1dispatcher-members.html +++ b/classentt_1_1dispatcher-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1dispatcher.html b/classentt_1_1dispatcher.html index 6bd071e1c..2323f94a4 100644 --- a/classentt_1_1dispatcher.html +++ b/classentt_1_1dispatcher.html @@ -22,7 +22,7 @@ @@ -118,9 +118,9 @@ Public Member Functions

    Basic dispatcher implementation.

    A dispatcher can be used either to trigger an immediate event or to enqueue events to be published all together once per tick.
    Listeners are provided in the form of member functions. For each event of type Event, listeners are such that they can be invoked with an argument of type const Event &, no matter what the return type is.

    -

    The types of the instances are Class &. Users must guarantee that the lifetimes of the objects overcome the one of the dispatcher itself to avoid crashes.

    +

    The dispatcher creates instances of the sigh class internally. Refer to the documentation of the latter for more details.

    -

    Definition at line 31 of file dispatcher.hpp.

    +

    Definition at line 30 of file dispatcher.hpp.

    Member Function Documentation

    ◆ clear()

    @@ -156,7 +156,7 @@ template<typename... Event> -

    Definition at line 187 of file dispatcher.hpp.

    +

    Definition at line 186 of file dispatcher.hpp.

    @@ -202,7 +202,7 @@ template<typename Event , typename... Args> -

    Definition at line 160 of file dispatcher.hpp.

    +

    Definition at line 159 of file dispatcher.hpp.

    @@ -247,7 +247,7 @@ template<typename Event > -

    Definition at line 174 of file dispatcher.hpp.

    +

    Definition at line 173 of file dispatcher.hpp.

    @@ -289,7 +289,7 @@ template<typename Event >
    Returns
    A temporary sink object.
    -

    Definition at line 116 of file dispatcher.hpp.

    +

    Definition at line 115 of file dispatcher.hpp.

    @@ -335,7 +335,7 @@ template<typename Event , typename... Args> -

    Definition at line 131 of file dispatcher.hpp.

    +

    Definition at line 130 of file dispatcher.hpp.

    @@ -380,7 +380,7 @@ template<typename Event > -

    Definition at line 145 of file dispatcher.hpp.

    +

    Definition at line 144 of file dispatcher.hpp.

    @@ -418,7 +418,7 @@ template<typename Event > -

    Definition at line 207 of file dispatcher.hpp.

    +

    Definition at line 206 of file dispatcher.hpp.

    @@ -448,7 +448,7 @@ template<typename Event >

    Delivers all the pending events.

    This method is blocking and it doesn't return until all the events are delivered to the registered listeners. It's responsibility of the users to reduce at a minimum the time spent in the bodies of the listeners.

    -

    Definition at line 218 of file dispatcher.hpp.

    +

    Definition at line 217 of file dispatcher.hpp.

    diff --git a/classentt_1_1emitter-members.html b/classentt_1_1emitter-members.html index 157bb6235..fe9a0a34c 100644 --- a/classentt_1_1emitter-members.html +++ b/classentt_1_1emitter-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1emitter.html b/classentt_1_1emitter.html index 1a9a38d76..e4a1978c4 100644 --- a/classentt_1_1emitter.html +++ b/classentt_1_1emitter.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1family-members.html b/classentt_1_1family-members.html index 8a7df482d..b7e694bd6 100644 --- a/classentt_1_1family-members.html +++ b/classentt_1_1family-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1family.html b/classentt_1_1family.html index c837db534..7d7a89686 100644 --- a/classentt_1_1family.html +++ b/classentt_1_1family.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1handle-members.html b/classentt_1_1handle-members.html index e62c045df..abbc6f570 100644 --- a/classentt_1_1handle-members.html +++ b/classentt_1_1handle-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1handle.html b/classentt_1_1handle.html index 534453bbb..b62287235 100644 --- a/classentt_1_1handle.html +++ b/classentt_1_1handle.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1identifier-members.html b/classentt_1_1identifier-members.html index 7d883cb3b..a05249c93 100644 --- a/classentt_1_1identifier-members.html +++ b/classentt_1_1identifier-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1identifier.html b/classentt_1_1identifier.html index 2264ea6fc..85c768d59 100644 --- a/classentt_1_1identifier.html +++ b/classentt_1_1identifier.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1loader-members.html b/classentt_1_1loader-members.html index c47adfd54..dde89265a 100644 --- a/classentt_1_1loader-members.html +++ b/classentt_1_1loader-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1loader.html b/classentt_1_1loader.html index 948c069f1..a3ab109b3 100644 --- a/classentt_1_1loader.html +++ b/classentt_1_1loader.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1member__class-members.html b/classentt_1_1member__class-members.html index 07bb34ed6..f203738f0 100644 --- a/classentt_1_1member__class-members.html +++ b/classentt_1_1member__class-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1member__class.html b/classentt_1_1member__class.html index 3e57fa569..24fe7bb58 100644 --- a/classentt_1_1member__class.html +++ b/classentt_1_1member__class.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__any-members.html b/classentt_1_1meta__any-members.html index 5240fa02a..69aa7ece9 100644 --- a/classentt_1_1meta__any-members.html +++ b/classentt_1_1meta__any-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__any.html b/classentt_1_1meta__any.html index 02f4dcb6a..78b2c4490 100644 --- a/classentt_1_1meta__any.html +++ b/classentt_1_1meta__any.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__factory.html b/classentt_1_1meta__factory.html index 9014e94e1..d9920afbf 100644 --- a/classentt_1_1meta__factory.html +++ b/classentt_1_1meta__factory.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html b/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html index 3fc0b840e..8fe0e99eb 100644 --- a/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html +++ b/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html b/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html index 58ea366b9..98f077a71 100644 --- a/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html +++ b/classentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__factory_3_01Type_01_4-members.html b/classentt_1_1meta__factory_3_01Type_01_4-members.html index 7c7f3bf72..3b8a4123e 100644 --- a/classentt_1_1meta__factory_3_01Type_01_4-members.html +++ b/classentt_1_1meta__factory_3_01Type_01_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__factory_3_01Type_01_4.html b/classentt_1_1meta__factory_3_01Type_01_4.html index 19c2ab140..0f131816a 100644 --- a/classentt_1_1meta__factory_3_01Type_01_4.html +++ b/classentt_1_1meta__factory_3_01Type_01_4.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__type-members.html b/classentt_1_1meta__type-members.html index e8084136f..0c4f85fb2 100644 --- a/classentt_1_1meta__type-members.html +++ b/classentt_1_1meta__type-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1meta__type.html b/classentt_1_1meta__type.html index 92aeaf420..5945d9b5c 100644 --- a/classentt_1_1meta__type.html +++ b/classentt_1_1meta__type.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1process-members.html b/classentt_1_1process-members.html index a914a9404..3edd65df4 100644 --- a/classentt_1_1process-members.html +++ b/classentt_1_1process-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1process.html b/classentt_1_1process.html index f0c6e5dbb..e83763eac 100644 --- a/classentt_1_1process.html +++ b/classentt_1_1process.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1scheduler-members.html b/classentt_1_1scheduler-members.html index e7ad87cd4..6c89be115 100644 --- a/classentt_1_1scheduler-members.html +++ b/classentt_1_1scheduler-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1scheduler.html b/classentt_1_1scheduler.html index 43b559df5..cea5ab044 100644 --- a/classentt_1_1scheduler.html +++ b/classentt_1_1scheduler.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sigh.html b/classentt_1_1sigh.html index 8f8f1fc4d..0b327fc6e 100644 --- a/classentt_1_1sigh.html +++ b/classentt_1_1sigh.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html index d200c78c9..86f7f553a 100644 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html index b705c1724..387292630 100644 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sink.html b/classentt_1_1sink.html index 763546c2b..c23d99beb 100644 --- a/classentt_1_1sink.html +++ b/classentt_1_1sink.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html index bbf428b28..ab5ec5e5a 100644 --- a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html @@ -22,7 +22,7 @@ diff --git a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html index 8b9f3cfc4..619b578da 100644 --- a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html @@ -22,7 +22,7 @@ @@ -476,11 +476,11 @@ template<auto Candidate, typename Type >

    Connects a free function with payload or a bound member to a signal.

    -

    The signal isn't responsible for the connected object or the payload. Users must always guarantee that the lifetime of the instance overcomes the one of the delegate. On the other side, the signal handler performs checks to avoid multiple connections for the same function.
    - When used to connect a free function with payload, its signature must be such that the instance is the first argument before the ones used to define the delegate itself.

    +

    The signal isn't responsible for the connected object or the payload. Users must always guarantee that the lifetime of the instance overcomes the one of the signal. On the other side, the signal handler performs checks to avoid multiple connections for the same function.
    + When used to connect a free function with payload, its signature must be such that the instance is the first argument before the ones used to define the signal itself.

    Template Parameters
    EntityA valid entity type (see entt_traits for more details).
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    EnTT -  3.3.0 +  3.3.1
    - +
    CandidateFunction or member to connect to the delegate.
    CandidateFunction or member to connect to the signal.
    TypeType of class or type of payload.
    @@ -527,7 +527,7 @@ template<auto Candidate>

    Disconnects a free function or an unbound member from a signal.

    Template Parameters
    - +
    CandidateFunction or member to disconnect from the delegate.
    CandidateFunction or member to disconnect from the signal.
    @@ -567,7 +567,7 @@ template<auto Candidate, typename Type >

    Disconnects a free function with payload or a bound member from a signal.

    Template Parameters
    - +
    CandidateFunction or member to disconnect from the delegate.
    CandidateFunction or member to disconnect from the signal.
    TypeType of class or type of payload.
    diff --git a/classentt_1_1sparse__set-members.html b/classentt_1_1sparse__set-members.html index 6dab35258..7d754244d 100644 --- a/classentt_1_1sparse__set-members.html +++ b/classentt_1_1sparse__set-members.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1sparse__set.html b/classentt_1_1sparse__set.html index 63f23f2c3..e046e314b 100644 --- a/classentt_1_1sparse__set.html +++ b/classentt_1_1sparse__set.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1storage-members.html b/classentt_1_1storage-members.html index 79e07a6e8..76f418fc9 100644 --- a/classentt_1_1storage-members.html +++ b/classentt_1_1storage-members.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1storage.html b/classentt_1_1storage.html index 14c353dac..9cdd13da1 100644 --- a/classentt_1_1storage.html +++ b/classentt_1_1storage.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    @@ -186,7 +186,7 @@ void   template<typename It > std::enable_if_t< std::is_same_v< typename std::iterator_traits< It >::value_type, entity_type >, void > construct (It first, It last, const object_type &value={}) - Assigns one or more entities to a storage and constructs their objects with from a given instance. More...
    + Assigns one or more entities to a storage and constructs their objects from a given instance. More...
      template<typename EIt , typename CIt > std::enable_if_t< std::is_same_v< typename std::iterator_traits< EIt >::value_type, entity_type >, void > construct (EIt first, EIt last, CIt value) @@ -618,7 +618,7 @@ template<typename It >
    -

    Assigns one or more entities to a storage and constructs their objects with from a given instance.

    +

    Assigns one or more entities to a storage and constructs their objects from a given instance.

    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    An assertion will abort the execution at runtime in debug mode if the storage already contains the given entity.
    Template Parameters
    diff --git a/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4-members.html b/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4-members.html index 262236fa4..bb2722b40 100644 --- a/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4-members.html +++ b/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4-members.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4.html b/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4.html index 1e5dd0e04..3217b96c9 100644 --- a/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4.html +++ b/classentt_1_1storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/classes.html b/classes.html index 0afa4a9e4..3a1d6cf0c 100644 --- a/classes.html +++ b/classes.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/config_8h_source.html b/config_8h_source.html index 507956d23..8705b4888 100644 --- a/config_8h_source.html +++ b/config_8h_source.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    @@ -116,10 +116,10 @@ $(function() {
    44 
    45 #ifndef ENTT_DISABLE_ETO
    46 # include <type_traits>
    -
    47 # define ENTT_ENABLE_ETO(Type) std::is_empty_v<Type>
    +
    47 # define ENTT_ENABLE_ETO(Type) (std::is_default_constructible_v<Type> && std::is_empty_v<Type>)
    48 #else
    49 # // sfinae-friendly definition
    -
    50 # define ENTT_ENABLE_ETO(Type) (false && std::is_empty_v<Type>)
    +
    50 # define ENTT_ENABLE_ETO(Type) (false && std::is_void_v<Type>)
    51 #endif
    52 
    53 
    diff --git a/delegate_8hpp_source.html b/delegate_8hpp_source.html index 637f85366..29ea10239 100644 --- a/delegate_8hpp_source.html +++ b/delegate_8hpp_source.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_49e56c817e5e54854c35e136979f97ca.html b/dir_49e56c817e5e54854c35e136979f97ca.html index b433795db..25942bc5e 100644 --- a/dir_49e56c817e5e54854c35e136979f97ca.html +++ b/dir_49e56c817e5e54854c35e136979f97ca.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_66e9674e8206a335795995fa32a03c91.html b/dir_66e9674e8206a335795995fa32a03c91.html index c764a453c..ab31c67f0 100644 --- a/dir_66e9674e8206a335795995fa32a03c91.html +++ b/dir_66e9674e8206a335795995fa32a03c91.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 16cb39cc7..d146b042f 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_721f6154dba3c88bcdead5f446bce319.html b/dir_721f6154dba3c88bcdead5f446bce319.html index 7d0648f46..862d6dbbc 100644 --- a/dir_721f6154dba3c88bcdead5f446bce319.html +++ b/dir_721f6154dba3c88bcdead5f446bce319.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_7929ab29d3f740cf727ccbd263321562.html b/dir_7929ab29d3f740cf727ccbd263321562.html index b3bc91571..4fff1539d 100644 --- a/dir_7929ab29d3f740cf727ccbd263321562.html +++ b/dir_7929ab29d3f740cf727ccbd263321562.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html index e4a50c802..0cb6fb7e5 100644 --- a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html +++ b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_a53318306f6ac0f7fe657839abd543ab.html b/dir_a53318306f6ac0f7fe657839abd543ab.html index dd9426920..c519f9504 100644 --- a/dir_a53318306f6ac0f7fe657839abd543ab.html +++ b/dir_a53318306f6ac0f7fe657839abd543ab.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_b64489a1e8130d5ebf6d86d282f500f0.html b/dir_b64489a1e8130d5ebf6d86d282f500f0.html index 98a0f7065..7824cac35 100644 --- a/dir_b64489a1e8130d5ebf6d86d282f500f0.html +++ b/dir_b64489a1e8130d5ebf6d86d282f500f0.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_c183064df1291357db1d38c637c6e87c.html b/dir_c183064df1291357db1d38c637c6e87c.html index 77b3992ce..1562d807b 100644 --- a/dir_c183064df1291357db1d38c637c6e87c.html +++ b/dir_c183064df1291357db1d38c637c6e87c.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_c5715f7ee899854a669b87bbaa642de0.html b/dir_c5715f7ee899854a669b87bbaa642de0.html index 31672f67f..6b76fca02 100644 --- a/dir_c5715f7ee899854a669b87bbaa642de0.html +++ b/dir_c5715f7ee899854a669b87bbaa642de0.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_caf434cd0cc634da803ab3b40811fcd6.html b/dir_caf434cd0cc634da803ab3b40811fcd6.html index c49bd381e..dd26701c7 100644 --- a/dir_caf434cd0cc634da803ab3b40811fcd6.html +++ b/dir_caf434cd0cc634da803ab3b40811fcd6.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_de8f4e6ba3f54a2a21309f742e93a373.html b/dir_de8f4e6ba3f54a2a21309f742e93a373.html index d4acd25c7..5fb0328d1 100644 --- a/dir_de8f4e6ba3f54a2a21309f742e93a373.html +++ b/dir_de8f4e6ba3f54a2a21309f742e93a373.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html index b3efd5d4d..6872c678d 100644 --- a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html +++ b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    diff --git a/dispatcher_8hpp_source.html b/dispatcher_8hpp_source.html index ec7c70799..ee2809abd 100644 --- a/dispatcher_8hpp_source.html +++ b/dispatcher_8hpp_source.html @@ -22,7 +22,7 @@
    EnTT -  3.3.0 +  3.3.1
    @@ -87,143 +87,143 @@ $(function() {
    15 namespace entt {
    16 
    17 
    -
    31 class dispatcher {
    -
    32  struct basic_pool {
    -
    33  virtual ~basic_pool() = default;
    -
    34  virtual void publish() = 0;
    -
    35  virtual void clear() ENTT_NOEXCEPT = 0;
    -
    36  virtual ENTT_ID_TYPE type_id() const ENTT_NOEXCEPT = 0;
    -
    37  };
    -
    38 
    -
    39  template<typename Event>
    -
    40  struct pool_handler: basic_pool {
    -
    41  using signal_type = sigh<void(const Event &)>;
    -
    42  using sink_type = typename signal_type::sink_type;
    -
    43 
    -
    44  void publish() override {
    -
    45  const auto length = events.size();
    -
    46 
    -
    47  for(std::size_t pos{}; pos < length; ++pos) {
    -
    48  signal.publish(events[pos]);
    -
    49  }
    -
    50 
    -
    51  events.erase(events.cbegin(), events.cbegin()+length);
    -
    52  }
    -
    53 
    -
    54  void clear() ENTT_NOEXCEPT override {
    -
    55  events.clear();
    -
    56  }
    -
    57 
    -
    58  sink_type sink() ENTT_NOEXCEPT {
    -
    59  return entt::sink{signal};
    -
    60  }
    -
    61 
    -
    62  template<typename... Args>
    -
    63  void trigger(Args &&... args) {
    -
    64  signal.publish(Event{std::forward<Args>(args)...});
    -
    65  }
    -
    66 
    -
    67  template<typename... Args>
    -
    68  void enqueue(Args &&... args) {
    -
    69  events.emplace_back(std::forward<Args>(args)...);
    -
    70  }
    -
    71 
    -
    72  ENTT_ID_TYPE type_id() const ENTT_NOEXCEPT override {
    -
    73  return type_info<Event>::id();
    -
    74  }
    -
    75 
    -
    76  private:
    -
    77  signal_type signal{};
    -
    78  std::vector<Event> events;
    -
    79  };
    -
    80 
    -
    81  template<typename Event>
    -
    82  pool_handler<Event> & assure() {
    -
    83  static_assert(std::is_same_v<Event, std::decay_t<Event>>);
    -
    84  static std::size_t index{pools.size()};
    -
    85 
    -
    86  if(const auto length = pools.size(); !(index < length) || pools[index]->type_id() != type_info<Event>::id()) {
    -
    87  for(index = {}; index < length && pools[index]->type_id() != type_info<Event>::id(); ++index);
    -
    88 
    -
    89  if(index == pools.size()) {
    -
    90  pools.emplace_back(new pool_handler<Event>{});
    -
    91  }
    -
    92  }
    -
    93 
    -
    94  return static_cast<pool_handler<Event> &>(*pools[index]);
    -
    95  }
    -
    96 
    -
    97 public:
    -
    115  template<typename Event>
    -
    116  auto sink() {
    -
    117  return assure<Event>().sink();
    -
    118  }
    -
    119 
    -
    130  template<typename Event, typename... Args>
    -
    131  void trigger(Args &&... args) {
    -
    132  assure<Event>().trigger(std::forward<Args>(args)...);
    -
    133  }
    -
    134 
    -
    144  template<typename Event>
    -
    145  void trigger(Event &&event) {
    -
    146  assure<std::decay_t<Event>>().trigger(std::forward<Event>(event));
    -
    147  }
    -
    148 
    -
    159  template<typename Event, typename... Args>
    -
    160  void enqueue(Args &&... args) {
    -
    161  assure<Event>().enqueue(std::forward<Args>(args)...);
    -
    162  }
    -
    163 
    -
    173  template<typename Event>
    -
    174  void enqueue(Event &&event) {
    -
    175  assure<std::decay_t<Event>>().enqueue(std::forward<Event>(event));
    -
    176  }
    -
    177 
    -
    186  template<typename... Event>
    -
    187  void clear() {
    -
    188  if constexpr(sizeof...(Event) == 0) {
    -
    189  for(auto &&cpool: pools) {
    -
    190  cpool->clear();
    -
    191  }
    -
    192  } else {
    -
    193  (assure<Event>().clear(), ...);
    -
    194  }
    -
    195  }
    -
    196 
    -
    206  template<typename Event>
    -
    207  void update() {
    -
    208  assure<Event>().publish();
    -
    209  }
    -
    210 
    -
    218  void update() const {
    -
    219  for(auto pos = pools.size(); pos; --pos) {
    -
    220  pools[pos-1]->publish();
    -
    221  }
    -
    222  }
    -
    223 
    -
    224 private:
    -
    225  std::vector<std::unique_ptr<basic_pool>> pools;
    -
    226 };
    +
    30 class dispatcher {
    +
    31  struct basic_pool {
    +
    32  virtual ~basic_pool() = default;
    +
    33  virtual void publish() = 0;
    +
    34  virtual void clear() ENTT_NOEXCEPT = 0;
    +
    35  virtual ENTT_ID_TYPE type_id() const ENTT_NOEXCEPT = 0;
    +
    36  };
    +
    37 
    +
    38  template<typename Event>
    +
    39  struct pool_handler: basic_pool {
    +
    40  using signal_type = sigh<void(const Event &)>;
    +
    41  using sink_type = typename signal_type::sink_type;
    +
    42 
    +
    43  void publish() override {
    +
    44  const auto length = events.size();
    +
    45 
    +
    46  for(std::size_t pos{}; pos < length; ++pos) {
    +
    47  signal.publish(events[pos]);
    +
    48  }
    +
    49 
    +
    50  events.erase(events.cbegin(), events.cbegin()+length);
    +
    51  }
    +
    52 
    +
    53  void clear() ENTT_NOEXCEPT override {
    +
    54  events.clear();
    +
    55  }
    +
    56 
    +
    57  sink_type sink() ENTT_NOEXCEPT {
    +
    58  return entt::sink{signal};
    +
    59  }
    +
    60 
    +
    61  template<typename... Args>
    +
    62  void trigger(Args &&... args) {
    +
    63  signal.publish(Event{std::forward<Args>(args)...});
    +
    64  }
    +
    65 
    +
    66  template<typename... Args>
    +
    67  void enqueue(Args &&... args) {
    +
    68  events.emplace_back(std::forward<Args>(args)...);
    +
    69  }
    +
    70 
    +
    71  ENTT_ID_TYPE type_id() const ENTT_NOEXCEPT override {
    +
    72  return type_info<Event>::id();
    +
    73  }
    +
    74 
    +
    75  private:
    +
    76  signal_type signal{};
    +
    77  std::vector<Event> events;
    +
    78  };
    +
    79 
    +
    80  template<typename Event>
    +
    81  pool_handler<Event> & assure() {
    +
    82  static_assert(std::is_same_v<Event, std::decay_t<Event>>);
    +
    83  static std::size_t index{pools.size()};
    +
    84 
    +
    85  if(const auto length = pools.size(); !(index < length) || pools[index]->type_id() != type_info<Event>::id()) {
    +
    86  for(index = {}; index < length && pools[index]->type_id() != type_info<Event>::id(); ++index);
    +
    87 
    +
    88  if(index == pools.size()) {
    +
    89  pools.emplace_back(new pool_handler<Event>{});
    +
    90  }
    +
    91  }
    +
    92 
    +
    93  return static_cast<pool_handler<Event> &>(*pools[index]);
    +
    94  }
    +
    95 
    +
    96 public:
    +
    114  template<typename Event>
    +
    115  auto sink() {
    +
    116  return assure<Event>().sink();
    +
    117  }
    +
    118 
    +
    129  template<typename Event, typename... Args>
    +
    130  void trigger(Args &&... args) {
    +
    131  assure<Event>().trigger(std::forward<Args>(args)...);
    +
    132  }
    +
    133 
    +
    143  template<typename Event>
    +
    144  void trigger(Event &&event) {
    +
    145  assure<std::decay_t<Event>>().trigger(std::forward<Event>(event));
    +
    146  }
    +
    147 
    +
    158  template<typename Event, typename... Args>
    +
    159  void enqueue(Args &&... args) {
    +
    160  assure<Event>().enqueue(std::forward<Args>(args)...);
    +
    161  }
    +
    162 
    +
    172  template<typename Event>
    +
    173  void enqueue(Event &&event) {
    +
    174  assure<std::decay_t<Event>>().enqueue(std::forward<Event>(event));
    +
    175  }
    +
    176 
    +
    185  template<typename... Event>
    +
    186  void clear() {
    +
    187  if constexpr(sizeof...(Event) == 0) {
    +
    188  for(auto &&cpool: pools) {
    +
    189  cpool->clear();
    +
    190  }
    +
    191  } else {
    +
    192  (assure<Event>().clear(), ...);
    +
    193  }
    +
    194  }
    +
    195 
    +
    205  template<typename Event>
    +
    206  void update() {
    +
    207  assure<Event>().publish();
    +
    208  }
    +
    209 
    +
    217  void update() const {
    +
    218  for(auto pos = pools.size(); pos; --pos) {
    +
    219  pools[pos-1]->publish();
    +
    220  }
    +
    221  }
    +
    222 
    +
    223 private:
    +
    224  std::vector<std::unique_ptr<basic_pool>> pools;
    +
    225 };
    +
    226 
    227 
    -
    228 
    -
    229 }
    +
    228 }
    +
    229 
    230 
    -
    231 
    -
    232 #endif
    +
    231 #endif
    -
    void update() const
    Delivers all the pending events.
    Definition: dispatcher.hpp:218
    -
    auto sink()
    Returns a sink object for the given event.
    Definition: dispatcher.hpp:116
    +
    void update() const
    Delivers all the pending events.
    Definition: dispatcher.hpp:217
    +
    auto sink()
    Returns a sink object for the given event.
    Definition: dispatcher.hpp:115
    Unmanaged signal handler.
    Definition: fwd.hpp:31
    -
    void enqueue(Event &&event)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:174
    -
    void enqueue(Args &&... args)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:160
    +
    void enqueue(Event &&event)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:173
    +
    void enqueue(Args &&... args)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:159
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    void trigger(Args &&... args)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:131
    +
    void trigger(Args &&... args)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:130
    static ENTT_ID_TYPE id() ENTT_NOEXCEPT
    Returns the numeric representation of a given type.
    Definition: type_info.hpp:69
    -
    Basic dispatcher implementation.
    Definition: dispatcher.hpp:31
    -
    void clear()
    Discards all the events queued so far.
    Definition: dispatcher.hpp:187
    -
    void trigger(Event &&event)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:145
    +
    Basic dispatcher implementation.
    Definition: dispatcher.hpp:30
    +
    void clear()
    Discards all the events queued so far.
    Definition: dispatcher.hpp:186
    +
    void trigger(Event &&event)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:144
    Sink class.
    Definition: fwd.hpp:27
    -
    void update()
    Delivers all the pending events of the given type.
    Definition: dispatcher.hpp:207
    +
    void update()
    Delivers all the pending events of the given type.
    Definition: dispatcher.hpp:206