diff --git a/README_8md_source.html b/README_8md_source.html index 9afb2cb1a..2b8b05ed9 100644 --- a/README_8md_source.html +++ b/README_8md_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/actor_8hpp_source.html b/actor_8hpp_source.html index c42551b05..e92279e12 100644 --- a/actor_8hpp_source.html +++ b/actor_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/annotated.html b/annotated.html index 5cb3eeab2..09267029c 100644 --- a/annotated.html +++ b/annotated.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/bus_8hpp_source.html b/bus_8hpp_source.html index a02f23df3..fdff02c03 100644 --- a/bus_8hpp_source.html +++ b/bus_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/cache_8hpp_source.html b/cache_8hpp_source.html index 410f852ac..c0e7ab02b 100644 --- a/cache_8hpp_source.html +++ b/cache_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Bus.html b/classentt_1_1Bus.html index 5c2ba0f98..ad661c52b 100644 --- a/classentt_1_1Bus.html +++ b/classentt_1_1Bus.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4-members.html b/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4-members.html index f249be92a..0b9c652c2 100644 --- a/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4-members.html +++ b/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4.html b/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4.html index f656475ea..814ecfdaa 100644 --- a/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4.html +++ b/classentt_1_1Bus_3_01Sig_00_01Event_00_01Other_8_8_8_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Bus_3_01Sig_00_01Event_01_4-members.html b/classentt_1_1Bus_3_01Sig_00_01Event_01_4-members.html index 373395fad..70f185a23 100644 --- a/classentt_1_1Bus_3_01Sig_00_01Event_01_4-members.html +++ b/classentt_1_1Bus_3_01Sig_00_01Event_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Bus_3_01Sig_00_01Event_01_4.html b/classentt_1_1Bus_3_01Sig_00_01Event_01_4.html index 6641880db..af04b0fd5 100644 --- a/classentt_1_1Bus_3_01Sig_00_01Event_01_4.html +++ b/classentt_1_1Bus_3_01Sig_00_01Event_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Delegate.html b/classentt_1_1Delegate.html index d36cc3c45..08314d78a 100644 --- a/classentt_1_1Delegate.html +++ b/classentt_1_1Delegate.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
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 08adea74f..101be0620 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 @@
entt -  2.4.0 +  2.4.1
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 eadecaf89..3edae5dbf 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 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Dispatcher-members.html b/classentt_1_1Dispatcher-members.html index 85cfa8d9a..31efbc57d 100644 --- a/classentt_1_1Dispatcher-members.html +++ b/classentt_1_1Dispatcher-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Dispatcher.html b/classentt_1_1Dispatcher.html index 7f4d5e214..38cdd7f19 100644 --- a/classentt_1_1Dispatcher.html +++ b/classentt_1_1Dispatcher.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Emitter-members.html b/classentt_1_1Emitter-members.html index a8e373815..b9615258d 100644 --- a/classentt_1_1Emitter-members.html +++ b/classentt_1_1Emitter-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Emitter.html b/classentt_1_1Emitter.html index e03d502cb..b11ecbd9d 100644 --- a/classentt_1_1Emitter.html +++ b/classentt_1_1Emitter.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Family-members.html b/classentt_1_1Family-members.html index 602ca3cd2..ee809a80b 100644 --- a/classentt_1_1Family-members.html +++ b/classentt_1_1Family-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Family.html b/classentt_1_1Family.html index 2cb8e7cb3..1c4530528 100644 --- a/classentt_1_1Family.html +++ b/classentt_1_1Family.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1HashedString-members.html b/classentt_1_1HashedString-members.html index 89f51b5a4..448ddbbce 100644 --- a/classentt_1_1HashedString-members.html +++ b/classentt_1_1HashedString-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1HashedString.html b/classentt_1_1HashedString.html index 96fa3bf88..d1e367ae9 100644 --- a/classentt_1_1HashedString.html +++ b/classentt_1_1HashedString.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1PersistentView-members.html b/classentt_1_1PersistentView-members.html index ce0ee2289..6ce00fab6 100644 --- a/classentt_1_1PersistentView-members.html +++ b/classentt_1_1PersistentView-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1PersistentView.html b/classentt_1_1PersistentView.html index b911cb535..f8a930ac6 100644 --- a/classentt_1_1PersistentView.html +++ b/classentt_1_1PersistentView.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Process-members.html b/classentt_1_1Process-members.html index 21af5018e..1704957f9 100644 --- a/classentt_1_1Process-members.html +++ b/classentt_1_1Process-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Process.html b/classentt_1_1Process.html index 25c8db8d5..f1d7e8959 100644 --- a/classentt_1_1Process.html +++ b/classentt_1_1Process.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Registry-members.html b/classentt_1_1Registry-members.html index 3529cb138..40f32f12a 100644 --- a/classentt_1_1Registry-members.html +++ b/classentt_1_1Registry-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Registry.html b/classentt_1_1Registry.html index 7c1292b15..574f3f127 100644 --- a/classentt_1_1Registry.html +++ b/classentt_1_1Registry.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceCache-members.html b/classentt_1_1ResourceCache-members.html index 5b82f3d1a..3c8d53196 100644 --- a/classentt_1_1ResourceCache-members.html +++ b/classentt_1_1ResourceCache-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceCache.html b/classentt_1_1ResourceCache.html index 92ebb6ce2..25f0cf754 100644 --- a/classentt_1_1ResourceCache.html +++ b/classentt_1_1ResourceCache.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceHandle-members.html b/classentt_1_1ResourceHandle-members.html index b686cd8d0..a783b1567 100644 --- a/classentt_1_1ResourceHandle-members.html +++ b/classentt_1_1ResourceHandle-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceHandle.html b/classentt_1_1ResourceHandle.html index 8c9d48542..075f5f2b9 100644 --- a/classentt_1_1ResourceHandle.html +++ b/classentt_1_1ResourceHandle.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceLoader-members.html b/classentt_1_1ResourceLoader-members.html index 6fa95e4ad..bb996295c 100644 --- a/classentt_1_1ResourceLoader-members.html +++ b/classentt_1_1ResourceLoader-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1ResourceLoader.html b/classentt_1_1ResourceLoader.html index 38616cb0d..b5a9ad80d 100644 --- a/classentt_1_1ResourceLoader.html +++ b/classentt_1_1ResourceLoader.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Scheduler-members.html b/classentt_1_1Scheduler-members.html index ad377600c..376cab011 100644 --- a/classentt_1_1Scheduler-members.html +++ b/classentt_1_1Scheduler-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Scheduler.html b/classentt_1_1Scheduler.html index 1a329307f..4767f9f30 100644 --- a/classentt_1_1Scheduler.html +++ b/classentt_1_1Scheduler.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SigH.html b/classentt_1_1SigH.html index 7a3db4ce2..4ee3b3e83 100644 --- a/classentt_1_1SigH.html +++ b/classentt_1_1SigH.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4-members.html b/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4-members.html index 8bff23d53..97d3ec4a1 100644 --- a/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4-members.html +++ b/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4.html b/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4.html index b2a991652..a10feb613 100644 --- a/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4.html +++ b/classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -246,7 +246,7 @@ template<typename Ret , typename... Args, typename Collector >
Returns
An instance of the collector filled with collected data.
-

Definition at line 242 of file sigh.hpp.

+

Definition at line 243 of file sigh.hpp.

@@ -538,7 +538,7 @@ template<typename Ret , typename... Args, typename Collector >
Returns
True if the two signals are identical, false otherwise.
-

Definition at line 273 of file sigh.hpp.

+

Definition at line 276 of file sigh.hpp.

@@ -659,7 +659,7 @@ template<typename Ret , typename... Args, typename Collector > -

Definition at line 259 of file sigh.hpp.

+

Definition at line 262 of file sigh.hpp.

diff --git a/classentt_1_1Signal.html b/classentt_1_1Signal.html index e28fd2389..c3580cb50 100644 --- a/classentt_1_1Signal.html +++ b/classentt_1_1Signal.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4-members.html b/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4-members.html index 821fb1193..8f23c8725 100644 --- a/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4.html b/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4.html index 96dfc9555..6880e3960 100644 --- a/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4.html +++ b/classentt_1_1Signal_3_01void_07Args_8_8_8_08_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -467,7 +467,7 @@ template<typename... Args>
Returns
True if the two signals are identical, false otherwise.
-

Definition at line 196 of file signal.hpp.

+

Definition at line 202 of file signal.hpp.

@@ -588,7 +588,7 @@ template<typename... Args> -

Definition at line 182 of file signal.hpp.

+

Definition at line 188 of file signal.hpp.

diff --git a/classentt_1_1SparseSet.html b/classentt_1_1SparseSet.html index b3c033f4f..01cac112c 100644 --- a/classentt_1_1SparseSet.html +++ b/classentt_1_1SparseSet.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4-members.html b/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4-members.html index aa01f4f1c..5622186d5 100644 --- a/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4-members.html +++ b/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html b/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html index 210fd6e88..9f255538c 100644 --- a/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html +++ b/classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SparseSet_3_01Entity_01_4-members.html b/classentt_1_1SparseSet_3_01Entity_01_4-members.html index 6798cbbf6..a29cda1e7 100644 --- a/classentt_1_1SparseSet_3_01Entity_01_4-members.html +++ b/classentt_1_1SparseSet_3_01Entity_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1SparseSet_3_01Entity_01_4.html b/classentt_1_1SparseSet_3_01Entity_01_4.html index 0dfb87bbc..0ae78d70a 100644 --- a/classentt_1_1SparseSet_3_01Entity_01_4.html +++ b/classentt_1_1SparseSet_3_01Entity_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1View-members.html b/classentt_1_1View-members.html index 39e89e225..4cbe52afe 100644 --- a/classentt_1_1View-members.html +++ b/classentt_1_1View-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1View.html b/classentt_1_1View.html index 6d2716a8b..79b411c7c 100644 --- a/classentt_1_1View.html +++ b/classentt_1_1View.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1View_3_01Entity_00_01Component_01_4-members.html b/classentt_1_1View_3_01Entity_00_01Component_01_4-members.html index 2ee915894..59d1c4496 100644 --- a/classentt_1_1View_3_01Entity_00_01Component_01_4-members.html +++ b/classentt_1_1View_3_01Entity_00_01Component_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classentt_1_1View_3_01Entity_00_01Component_01_4.html b/classentt_1_1View_3_01Entity_00_01Component_01_4.html index b936e7f80..0724afa01 100644 --- a/classentt_1_1View_3_01Entity_00_01Component_01_4.html +++ b/classentt_1_1View_3_01Entity_00_01Component_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/classes.html b/classes.html index a7e7bb3ef..62adb6568 100644 --- a/classes.html +++ b/classes.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/delegate_8hpp_source.html b/delegate_8hpp_source.html index e2e9e77c9..56a957932 100644 --- a/delegate_8hpp_source.html +++ b/delegate_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_66e9674e8206a335795995fa32a03c91.html b/dir_66e9674e8206a335795995fa32a03c91.html index c9fa99910..9df5280b7 100644 --- a/dir_66e9674e8206a335795995fa32a03c91.html +++ b/dir_66e9674e8206a335795995fa32a03c91.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 771e32be2..e8c291263 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_721f6154dba3c88bcdead5f446bce319.html b/dir_721f6154dba3c88bcdead5f446bce319.html index 29c5151c4..6b06501b3 100644 --- a/dir_721f6154dba3c88bcdead5f446bce319.html +++ b/dir_721f6154dba3c88bcdead5f446bce319.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html index 67b8e61fc..4046c037d 100644 --- a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html +++ b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_a53318306f6ac0f7fe657839abd543ab.html b/dir_a53318306f6ac0f7fe657839abd543ab.html index 257ab5fe4..9e6ca9afc 100644 --- a/dir_a53318306f6ac0f7fe657839abd543ab.html +++ b/dir_a53318306f6ac0f7fe657839abd543ab.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_b64489a1e8130d5ebf6d86d282f500f0.html b/dir_b64489a1e8130d5ebf6d86d282f500f0.html index d8e1dc051..0f7e27bc2 100644 --- a/dir_b64489a1e8130d5ebf6d86d282f500f0.html +++ b/dir_b64489a1e8130d5ebf6d86d282f500f0.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_de8f4e6ba3f54a2a21309f742e93a373.html b/dir_de8f4e6ba3f54a2a21309f742e93a373.html index 681524814..ea4d64270 100644 --- a/dir_de8f4e6ba3f54a2a21309f742e93a373.html +++ b/dir_de8f4e6ba3f54a2a21309f742e93a373.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html index cdcd6a20c..6453dc984 100644 --- a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html +++ b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/dispatcher_8hpp_source.html b/dispatcher_8hpp_source.html index 59b40e6ef..cba233b63 100644 --- a/dispatcher_8hpp_source.html +++ b/dispatcher_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -67,7 +67,7 @@ $(function() {
dispatcher.hpp
-
1 #ifndef ENTT_SIGNAL_DISPATCHER_HPP
2 #define ENTT_SIGNAL_DISPATCHER_HPP
3 
4 
5 #include <vector>
6 #include <memory>
7 #include <utility>
8 #include <cstdint>
9 #include "../core/family.hpp"
10 #include "signal.hpp"
11 #include "sigh.hpp"
12 
13 
14 namespace entt {
15 
16 
29 template<template<typename...> class Sig>
30 class Dispatcher final {
32 
33  template<typename Class, typename Event>
34  using instance_type = typename Sig<void(const Event &)>::template instance_type<Class>;
35 
36  struct BaseSignalWrapper {
37  virtual ~BaseSignalWrapper() = default;
38  virtual void publish(std::size_t) = 0;
39  };
40 
41  template<typename Event>
42  struct SignalWrapper final: BaseSignalWrapper {
43  void publish(std::size_t current) override {
44  for(const auto &event: events[current]) {
45  signal.publish(event);
46  }
47 
48  events[current].clear();
49  }
50 
51  template<typename Class, void(Class::*Member)(const Event &)>
52  inline void connect(instance_type<Class, Event> instance) noexcept {
53  signal.template connect<Class, Member>(std::move(instance));
54  }
55 
56  template<typename Class, void(Class::*Member)(const Event &)>
57  inline void disconnect(instance_type<Class, Event> instance) noexcept {
58  signal.template disconnect<Class, Member>(std::move(instance));
59  }
60 
61  template<typename... Args>
62  inline void trigger(Args&&... args) {
63  signal.publish({ std::forward<Args>(args)... });
64  }
65 
66  template<typename... Args>
67  inline void enqueue(std::size_t current, Args&&... args) {
68  events[current].push_back({ std::forward<Args>(args)... });
69  }
70 
71  private:
72  Sig<void(const Event &)> signal{};
73  std::vector<Event> events[2];
74  };
75 
76  inline static std::size_t buffer(bool mode) {
77  return mode ? 0 : 1;
78  }
79 
80  template<typename Event>
81  SignalWrapper<Event> & wrapper() {
82  const auto type = event_family::type<Event>();
83 
84  if(!(type < wrappers.size())) {
85  wrappers.resize(type + 1);
86  }
87 
88  if(!wrappers[type]) {
89  wrappers[type] = std::make_unique<SignalWrapper<Event>>();
90  }
91 
92  return static_cast<SignalWrapper<Event> &>(*wrappers[type]);
93  }
94 
95 public:
97  Dispatcher() noexcept
98  : wrappers{}, mode{false}
99  {}
100 
117  template<typename Event, typename Class, void(Class::*Member)(const Event &) = &Class::receive>
118  void connect(instance_type<Class, Event> instance) noexcept {
119  wrapper<Event>().template connect<Class, Member>(std::move(instance));
120  }
121 
138  template<typename Event, typename Class, void(Class::*Member)(const Event &) = &Class::receive>
139  void disconnect(instance_type<Class, Event> instance) noexcept {
140  wrapper<Event>().template disconnect<Class, Member>(std::move(instance));
141  }
142 
153  template<typename Event, typename... Args>
154  void trigger(Args&&... args) {
155  wrapper<Event>().trigger(std::forward<Args>(args)...);
156  }
157 
168  template<typename Event, typename... Args>
169  void enqueue(Args&&... args) {
170  wrapper<Event>().enqueue(buffer(mode), std::forward<Args>(args)...);
171  }
172 
180  void update() {
181  const auto buf = buffer(mode);
182  mode = !mode;
183 
184  for(auto &&wrapper: wrappers) {
185  if(wrapper) {
186  wrapper->publish(buf);
187  }
188  }
189  }
190 
191 private:
192  std::vector<std::unique_ptr<BaseSignalWrapper>> wrappers;
193  bool mode;
194 };
195 
196 
205 
206 
217 
218 
219 }
220 
221 
222 #endif // ENTT_SIGNAL_DISPATCHER_HPP
Dispatcher() noexcept
Default constructor.
Definition: dispatcher.hpp:97
+
1 #ifndef ENTT_SIGNAL_DISPATCHER_HPP
2 #define ENTT_SIGNAL_DISPATCHER_HPP
3 
4 
5 #include <vector>
6 #include <memory>
7 #include <utility>
8 #include <cstdint>
9 #include "../core/family.hpp"
10 #include "signal.hpp"
11 #include "sigh.hpp"
12 
13 
14 namespace entt {
15 
16 
29 template<template<typename...> class Sig>
30 class Dispatcher final {
32 
33  template<typename Class, typename Event>
34  using instance_type = typename Sig<void(const Event &)>::template instance_type<Class>;
35 
36  struct BaseSignalWrapper {
37  virtual ~BaseSignalWrapper() = default;
38  virtual void publish(std::size_t) = 0;
39  };
40 
41  template<typename Event>
42  struct SignalWrapper final: BaseSignalWrapper {
43  void publish(std::size_t current) override {
44  for(const auto &event: events[current]) {
45  signal.publish(event);
46  }
47 
48  events[current].clear();
49  }
50 
51  template<typename Class, void(Class::*Member)(const Event &)>
52  inline void connect(instance_type<Class, Event> instance) noexcept {
53  signal.template connect<Class, Member>(std::move(instance));
54  }
55 
56  template<typename Class, void(Class::*Member)(const Event &)>
57  inline void disconnect(instance_type<Class, Event> instance) noexcept {
58  signal.template disconnect<Class, Member>(std::move(instance));
59  }
60 
61  template<typename... Args>
62  inline void trigger(Args&&... args) {
63  signal.publish({ std::forward<Args>(args)... });
64  }
65 
66  template<typename... Args>
67  inline void enqueue(std::size_t current, Args&&... args) {
68  events[current].push_back({ std::forward<Args>(args)... });
69  }
70 
71  private:
72  Sig<void(const Event &)> signal{};
73  std::vector<Event> events[2];
74  };
75 
76  inline static std::size_t buffer(bool mode) {
77  return mode ? 0 : 1;
78  }
79 
80  template<typename Event>
81  SignalWrapper<Event> & wrapper() {
82  const auto type = event_family::type<Event>();
83 
84  if(!(type < wrappers.size())) {
85  wrappers.resize(type + 1);
86  }
87 
88  if(!wrappers[type]) {
89  wrappers[type] = std::make_unique<SignalWrapper<Event>>();
90  }
91 
92  return static_cast<SignalWrapper<Event> &>(*wrappers[type]);
93  }
94 
95 public:
97  Dispatcher() noexcept
98  : wrappers{}, mode{false}
99  {}
100 
117  template<typename Event, typename Class, void(Class::*Member)(const Event &) = &Class::receive>
118  void connect(instance_type<Class, Event> instance) noexcept {
119  wrapper<Event>().template connect<Class, Member>(std::move(instance));
120  }
121 
138  template<typename Event, typename Class, void(Class::*Member)(const Event &) = &Class::receive>
139  void disconnect(instance_type<Class, Event> instance) noexcept {
140  wrapper<Event>().template disconnect<Class, Member>(std::move(instance));
141  }
142 
153  template<typename Event, typename... Args>
154  void trigger(Args&&... args) {
155  wrapper<Event>().trigger(std::forward<Args>(args)...);
156  }
157 
168  template<typename Event, typename... Args>
169  void enqueue(Args&&... args) {
170  wrapper<Event>().enqueue(buffer(mode), std::forward<Args>(args)...);
171  }
172 
180  void update() {
181  const auto buf = buffer(mode);
182  mode = !mode;
183 
184  for(auto pos = wrappers.size(); pos > decltype(pos){0}; --pos) {
185  auto &wrapper = wrappers[pos-1];
186 
187  if(wrapper) {
188  wrapper->publish(buf);
189  }
190  }
191  }
192 
193 private:
194  std::vector<std::unique_ptr<BaseSignalWrapper>> wrappers;
195  bool mode;
196 };
197 
198 
207 
208 
219 
220 
221 }
222 
223 
224 #endif // ENTT_SIGNAL_DISPATCHER_HPP
Dispatcher() noexcept
Default constructor.
Definition: dispatcher.hpp:97
EnTT default namespace.
Definition: family.hpp:9
void update()
Delivers all the pending events.
Definition: dispatcher.hpp:180
void trigger(Args &&... args)
Triggers an immediate event of the given type.
Definition: dispatcher.hpp:154
diff --git a/emitter_8hpp_source.html b/emitter_8hpp_source.html index 4650df002..e10836d6e 100644 --- a/emitter_8hpp_source.html +++ b/emitter_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/entt_8hpp_source.html b/entt_8hpp_source.html index b12d17af7..3eff5585d 100644 --- a/entt_8hpp_source.html +++ b/entt_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/family_8hpp_source.html b/family_8hpp_source.html index 59807b28a..500c32662 100644 --- a/family_8hpp_source.html +++ b/family_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/files.html b/files.html index 3b08351da..bb7b43c92 100644 --- a/files.html +++ b/files.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions.html b/functions.html index c23c2cdb0..db66582d1 100644 --- a/functions.html +++ b/functions.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_0x7e.html b/functions_0x7e.html index dc966bb47..aa8453875 100644 --- a/functions_0x7e.html +++ b/functions_0x7e.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_b.html b/functions_b.html index 7b3f69386..08d0d02fa 100644 --- a/functions_b.html +++ b/functions_b.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_c.html b/functions_c.html index fd78f341b..57ed3f4d3 100644 --- a/functions_c.html +++ b/functions_c.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_d.html b/functions_d.html index 6ad43e3b6..902de17f8 100644 --- a/functions_d.html +++ b/functions_d.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_e.html b/functions_e.html index 9249ac8c0..1bb0f09f0 100644 --- a/functions_e.html +++ b/functions_e.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_f.html b/functions_f.html index a8196963c..67377b6a7 100644 --- a/functions_f.html +++ b/functions_f.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func.html b/functions_func.html index 18e277a8b..21bd79f81 100644 --- a/functions_func.html +++ b/functions_func.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_0x7e.html b/functions_func_0x7e.html index 567b04174..831519fe6 100644 --- a/functions_func_0x7e.html +++ b/functions_func_0x7e.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_b.html b/functions_func_b.html index ae500d6d5..1f87c3b32 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_c.html b/functions_func_c.html index da6a0ae68..1b95c8eea 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_d.html b/functions_func_d.html index 0586b40f8..4fdcaec1a 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_e.html b/functions_func_e.html index 6fb7c0aa1..88f41e554 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_f.html b/functions_func_f.html index 3c964e49b..83a36988a 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_g.html b/functions_func_g.html index d7bf3bb43..d1c22adad 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_h.html b/functions_func_h.html index c83236a6a..fcfc1ce2a 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_l.html b/functions_func_l.html index 76ba78071..476dbeb0c 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_o.html b/functions_func_o.html index 2fcb10505..e82f4883c 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_p.html b/functions_func_p.html index 823d66ae0..e64d0d74e 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_r.html b/functions_func_r.html index 415f1aed2..7f138223f 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_s.html b/functions_func_s.html index c49967406..da864a6db 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_t.html b/functions_func_t.html index 8625b076c..e75f8361b 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_u.html b/functions_func_u.html index d0c6c87d8..705dc4744 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_func_v.html b/functions_func_v.html index da8b27b97..c20d244c3 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_g.html b/functions_g.html index 92c88e3b8..735736c54 100644 --- a/functions_g.html +++ b/functions_g.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_h.html b/functions_h.html index 617492a0e..931364124 100644 --- a/functions_h.html +++ b/functions_h.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_i.html b/functions_i.html index 47f127e85..655718c41 100644 --- a/functions_i.html +++ b/functions_i.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_l.html b/functions_l.html index a7dc54732..6df07eb7d 100644 --- a/functions_l.html +++ b/functions_l.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_o.html b/functions_o.html index e99fbf544..93e8dc9a5 100644 --- a/functions_o.html +++ b/functions_o.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_p.html b/functions_p.html index 53db95072..98875150a 100644 --- a/functions_p.html +++ b/functions_p.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_r.html b/functions_r.html index 5b61411c9..aa4e6a4a4 100644 --- a/functions_r.html +++ b/functions_r.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_rela.html b/functions_rela.html index f7714722a..e2d457651 100644 --- a/functions_rela.html +++ b/functions_rela.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_s.html b/functions_s.html index 369a48b1d..928da9221 100644 --- a/functions_s.html +++ b/functions_s.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_t.html b/functions_t.html index 5b08f7b99..a9a974b30 100644 --- a/functions_t.html +++ b/functions_t.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_type.html b/functions_type.html index 21b53d03b..87a3b230f 100644 --- a/functions_type.html +++ b/functions_type.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_u.html b/functions_u.html index f5de8b004..81cff3a48 100644 --- a/functions_u.html +++ b/functions_u.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_v.html b/functions_v.html index a253072b1..fa2edfbd1 100644 --- a/functions_v.html +++ b/functions_v.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/functions_vars.html b/functions_vars.html index 95b6bb923..e71ea9e60 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/graph_legend.html b/graph_legend.html index 7f9f7a7ab..194a8dcb4 100644 --- a/graph_legend.html +++ b/graph_legend.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/handle_8hpp_source.html b/handle_8hpp_source.html index 8f4be63b1..9af70b9bb 100644 --- a/handle_8hpp_source.html +++ b/handle_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/hashed__string_8hpp_source.html b/hashed__string_8hpp_source.html index 9b73484ee..e891c7596 100644 --- a/hashed__string_8hpp_source.html +++ b/hashed__string_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/hierarchy.html b/hierarchy.html index 2eb2d7c5f..a015e11fc 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/ident_8hpp_source.html b/ident_8hpp_source.html index e7c88b2b0..bf0f7d0b2 100644 --- a/ident_8hpp_source.html +++ b/ident_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/index.html b/index.html index c7eec65fd..cfec9941f 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/inherits.html b/inherits.html index f42eb3b5f..62178bec6 100644 --- a/inherits.html +++ b/inherits.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/loader_8hpp_source.html b/loader_8hpp_source.html index 3a580bcb1..7cd3e660d 100644 --- a/loader_8hpp_source.html +++ b/loader_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/locator_8hpp_source.html b/locator_8hpp_source.html index 6da7c07a4..9bbfbace7 100644 --- a/locator_8hpp_source.html +++ b/locator_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/namespaceentt.html b/namespaceentt.html index 40de22ef3..c45d365cc 100644 --- a/namespaceentt.html +++ b/namespaceentt.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -313,7 +313,7 @@ template<typename... Event>

Managed dispatcher.

A managed dispatcher uses the Signal class template as an underlying type. The type of the instances is the one required by the signal handler: std::shared_ptr<Class> (a shared pointer).

-

Definition at line 204 of file dispatcher.hpp.

+

Definition at line 206 of file dispatcher.hpp.

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

An unmanaged dispatcher uses the SigH class template as an underlying type. The type of the instances is the one required by the signal handler: Class * (a naked pointer).
When it comes to work with this kind of dispatcher, users must guarantee that the lifetimes of the instances overcome the one of the dispatcher itself.

-

Definition at line 216 of file dispatcher.hpp.

+

Definition at line 218 of file dispatcher.hpp.

@@ -525,7 +525,7 @@ template<typename... Args>
Returns
True if the two signals are different, false otherwise.
-

Definition at line 219 of file signal.hpp.

+

Definition at line 225 of file signal.hpp.

@@ -583,7 +583,7 @@ template<typename Ret , typename... Args>
Returns
True if the two signals are different, false otherwise.
-

Definition at line 295 of file sigh.hpp.

+

Definition at line 298 of file sigh.hpp.

diff --git a/namespacemembers.html b/namespacemembers.html index ecfefc924..6a139477e 100644 --- a/namespacemembers.html +++ b/namespacemembers.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/namespacemembers_func.html b/namespacemembers_func.html index 340127b70..f244bede4 100644 --- a/namespacemembers_func.html +++ b/namespacemembers_func.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/namespacemembers_type.html b/namespacemembers_type.html index 54364272e..e19a01113 100644 --- a/namespacemembers_type.html +++ b/namespacemembers_type.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/namespacemembers_vars.html b/namespacemembers_vars.html index 499df73fb..8f5ed06d2 100644 --- a/namespacemembers_vars.html +++ b/namespacemembers_vars.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/namespaces.html b/namespaces.html index 168ddd831..ca8ec65cd 100644 --- a/namespaces.html +++ b/namespaces.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/process_8hpp_source.html b/process_8hpp_source.html index 69e50e420..39e2eefd7 100644 --- a/process_8hpp_source.html +++ b/process_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/registry_8hpp_source.html b/registry_8hpp_source.html index a02c2a1ae..bae100532 100644 --- a/registry_8hpp_source.html +++ b/registry_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/scheduler_8hpp_source.html b/scheduler_8hpp_source.html index c639574a5..bef4c075c 100644 --- a/scheduler_8hpp_source.html +++ b/scheduler_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/sigh_8hpp_source.html b/sigh_8hpp_source.html index a772aec01..2495a144b 100644 --- a/sigh_8hpp_source.html +++ b/sigh_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -67,14 +67,14 @@ $(function() {
sigh.hpp
-
1 #ifndef ENTT_SIGNAL_SIGH_HPP
2 #define ENTT_SIGNAL_SIGH_HPP
3 
4 
5 #include <algorithm>
6 #include <utility>
7 #include <vector>
8 
9 
10 namespace entt {
11 
12 
13 namespace {
14 
15 
16 template<typename, typename>
17 struct Invoker;
18 
19 
20 template<typename Ret, typename... Args, typename Collector>
21 struct Invoker<Ret(Args...), Collector> {
22  using proto_type = Ret(*)(void *, Args...);
23  using call_type = std::pair<void *, proto_type>;
24 
25  virtual ~Invoker() = default;
26 
27  template<typename SFINAE = Ret>
28  typename std::enable_if_t<std::is_void<SFINAE>::value, bool>
29  invoke(Collector &, proto_type proto, void *instance, Args... args) {
30  proto(instance, args...);
31  return true;
32  }
33 
34  template<typename SFINAE = Ret>
35  typename std::enable_if_t<!std::is_void<SFINAE>::value, bool>
36  invoke(Collector &collector, proto_type proto, void *instance, Args... args) {
37  return collector(proto(instance, args...));
38  }
39 };
40 
41 
42 template<typename Ret>
43 struct NullCollector final {
44  using result_type = Ret;
45  bool operator()(result_type) const noexcept { return true; }
46 };
47 
48 
49 template<>
50 struct NullCollector<void> final {
51  using result_type = void;
52  bool operator()() const noexcept { return true; }
53 };
54 
55 
56 template<typename>
57 struct DefaultCollector;
58 
59 
60 template<typename Ret, typename... Args>
61 struct DefaultCollector<Ret(Args...)> final {
62  using collector_type = NullCollector<Ret>;
63 };
64 
65 
66 template<typename Function>
67 using DefaultCollectorType = typename DefaultCollector<Function>::collector_type;
68 
69 
70 }
71 
72 
82 template<typename Function, typename Collector = DefaultCollectorType<Function>>
83 class SigH;
84 
85 
109 template<typename Ret, typename... Args, typename Collector>
110 class SigH<Ret(Args...), Collector> final: private Invoker<Ret(Args...), Collector> {
111  using typename Invoker<Ret(Args...), Collector>::call_type;
112 
113  template<Ret(*Function)(Args...)>
114  static Ret proto(void *, Args... args) {
115  return (Function)(args...);
116  }
117 
118  template<typename Class, Ret(Class::*Member)(Args... args)>
119  static Ret proto(void *instance, Args... args) {
120  return (static_cast<Class *>(instance)->*Member)(args...);
121  }
122 
123 public:
125  using size_type = typename std::vector<call_type>::size_type;
127  using collector_type = Collector;
128 
133  template<typename Class>
134  using instance_type = Class *;
135 
140  size_type size() const noexcept {
141  return calls.size();
142  }
143 
148  bool empty() const noexcept {
149  return calls.empty();
150  }
151 
155  void clear() noexcept {
156  calls.clear();
157  }
158 
167  template<Ret(*Function)(Args...)>
168  void connect() {
169  disconnect<Function>();
170  calls.emplace_back(nullptr, &proto<Function>);
171  }
172 
185  template <typename Class, Ret(Class::*Member)(Args...)>
186  void connect(instance_type<Class> instance) {
187  disconnect<Class, Member>(instance);
188  calls.emplace_back(instance, &proto<Class, Member>);
189  }
190 
195  template<Ret(*Function)(Args...)>
196  void disconnect() {
197  call_type target{nullptr, &proto<Function>};
198  calls.erase(std::remove(calls.begin(), calls.end(), std::move(target)), calls.end());
199  }
200 
207  template<typename Class, Ret(Class::*Member)(Args...)>
209  call_type target{instance, &proto<Class, Member>};
210  calls.erase(std::remove(calls.begin(), calls.end(), std::move(target)), calls.end());
211  }
212 
218  template<typename Class>
220  auto func = [instance](const call_type &call) { return call.first == instance; };
221  calls.erase(std::remove_if(calls.begin(), calls.end(), std::move(func)), calls.end());
222  }
223 
231  void publish(Args... args) {
232  for(auto &&call: calls) {
233  call.second(call.first, args...);
234  }
235  }
236 
242  collector_type collect(Args... args) {
243  collector_type collector;
244 
245  for(auto &&call: calls) {
246  if(!this->invoke(collector, call.second, call.first, args...)) {
247  break;
248  }
249  }
250 
251  return collector;
252  }
253 
259  friend void swap(SigH &lhs, SigH &rhs) {
260  using std::swap;
261  swap(lhs.calls, rhs.calls);
262  }
263 
273  bool operator==(const SigH &other) const noexcept {
274  return std::equal(calls.cbegin(), calls.cend(), other.calls.cbegin(), other.calls.cend());
275  }
276 
277 private:
278  std::vector<call_type> calls;
279 };
280 
281 
294 template<typename Ret, typename... Args>
295 bool operator!=(const SigH<Ret(Args...)> &lhs, const SigH<Ret(Args...)> &rhs) noexcept {
296  return !(lhs == rhs);
297 }
298 
299 
300 }
301 
302 
303 #endif // ENTT_SIGNAL_SIGH_HPP
Class * instance_type
Instance type when it comes to connecting member functions.
Definition: sigh.hpp:134
+
1 #ifndef ENTT_SIGNAL_SIGH_HPP
2 #define ENTT_SIGNAL_SIGH_HPP
3 
4 
5 #include <algorithm>
6 #include <utility>
7 #include <vector>
8 
9 
10 namespace entt {
11 
12 
13 namespace {
14 
15 
16 template<typename, typename>
17 struct Invoker;
18 
19 
20 template<typename Ret, typename... Args, typename Collector>
21 struct Invoker<Ret(Args...), Collector> {
22  using proto_type = Ret(*)(void *, Args...);
23  using call_type = std::pair<void *, proto_type>;
24 
25  virtual ~Invoker() = default;
26 
27  template<typename SFINAE = Ret>
28  typename std::enable_if_t<std::is_void<SFINAE>::value, bool>
29  invoke(Collector &, proto_type proto, void *instance, Args... args) {
30  proto(instance, args...);
31  return true;
32  }
33 
34  template<typename SFINAE = Ret>
35  typename std::enable_if_t<!std::is_void<SFINAE>::value, bool>
36  invoke(Collector &collector, proto_type proto, void *instance, Args... args) {
37  return collector(proto(instance, args...));
38  }
39 };
40 
41 
42 template<typename Ret>
43 struct NullCollector final {
44  using result_type = Ret;
45  bool operator()(result_type) const noexcept { return true; }
46 };
47 
48 
49 template<>
50 struct NullCollector<void> final {
51  using result_type = void;
52  bool operator()() const noexcept { return true; }
53 };
54 
55 
56 template<typename>
57 struct DefaultCollector;
58 
59 
60 template<typename Ret, typename... Args>
61 struct DefaultCollector<Ret(Args...)> final {
62  using collector_type = NullCollector<Ret>;
63 };
64 
65 
66 template<typename Function>
67 using DefaultCollectorType = typename DefaultCollector<Function>::collector_type;
68 
69 
70 }
71 
72 
82 template<typename Function, typename Collector = DefaultCollectorType<Function>>
83 class SigH;
84 
85 
109 template<typename Ret, typename... Args, typename Collector>
110 class SigH<Ret(Args...), Collector> final: private Invoker<Ret(Args...), Collector> {
111  using typename Invoker<Ret(Args...), Collector>::call_type;
112 
113  template<Ret(*Function)(Args...)>
114  static Ret proto(void *, Args... args) {
115  return (Function)(args...);
116  }
117 
118  template<typename Class, Ret(Class::*Member)(Args... args)>
119  static Ret proto(void *instance, Args... args) {
120  return (static_cast<Class *>(instance)->*Member)(args...);
121  }
122 
123 public:
125  using size_type = typename std::vector<call_type>::size_type;
127  using collector_type = Collector;
128 
133  template<typename Class>
134  using instance_type = Class *;
135 
140  size_type size() const noexcept {
141  return calls.size();
142  }
143 
148  bool empty() const noexcept {
149  return calls.empty();
150  }
151 
155  void clear() noexcept {
156  calls.clear();
157  }
158 
167  template<Ret(*Function)(Args...)>
168  void connect() {
169  disconnect<Function>();
170  calls.emplace_back(nullptr, &proto<Function>);
171  }
172 
185  template <typename Class, Ret(Class::*Member)(Args...)>
186  void connect(instance_type<Class> instance) {
187  disconnect<Class, Member>(instance);
188  calls.emplace_back(instance, &proto<Class, Member>);
189  }
190 
195  template<Ret(*Function)(Args...)>
196  void disconnect() {
197  call_type target{nullptr, &proto<Function>};
198  calls.erase(std::remove(calls.begin(), calls.end(), std::move(target)), calls.end());
199  }
200 
207  template<typename Class, Ret(Class::*Member)(Args...)>
209  call_type target{instance, &proto<Class, Member>};
210  calls.erase(std::remove(calls.begin(), calls.end(), std::move(target)), calls.end());
211  }
212 
218  template<typename Class>
220  auto func = [instance](const call_type &call) { return call.first == instance; };
221  calls.erase(std::remove_if(calls.begin(), calls.end(), std::move(func)), calls.end());
222  }
223 
231  void publish(Args... args) {
232  for(auto pos = calls.size(); pos > size_type{0}; --pos) {
233  auto &call = calls[pos-1];
234  call.second(call.first, args...);
235  }
236  }
237 
243  collector_type collect(Args... args) {
244  collector_type collector;
245 
246  for(auto pos = calls.size(); pos > size_type{0}; --pos) {
247  auto &call = calls[pos-1];
248 
249  if(!this->invoke(collector, call.second, call.first, args...)) {
250  break;
251  }
252  }
253 
254  return collector;
255  }
256 
262  friend void swap(SigH &lhs, SigH &rhs) {
263  using std::swap;
264  swap(lhs.calls, rhs.calls);
265  }
266 
276  bool operator==(const SigH &other) const noexcept {
277  return std::equal(calls.cbegin(), calls.cend(), other.calls.cbegin(), other.calls.cend());
278  }
279 
280 private:
281  std::vector<call_type> calls;
282 };
283 
284 
297 template<typename Ret, typename... Args>
298 bool operator!=(const SigH<Ret(Args...)> &lhs, const SigH<Ret(Args...)> &rhs) noexcept {
299  return !(lhs == rhs);
300 }
301 
302 
303 }
304 
305 
306 #endif // ENTT_SIGNAL_SIGH_HPP
Class * instance_type
Instance type when it comes to connecting member functions.
Definition: sigh.hpp:134
Collector collector_type
Collector type.
Definition: sigh.hpp:127
EnTT default namespace.
Definition: family.hpp:9
-
bool operator==(const SigH &other) const noexcept
Checks if the contents of the two signals are identical.
Definition: sigh.hpp:273
+
bool operator==(const SigH &other) const noexcept
Checks if the contents of the two signals are identical.
Definition: sigh.hpp:276
size_type size() const noexcept
Number of listeners connected to the signal.
Definition: sigh.hpp:140
-
friend void swap(SigH &lhs, SigH &rhs)
Swaps listeners between the two signals.
Definition: sigh.hpp:259
+
friend void swap(SigH &lhs, SigH &rhs)
Swaps listeners between the two signals.
Definition: sigh.hpp:262
void disconnect(instance_type< Class > instance)
Disconnects the given member function from a signal.
Definition: sigh.hpp:208
-
collector_type collect(Args... args)
Collects return values from the listeners.
Definition: sigh.hpp:242
+
collector_type collect(Args... args)
Collects return values from the listeners.
Definition: sigh.hpp:243
typename std::vector< call_type >::size_type size_type
Unsigned integer type.
Definition: sigh.hpp:125
void connect(instance_type< Class > instance)
Connects a member function for a given instance to a signal.
Definition: sigh.hpp:186
void disconnect(instance_type< Class > instance)
Removes all existing connections for the given instance.
Definition: sigh.hpp:219
diff --git a/signal_8hpp_source.html b/signal_8hpp_source.html index 8ac371e84..c80ba020c 100644 --- a/signal_8hpp_source.html +++ b/signal_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
@@ -67,14 +67,14 @@ $(function() {
signal.hpp
-
1 #ifndef ENTT_SIGNAL_SIGNAL_HPP
2 #define ENTT_SIGNAL_SIGNAL_HPP
3 
4 
5 #include <memory>
6 #include <vector>
7 #include <utility>
8 #include <cstdint>
9 #include <iterator>
10 #include <algorithm>
11 
12 
13 namespace entt {
14 
15 
22 template<typename>
23 class Signal;
24 
25 
38 template<typename... Args>
39 class Signal<void(Args...)> final {
40  using proto_type = bool(*)(std::weak_ptr<void> &, Args...);
41  using call_type = std::pair<std::weak_ptr<void>, proto_type>;
42 
43  template<void(*Function)(Args...)>
44  static bool proto(std::weak_ptr<void> &, Args... args) {
45  Function(args...);
46  return true;
47  }
48 
49  template<typename Class, void(Class::*Member)(Args...)>
50  static bool proto(std::weak_ptr<void> &wptr, Args... args) {
51  bool ret = false;
52 
53  if(!wptr.expired()) {
54  auto ptr = std::static_pointer_cast<Class>(wptr.lock());
55  (ptr.get()->*Member)(args...);
56  ret = true;
57  }
58 
59  return ret;
60  }
61 
62 public:
64  using size_type = std::size_t;
65 
70  template<typename Class>
71  using instance_type = std::shared_ptr<Class>;
72 
77  size_type size() const noexcept {
78  return calls.size();
79  }
80 
85  bool empty() const noexcept {
86  return calls.empty();
87  }
88 
92  void clear() noexcept {
93  calls.clear();
94  }
95 
104  template<void(*Function)(Args...)>
105  void connect() {
106  disconnect<Function>();
107  calls.emplace_back(std::weak_ptr<void>{}, &proto<Function>);
108  }
109 
120  template<typename Class, void(Class::*Member)(Args...)>
121  void connect(instance_type<Class> instance) {
122  disconnect<Class, Member>(instance);
123  calls.emplace_back(std::move(instance), &proto<Class, Member>);
124  }
125 
130  template<void(*Function)(Args...)>
131  void disconnect() {
132  calls.erase(std::remove_if(calls.begin(), calls.end(),
133  [](const call_type &call) { return call.second == &proto<Function> && !call.first.lock(); }
134  ), calls.end());
135  }
136 
143  template<typename Class, void(Class::*Member)(Args...)>
145  calls.erase(std::remove_if(calls.begin(), calls.end(),
146  [instance{std::move(instance)}](const call_type &call) { return call.second == &proto<Class, Member> && call.first.lock() == instance; }
147  ), calls.end());
148  }
149 
155  template<typename Class>
157  calls.erase(std::remove_if(calls.begin(), calls.end(),
158  [instance{std::move(instance)}](const call_type &call) { return call.first.lock() == instance; }
159  ), calls.end());
160  }
161 
169  void publish(Args... args) {
170  for(auto it = calls.rbegin(), end = calls.rend(); it != end; it++) {
171  if(!(it->second)(it->first, args...)) {
172  calls.erase(std::next(it).base());
173  }
174  }
175  }
176 
182  friend void swap(Signal &lhs, Signal &rhs) {
183  using std::swap;
184  swap(lhs.calls, rhs.calls);
185  }
186 
196  bool operator==(const Signal &other) const noexcept {
197  return std::equal(calls.cbegin(), calls.cend(), other.calls.cbegin(), other.calls.cend(), [](const auto &lhs, const auto &rhs) {
198  return (lhs.second == rhs.second) && (lhs.first.lock() == rhs.first.lock());
199  });
200  }
201 
202 private:
203  std::vector<call_type> calls;
204 };
205 
206 
218 template<typename... Args>
219 bool operator!=(const Signal<void(Args...)> &lhs, const Signal<void(Args...)> &rhs) noexcept {
220  return !(lhs == rhs);
221 }
222 
223 
224 }
225 
226 
227 #endif // ENTT_SIGNAL_SIGNAL_HPP
bool operator==(const Signal &other) const noexcept
Checks if the contents of the two signals are identical.
Definition: signal.hpp:196
+
1 #ifndef ENTT_SIGNAL_SIGNAL_HPP
2 #define ENTT_SIGNAL_SIGNAL_HPP
3 
4 
5 #include <memory>
6 #include <vector>
7 #include <utility>
8 #include <cstdint>
9 #include <iterator>
10 #include <algorithm>
11 
12 
13 namespace entt {
14 
15 
22 template<typename>
23 class Signal;
24 
25 
38 template<typename... Args>
39 class Signal<void(Args...)> final {
40  using proto_type = bool(*)(std::weak_ptr<void> &, Args...);
41  using call_type = std::pair<std::weak_ptr<void>, proto_type>;
42 
43  template<void(*Function)(Args...)>
44  static bool proto(std::weak_ptr<void> &, Args... args) {
45  Function(args...);
46  return true;
47  }
48 
49  template<typename Class, void(Class::*Member)(Args...)>
50  static bool proto(std::weak_ptr<void> &wptr, Args... args) {
51  bool ret = false;
52 
53  if(!wptr.expired()) {
54  auto ptr = std::static_pointer_cast<Class>(wptr.lock());
55  (ptr.get()->*Member)(args...);
56  ret = true;
57  }
58 
59  return ret;
60  }
61 
62 public:
64  using size_type = std::size_t;
65 
70  template<typename Class>
71  using instance_type = std::shared_ptr<Class>;
72 
77  size_type size() const noexcept {
78  return calls.size();
79  }
80 
85  bool empty() const noexcept {
86  return calls.empty();
87  }
88 
92  void clear() noexcept {
93  calls.clear();
94  }
95 
104  template<void(*Function)(Args...)>
105  void connect() {
106  disconnect<Function>();
107  calls.emplace_back(std::weak_ptr<void>{}, &proto<Function>);
108  }
109 
120  template<typename Class, void(Class::*Member)(Args...)>
121  void connect(instance_type<Class> instance) {
122  disconnect<Class, Member>(instance);
123  calls.emplace_back(std::move(instance), &proto<Class, Member>);
124  }
125 
130  template<void(*Function)(Args...)>
131  void disconnect() {
132  calls.erase(std::remove_if(calls.begin(), calls.end(),
133  [](const call_type &call) { return call.second == &proto<Function> && !call.first.lock(); }
134  ), calls.end());
135  }
136 
143  template<typename Class, void(Class::*Member)(Args...)>
145  calls.erase(std::remove_if(calls.begin(), calls.end(),
146  [instance{std::move(instance)}](const call_type &call) { return call.second == &proto<Class, Member> && call.first.lock() == instance; }
147  ), calls.end());
148  }
149 
155  template<typename Class>
157  calls.erase(std::remove_if(calls.begin(), calls.end(),
158  [instance{std::move(instance)}](const call_type &call) { return call.first.lock() == instance; }
159  ), calls.end());
160  }
161 
169  void publish(Args... args) {
170  std::vector<call_type> next;
171 
172  for(auto pos = calls.size(); pos > size_type{0}; --pos) {
173  auto &call = calls[pos-1];
174 
175  if((call.second)(call.first, args...)) {
176  next.push_back(call);
177  }
178  }
179 
180  calls.swap(next);
181  }
182 
188  friend void swap(Signal &lhs, Signal &rhs) {
189  using std::swap;
190  swap(lhs.calls, rhs.calls);
191  }
192 
202  bool operator==(const Signal &other) const noexcept {
203  return std::equal(calls.cbegin(), calls.cend(), other.calls.cbegin(), other.calls.cend(), [](const auto &lhs, const auto &rhs) {
204  return (lhs.second == rhs.second) && (lhs.first.lock() == rhs.first.lock());
205  });
206  }
207 
208 private:
209  std::vector<call_type> calls;
210 };
211 
212 
224 template<typename... Args>
225 bool operator!=(const Signal<void(Args...)> &lhs, const Signal<void(Args...)> &rhs) noexcept {
226  return !(lhs == rhs);
227 }
228 
229 
230 }
231 
232 
233 #endif // ENTT_SIGNAL_SIGNAL_HPP
bool operator==(const Signal &other) const noexcept
Checks if the contents of the two signals are identical.
Definition: signal.hpp:202
size_type size() const noexcept
Number of listeners connected to the signal.
Definition: signal.hpp:77
void connect(instance_type< Class > instance)
Connects a member function for a given instance to a signal.
Definition: signal.hpp:121
void disconnect(instance_type< Class > instance)
Removes all existing connections for the given instance.
Definition: signal.hpp:156
void disconnect(instance_type< Class > instance)
Disconnects the given member function from a signal.
Definition: signal.hpp:144
void connect()
Connects a free function to a signal.
Definition: signal.hpp:105
EnTT default namespace.
Definition: family.hpp:9
-
friend void swap(Signal &lhs, Signal &rhs)
Swaps listeners between the two signals.
Definition: signal.hpp:182
+
friend void swap(Signal &lhs, Signal &rhs)
Swaps listeners between the two signals.
Definition: signal.hpp:188
void disconnect()
Disconnects a free function from a signal.
Definition: signal.hpp:131
std::size_t size_type
Unsigned integer type.
Definition: signal.hpp:64
void publish(Args... args)
Triggers a signal.
Definition: signal.hpp:169
diff --git a/sparse__set_8hpp_source.html b/sparse__set_8hpp_source.html index a0a85e333..4c840cf37 100644 --- a/sparse__set_8hpp_source.html +++ b/sparse__set_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1Actor-members.html b/structentt_1_1Actor-members.html index da3e3dbb4..be8f64feb 100644 --- a/structentt_1_1Actor-members.html +++ b/structentt_1_1Actor-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1Actor.html b/structentt_1_1Actor.html index df34869a2..5ba7b6893 100644 --- a/structentt_1_1Actor.html +++ b/structentt_1_1Actor.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1Emitter_1_1Connection-members.html b/structentt_1_1Emitter_1_1Connection-members.html index 41c1f2a8c..6c56ed7bb 100644 --- a/structentt_1_1Emitter_1_1Connection-members.html +++ b/structentt_1_1Emitter_1_1Connection-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1Emitter_1_1Connection.html b/structentt_1_1Emitter_1_1Connection.html index 98d24cd08..39b40fd5e 100644 --- a/structentt_1_1Emitter_1_1Connection.html +++ b/structentt_1_1Emitter_1_1Connection.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1ProcessAdaptor-members.html b/structentt_1_1ProcessAdaptor-members.html index e368ae2f4..f1a102616 100644 --- a/structentt_1_1ProcessAdaptor-members.html +++ b/structentt_1_1ProcessAdaptor-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1ProcessAdaptor.html b/structentt_1_1ProcessAdaptor.html index 5b9f39fa6..a112724a8 100644 --- a/structentt_1_1ProcessAdaptor.html +++ b/structentt_1_1ProcessAdaptor.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1ServiceLocator-members.html b/structentt_1_1ServiceLocator-members.html index 38c13f86b..690a52676 100644 --- a/structentt_1_1ServiceLocator-members.html +++ b/structentt_1_1ServiceLocator-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1ServiceLocator.html b/structentt_1_1ServiceLocator.html index e998b6f47..d4d9cddc2 100644 --- a/structentt_1_1ServiceLocator.html +++ b/structentt_1_1ServiceLocator.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits.html b/structentt_1_1entt__traits.html index c25fd7f2c..f51ddd65e 100644 --- a/structentt_1_1entt__traits.html +++ b/structentt_1_1entt__traits.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4-members.html b/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4-members.html index 756ad6c28..54a1732ed 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4-members.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html b/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html index e12527fe9..3f27f061c 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html b/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html index 6e7c2c67a..2857836c1 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html b/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html index 767958267..0ee3d5387 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4-members.html b/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4-members.html index 4467f6bbd..5b9269649 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4-members.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4-members.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html b/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html index 21926f7af..128702c67 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html +++ b/structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/traits_8hpp_source.html b/traits_8hpp_source.html index 73ac72492..2a27dc1e3 100644 --- a/traits_8hpp_source.html +++ b/traits_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1
diff --git a/view_8hpp_source.html b/view_8hpp_source.html index 2135f4521..e171a3c50 100644 --- a/view_8hpp_source.html +++ b/view_8hpp_source.html @@ -22,7 +22,7 @@
entt -  2.4.0 +  2.4.1