From 1e23a1131122fef897be4ffffd08bca00a7d291b Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 19 Mar 2025 15:49:42 +0100 Subject: [PATCH] API reference v3.15.0 --- adjacency__matrix_8hpp_source.html | 513 +-- adl__pointer_8hpp_source.html | 25 +- algorithm_8hpp_source.html | 136 +- annotated.html | 419 +-- any_8hpp_source.html | 884 ++--- attribute_8h_source.html | 21 +- bit_8hpp_source.html | 79 +- cache_8hpp_source.html | 194 +- classentt_1_1adjacency__matrix-members.html | 24 +- classentt_1_1adjacency__matrix.html | 362 +- classentt_1_1as__group-members.html | 24 +- classentt_1_1as__group.html | 60 +- classentt_1_1as__view-members.html | 24 +- classentt_1_1as__view.html | 60 +- classentt_1_1basic__any-members.html | 58 +- classentt_1_1basic__any.html | 411 ++- classentt_1_1basic__common__view-members.html | 59 +- classentt_1_1basic__common__view.html | 328 +- ..._1_1basic__continuous__loader-members.html | 24 +- classentt_1_1basic__continuous__loader.html | 130 +- classentt_1_1basic__dispatcher-members.html | 24 +- classentt_1_1basic__dispatcher.html | 303 +- classentt_1_1basic__entt__traits-members.html | 24 +- classentt_1_1basic__entt__traits.html | 136 +- ...1_1basic__entt__traits__inherit__graph.map | 7 + ...1_1basic__entt__traits__inherit__graph.md5 | 1 + ...1_1basic__entt__traits__inherit__graph.png | Bin 0 -> 4287 bytes classentt_1_1basic__flow-members.html | 24 +- classentt_1_1basic__flow.html | 266 +- classentt_1_1basic__group.html | 28 +- ...00_011bc3c06bb47de7bb72ca45b6e209ac72.html | 348 +- ...00_01b407520ab540940fa0ad999da0692bf6.html | 73 +- ...t_3_01Exclude_8_8_8_01_4_01_4-members.html | 77 +- ...xclude__t_3_01Exclude_8_8_8_01_4_01_4.html | 372 +- classentt_1_1basic__handle-members.html | 24 +- classentt_1_1basic__handle.html | 320 +- ...entt_1_1basic__hashed__string-members.html | 24 +- classentt_1_1basic__hashed__string.html | 174 +- classentt_1_1basic__observer-members.html | 113 - classentt_1_1basic__observer.html | 868 ----- classentt_1_1basic__organizer-members.html | 24 +- classentt_1_1basic__organizer.html | 132 +- classentt_1_1basic__poly-members.html | 24 +- classentt_1_1basic__poly.html | 198 +- ...ntt_1_1basic__reactive__mixin-members.html | 26 +- classentt_1_1basic__reactive__mixin.html | 274 +- classentt_1_1basic__registry-members.html | 24 +- classentt_1_1basic__registry.html | 835 ++--- ...sentt_1_1basic__runtime__view-members.html | 24 +- classentt_1_1basic__runtime__view.html | 213 +- classentt_1_1basic__scheduler-members.html | 24 +- classentt_1_1basic__scheduler.html | 254 +- classentt_1_1basic__sigh__mixin-members.html | 32 +- classentt_1_1basic__sigh__mixin.html | 468 ++- classentt_1_1basic__snapshot-members.html | 24 +- classentt_1_1basic__snapshot.html | 110 +- ...tt_1_1basic__snapshot__loader-members.html | 24 +- classentt_1_1basic__snapshot__loader.html | 98 +- classentt_1_1basic__sparse__set-members.html | 58 +- classentt_1_1basic__sparse__set.html | 1013 +++--- ..._1_1basic__sparse__set__inherit__graph.map | 8 +- ..._1_1basic__sparse__set__inherit__graph.md5 | 2 +- ..._1_1basic__sparse__set__inherit__graph.png | Bin 5431 -> 2165 bytes classentt_1_1basic__storage-members.html | 72 +- classentt_1_1basic__storage.html | 814 +++-- ..._01Entity_00_01Allocator_01_4-members.html | 277 +- ...ntity_00_01Entity_00_01Allocator_01_4.html | 3149 +++++++++++++--- ...ntity_00_01Allocator_01_4__coll__graph.map | 8 +- ...ntity_00_01Allocator_01_4__coll__graph.md5 | 2 +- ...ntity_00_01Allocator_01_4__coll__graph.png | Bin 2161 -> 4772 bytes ...ty_00_01Allocator_01_4__inherit__graph.map | 8 +- ...ty_00_01Allocator_01_4__inherit__graph.md5 | 2 +- ...ty_00_01Allocator_01_4__inherit__graph.png | Bin 2161 -> 4772 bytes ...3_01co0dfa483505a4f40bc47add676480ab9c.map | 6 + ...3_01co0dfa483505a4f40bc47add676480ab9c.md5 | 1 + ...3_01co0dfa483505a4f40bc47add676480ab9c.png | Bin 0 -> 4349 bytes ..._01co2dd25f12de13e2fda612c38b5da5182f.html | 1287 ------- ...3_01co6e06d0f32d2f7ddc7f7e5586c4948387.map | 5 - ...3_01co6e06d0f32d2f7ddc7f7e5586c4948387.md5 | 1 - ...3_01co6e06d0f32d2f7ddc7f7e5586c4948387.png | Bin 3446 -> 0 bytes ...3_01co8e78b91b669a4eee7c78317e37130a8f.map | 5 - ...3_01co8e78b91b669a4eee7c78317e37130a8f.md5 | 1 - ...3_01co8e78b91b669a4eee7c78317e37130a8f.png | Bin 3446 -> 0 bytes ...3_01coa6f776d12bbf847b675068da49e29c2b.map | 6 + ...3_01coa6f776d12bbf847b675068da49e29c2b.md5 | 1 + ...3_01coa6f776d12bbf847b675068da49e29c2b.png | Bin 0 -> 4349 bytes ..._01coc4dceb6fd52292b10e94896edab95072.html | 186 - ..._01codc425495d57bad12d99123a94a344005.html | 3239 +++++++++++++++++ ..._01coe2824a68765092eb0267404fe57a45fb.html | 241 ++ ...sentt_1_1basic__storage__view-members.html | 53 +- classentt_1_1basic__storage__view.html | 275 +- classentt_1_1basic__table-members.html | 69 +- classentt_1_1basic__table.html | 489 +-- classentt_1_1basic__view.html | 28 +- ...01_4_00_01exclude__t_3_4_01_4-members.html | 54 +- ...3_01Get_01_4_00_01exclude__t_3_4_01_4.html | 363 +- ..._4_003e8ad63e7464796b4d5f45fee854cd9b.html | 62 +- ...1_4_004357f89b3d52b8160564b8777d3550a9.map | 6 +- ...1_4_004357f89b3d52b8160564b8777d3550a9.md5 | 2 +- ...1_4_004357f89b3d52b8160564b8777d3550a9.png | Bin 3785 -> 4042 bytes ...1_4_00bd76ad63ca9ce3d511765fffbcf62c24.map | 6 +- ...1_4_00bd76ad63ca9ce3d511765fffbcf62c24.md5 | 2 +- ...1_4_00bd76ad63ca9ce3d511765fffbcf62c24.png | Bin 3785 -> 4042 bytes ..._4_00bfe15740605f6adb254763e866b0aef8.html | 413 ++- classentt_1_1compressed__pair-members.html | 24 +- classentt_1_1compressed__pair.html | 212 +- classentt_1_1connection-members.html | 24 +- classentt_1_1connection.html | 54 +- classentt_1_1delegate.html | 26 +- ...ate_3_01Ret_07Args_8_8_8_08_4-members.html | 106 - ...1_1delegate_3_01Ret_07Args_8_8_8_08_4.html | 712 ---- classentt_1_1dense__map-members.html | 125 +- classentt_1_1dense__map.html | 1071 +++--- classentt_1_1dense__set-members.html | 119 +- classentt_1_1dense__set.html | 1015 +++--- classentt_1_1emitter-members.html | 26 +- classentt_1_1emitter.html | 219 +- classentt_1_1family-members.html | 24 +- classentt_1_1family.html | 38 +- classentt_1_1ident-members.html | 24 +- classentt_1_1ident.html | 38 +- classentt_1_1iota__iterator-members.html | 24 +- classentt_1_1iota__iterator.html | 108 +- classentt_1_1locator-members.html | 24 +- classentt_1_1locator.html | 158 +- classentt_1_1member__class-members.html | 24 +- classentt_1_1member__class.html | 36 +- classentt_1_1meta__any-members.html | 34 +- classentt_1_1meta__any.html | 755 ++-- ...1meta__associative__container-members.html | 35 +- ...sentt_1_1meta__associative__container.html | 245 +- classentt_1_1meta__ctx-members.html | 24 +- classentt_1_1meta__ctx.html | 30 +- classentt_1_1meta__ctx__arg__t.html | 26 +- classentt_1_1meta__factory-members.html | 29 +- classentt_1_1meta__factory.html | 281 +- ...ntt_1_1meta__function__helper-members.html | 24 +- classentt_1_1meta__function__helper.html | 32 +- ..._1_1meta__sequence__container-members.html | 37 +- classentt_1_1meta__sequence__container.html | 195 +- classentt_1_1meta__type-members.html | 28 +- classentt_1_1meta__type.html | 588 ++- classentt_1_1nth__argument-members.html | 24 +- classentt_1_1nth__argument.html | 36 +- classentt_1_1poly__vtable-members.html | 26 +- classentt_1_1poly__vtable.html | 54 +- classentt_1_1process-members.html | 24 +- classentt_1_1process.html | 175 +- classentt_1_1resource-members.html | 24 +- classentt_1_1resource.html | 232 +- classentt_1_1resource__cache-members.html | 24 +- classentt_1_1resource__cache.html | 364 +- classentt_1_1sigh.html | 26 +- ..._8_8_8_08_00_01Allocator_01_4-members.html | 109 - ...t_07Args_8_8_8_08_00_01Allocator_01_4.html | 805 ---- classentt_1_1sink.html | 26 +- ...8_08_00_01Allocator_01_4_01_4-members.html | 96 - ...rgs_8_8_8_08_00_01Allocator_01_4_01_4.html | 371 -- classes.html | 34 +- clipboard.js | 4 +- component_8hpp_source.html | 62 +- compressed__pair_8hpp_source.html | 135 +- structentt_1_1matcher.html => config.html | 51 +- config_8h_source.html | 177 +- container_2fwd_8hpp_source.html | 37 +- container_8hpp_source.html | 214 +- context_8hpp_source.html | 42 +- core_2fwd_8hpp_source.html | 97 +- core_2ranges_8hpp_source.html | 21 +- core_2type__traits_8hpp_source.html | 1200 +++--- core_2utility_8hpp_source.html | 57 +- delegate_8hpp_source.html | 252 +- dense__map_8hpp_source.html | 1300 +++---- dense__set_8hpp_source.html | 1037 +++--- dir_49e56c817e5e54854c35e136979f97ca.html | 24 +- dir_66e9674e8206a335795995fa32a03c91.html | 24 +- dir_68267d1309a1af8e8297ef4c3efbcdba.html | 24 +- dir_721f6154dba3c88bcdead5f446bce319.html | 24 +- dir_7929ab29d3f740cf727ccbd263321562.html | 24 +- dir_7ec033ccd3859ebe4fcfc7c04a4d1ca0.html | 24 +- dir_84cd6c110d68697bc23812bee21a8ed6.html | 24 +- dir_85dbee8884f1b3a817fa7eff8dff73ec.html | 24 +- dir_a53318306f6ac0f7fe657839abd543ab.html | 24 +- dir_b64489a1e8130d5ebf6d86d282f500f0.html | 24 +- dir_c183064df1291357db1d38c637c6e87c.html | 24 +- dir_c5715f7ee899854a669b87bbaa642de0.html | 24 +- dir_caf434cd0cc634da803ab3b40811fcd6.html | 24 +- dir_cb9807796ea702d95f280c116c66a3f6.html | 24 +- dir_de8f4e6ba3f54a2a21309f742e93a373.html | 24 +- dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html | 26 +- dispatcher_8hpp_source.html | 145 +- dot_8hpp_source.html | 38 +- doxygen-awesome.css | 4 +- doxygen_crawl.html | 2778 +++++++++++--- dynsections.js | 10 +- emitter_8hpp_source.html | 138 +- entity_2fwd_8hpp_source.html | 438 +-- entity_2ranges_8hpp_source.html | 25 +- entity_8hpp_source.html | 160 +- entt_8hpp_source.html | 158 +- enum_8hpp_source.html | 46 +- factory_8hpp_source.html | 741 ++-- family_8hpp_source.html | 34 +- files.html | 125 +- flow_8hpp_source.html | 325 +- functions.html | 26 +- functions_b.html | 37 +- functions_c.html | 56 +- functions_d.html | 31 +- functions_e.html | 38 +- functions_f.html | 32 +- functions_func.html | 24 +- functions_func_b.html | 35 +- functions_func_c.html | 42 +- functions_func_d.html | 29 +- functions_func_e.html | 32 +- functions_func_f.html | 30 +- functions_func_g.html | 33 +- functions_func_h.html | 26 +- functions_func_i.html | 26 +- functions_func_k.html | 24 +- functions_func_l.html | 24 +- functions_func_m.html | 25 +- functions_func_n.html | 24 +- functions_func_o.html | 35 +- functions_func_p.html | 35 +- functions_func_r.html | 39 +- functions_func_s.html | 38 +- functions_func_t.html | 27 +- functions_func_u.html | 26 +- functions_func_v.html | 26 +- functions_func_w.html | 25 +- functions_func_y.html | 24 +- functions_func_~.html | 28 +- functions_g.html | 33 +- functions_h.html | 26 +- functions_i.html | 32 +- functions_k.html | 24 +- functions_l.html | 24 +- functions_m.html | 25 +- functions_n.html | 24 +- functions_o.html | 35 +- functions_p.html | 39 +- functions_r.html | 49 +- functions_s.html | 41 +- functions_t.html | 29 +- functions_type.html | 26 +- functions_type_b.html | 26 +- functions_type_c.html | 37 +- functions_type_d.html | 26 +- functions_type_e.html | 28 +- functions_type_f.html | 26 +- functions_type_g.html | 24 +- functions_type_h.html | 24 +- functions_type_i.html | 28 +- functions_type_k.html | 24 +- functions_type_l.html | 24 +- functions_type_m.html | 24 +- functions_type_n.html | 24 +- functions_type_o.html | 24 +- functions_type_p.html | 26 +- functions_type_r.html | 32 +- functions_type_s.html | 27 +- functions_type_t.html | 26 +- functions_type_v.html | 26 +- functions_u.html | 26 +- functions_v.html | 28 +- functions_vars.html | 30 +- functions_w.html | 25 +- functions_y.html | 24 +- functions_~.html | 28 +- fwd_8hpp_source.html | 21 +- graph_2fwd_8hpp_source.html | 32 +- graph_legend.html | 28 +- group_8hpp_source.html | 1059 +++--- handle_8hpp_source.html | 242 +- hashed__string_8hpp_source.html | 174 +- helper_8hpp_source.html | 307 +- hierarchy.html | 584 +-- ident_8hpp_source.html | 44 +- index.html | 60 +- inherit_graph_1.map | 8 +- inherit_graph_1.md5 | 2 +- inherit_graph_1.png | Bin 1686 -> 3304 bytes inherit_graph_100.map | 2 +- inherit_graph_100.md5 | 2 +- inherit_graph_100.png | Bin 470 -> 839 bytes inherit_graph_101.map | 2 +- inherit_graph_101.md5 | 2 +- inherit_graph_101.png | Bin 661 -> 676 bytes inherit_graph_102.map | 2 +- inherit_graph_102.md5 | 2 +- inherit_graph_102.png | Bin 919 -> 528 bytes inherit_graph_103.map | 2 +- inherit_graph_103.md5 | 2 +- inherit_graph_103.png | Bin 934 -> 649 bytes inherit_graph_104.map | 4 +- inherit_graph_104.md5 | 2 +- inherit_graph_104.png | Bin 816 -> 1520 bytes inherit_graph_105.map | 2 +- inherit_graph_105.md5 | 2 +- inherit_graph_105.png | Bin 483 -> 571 bytes inherit_graph_106.map | 2 +- inherit_graph_106.md5 | 2 +- inherit_graph_106.png | Bin 680 -> 588 bytes inherit_graph_107.map | 2 +- inherit_graph_107.md5 | 2 +- inherit_graph_107.png | Bin 817 -> 456 bytes inherit_graph_108.map | 2 +- inherit_graph_108.md5 | 2 +- inherit_graph_108.png | Bin 403 -> 861 bytes inherit_graph_109.map | 2 +- inherit_graph_109.md5 | 2 +- inherit_graph_109.png | Bin 590 -> 956 bytes inherit_graph_110.map | 2 +- inherit_graph_110.md5 | 2 +- inherit_graph_110.png | Bin 510 -> 1042 bytes inherit_graph_111.map | 2 +- inherit_graph_111.md5 | 2 +- inherit_graph_111.png | Bin 805 -> 466 bytes inherit_graph_112.map | 2 +- inherit_graph_112.md5 | 2 +- inherit_graph_112.png | Bin 700 -> 733 bytes inherit_graph_113.map | 2 +- inherit_graph_113.md5 | 2 +- inherit_graph_113.png | Bin 614 -> 684 bytes inherit_graph_114.map | 2 +- inherit_graph_114.md5 | 2 +- inherit_graph_114.png | Bin 433 -> 759 bytes inherit_graph_115.map | 2 +- inherit_graph_115.md5 | 2 +- inherit_graph_115.png | Bin 558 -> 453 bytes inherit_graph_116.map | 2 +- inherit_graph_116.md5 | 2 +- inherit_graph_116.png | Bin 839 -> 577 bytes inherit_graph_117.map | 14 +- inherit_graph_117.md5 | 2 +- inherit_graph_117.png | Bin 676 -> 14427 bytes inherit_graph_118.map | 2 +- inherit_graph_118.md5 | 2 +- inherit_graph_118.png | Bin 528 -> 807 bytes inherit_graph_119.map | 2 +- inherit_graph_119.md5 | 2 +- inherit_graph_119.png | Bin 829 -> 1157 bytes inherit_graph_12.map | 4 +- inherit_graph_12.md5 | 2 +- inherit_graph_12.png | Bin 547 -> 3798 bytes inherit_graph_120.map | 2 +- inherit_graph_120.md5 | 2 +- inherit_graph_120.png | Bin 649 -> 645 bytes inherit_graph_121.map | 2 +- inherit_graph_121.md5 | 2 +- inherit_graph_121.png | Bin 1642 -> 584 bytes inherit_graph_122.map | 4 +- inherit_graph_122.md5 | 2 +- inherit_graph_122.png | Bin 1520 -> 779 bytes inherit_graph_123.map | 2 +- inherit_graph_123.md5 | 2 +- inherit_graph_123.png | Bin 571 -> 1041 bytes inherit_graph_124.map | 2 +- inherit_graph_124.md5 | 2 +- inherit_graph_124.png | Bin 887 -> 618 bytes inherit_graph_125.map | 2 +- inherit_graph_125.md5 | 2 +- inherit_graph_125.png | Bin 588 -> 1004 bytes inherit_graph_126.map | 4 +- inherit_graph_126.md5 | 2 +- inherit_graph_126.png | Bin 456 -> 1939 bytes inherit_graph_127.map | 4 +- inherit_graph_127.md5 | 2 +- inherit_graph_127.png | Bin 861 -> 2007 bytes inherit_graph_128.map | 2 +- inherit_graph_128.md5 | 2 +- inherit_graph_128.png | Bin 956 -> 846 bytes inherit_graph_129.map | 2 +- inherit_graph_129.md5 | 2 +- inherit_graph_129.png | Bin 1042 -> 1025 bytes inherit_graph_13.map | 2 +- inherit_graph_13.md5 | 2 +- inherit_graph_13.png | Bin 1447 -> 1053 bytes inherit_graph_130.map | 2 +- inherit_graph_130.md5 | 2 +- inherit_graph_130.png | Bin 466 -> 1004 bytes inherit_graph_131.map | 2 +- inherit_graph_131.md5 | 2 +- inherit_graph_131.png | Bin 733 -> 805 bytes inherit_graph_132.map | 2 +- inherit_graph_132.md5 | 2 +- inherit_graph_132.png | Bin 684 -> 769 bytes inherit_graph_133.map | 2 +- inherit_graph_133.md5 | 2 +- inherit_graph_133.png | Bin 759 -> 960 bytes inherit_graph_134.map | 2 +- inherit_graph_134.md5 | 2 +- inherit_graph_134.png | Bin 453 -> 880 bytes inherit_graph_135.map | 2 +- inherit_graph_135.md5 | 2 +- inherit_graph_135.png | Bin 577 -> 933 bytes inherit_graph_136.map | 8 +- inherit_graph_136.md5 | 2 +- inherit_graph_136.png | Bin 4413 -> 886 bytes inherit_graph_137.map | 2 +- inherit_graph_137.md5 | 2 +- inherit_graph_137.png | Bin 807 -> 869 bytes inherit_graph_138.map | 2 +- inherit_graph_138.md5 | 2 +- inherit_graph_138.png | Bin 1157 -> 714 bytes inherit_graph_139.map | 2 +- inherit_graph_139.md5 | 2 +- inherit_graph_139.png | Bin 645 -> 720 bytes inherit_graph_14.map | 2 +- inherit_graph_14.md5 | 2 +- inherit_graph_14.png | Bin 644 -> 823 bytes inherit_graph_140.map | 2 +- inherit_graph_140.md5 | 2 +- inherit_graph_140.png | Bin 584 -> 601 bytes inherit_graph_141.map | 2 +- inherit_graph_141.md5 | 2 +- inherit_graph_141.png | Bin 779 -> 785 bytes inherit_graph_142.map | 2 +- inherit_graph_142.md5 | 2 +- inherit_graph_142.png | Bin 1041 -> 1140 bytes inherit_graph_143.map | 2 +- inherit_graph_143.md5 | 2 +- inherit_graph_143.png | Bin 618 -> 646 bytes inherit_graph_144.map | 2 +- inherit_graph_144.md5 | 2 +- inherit_graph_144.png | Bin 1004 -> 583 bytes inherit_graph_145.map | 4 +- inherit_graph_145.md5 | 2 +- inherit_graph_145.png | Bin 1939 -> 778 bytes inherit_graph_146.map | 4 +- inherit_graph_146.md5 | 2 +- inherit_graph_146.png | Bin 2007 -> 1038 bytes inherit_graph_147.map | 2 +- inherit_graph_147.md5 | 2 +- inherit_graph_147.png | Bin 846 -> 629 bytes inherit_graph_148.map | 2 +- inherit_graph_148.md5 | 2 +- inherit_graph_148.png | Bin 1025 -> 1007 bytes inherit_graph_149.map | 4 +- inherit_graph_149.md5 | 2 +- inherit_graph_149.png | Bin 1004 -> 1987 bytes inherit_graph_15.map | 2 +- inherit_graph_15.md5 | 2 +- inherit_graph_15.png | Bin 578 -> 783 bytes inherit_graph_150.map | 4 +- inherit_graph_150.md5 | 2 +- inherit_graph_150.png | Bin 805 -> 2013 bytes inherit_graph_151.map | 2 +- inherit_graph_151.md5 | 2 +- inherit_graph_151.png | Bin 769 -> 867 bytes inherit_graph_152.map | 2 +- inherit_graph_152.md5 | 2 +- inherit_graph_152.png | Bin 960 -> 825 bytes inherit_graph_153.map | 2 +- inherit_graph_153.md5 | 2 +- inherit_graph_153.png | Bin 880 -> 1047 bytes inherit_graph_154.map | 2 +- inherit_graph_154.md5 | 2 +- inherit_graph_154.png | Bin 933 -> 1008 bytes inherit_graph_155.map | 2 +- inherit_graph_155.md5 | 2 +- inherit_graph_155.png | Bin 886 -> 807 bytes inherit_graph_156.map | 2 +- inherit_graph_156.md5 | 2 +- inherit_graph_156.png | Bin 869 -> 787 bytes inherit_graph_157.map | 2 +- inherit_graph_157.md5 | 2 +- inherit_graph_157.png | Bin 714 -> 937 bytes inherit_graph_158.map | 2 +- inherit_graph_158.md5 | 2 +- inherit_graph_158.png | Bin 720 -> 755 bytes inherit_graph_159.map | 2 +- inherit_graph_159.md5 | 2 +- inherit_graph_159.png | Bin 601 -> 671 bytes inherit_graph_16.map | 6 +- inherit_graph_16.md5 | 2 +- inherit_graph_16.png | Bin 3507 -> 1834 bytes inherit_graph_160.map | 8 +- inherit_graph_160.md5 | 2 +- inherit_graph_160.png | Bin 785 -> 4374 bytes inherit_graph_161.map | 4 +- inherit_graph_161.md5 | 2 +- inherit_graph_161.png | Bin 1140 -> 1139 bytes inherit_graph_162.map | 8 +- inherit_graph_162.md5 | 2 +- inherit_graph_162.png | Bin 646 -> 5101 bytes inherit_graph_163.map | 4 +- inherit_graph_163.md5 | 2 +- inherit_graph_163.png | Bin 583 -> 1660 bytes inherit_graph_164.map | 16 +- inherit_graph_164.md5 | 2 +- inherit_graph_164.png | Bin 778 -> 25505 bytes inherit_graph_165.map | 4 +- inherit_graph_165.md5 | 2 +- inherit_graph_165.png | Bin 1038 -> 1236 bytes inherit_graph_166.map | 15 +- inherit_graph_166.md5 | 2 +- inherit_graph_166.png | Bin 629 -> 19195 bytes inherit_graph_167.map | 66 +- inherit_graph_167.md5 | 2 +- inherit_graph_167.png | Bin 1007 -> 124536 bytes inherit_graph_168.map | 14 +- inherit_graph_168.md5 | 2 +- inherit_graph_168.png | Bin 1987 -> 12038 bytes inherit_graph_169.map | 12 +- inherit_graph_169.md5 | 2 +- inherit_graph_169.png | Bin 2013 -> 11483 bytes inherit_graph_17.map | 6 +- inherit_graph_17.md5 | 2 +- inherit_graph_17.png | Bin 894 -> 3798 bytes inherit_graph_170.map | 3 - inherit_graph_170.md5 | 1 - inherit_graph_170.png | Bin 867 -> 0 bytes inherit_graph_171.map | 3 - inherit_graph_171.md5 | 1 - inherit_graph_171.png | Bin 825 -> 0 bytes inherit_graph_172.map | 3 - inherit_graph_172.md5 | 1 - inherit_graph_172.png | Bin 1047 -> 0 bytes inherit_graph_173.map | 3 - inherit_graph_173.md5 | 1 - inherit_graph_173.png | Bin 1008 -> 0 bytes inherit_graph_174.map | 3 - inherit_graph_174.md5 | 1 - inherit_graph_174.png | Bin 807 -> 0 bytes inherit_graph_175.map | 3 - inherit_graph_175.md5 | 1 - inherit_graph_175.png | Bin 787 -> 0 bytes inherit_graph_176.map | 3 - inherit_graph_176.md5 | 1 - inherit_graph_176.png | Bin 937 -> 0 bytes inherit_graph_177.map | 3 - inherit_graph_177.md5 | 1 - inherit_graph_177.png | Bin 755 -> 0 bytes inherit_graph_178.map | 3 - inherit_graph_178.md5 | 1 - inherit_graph_178.png | Bin 671 -> 0 bytes inherit_graph_179.map | 11 - inherit_graph_179.md5 | 1 - inherit_graph_179.png | Bin 6450 -> 0 bytes inherit_graph_18.map | 2 +- inherit_graph_18.md5 | 2 +- inherit_graph_18.png | Bin 823 -> 663 bytes inherit_graph_180.map | 5 - inherit_graph_180.md5 | 1 - inherit_graph_180.png | Bin 1705 -> 0 bytes inherit_graph_181.map | 5 - inherit_graph_181.md5 | 1 - inherit_graph_181.png | Bin 1660 -> 0 bytes inherit_graph_182.map | 17 - inherit_graph_182.md5 | 1 - inherit_graph_182.png | Bin 22201 -> 0 bytes inherit_graph_183.map | 5 - inherit_graph_183.md5 | 1 - inherit_graph_183.png | Bin 2736 -> 0 bytes inherit_graph_184.map | 5 - inherit_graph_184.md5 | 1 - inherit_graph_184.png | Bin 1292 -> 0 bytes inherit_graph_185.map | 5 - inherit_graph_185.md5 | 1 - inherit_graph_185.png | Bin 1236 -> 0 bytes inherit_graph_186.map | 15 - inherit_graph_186.md5 | 1 - inherit_graph_186.png | Bin 12843 -> 0 bytes inherit_graph_187.map | 23 - inherit_graph_187.md5 | 1 - inherit_graph_187.png | Bin 26952 -> 0 bytes inherit_graph_188.map | 13 - inherit_graph_188.md5 | 1 - inherit_graph_188.png | Bin 12626 -> 0 bytes inherit_graph_189.map | 5 - inherit_graph_189.md5 | 1 - inherit_graph_189.png | Bin 2085 -> 0 bytes inherit_graph_19.map | 2 +- inherit_graph_19.md5 | 2 +- inherit_graph_19.png | Bin 783 -> 1327 bytes inherit_graph_190.map | 7 - inherit_graph_190.md5 | 1 - inherit_graph_190.png | Bin 3952 -> 0 bytes inherit_graph_191.map | 5 - inherit_graph_191.md5 | 1 - inherit_graph_191.png | Bin 1906 -> 0 bytes inherit_graph_192.map | 13 - inherit_graph_192.md5 | 1 - inherit_graph_192.png | Bin 13744 -> 0 bytes inherit_graph_193.map | 7 - inherit_graph_193.md5 | 1 - inherit_graph_193.png | Bin 3478 -> 0 bytes inherit_graph_2.map | 2 +- inherit_graph_2.md5 | 2 +- inherit_graph_20.map | 4 +- inherit_graph_20.md5 | 2 +- inherit_graph_20.png | Bin 1834 -> 1227 bytes inherit_graph_21.map | 2 +- inherit_graph_21.md5 | 2 +- inherit_graph_21.png | Bin 702 -> 866 bytes inherit_graph_22.map | 2 +- inherit_graph_22.md5 | 2 +- inherit_graph_22.png | Bin 663 -> 836 bytes inherit_graph_23.map | 4 +- inherit_graph_23.md5 | 2 +- inherit_graph_23.png | Bin 526 -> 2165 bytes inherit_graph_24.map | 4 +- inherit_graph_24.md5 | 2 +- inherit_graph_24.png | Bin 1327 -> 2150 bytes inherit_graph_25.map | 4 +- inherit_graph_25.md5 | 2 +- inherit_graph_25.png | Bin 1227 -> 2196 bytes inherit_graph_26.map | 4 +- inherit_graph_26.md5 | 2 +- inherit_graph_26.png | Bin 866 -> 2195 bytes inherit_graph_27.map | 4 +- inherit_graph_27.md5 | 2 +- inherit_graph_27.png | Bin 836 -> 2324 bytes inherit_graph_28.map | 6 +- inherit_graph_28.md5 | 2 +- inherit_graph_28.png | Bin 2165 -> 2299 bytes inherit_graph_29.map | 4 +- inherit_graph_29.md5 | 2 +- inherit_graph_29.png | Bin 2150 -> 985 bytes inherit_graph_30.map | 6 +- inherit_graph_30.md5 | 2 +- inherit_graph_30.png | Bin 2196 -> 2091 bytes inherit_graph_31.map | 6 +- inherit_graph_31.md5 | 2 +- inherit_graph_31.png | Bin 2195 -> 2107 bytes inherit_graph_32.map | 6 +- inherit_graph_32.md5 | 2 +- inherit_graph_32.png | Bin 2324 -> 2085 bytes inherit_graph_33.map | 6 +- inherit_graph_33.md5 | 2 +- inherit_graph_33.png | Bin 2299 -> 2107 bytes inherit_graph_34.map | 2 +- inherit_graph_34.md5 | 2 +- inherit_graph_34.png | Bin 985 -> 946 bytes inherit_graph_35.map | 4 +- inherit_graph_35.md5 | 2 +- inherit_graph_35.png | Bin 2091 -> 799 bytes inherit_graph_36.map | 4 +- inherit_graph_36.md5 | 2 +- inherit_graph_36.png | Bin 2107 -> 871 bytes inherit_graph_37.map | 4 +- inherit_graph_37.md5 | 2 +- inherit_graph_37.png | Bin 2085 -> 839 bytes inherit_graph_38.map | 4 +- inherit_graph_38.md5 | 2 +- inherit_graph_38.png | Bin 2107 -> 848 bytes inherit_graph_39.map | 2 +- inherit_graph_39.md5 | 2 +- inherit_graph_39.png | Bin 946 -> 828 bytes inherit_graph_40.map | 2 +- inherit_graph_40.md5 | 2 +- inherit_graph_40.png | Bin 869 -> 786 bytes inherit_graph_41.map | 2 +- inherit_graph_41.md5 | 2 +- inherit_graph_41.png | Bin 799 -> 835 bytes inherit_graph_42.map | 12 +- inherit_graph_42.md5 | 2 +- inherit_graph_42.png | Bin 871 -> 12123 bytes inherit_graph_43.map | 4 +- inherit_graph_43.md5 | 2 +- inherit_graph_43.png | Bin 839 -> 2331 bytes inherit_graph_44.map | 2 +- inherit_graph_44.md5 | 2 +- inherit_graph_44.png | Bin 848 -> 834 bytes inherit_graph_45.map | 2 +- inherit_graph_45.md5 | 2 +- inherit_graph_45.png | Bin 828 -> 717 bytes inherit_graph_46.map | 2 +- inherit_graph_46.md5 | 2 +- inherit_graph_46.png | Bin 786 -> 813 bytes inherit_graph_47.map | 2 +- inherit_graph_47.md5 | 2 +- inherit_graph_47.png | Bin 835 -> 512 bytes inherit_graph_48.map | 6 +- inherit_graph_48.md5 | 2 +- inherit_graph_48.png | Bin 5382 -> 541 bytes inherit_graph_49.map | 6 +- inherit_graph_49.md5 | 2 +- inherit_graph_49.png | Bin 5883 -> 860 bytes inherit_graph_50.map | 2 +- inherit_graph_50.md5 | 2 +- inherit_graph_50.png | Bin 2276 -> 670 bytes inherit_graph_51.map | 4 +- inherit_graph_51.md5 | 2 +- inherit_graph_51.png | Bin 2331 -> 451 bytes inherit_graph_52.map | 2 +- inherit_graph_52.md5 | 2 +- inherit_graph_52.png | Bin 834 -> 708 bytes inherit_graph_53.map | 2 +- inherit_graph_53.md5 | 2 +- inherit_graph_53.png | Bin 717 -> 673 bytes inherit_graph_54.map | 2 +- inherit_graph_54.md5 | 2 +- inherit_graph_54.png | Bin 813 -> 652 bytes inherit_graph_55.map | 2 +- inherit_graph_55.md5 | 2 +- inherit_graph_55.png | Bin 512 -> 1079 bytes inherit_graph_56.map | 2 +- inherit_graph_56.md5 | 2 +- inherit_graph_56.png | Bin 541 -> 980 bytes inherit_graph_57.map | 4 +- inherit_graph_57.md5 | 2 +- inherit_graph_57.png | Bin 771 -> 1079 bytes inherit_graph_58.map | 2 +- inherit_graph_58.md5 | 2 +- inherit_graph_58.png | Bin 670 -> 743 bytes inherit_graph_59.map | 2 +- inherit_graph_59.md5 | 2 +- inherit_graph_59.png | Bin 451 -> 497 bytes inherit_graph_60.map | 2 +- inherit_graph_60.md5 | 2 +- inherit_graph_60.png | Bin 708 -> 521 bytes inherit_graph_61.map | 2 +- inherit_graph_61.md5 | 2 +- inherit_graph_61.png | Bin 673 -> 444 bytes inherit_graph_62.map | 2 +- inherit_graph_62.md5 | 2 +- inherit_graph_62.png | Bin 749 -> 750 bytes inherit_graph_63.map | 2 +- inherit_graph_63.md5 | 2 +- inherit_graph_63.png | Bin 652 -> 495 bytes inherit_graph_64.map | 2 +- inherit_graph_64.md5 | 2 +- inherit_graph_64.png | Bin 2342 -> 660 bytes inherit_graph_65.map | 2 +- inherit_graph_65.md5 | 2 +- inherit_graph_65.png | Bin 2695 -> 760 bytes inherit_graph_66.map | 2 +- inherit_graph_66.md5 | 2 +- inherit_graph_66.png | Bin 3023 -> 570 bytes inherit_graph_67.map | 2 +- inherit_graph_67.md5 | 2 +- inherit_graph_67.png | Bin 1079 -> 666 bytes inherit_graph_68.map | 2 +- inherit_graph_68.md5 | 2 +- inherit_graph_68.png | Bin 1319 -> 468 bytes inherit_graph_69.map | 2 +- inherit_graph_69.md5 | 2 +- inherit_graph_69.png | Bin 1668 -> 695 bytes inherit_graph_70.map | 2 +- inherit_graph_70.md5 | 2 +- inherit_graph_70.png | Bin 980 -> 953 bytes inherit_graph_71.map | 4 +- inherit_graph_71.md5 | 2 +- inherit_graph_71.png | Bin 1079 -> 805 bytes inherit_graph_72.map | 2 +- inherit_graph_72.md5 | 2 +- inherit_graph_72.png | Bin 743 -> 558 bytes inherit_graph_73.map | 2 +- inherit_graph_73.md5 | 2 +- inherit_graph_73.png | Bin 497 -> 505 bytes inherit_graph_74.map | 2 +- inherit_graph_74.md5 | 2 +- inherit_graph_74.png | Bin 521 -> 476 bytes inherit_graph_75.map | 2 +- inherit_graph_75.md5 | 2 +- inherit_graph_75.png | Bin 444 -> 466 bytes inherit_graph_76.map | 2 +- inherit_graph_76.md5 | 2 +- inherit_graph_76.png | Bin 750 -> 958 bytes inherit_graph_77.map | 4 +- inherit_graph_77.md5 | 2 +- inherit_graph_77.png | Bin 495 -> 3893 bytes inherit_graph_78.map | 2 +- inherit_graph_78.md5 | 2 +- inherit_graph_78.png | Bin 660 -> 1157 bytes inherit_graph_79.map | 4 +- inherit_graph_79.md5 | 2 +- inherit_graph_79.png | Bin 760 -> 4338 bytes inherit_graph_80.map | 4 +- inherit_graph_80.md5 | 2 +- inherit_graph_80.png | Bin 570 -> 4494 bytes inherit_graph_81.map | 4 +- inherit_graph_81.md5 | 2 +- inherit_graph_81.png | Bin 520 -> 10583 bytes inherit_graph_82.map | 4 +- inherit_graph_82.md5 | 2 +- inherit_graph_82.png | Bin 666 -> 2309 bytes inherit_graph_83.map | 2 +- inherit_graph_83.md5 | 2 +- inherit_graph_83.png | Bin 468 -> 878 bytes inherit_graph_84.map | 2 +- inherit_graph_84.md5 | 2 +- inherit_graph_84.png | Bin 695 -> 513 bytes inherit_graph_85.map | 2 +- inherit_graph_85.md5 | 2 +- inherit_graph_85.png | Bin 953 -> 661 bytes inherit_graph_86.map | 2 +- inherit_graph_86.md5 | 2 +- inherit_graph_86.png | Bin 805 -> 919 bytes inherit_graph_87.map | 2 +- inherit_graph_87.md5 | 2 +- inherit_graph_87.png | Bin 558 -> 934 bytes inherit_graph_88.map | 2 +- inherit_graph_88.md5 | 2 +- inherit_graph_88.png | Bin 505 -> 816 bytes inherit_graph_89.map | 2 +- inherit_graph_89.md5 | 2 +- inherit_graph_89.png | Bin 476 -> 483 bytes inherit_graph_90.map | 2 +- inherit_graph_90.md5 | 2 +- inherit_graph_90.png | Bin 466 -> 680 bytes inherit_graph_91.map | 2 +- inherit_graph_91.md5 | 2 +- inherit_graph_91.png | Bin 958 -> 817 bytes inherit_graph_92.map | 4 +- inherit_graph_92.md5 | 2 +- inherit_graph_92.png | Bin 3893 -> 403 bytes inherit_graph_93.map | 2 +- inherit_graph_93.md5 | 2 +- inherit_graph_93.png | Bin 1157 -> 590 bytes inherit_graph_94.map | 4 +- inherit_graph_94.md5 | 2 +- inherit_graph_94.png | Bin 4338 -> 510 bytes inherit_graph_95.map | 4 +- inherit_graph_95.md5 | 2 +- inherit_graph_95.png | Bin 4494 -> 805 bytes inherit_graph_96.map | 4 +- inherit_graph_96.md5 | 2 +- inherit_graph_96.png | Bin 10583 -> 700 bytes inherit_graph_97.map | 4 +- inherit_graph_97.md5 | 2 +- inherit_graph_97.png | Bin 2309 -> 614 bytes inherit_graph_98.map | 2 +- inherit_graph_98.md5 | 2 +- inherit_graph_98.png | Bin 878 -> 433 bytes inherit_graph_99.map | 2 +- inherit_graph_99.md5 | 2 +- inherit_graph_99.png | Bin 513 -> 558 bytes inherits.html | 765 ++-- iterator_8hpp_source.html | 126 +- jquery.js | 190 +- loader_8hpp_source.html | 32 +- locator_8hpp_source.html | 93 +- macro_8h_source.html | 21 +- md_docs_2md_2config.html | 50 +- md_docs_2md_2container.html | 34 +- md_docs_2md_2core.html | 235 +- md_docs_2md_2entity.html | 765 ++-- md_docs_2md_2faq.html | 63 +- md_docs_2md_2graph.html | 94 +- md_docs_2md_2lib.html | 44 +- md_docs_2md_2links.html | 62 +- md_docs_2md_2locator.html | 51 +- md_docs_2md_2meta.html | 319 +- md_docs_2md_2poly.html | 89 +- md_docs_2md_2process.html | 86 +- md_docs_2md_2reference.html | 43 +- md_docs_2md_2resource.html | 52 +- md_docs_2md_2signal.html | 123 +- md_docs_2md_2unreal.html | 34 +- memory_8hpp_source.html | 113 +- menu.js | 4 +- meta_2fwd_8hpp_source.html | 51 +- meta_2type__traits_8hpp_source.html | 38 +- meta_2utility_8hpp_source.html | 522 +-- meta_8hpp_source.html | 3199 ++++++++-------- mixin_8hpp_source.html | 876 ++--- monostate_8hpp_source.html | 36 +- namespaceentt.html | 2470 +++++++------ namespacemembers.html | 35 +- namespacemembers_enum.html | 24 +- namespacemembers_func.html | 30 +- namespacemembers_type.html | 28 +- namespacemembers_vars.html | 25 +- namespaces.html | 240 +- navtree.css | 149 + node_8hpp_source.html | 492 +-- observer_8hpp_source.html | 430 --- organizer_8hpp_source.html | 729 ++-- pages.html | 24 +- pointer_8hpp_source.html | 52 +- policy_8hpp_source.html | 42 +- poly_2fwd_8hpp_source.html | 30 +- poly_8hpp_source.html | 267 +- process_2fwd_8hpp_source.html | 31 +- process_8hpp_source.html | 146 +- range_8hpp_source.html | 33 +- registry_8hpp_source.html | 461 +-- resize.js | 147 + resolve_8hpp_source.html | 80 +- resource_2fwd_8hpp_source.html | 30 +- resource_8hpp_source.html | 168 +- runtime__view_8hpp_source.html | 149 +- scheduler_8hpp_source.html | 180 +- search/all_0.js | 153 +- search/all_1.js | 167 +- search/all_10.js | 113 +- search/all_11.js | 140 +- search/all_12.js | 233 +- search/all_13.js | 12 +- search/all_14.js | 95 +- search/all_15.js | 19 +- search/all_17.js | 44 +- search/all_2.js | 235 +- search/all_3.js | 66 +- search/all_4.js | 108 +- search/all_5.js | 8 +- search/all_6.js | 27 +- search/all_7.js | 4 +- search/all_8.js | 184 +- search/all_a.js | 24 +- search/all_b.js | 165 +- search/all_d.js | 132 +- search/all_e.js | 70 +- search/classes_0.js | 17 +- search/classes_1.js | 111 +- search/classes_11.js | 44 +- search/classes_2.js | 23 +- search/classes_3.js | 12 +- search/classes_4.js | 9 +- search/classes_6.js | 3 +- search/classes_7.js | 67 +- search/classes_9.js | 45 +- search/classes_b.js | 3 +- search/classes_e.js | 24 +- search/classes_f.js | 53 +- search/enums_0.js | 2 +- search/enumvalues_1.js | 2 +- search/enumvalues_2.js | 3 +- search/enumvalues_3.js | 2 +- search/enumvalues_4.js | 3 +- search/enumvalues_5.js | 5 + search/enumvalues_6.js | 4 + search/functions_1.js | 45 +- search/functions_10.js | 22 +- search/functions_11.js | 37 +- search/functions_12.js | 2 +- search/functions_13.js | 2 +- search/functions_14.js | 3 +- search/functions_16.js | 44 +- search/functions_2.js | 46 +- search/functions_3.js | 6 +- search/functions_4.js | 8 +- search/functions_5.js | 6 +- search/functions_6.js | 19 +- search/functions_7.js | 2 +- search/functions_8.js | 2 +- search/functions_b.js | 21 +- search/functions_d.js | 15 +- search/functions_e.js | 19 +- search/functions_f.js | 51 +- search/search.css | 50 +- search/searchdata.js | 2 +- search/typedefs_0.js | 2 +- search/typedefs_1.js | 2 +- search/typedefs_10.js | 17 +- search/typedefs_11.js | 2 +- search/typedefs_13.js | 2 +- search/typedefs_2.js | 15 +- search/typedefs_3.js | 2 +- search/typedefs_4.js | 4 +- search/typedefs_5.js | 2 +- search/typedefs_8.js | 6 +- search/typedefs_b.js | 5 +- search/typedefs_d.js | 5 +- search/typedefs_e.js | 2 +- search/typedefs_f.js | 8 +- search/variables_1.js | 3 +- search/variables_5.js | 2 +- search/variables_b.js | 2 +- search/variables_c.js | 2 +- sigh_8hpp_source.html | 455 ++- signal_2fwd_8hpp_source.html | 47 +- snapshot_8hpp_source.html | 644 ++-- sparse__set_8hpp_source.html | 1447 ++++---- storage_8hpp_source.html | 1914 +++++----- ...t_1_1adl__meta__pointer__like-members.html | 24 +- structentt_1_1adl__meta__pointer__like.html | 36 +- ...ctentt_1_1allocation__deleter-members.html | 24 +- structentt_1_1allocation__deleter.html | 56 +- structentt_1_1as__cref__t.html | 26 +- structentt_1_1as__is__t.html | 26 +- structentt_1_1as__ref__t.html | 26 +- structentt_1_1as__void__t.html | 26 +- structentt_1_1basic__collector.html | 99 - ...list_2946084b83498520c73ff3a9eb022209.html | 94 - ...list_98a79514dcad34a82f321f0796064ffb.html | 280 -- ...tentt_1_1basic__collector_3_4-members.html | 92 - structentt_1_1basic__collector_3_4.html | 194 - ...ssociative__container__traits-members.html | 24 +- ..._meta__associative__container__traits.html | 148 +- ...__sequence__container__traits-members.html | 24 +- ...ic__meta__sequence__container__traits.html | 150 +- ...1_1basic__organizer_1_1vertex-members.html | 49 +- structentt_1_1basic__organizer_1_1vertex.html | 223 +- structentt_1_1choice__t.html | 24 +- structentt_1_1choice__t_3_010_01_4.html | 28 +- structentt_1_1component__traits-members.html | 35 +- structentt_1_1component__traits.html | 116 +- structentt_1_1connect__arg__t-members.html | 24 +- structentt_1_1connect__arg__t.html | 28 +- structentt_1_1constness__as-members.html | 24 +- structentt_1_1constness__as.html | 36 +- ...3_01To_00_01const_01From_01_4-members.html | 25 +- ...ess__as_3_01To_00_01const_01From_01_4.html | 69 +- structentt_1_1directed__tag.html | 24 +- structentt_1_1entt__traits-members.html | 36 +- structentt_1_1entt__traits.html | 64 +- structentt_1_1enum__as__bitmask.html | 26 +- ..._1__entt__enum__as__bitmask_08_4_01_4.html | 48 +- ...__enumb45e5b59e9e78d3c72700aca5e6e82c2.map | 8 +- ...__enumb45e5b59e9e78d3c72700aca5e6e82c2.md5 | 2 +- ...__enumb45e5b59e9e78d3c72700aca5e6e82c2.png | Bin 2336 -> 4407 bytes ...__enume78d06b8709f92cd1e7735875131f315.map | 8 +- ...__enume78d06b8709f92cd1e7735875131f315.md5 | 2 +- ...__enume78d06b8709f92cd1e7735875131f315.png | Bin 2336 -> 4407 bytes structentt_1_1exclude__t-members.html | 27 +- structentt_1_1exclude__t.html | 33 +- structentt_1_1forward__apply-members.html | 24 +- structentt_1_1forward__apply.html | 74 +- structentt_1_1get__t-members.html | 27 +- structentt_1_1get__t.html | 33 +- structentt_1_1identity-members.html | 24 +- structentt_1_1identity.html | 38 +- ...t_1_1input__iterator__pointer-members.html | 24 +- structentt_1_1input__iterator__pointer.html | 74 +- structentt_1_1insertion__sort-members.html | 24 +- structentt_1_1insertion__sort.html | 40 +- structentt_1_1is__applicable.html | 28 +- ...c_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html | 48 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.map | 8 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.md5 | 2 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.png | Bin 2040 -> 4200 bytes ...01Args_8_8_8_01_4_01_4__inherit__graph.map | 8 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.md5 | 2 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.png | Bin 2040 -> 4200 bytes ...onst_01Tuple_3_01Args_8_8_8_01_4_01_4.html | 48 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.map | 8 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.md5 | 2 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.png | Bin 2171 -> 4325 bytes ...01Args_8_8_8_01_4_01_4__inherit__graph.map | 8 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.md5 | 2 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.png | Bin 2171 -> 4325 bytes structentt_1_1is__applicable__r.html | 28 +- ...std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html | 48 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.map | 8 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.md5 | 2 +- ..._3_01Args_8_8_8_01_4_01_4__coll__graph.png | Bin 2319 -> 4499 bytes ...01Args_8_8_8_01_4_01_4__inherit__graph.map | 8 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.md5 | 2 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.png | Bin 2319 -> 4499 bytes structentt_1_1is__complete.html | 28 +- ...decltype_07sizeof_07Type_08_08_4_01_4.html | 50 +- ...izeof_07Type_08_08_4_01_4__coll__graph.map | 8 +- ...izeof_07Type_08_08_4_01_4__coll__graph.md5 | 2 +- ...izeof_07Type_08_08_4_01_4__coll__graph.png | Bin 2035 -> 3589 bytes ...of_07Type_08_08_4_01_4__inherit__graph.map | 8 +- ...of_07Type_08_08_4_01_4__inherit__graph.md5 | 2 +- ...of_07Type_08_08_4_01_4__inherit__graph.png | Bin 2035 -> 3589 bytes structentt_1_1is__ebco__eligible.html | 28 +- structentt_1_1is__equality__comparable.html | 28 +- ...ity__comparable_3_01const_01Type_01_4.html | 56 +- ...ble_3_01const_01Type_01_4__coll__graph.map | 11 +- ...ble_3_01const_01Type_01_4__coll__graph.md5 | 2 +- ...ble_3_01const_01Type_01_4__coll__graph.png | Bin 3758 -> 5231 bytes ..._3_01const_01Type_01_4__inherit__graph.map | 11 +- ..._3_01const_01Type_01_4__inherit__graph.md5 | 2 +- ..._3_01const_01Type_01_4__inherit__graph.png | Bin 3758 -> 5231 bytes structentt_1_1is__iterator.html | 28 +- ..._1_1r2784f1f1943c3c544a328e35ff343041.html | 50 +- ...d_1_1r396237e909d5a448b433c5b378301e3b.map | 8 +- ...d_1_1r396237e909d5a448b433c5b378301e3b.md5 | 2 +- ...d_1_1r396237e909d5a448b433c5b378301e3b.png | Bin 2767 -> 4926 bytes ...d_1_1r96bb326c950276eb3fe6cb301e385789.map | 8 +- ...d_1_1r96bb326c950276eb3fe6cb301e385789.md5 | 2 +- ...d_1_1r96bb326c950276eb3fe6cb301e385789.png | Bin 2767 -> 4926 bytes structentt_1_1is__meta__pointer__like.html | 56 +- ...is__me7e73962060dceb2455423bd98c08115f.map | 7 + ...is__me7e73962060dceb2455423bd98c08115f.md5 | 1 + ...is__me7e73962060dceb2455423bd98c08115f.png | Bin 0 -> 4100 bytes ...is__me9b7e570208d9e133cebc6e25fb0a4319.map | 7 + ...is__me9b7e570208d9e133cebc6e25fb0a4319.md5 | 1 + ...is__me9b7e570208d9e133cebc6e25fb0a4319.png | Bin 0 -> 4100 bytes ..._1_1is__meta__pointer__like_01_4_01_4.html | 144 + ...eta__pointer__like_3_01Type_01_5_01_4.html | 42 +- ...__like_3_01Type_01_5_01_4__coll__graph.map | 8 +- ...__like_3_01Type_01_5_01_4__coll__graph.md5 | 2 +- ...__like_3_01Type_01_5_01_4__coll__graph.png | Bin 1678 -> 3538 bytes ...ike_3_01Type_01_5_01_4__inherit__graph.map | 8 +- ...ike_3_01Type_01_5_01_4__inherit__graph.md5 | 2 +- ...ike_3_01Type_01_5_01_4__inherit__graph.png | Bin 1678 -> 3538 bytes ...inter__like_3_01Type_07_5_08_0fN_0e_4.html | 32 +- ...3_01Type_07_5_08_0fN_0e_4__coll__graph.map | 3 +- ...3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 | 2 +- ...3_01Type_07_5_08_0fN_0e_4__coll__graph.png | Bin 1761 -> 2607 bytes ...1Type_07_5_08_0fN_0e_4__inherit__graph.map | 3 +- ...1Type_07_5_08_0fN_0e_4__inherit__graph.md5 | 2 +- ...1Type_07_5_08_0fN_0e_4__inherit__graph.png | Bin 1761 -> 2607 bytes ...__pointer__like_3_01const_01Type_01_4.html | 40 +- ...ike_3_01const_01Type_01_4__coll__graph.map | 9 +- ...ike_3_01const_01Type_01_4__coll__graph.md5 | 2 +- ...ike_3_01const_01Type_01_4__coll__graph.png | Bin 2855 -> 5838 bytes ..._3_01const_01Type_01_4__inherit__graph.map | 9 +- ..._3_01const_01Type_01_4__inherit__graph.md5 | 2 +- ..._3_01const_01Type_01_4__inherit__graph.png | Bin 2855 -> 5838 bytes ...std_1_1shared__ptr_3_01Type_01_4_01_4.html | 42 +- ...d__ptr_3_01Type_01_4_01_4__coll__graph.map | 8 +- ...d__ptr_3_01Type_01_4_01_4__coll__graph.md5 | 2 +- ...d__ptr_3_01Type_01_4_01_4__coll__graph.png | Bin 1913 -> 3423 bytes ...ptr_3_01Type_01_4_01_4__inherit__graph.map | 8 +- ...ptr_3_01Type_01_4_01_4__inherit__graph.md5 | 2 +- ...ptr_3_01Type_01_4_01_4__inherit__graph.png | Bin 1913 -> 3423 bytes ...tr_3_01Type_00_01Args_8_8_8_01_4_01_4.html | 42 +- ...00_01Args_8_8_8_01_4_01_4__coll__graph.map | 8 +- ...00_01Args_8_8_8_01_4_01_4__coll__graph.md5 | 2 +- ...00_01Args_8_8_8_01_4_01_4__coll__graph.png | Bin 2005 -> 3537 bytes ...01Args_8_8_8_01_4_01_4__inherit__graph.map | 8 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.md5 | 2 +- ...01Args_8_8_8_01_4_01_4__inherit__graph.png | Bin 2005 -> 3537 bytes ..._1is__meta__pointer__like__coll__graph.map | 8 +- ..._1is__meta__pointer__like__coll__graph.md5 | 2 +- ..._1is__meta__pointer__like__coll__graph.png | Bin 1717 -> 1817 bytes ...s__meta__pointer__like__inherit__graph.map | 8 +- ...s__meta__pointer__like__inherit__graph.md5 | 2 +- ...s__meta__pointer__like__inherit__graph.png | Bin 1717 -> 1817 bytes structentt_1_1is__meta__policy.html | 26 +- structentt_1_1is__transparent.html | 28 +- ...e_01Type_1_1is__transparent_01_4_01_4.html | 50 +- ...is__transparent_01_4_01_4__coll__graph.map | 8 +- ...is__transparent_01_4_01_4__coll__graph.md5 | 2 +- ...is__transparent_01_4_01_4__coll__graph.png | Bin 2135 -> 3622 bytes ..._transparent_01_4_01_4__inherit__graph.map | 8 +- ..._transparent_01_4_01_4__inherit__graph.md5 | 2 +- ..._transparent_01_4_01_4__inherit__graph.png | Bin 2135 -> 3622 bytes structentt_1_1is__tuple.html | 40 +- ...std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html | 144 + ..._3_01Args_8_8_8_01_4_01_4__coll__graph.map | 7 + ..._3_01Args_8_8_8_01_4_01_4__coll__graph.md5 | 1 + ..._3_01Args_8_8_8_01_4_01_4__coll__graph.png | Bin 0 -> 3542 bytes ...01Args_8_8_8_01_4_01_4__inherit__graph.map | 7 + ...01Args_8_8_8_01_4_01_4__inherit__graph.md5 | 1 + ...01Args_8_8_8_01_4_01_4__inherit__graph.png | Bin 0 -> 3542 bytes structentt_1_1is__tuple__coll__graph.map | 6 +- structentt_1_1is__tuple__coll__graph.md5 | 2 +- structentt_1_1is__tuple__coll__graph.png | Bin 2074 -> 1486 bytes structentt_1_1is__tuple__inherit__graph.map | 6 +- structentt_1_1is__tuple__inherit__graph.md5 | 2 +- structentt_1_1is__tuple__inherit__graph.png | Bin 2074 -> 1486 bytes structentt_1_1iterable__adaptor-members.html | 24 +- structentt_1_1iterable__adaptor.html | 118 +- ...1meta__associative__container__traits.html | 26 +- ..._map_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...01dense__map_3_01Args_8_8_8_01_4_01_4.html | 24 +- ..._set_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...01dense__set_3_01Args_8_8_8_01_4_01_4.html | 24 +- ...1map_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...01std_1_1map_3_01Args_8_8_8_01_4_01_4.html | 24 +- ...1set_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...01std_1_1set_3_01Args_8_8_8_01_4_01_4.html | 24 +- ..._map_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...ordered__map_3_01Args_8_8_8_01_4_01_4.html | 24 +- ..._set_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...ordered__set_3_01Args_8_8_8_01_4_01_4.html | 24 +- structentt_1_1meta__class__template__tag.html | 26 +- structentt_1_1meta__custom-members.html | 24 +- structentt_1_1meta__custom.html | 58 +- structentt_1_1meta__data-members.html | 28 +- structentt_1_1meta__data.html | 238 +- structentt_1_1meta__func-members.html | 28 +- structentt_1_1meta__func.html | 258 +- structentt_1_1meta__function__descriptor.html | 26 +- ...e_00_01Ret_01Class_1_1_5_01_4-members.html | 24 +- ..._3_01Type_00_01Ret_01Class_1_1_5_01_4.html | 26 +- ..._07Args_8_8_8_08_01const_01_4-members.html | 24 +- ...1_1_5_08_07Args_8_8_8_08_01const_01_4.html | 26 +- ...ss_1_1_5_08_07Args_8_8_8_08_4-members.html | 24 +- ...et_07Class_1_1_5_08_07Args_8_8_8_08_4.html | 26 +- ...aybeType_00_01Args_8_8_8_08_4-members.html | 24 +- ...5_08_07MaybeType_00_01Args_8_8_8_08_4.html | 26 +- ...Type_00_01Ret_07_5_08_07_08_4-members.html | 24 +- ...tor_3_01Type_00_01Ret_07_5_08_07_08_4.html | 26 +- ..._function__descriptor__traits-members.html | 24 +- ...1_1meta__function__descriptor__traits.html | 54 +- structentt_1_1meta__handle-members.html | 24 +- structentt_1_1meta__handle.html | 175 +- structentt_1_1meta__prop-members.html | 96 - structentt_1_1meta__prop.html | 293 -- ..._1_1meta__sequence__container__traits.html | 26 +- ...ray_3_01Type_00_01N_01_4_01_4-members.html | 24 +- ...td_1_1array_3_01Type_00_01N_01_4_01_4.html | 28 +- ...eque_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...std_1_1deque_3_01Args_8_8_8_01_4_01_4.html | 26 +- ...list_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...1std_1_1list_3_01Args_8_8_8_01_4_01_4.html | 26 +- ...ctor_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...td_1_1vector_3_01Args_8_8_8_01_4_01_4.html | 26 +- structentt_1_1meta__template__traits.html | 26 +- ...lazz_3_01Args_8_8_8_01_4_01_4-members.html | 24 +- ...ts_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html | 38 +- structentt_1_1monostate-members.html | 24 +- structentt_1_1monostate.html | 52 +- structentt_1_1null__t-members.html | 24 +- structentt_1_1null__t.html | 82 +- structentt_1_1overloaded.html | 28 +- structentt_1_1overloaded__coll__graph.map | 2 +- structentt_1_1overloaded__coll__graph.md5 | 2 +- structentt_1_1overloaded__coll__graph.png | Bin 1364 -> 1366 bytes structentt_1_1overloaded__inherit__graph.map | 2 +- structentt_1_1overloaded__inherit__graph.md5 | 2 +- structentt_1_1overloaded__inherit__graph.png | Bin 1364 -> 1366 bytes structentt_1_1owned__t-members.html | 27 +- structentt_1_1owned__t.html | 33 +- structentt_1_1poly__base-members.html | 24 +- structentt_1_1poly__base.html | 56 +- structentt_1_1poly__inspector-members.html | 24 +- structentt_1_1poly__inspector.html | 62 +- structentt_1_1process__adaptor-members.html | 24 +- structentt_1_1process__adaptor.html | 57 +- structentt_1_1radix__sort-members.html | 24 +- structentt_1_1radix__sort.html | 40 +- structentt_1_1reactive.html | 28 +- structentt_1_1resource__loader-members.html | 24 +- structentt_1_1resource__loader.html | 42 +- structentt_1_1scoped__connection-members.html | 24 +- structentt_1_1scoped__connection.html | 72 +- structentt_1_1sigh__helper.html | 26 +- ...r_3_01Registry_00_01Type_01_4-members.html | 24 +- ...h__helper_3_01Registry_00_01Type_01_4.html | 108 +- ...igh__helper_3_01Registry_01_4-members.html | 24 +- ...ntt_1_1sigh__helper_3_01Registry_01_4.html | 72 +- structentt_1_1size__of.html | 26 +- ...decltype_07sizeof_07Type_08_08_4_01_4.html | 48 +- ...izeof_07Type_08_08_4_01_4__coll__graph.map | 8 +- ...izeof_07Type_08_08_4_01_4__coll__graph.md5 | 2 +- ...izeof_07Type_08_08_4_01_4__coll__graph.png | Bin 2557 -> 4213 bytes ...of_07Type_08_08_4_01_4__inherit__graph.map | 8 +- ...of_07Type_08_08_4_01_4__inherit__graph.md5 | 2 +- ...of_07Type_08_08_4_01_4__inherit__graph.png | Bin 2557 -> 4213 bytes structentt_1_1std__sort-members.html | 24 +- structentt_1_1std__sort.html | 42 +- structentt_1_1storage__for-members.html | 24 +- structentt_1_1storage__for.html | 36 +- structentt_1_1storage__type-members.html | 26 +- structentt_1_1storage__type.html | 44 +- ..._01Entity_00_01Allocator_01_4-members.html | 27 +- ...ctive_00_01Entity_00_01Allocator_01_4.html | 67 +- structentt_1_1tombstone__t-members.html | 24 +- structentt_1_1tombstone__t.html | 82 +- structentt_1_1type__hash-members.html | 24 +- structentt_1_1type__hash.html | 54 +- structentt_1_1type__identity-members.html | 24 +- structentt_1_1type__identity.html | 32 +- structentt_1_1type__index-members.html | 24 +- structentt_1_1type__index.html | 54 +- structentt_1_1type__info-members.html | 24 +- structentt_1_1type__info.html | 62 +- structentt_1_1type__list-members.html | 24 +- structentt_1_1type__list.html | 40 +- structentt_1_1type__list__cat.html | 26 +- ...Other_8_8_8_01_4_00_01List_8_8_8_01_4.html | 32 +- ...8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html | 24 +- ...list_3_01Type_8_8_8_01_4_01_4-members.html | 24 +- ...01type__list_3_01Type_8_8_8_01_4_01_4.html | 32 +- ...ctentt_1_1type__list__cat_3_4-members.html | 24 +- structentt_1_1type__list__cat_3_4.html | 32 +- structentt_1_1type__list__contains.html | 28 +- ...t_3_01Type_8_8_8_01_4_00_01Other_01_4.html | 32 +- structentt_1_1type__list__diff.html | 26 +- ...ist_3_01Other_8_8_8_01_4_01_4-members.html | 24 +- ...1type__list_3_01Other_8_8_8_01_4_01_4.html | 32 +- structentt_1_1type__list__element.html | 28 +- ...st_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01First_00_01Other_8_8_8_01_4_01_4.html | 36 +- ..._3_01First_00_01Other_8_8_8_01_4_01_4.html | 28 +- structentt_1_1type__list__index.html | 28 +- ...st_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01First_00_01Other_8_8_8_01_4_01_4.html | 46 +- ...pe_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ...t_3_01Type_00_01Other_8_8_8_01_4_01_4.html | 46 +- ...Type_00_01type__list_3_4_01_4-members.html | 24 +- ...dex_3_01Type_00_01type__list_3_4_01_4.html | 46 +- structentt_1_1type__list__transform.html | 28 +- ...1Type_8_8_8_01_4_00_01Op_01_4-members.html | 24 +- ...e__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html | 36 +- ...1Type_8_8_8_01_4_00_01Op_01_4-members.html | 24 +- ...t__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html | 36 +- ...1Type_8_8_8_01_4_00_01Op_01_4-members.html | 24 +- ...d__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html | 36 +- ...1Type_8_8_8_01_4_00_01Op_01_4-members.html | 24 +- ...list_3_01Type_8_8_8_01_4_00_01Op_01_4.html | 36 +- structentt_1_1type__list__unique-members.html | 24 +- structentt_1_1type__list__unique.html | 36 +- structentt_1_1type__name-members.html | 24 +- structentt_1_1type__name.html | 54 +- structentt_1_1undirected__tag.html | 24 +- structentt_1_1value__list-members.html | 24 +- structentt_1_1value__list.html | 40 +- structentt_1_1value__list__cat.html | 26 +- ...Other_8_8_8_01_4_00_01List_8_8_8_01_4.html | 32 +- ...her_8e855cf3b29535e1db146a56ae1f98de8.html | 24 +- ...ist_3_01Value_8_8_8_01_4_01_4-members.html | 24 +- ...value__list_3_01Value_8_8_8_01_4_01_4.html | 32 +- ...tentt_1_1value__list__cat_3_4-members.html | 24 +- structentt_1_1value__list__cat_3_4.html | 32 +- structentt_1_1value__list__contains.html | 28 +- ..._3_01Value_8_8_8_01_4_00_01Other_01_4.html | 32 +- structentt_1_1value__list__diff.html | 26 +- ...ist_3_01Other_8_8_8_01_4_01_4-members.html | 24 +- ...value__list_3_01Other_8_8_8_01_4_01_4.html | 32 +- structentt_1_1value__list__element.html | 28 +- ...ue_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01Value_00_01Other_8_8_8_01_4_01_4.html | 46 +- ..._3_01Value_00_01Other_8_8_8_01_4_01_4.html | 28 +- structentt_1_1value__list__index.html | 28 +- ...st_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01First_00_01Other_8_8_8_01_4_01_4.html | 46 +- ...ue_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01Value_00_01Other_8_8_8_01_4_01_4.html | 46 +- ...lue_00_01value__list_3_4_01_4-members.html | 24 +- ...x_3_01Value_00_01value__list_3_4_01_4.html | 46 +- structentt_1_1value__list__unique.html | 28 +- ...ue_00_01Other_8_8_8_01_4_01_4-members.html | 24 +- ..._3_01Value_00_01Other_8_8_8_01_4_01_4.html | 48 +- ...ique_3_01value__list_3_4_01_4-members.html | 24 +- ...list__unique_3_01value__list_3_4_01_4.html | 32 +- structentt_1_1y__combinator-members.html | 24 +- structentt_1_1y__combinator.html | 60 +- ..._pair_3_01First_00_01Second_01_4_01_4.html | 24 +- ..._1type__list_3_01Type_8_8_8_01_4_01_4.html | 26 +- ...value__list_3_01Value_8_8_8_01_4_01_4.html | 26 +- ..._pair_3_01First_00_01Second_01_4_01_4.html | 24 +- ..._1type__list_3_01Type_8_8_8_01_4_01_4.html | 26 +- ...value__list_3_01Value_8_8_8_01_4_01_4.html | 26 +- table_8hpp_source.html | 529 +-- tabs.css | 2 +- template_8hpp_source.html | 38 +- tuple_8hpp_source.html | 133 +- type__info_8hpp_source.html | 150 +- version_8h_source.html | 27 +- view_8hpp_source.html | 1717 ++++----- 1334 files changed, 46058 insertions(+), 36285 deletions(-) create mode 100644 classentt_1_1basic__entt__traits__inherit__graph.map create mode 100644 classentt_1_1basic__entt__traits__inherit__graph.md5 create mode 100644 classentt_1_1basic__entt__traits__inherit__graph.png delete mode 100644 classentt_1_1basic__observer-members.html delete mode 100644 classentt_1_1basic__observer.html create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.map create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.md5 create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.png delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.map delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.md5 delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.png delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.map delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.md5 delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.png create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.map create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.md5 create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.png delete mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coc4dceb6fd52292b10e94896edab95072.html create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html create mode 100644 classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coe2824a68765092eb0267404fe57a45fb.html delete mode 100644 classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html delete mode 100644 classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html delete mode 100644 classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4-members.html delete mode 100644 classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html delete mode 100644 classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4-members.html delete mode 100644 classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html rename structentt_1_1matcher.html => config.html (65%) delete mode 100644 inherit_graph_170.map delete mode 100644 inherit_graph_170.md5 delete mode 100644 inherit_graph_170.png delete mode 100644 inherit_graph_171.map delete mode 100644 inherit_graph_171.md5 delete mode 100644 inherit_graph_171.png delete mode 100644 inherit_graph_172.map delete mode 100644 inherit_graph_172.md5 delete mode 100644 inherit_graph_172.png delete mode 100644 inherit_graph_173.map delete mode 100644 inherit_graph_173.md5 delete mode 100644 inherit_graph_173.png delete mode 100644 inherit_graph_174.map delete mode 100644 inherit_graph_174.md5 delete mode 100644 inherit_graph_174.png delete mode 100644 inherit_graph_175.map delete mode 100644 inherit_graph_175.md5 delete mode 100644 inherit_graph_175.png delete mode 100644 inherit_graph_176.map delete mode 100644 inherit_graph_176.md5 delete mode 100644 inherit_graph_176.png delete mode 100644 inherit_graph_177.map delete mode 100644 inherit_graph_177.md5 delete mode 100644 inherit_graph_177.png delete mode 100644 inherit_graph_178.map delete mode 100644 inherit_graph_178.md5 delete mode 100644 inherit_graph_178.png delete mode 100644 inherit_graph_179.map delete mode 100644 inherit_graph_179.md5 delete mode 100644 inherit_graph_179.png delete mode 100644 inherit_graph_180.map delete mode 100644 inherit_graph_180.md5 delete mode 100644 inherit_graph_180.png delete mode 100644 inherit_graph_181.map delete mode 100644 inherit_graph_181.md5 delete mode 100644 inherit_graph_181.png delete mode 100644 inherit_graph_182.map delete mode 100644 inherit_graph_182.md5 delete mode 100644 inherit_graph_182.png delete mode 100644 inherit_graph_183.map delete mode 100644 inherit_graph_183.md5 delete mode 100644 inherit_graph_183.png delete mode 100644 inherit_graph_184.map delete mode 100644 inherit_graph_184.md5 delete mode 100644 inherit_graph_184.png delete mode 100644 inherit_graph_185.map delete mode 100644 inherit_graph_185.md5 delete mode 100644 inherit_graph_185.png delete mode 100644 inherit_graph_186.map delete mode 100644 inherit_graph_186.md5 delete mode 100644 inherit_graph_186.png delete mode 100644 inherit_graph_187.map delete mode 100644 inherit_graph_187.md5 delete mode 100644 inherit_graph_187.png delete mode 100644 inherit_graph_188.map delete mode 100644 inherit_graph_188.md5 delete mode 100644 inherit_graph_188.png delete mode 100644 inherit_graph_189.map delete mode 100644 inherit_graph_189.md5 delete mode 100644 inherit_graph_189.png delete mode 100644 inherit_graph_190.map delete mode 100644 inherit_graph_190.md5 delete mode 100644 inherit_graph_190.png delete mode 100644 inherit_graph_191.map delete mode 100644 inherit_graph_191.md5 delete mode 100644 inherit_graph_191.png delete mode 100644 inherit_graph_192.map delete mode 100644 inherit_graph_192.md5 delete mode 100644 inherit_graph_192.png delete mode 100644 inherit_graph_193.map delete mode 100644 inherit_graph_193.md5 delete mode 100644 inherit_graph_193.png create mode 100644 navtree.css delete mode 100644 observer_8hpp_source.html create mode 100644 resize.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js delete mode 100644 structentt_1_1basic__collector.html delete mode 100644 structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_2946084b83498520c73ff3a9eb022209.html delete mode 100644 structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html delete mode 100644 structentt_1_1basic__collector_3_4-members.html delete mode 100644 structentt_1_1basic__collector_3_4.html create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.map create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.md5 create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.png create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.map create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.md5 create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.png create mode 100644 structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__meta__pointer__like_01_4_01_4.html create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 create mode 100644 structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png delete mode 100644 structentt_1_1meta__prop-members.html delete mode 100644 structentt_1_1meta__prop.html diff --git a/adjacency__matrix_8hpp_source.html b/adjacency__matrix_8hpp_source.html index 79cc7edeb..58570db51 100644 --- a/adjacency__matrix_8hpp_source.html +++ b/adjacency__matrix_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/graph/adjacency_matrix.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
adjacency_matrix.hpp
@@ -97,295 +105,302 @@ $(function() { codefold.init(0); });
12#include "fwd.hpp"
13
14namespace entt {
-
15
+
15
17namespace internal {
18
19template<typename It>
20class edge_iterator {
21 using size_type = std::size_t;
22
-
23public:
-
24 using value_type = std::pair<size_type, size_type>;
-
25 using pointer = input_iterator_pointer<value_type>;
-
26 using reference = value_type;
-
27 using difference_type = std::ptrdiff_t;
-
28 using iterator_category = std::input_iterator_tag;
-
29 using iterator_concept = std::forward_iterator_tag;
-
30
-
31 constexpr edge_iterator() noexcept = default;
-
32
-
33 // NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
-
34 constexpr edge_iterator(It base, const size_type vertices, const size_type from, const size_type to, const size_type step) noexcept
-
35 : it{std::move(base)},
-
36 vert{vertices},
-
37 pos{from},
-
38 last{to},
-
39 offset{step} {
-
40 for(; pos != last && !it[pos]; pos += offset) {}
-
41 }
-
42
-
43 constexpr edge_iterator &operator++() noexcept {
-
44 for(pos += offset; pos != last && !it[pos]; pos += offset) {}
-
45 return *this;
-
46 }
-
47
-
48 constexpr edge_iterator operator++(int) noexcept {
-
49 edge_iterator orig = *this;
-
50 return ++(*this), orig;
+
23 void find_next() noexcept {
+
24 for(; pos != last && !it[static_cast<typename It::difference_type>(pos)]; pos += offset) {}
+
25 }
+
26
+
27public:
+
28 using value_type = std::pair<size_type, size_type>;
+
29 using pointer = input_iterator_pointer<value_type>;
+
30 using reference = value_type;
+
31 using difference_type = std::ptrdiff_t;
+
32 using iterator_category = std::input_iterator_tag;
+
33 using iterator_concept = std::forward_iterator_tag;
+
34
+
35 constexpr edge_iterator() noexcept = default;
+
36
+
37 // NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
+
38 constexpr edge_iterator(It base, const size_type vertices, const size_type from, const size_type to, const size_type step) noexcept
+
39 : it{std::move(base)},
+
40 vert{vertices},
+
41 pos{from},
+
42 last{to},
+
43 offset{step} {
+
44 find_next();
+
45 }
+
46
+
47 constexpr edge_iterator &operator++() noexcept {
+
48 pos += offset;
+
49 find_next();
+
50 return *this;
51 }
52
-
53 [[nodiscard]] constexpr reference operator*() const noexcept {
-
54 return *operator->();
-
55 }
-
56
-
57 [[nodiscard]] constexpr pointer operator->() const noexcept {
-
58 return std::make_pair<size_type>(pos / vert, pos % vert);
-
59 }
-
60
-
61 template<typename Type>
-
62 friend constexpr bool operator==(const edge_iterator<Type> &, const edge_iterator<Type> &) noexcept;
-
63
-
64private:
-
65 It it{};
-
66 size_type vert{};
-
67 size_type pos{};
-
68 size_type last{};
-
69 size_type offset{};
-
70};
-
71
-
72template<typename Container>
-
73[[nodiscard]] inline constexpr bool operator==(const edge_iterator<Container> &lhs, const edge_iterator<Container> &rhs) noexcept {
-
74 return lhs.pos == rhs.pos;
-
75}
+
53 constexpr edge_iterator operator++(int) noexcept {
+
54 const edge_iterator orig = *this;
+
55 return ++(*this), orig;
+
56 }
+
57
+
58 [[nodiscard]] constexpr reference operator*() const noexcept {
+
59 return *operator->();
+
60 }
+
61
+
62 [[nodiscard]] constexpr pointer operator->() const noexcept {
+
63 return std::make_pair<size_type>(pos / vert, pos % vert);
+
64 }
+
65
+
66 template<typename Type>
+
67 friend constexpr bool operator==(const edge_iterator<Type> &, const edge_iterator<Type> &) noexcept;
+
68
+
69private:
+
70 It it{};
+
71 size_type vert{};
+
72 size_type pos{};
+
73 size_type last{};
+
74 size_type offset{};
+
75};
76
77template<typename Container>
-
78[[nodiscard]] inline constexpr bool operator!=(const edge_iterator<Container> &lhs, const edge_iterator<Container> &rhs) noexcept {
-
79 return !(lhs == rhs);
+
78[[nodiscard]] constexpr bool operator==(const edge_iterator<Container> &lhs, const edge_iterator<Container> &rhs) noexcept {
+
79 return lhs.pos == rhs.pos;
80}
81
-
82} // namespace internal
-
90template<typename Category, typename Allocator>
-
- -
92 using alloc_traits = std::allocator_traits<Allocator>;
-
93 static_assert(std::is_base_of_v<directed_tag, Category>, "Invalid graph category");
-
94 static_assert(std::is_same_v<typename alloc_traits::value_type, std::size_t>, "Invalid value type");
-
95 using container_type = std::vector<std::size_t, typename alloc_traits::template rebind_alloc<std::size_t>>;
-
96
-
97public:
-
99 using allocator_type = Allocator;
-
101 using size_type = std::size_t;
- -
105 using edge_type = std::pair<vertex_type, vertex_type>;
- -
109 using edge_iterator = internal::edge_iterator<typename container_type::const_iterator>;
- - - -
116
-
- -
119 : adjacency_matrix{0u} {
-
120 }
+
82template<typename Container>
+
83[[nodiscard]] constexpr bool operator!=(const edge_iterator<Container> &lhs, const edge_iterator<Container> &rhs) noexcept {
+
84 return !(lhs == rhs);
+
85}
+
86
+
87} // namespace internal
+
89
+
95template<typename Category, typename Allocator>
+
+ +
97 using alloc_traits = std::allocator_traits<Allocator>;
+
98 static_assert(std::is_base_of_v<directed_tag, Category>, "Invalid graph category");
+
99 static_assert(std::is_same_v<typename alloc_traits::value_type, std::size_t>, "Invalid value type");
+
100 using container_type = std::vector<std::size_t, typename alloc_traits::template rebind_alloc<std::size_t>>;
+
101
+
102public:
+
104 using allocator_type = Allocator;
+
106 using size_type = std::size_t;
+ +
110 using edge_type = std::pair<vertex_type, vertex_type>;
+ +
114 using edge_iterator = internal::edge_iterator<typename container_type::const_iterator>;
+ + +
120 using graph_category = Category;
+
121
+
+
123 adjacency_matrix() noexcept(noexcept(allocator_type{}))
+
124 : adjacency_matrix{0u} {
+
125 }
-
121
-
- - +
126
+
+
131 explicit adjacency_matrix(const allocator_type &allocator) noexcept
+
132 : adjacency_matrix{0u, allocator} {}
-
128
-
- -
136 : matrix{vertices * vertices, allocator},
-
137 vert{vertices} {}
+
133
+
+ +
141 : matrix{vertices * vertices, allocator},
+
142 vert{vertices} {}
-
138
- -
141
-
- -
148 : matrix{other.matrix, allocator},
-
149 vert{other.vert} {}
+
143
+ +
146
+
+
152 adjacency_matrix(const adjacency_matrix &other, const allocator_type &allocator)
+
153 : matrix{other.matrix, allocator},
+
154 vert{other.vert} {}
-
150
- -
153
-
- -
160 : matrix{std::move(other.matrix), allocator},
-
161 vert{other.vert} {}
+
155
+
157 adjacency_matrix(adjacency_matrix &&) noexcept = default;
+
158
+
+ +
165 : matrix{std::move(other.matrix), allocator},
+
166 vert{other.vert} {}
-
162
-
164 ~adjacency_matrix() = default;
-
165
- -
171
- -
177
-
- -
183 return matrix.get_allocator();
-
184 }
-
-
185
+
167
+
169 ~adjacency_matrix() = default;
+
170
+ +
176
+ +
182
- -
188 matrix.clear();
-
189 vert = {};
-
190 }
+
187 void swap(adjacency_matrix &other) noexcept {
+
188 using std::swap;
+
189 swap(matrix, other.matrix);
+
190 swap(vert, other.vert);
+
191 }
-
191
-
-
196 void swap(adjacency_matrix &other) noexcept {
-
197 using std::swap;
-
198 swap(matrix, other.matrix);
-
199 swap(vert, other.vert);
-
200 }
+
192
+
+
197 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
198 return matrix.get_allocator();
+
199 }
-
201
-
- -
211 const auto iterable = edges();
-
212 return (iterable.begin() == iterable.end());
-
213 }
+
200
+
+
202 void clear() noexcept {
+
203 matrix.clear();
+
204 vert = {};
+
205 }
-
214
-
- -
220 return vert;
-
221 }
+
206
+
+
215 [[nodiscard]] bool empty() const noexcept {
+
216 const auto iterable = edges();
+
217 return (iterable.begin() == iterable.end());
+
218 }
-
222
-
- -
228 return {0u, vert};
-
229 }
+
219
+
+
224 [[nodiscard]] size_type size() const noexcept {
+
225 return vert;
+
226 }
-
230
-
- -
236 const auto it = matrix.cbegin();
-
237 const auto sz = matrix.size();
-
238 return {{it, vert, 0u, sz, 1u}, {it, vert, sz, sz, 1u}};
-
239 }
+
227
+
+
232 [[nodiscard]] iterable_adaptor<vertex_iterator> vertices() const noexcept {
+
233 return {0u, vert};
+
234 }
-
240
-
- -
247 const auto it = matrix.cbegin();
-
248 const auto from = vertex * vert;
-
249 const auto to = from + vert;
-
250 return {{it, vert, from, to, 1u}, {it, vert, to, to, 1u}};
-
251 }
+
235
+
+
240 [[nodiscard]] iterable_adaptor<edge_iterator> edges() const noexcept {
+
241 const auto it = matrix.cbegin();
+
242 const auto sz = matrix.size();
+
243 return {{it, vert, 0u, sz, 1u}, {it, vert, sz, sz, 1u}};
+
244 }
-
252
-
- -
259 const auto it = matrix.cbegin();
-
260 const auto from = vertex;
-
261 const auto to = vert * vert + from;
-
262 return {{it, vert, from, to, vert}, {it, vert, to, to, vert}};
-
263 }
+
245
+
+
251 [[nodiscard]] iterable_adaptor<out_edge_iterator> out_edges(const vertex_type vertex) const noexcept {
+
252 const auto it = matrix.cbegin();
+
253 const auto from = vertex * vert;
+
254 const auto to = from + vert;
+
255 return {{it, vert, from, to, 1u}, {it, vert, to, to, 1u}};
+
256 }
-
264
-
- - -
271
-
272 for(auto [lhs, rhs]: edges()) {
-
273 other.insert(lhs, rhs);
-
274 }
-
275
-
276 other.swap(*this);
-
277 }
+
257
+
+
263 [[nodiscard]] iterable_adaptor<in_edge_iterator> in_edges(const vertex_type vertex) const noexcept {
+
264 const auto it = matrix.cbegin();
+
265 const auto from = vertex;
+
266 const auto to = vert * vert + from;
+
267 return {{it, vert, from, to, vert}, {it, vert, to, to, vert}};
+
268 }
-
278
-
-
287 std::pair<edge_iterator, bool> insert(const vertex_type lhs, const vertex_type rhs) {
-
288 const auto pos = lhs * vert + rhs;
-
289
-
290 if constexpr(std::is_same_v<graph_category, undirected_tag>) {
-
291 const auto rev = rhs * vert + lhs;
-
292 ENTT_ASSERT(matrix[pos] == matrix[rev], "Something went really wrong");
-
293 matrix[rev] = 1u;
-
294 }
-
295
-
296 const auto inserted = !std::exchange(matrix[pos], 1u);
-
297 return {edge_iterator{matrix.cbegin(), vert, pos, matrix.size(), 1u}, inserted};
-
298 }
+
269
+
+ + +
276
+
277 for(auto [lhs, rhs]: edges()) {
+
278 other.insert(lhs, rhs);
+
279 }
+
280
+
281 other.swap(*this);
+
282 }
-
299
-
- -
307 const auto pos = lhs * vert + rhs;
-
308
-
309 if constexpr(std::is_same_v<graph_category, undirected_tag>) {
-
310 const auto rev = rhs * vert + lhs;
-
311 ENTT_ASSERT(matrix[pos] == matrix[rev], "Something went really wrong");
-
312 matrix[rev] = 0u;
-
313 }
-
314
-
315 return std::exchange(matrix[pos], 0u);
-
316 }
+
283
+
+
292 std::pair<edge_iterator, bool> insert(const vertex_type lhs, const vertex_type rhs) {
+
293 const auto pos = lhs * vert + rhs;
+
294
+
295 if constexpr(std::is_same_v<graph_category, undirected_tag>) {
+
296 const auto rev = rhs * vert + lhs;
+
297 ENTT_ASSERT(matrix[pos] == matrix[rev], "Something went really wrong");
+
298 matrix[rev] = 1u;
+
299 }
+
300
+
301 const auto inserted = !std::exchange(matrix[pos], 1u);
+
302 return {edge_iterator{matrix.cbegin(), vert, pos, matrix.size(), 1u}, inserted};
+
303 }
-
317
-
-
324 [[nodiscard]] bool contains(const vertex_type lhs, const vertex_type rhs) const {
-
325 const auto pos = lhs * vert + rhs;
-
326 return pos < matrix.size() && matrix[pos];
-
327 }
+
304
+
+
311 size_type erase(const vertex_type lhs, const vertex_type rhs) {
+
312 const auto pos = lhs * vert + rhs;
+
313
+
314 if constexpr(std::is_same_v<graph_category, undirected_tag>) {
+
315 const auto rev = rhs * vert + lhs;
+
316 ENTT_ASSERT(matrix[pos] == matrix[rev], "Something went really wrong");
+
317 matrix[rev] = 0u;
+
318 }
+
319
+
320 return std::exchange(matrix[pos], 0u);
+
321 }
-
328
-
329private:
-
330 container_type matrix;
-
331 size_type vert;
-
332};
+
322
+
+
329 [[nodiscard]] bool contains(const vertex_type lhs, const vertex_type rhs) const {
+
330 const auto pos = lhs * vert + rhs;
+
331 return pos < matrix.size() && matrix[pos];
+
332 }
333
-
334} // namespace entt
-
335
-
336#endif
-
Basic implementation of a directed adjacency matrix.
-
std::pair< edge_iterator, bool > insert(const vertex_type lhs, const vertex_type rhs)
Inserts an edge into the adjacency matrix, if it does not exist.
+
334private:
+
335 container_type matrix;
+
336 size_type vert;
+
337};
+
+
338
+
339} // namespace entt
+
340
+
341#endif
+
Basic implementation of a directed adjacency matrix.
+
std::pair< edge_iterator, bool > insert(const vertex_type lhs, const vertex_type rhs)
Inserts an edge into the adjacency matrix, if it does not exist.
adjacency_matrix(const adjacency_matrix &)=default
Default copy constructor.
-
adjacency_matrix() noexcept(noexcept(allocator_type{}))
Default constructor.
-
Category graph_category
Graph category tag.
-
bool empty() const noexcept
Returns true if an adjacency matrix is empty, false otherwise.
-
iterable_adaptor< out_edge_iterator > out_edges(const vertex_type vertex) const noexcept
Returns an iterable object to visit all out-edges of a vertex.
-
internal::edge_iterator< typename container_type::const_iterator > edge_iterator
Edge iterator type.
-
void swap(adjacency_matrix &other) noexcept
Exchanges the contents with those of a given adjacency matrix.
-
size_type size() const noexcept
Returns the number of vertices.
-
std::size_t size_type
Unsigned integer type.
-
Allocator allocator_type
Allocator type.
+
iota_iterator< vertex_type > vertex_iterator
Vertex iterator type.
+
adjacency_matrix() noexcept(noexcept(allocator_type{}))
Default constructor.
+
Category graph_category
Graph category tag.
+
bool empty() const noexcept
Returns true if an adjacency matrix is empty, false otherwise.
+
iterable_adaptor< out_edge_iterator > out_edges(const vertex_type vertex) const noexcept
Returns an iterable object to visit all out-edges of a vertex.
+
internal::edge_iterator< typename container_type::const_iterator > edge_iterator
Edge iterator type.
+ +
size_type size() const noexcept
Returns the number of vertices.
+
std::size_t size_type
Unsigned integer type.
+
Allocator allocator_type
Allocator type.
adjacency_matrix & operator=(adjacency_matrix &&) noexcept=default
Default move assignment operator.
-
bool contains(const vertex_type lhs, const vertex_type rhs) const
Checks if an adjacency matrix contains a given edge.
-
void clear() noexcept
Clears the adjacency matrix.
-
adjacency_matrix(const size_type vertices, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator and user supplied number of vertices.
-
edge_iterator out_edge_iterator
Out-edge iterator type.
-
iterable_adaptor< in_edge_iterator > in_edges(const vertex_type vertex) const noexcept
Returns an iterable object to visit all in-edges of a vertex.
-
std::pair< vertex_type, vertex_type > edge_type
Edge type.
+
bool contains(const vertex_type lhs, const vertex_type rhs) const
Checks if an adjacency matrix contains a given edge.
+
void clear() noexcept
Clears the adjacency matrix.
+
adjacency_matrix(const size_type vertices, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator and user supplied number of vertices.
+
edge_iterator out_edge_iterator
Out-edge iterator type.
+
iterable_adaptor< in_edge_iterator > in_edges(const vertex_type vertex) const noexcept
Returns an iterable object to visit all in-edges of a vertex.
+
std::pair< vertex_type, vertex_type > edge_type
Edge type.
~adjacency_matrix()=default
Default destructor.
-
iterable_adaptor< vertex_iterator > vertices() const noexcept
Returns an iterable object to visit all vertices of a matrix.
+
adjacency_matrix & operator=(const adjacency_matrix &)=default
Default copy assignment operator.
-
iterable_adaptor< edge_iterator > edges() const noexcept
Returns an iterable object to visit all edges of a matrix.
-
edge_iterator in_edge_iterator
In-edge iterator type.
-
void resize(const size_type vertices)
Resizes an adjacency matrix.
-
size_type vertex_type
Vertex type.
-
adjacency_matrix(const adjacency_matrix &other, const allocator_type &allocator)
Allocator-extended copy constructor.
+
iterable_adaptor< edge_iterator > edges() const noexcept
Returns an iterable object to visit all edges of a matrix.
+
edge_iterator in_edge_iterator
In-edge iterator type.
+
void resize(const size_type vertices)
Resizes an adjacency matrix.
+
size_type vertex_type
Vertex type.
+
adjacency_matrix(const adjacency_matrix &other, const allocator_type &allocator)
Allocator-extended copy constructor.
adjacency_matrix(adjacency_matrix &&) noexcept=default
Default move constructor.
-
size_type erase(const vertex_type lhs, const vertex_type rhs)
Removes the edge associated with a pair of given vertices.
-
adjacency_matrix(const allocator_type &allocator) noexcept
Constructs an empty container with a given allocator.
-
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
+
size_type erase(const vertex_type lhs, const vertex_type rhs)
Removes the edge associated with a pair of given vertices.
+
adjacency_matrix(const allocator_type &allocator) noexcept
Constructs an empty container with a given allocator.
+
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
Plain iota iterator (waiting for C++20).
Definition iterator.hpp:56
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
Utility class to create an iterable object from a pair of iterators.
Definition iterator.hpp:141
+
diff --git a/adl__pointer_8hpp_source.html b/adl__pointer_8hpp_source.html index 2397b7e64..3800cb1d7 100644 --- a/adl__pointer_8hpp_source.html +++ b/adl__pointer_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/adl_pointer.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
adl_pointer.hpp
@@ -87,14 +95,14 @@ $(function() { codefold.init(0); });
2#define ENTT_META_ADL_POINTER_HPP
3
4namespace entt {
-
5
+
5
12template<typename Type>
13decltype(auto) dereference_meta_pointer_like(const Type &value) {
14 return *value;
15}
-
16
+
16
21template<typename Type>
@@ -116,7 +124,8 @@ $(function() { codefold.init(0); });
+
diff --git a/algorithm_8hpp_source.html b/algorithm_8hpp_source.html index c79824b5e..ded0e39e8 100644 --- a/algorithm_8hpp_source.html +++ b/algorithm_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/algorithm.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
algorithm.hpp
@@ -94,99 +102,100 @@ $(function() { codefold.init(0); });
9#include "utility.hpp"
10
11namespace entt {
-
12
+
12
21struct std_sort {
35 template<typename It, typename Compare = std::less<>, typename... Args>
-
36 void operator()(It first, It last, Compare compare = Compare{}, Args &&...args) const {
-
37 std::sort(std::forward<Args>(args)..., std::move(first), std::move(last), std::move(compare));
+
36 void operator()(It first, It last, Compare compare = Compare{}, Args &&...args) const {
+
37 std::sort(std::forward<Args>(args)..., std::move(first), std::move(last), std::move(compare));
38 }
39};
-
40
+
40
54 template<typename It, typename Compare = std::less<>>
-
55 void operator()(It first, It last, Compare compare = Compare{}) const {
+
55 void operator()(It first, It last, Compare compare = Compare{}) const {
56 if(first < last) {
-
57 for(auto it = first + 1; it < last; ++it) {
-
58 auto value = std::move(*it);
-
59 auto pre = it;
+
57 for(auto it = first + 1; it < last; ++it) {
+
58 auto value = std::move(*it);
+
59 auto pre = it;
60
61 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
-
62 for(; pre > first && compare(value, *(pre - 1)); --pre) {
-
63 *pre = std::move(*(pre - 1));
+
62 for(; pre > first && compare(value, *(pre - 1)); --pre) {
+
63 *pre = std::move(*(pre - 1));
64 }
65 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
66
-
67 *pre = std::move(value);
+
67 *pre = std::move(value);
68 }
69 }
70 }
71};
-
72
+
72
78template<std::size_t Bit, std::size_t N>
79struct radix_sort {
-
80 static_assert((N % Bit) == 0, "The maximum number of bits to sort must be a multiple of the number of bits processed per pass");
-
81
+
80 static_assert((N % Bit) == 0, "The maximum number of bits to sort must be a multiple of the number of bits processed per pass");
+
81
97 template<typename It, typename Getter = identity>
-
98 void operator()(It first, It last, Getter getter = Getter{}) const {
+
98 void operator()(It first, It last, Getter getter = Getter{}) const {
99 if(first < last) {
-
100 constexpr auto passes = N / Bit;
+
100 constexpr auto passes = N / Bit;
101
102 using value_type = typename std::iterator_traits<It>::value_type;
-
103 std::vector<value_type> aux(std::distance(first, last));
-
104
-
105 auto part = [getter = std::move(getter)](auto from, auto to, auto out, auto start) {
-
106 constexpr auto mask = (1 << Bit) - 1;
-
107 constexpr auto buckets = 1 << Bit;
-
108
-
109 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
-
110 std::size_t count[buckets]{};
-
111
-
112 for(auto it = from; it != to; ++it) {
-
113 ++count[(getter(*it) >> start) & mask];
-
114 }
-
115
-
116 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
-
117 std::size_t index[buckets]{};
-
118
-
119 for(std::size_t pos{}, end = buckets - 1u; pos < end; ++pos) {
-
120 index[pos + 1u] = index[pos] + count[pos];
-
121 }
-
122
-
123 for(auto it = from; it != to; ++it) {
-
124 out[index[(getter(*it) >> start) & mask]++] = std::move(*it);
-
125 }
-
126 };
-
127
-
128 for(std::size_t pass = 0; pass < (passes & ~1); pass += 2) {
-
129 part(first, last, aux.begin(), pass * Bit);
-
130 part(aux.begin(), aux.end(), first, (pass + 1) * Bit);
-
131 }
-
132
-
133 if constexpr(passes & 1) {
-
134 part(first, last, aux.begin(), (passes - 1) * Bit);
-
135 std::move(aux.begin(), aux.end(), first);
-
136 }
-
137 }
-
138 }
+
103 using difference_type = typename std::iterator_traits<It>::difference_type;
+
104 std::vector<value_type> aux(static_cast<std::size_t>(std::distance(first, last)));
+
105
+
106 auto part = [getter = std::move(getter)](auto from, auto to, auto out, auto start) {
+
107 constexpr auto mask = (1 << Bit) - 1;
+
108 constexpr auto buckets = 1 << Bit;
+
109
+
110 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays, misc-const-correctness)
+
111 std::size_t count[buckets]{};
+
112
+
113 for(auto it = from; it != to; ++it) {
+
114 ++count[(getter(*it) >> start) & mask];
+
115 }
+
116
+
117 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
+
118 std::size_t index[buckets]{};
+
119
+
120 for(std::size_t pos{}, end = buckets - 1u; pos < end; ++pos) {
+
121 index[pos + 1u] = index[pos] + count[pos];
+
122 }
+
123
+
124 for(auto it = from; it != to; ++it) {
+
125 const auto pos = index[(getter(*it) >> start) & mask]++;
+
126 out[static_cast<difference_type>(pos)] = std::move(*it);
+
127 }
+
128 };
+
129
+
130 for(std::size_t pass = 0; pass < (passes & ~1u); pass += 2) {
+
131 part(first, last, aux.begin(), pass * Bit);
+
132 part(aux.begin(), aux.end(), first, (pass + 1) * Bit);
+
133 }
+
134
+
135 if constexpr(passes & 1) {
+
136 part(first, last, aux.begin(), (passes - 1) * Bit);
+
137 std::move(aux.begin(), aux.end(), first);
+
138 }
+
139 }
+
140 }
-
139};
+
141};
-
140
-
141} // namespace entt
142
-
143#endif
+
143} // namespace entt
+
144
+
145#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
Function object for performing insertion sort.
Definition algorithm.hpp:42
void operator()(It first, It last, Compare compare=Compare{}) const
Sorts the elements in a range.
Definition algorithm.hpp:55
Function object for performing LSD radix sort.
Definition algorithm.hpp:79
@@ -196,7 +205,8 @@ $(function() { codefold.init(0); });
+
diff --git a/annotated.html b/annotated.html index ade06e9d7..10e3c21b5 100644 --- a/annotated.html +++ b/annotated.html @@ -3,13 +3,15 @@ - + EnTT: Class List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,24 +33,35 @@
- + +
+
+ +
diff --git a/any_8hpp_source.html b/any_8hpp_source.html index d0525b67f..8da46c436 100644 --- a/any_8hpp_source.html +++ b/any_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/any.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
any.hpp
@@ -97,477 +105,507 @@ $(function() { codefold.init(0); });
12#include "type_traits.hpp"
13
14namespace entt {
-
15
+
15
17namespace internal {
18
-
19enum class any_operation : std::uint8_t {
-
20 copy,
-
21 move,
-
22 transfer,
-
23 assign,
-
24 destroy,
-
25 compare,
+
19enum class any_request : std::uint8_t {
+
20 transfer,
+
21 assign,
+
22 destroy,
+
23 compare,
+
24 copy,
+
25 move,
26 get
27};
28
29} // namespace internal
-
-
33enum class any_policy : std::uint8_t {
-
35 owner,
-
37 ref,
-
39 cref
-
40};
-
+
31
+
37template<std::size_t Len, std::size_t Align>
+
+
38class basic_any {
+
39 using request = internal::any_request;
+
40 using vtable_type = const void *(const request, const basic_any &, const void *);
41
-
47template<std::size_t Len, std::size_t Align>
-
-
48class basic_any {
-
49 using operation = internal::any_operation;
-
50 using vtable_type = const void *(const operation, const basic_any &, const void *);
-
51
-
52 struct storage_type {
-
53 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
-
54 alignas(Align) std::byte data[Len + static_cast<std::size_t>(Len == 0u)];
-
55 };
-
56
-
57 template<typename Type>
-
58 static constexpr bool in_situ = (Len != 0u) && alignof(Type) <= Align && sizeof(Type) <= Len && std::is_nothrow_move_constructible_v<Type>;
-
59
-
60 template<typename Type>
-
61 static const void *basic_vtable(const operation op, const basic_any &value, const void *other) {
-
62 static_assert(!std::is_void_v<Type> && std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, Type>, "Invalid type");
-
63 const Type *elem = nullptr;
-
64
-
65 if constexpr(in_situ<Type>) {
-
66 elem = (value.mode == any_policy::owner) ? reinterpret_cast<const Type *>(&value.storage) : static_cast<const Type *>(value.instance);
-
67 } else {
-
68 elem = static_cast<const Type *>(value.instance);
-
69 }
-
70
-
71 switch(op) {
-
72 case operation::copy:
-
73 if constexpr(std::is_copy_constructible_v<Type>) {
-
74 static_cast<basic_any *>(const_cast<void *>(other))->initialize<Type>(*elem);
-
75 }
-
76 break;
-
77 case operation::move:
-
78 if constexpr(in_situ<Type>) {
-
79 if(value.mode == any_policy::owner) {
-
80 return ::new(&static_cast<basic_any *>(const_cast<void *>(other))->storage) Type{std::move(*const_cast<Type *>(elem))};
-
81 }
-
82 }
-
83
-
84 return (static_cast<basic_any *>(const_cast<void *>(other))->instance = std::exchange(const_cast<basic_any &>(value).instance, nullptr));
-
85 case operation::transfer:
-
86 if constexpr(std::is_move_assignable_v<Type>) {
-
87 *const_cast<Type *>(elem) = std::move(*static_cast<Type *>(const_cast<void *>(other)));
-
88 return other;
-
89 }
-
90 [[fallthrough]];
-
91 case operation::assign:
-
92 if constexpr(std::is_copy_assignable_v<Type>) {
-
93 *const_cast<Type *>(elem) = *static_cast<const Type *>(other);
-
94 return other;
+
42 struct storage_type {
+
43 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
+
44 alignas(Align) std::byte data[Len + static_cast<std::size_t>(Len == 0u)];
+
45 };
+
46
+
47 template<typename Type>
+
48 // NOLINTNEXTLINE(bugprone-sizeof-expression)
+
49 static constexpr bool in_situ = (Len != 0u) && alignof(Type) <= Align && sizeof(Type) <= Len && std::is_nothrow_move_constructible_v<Type>;
+
50
+
51 template<typename Type>
+
52 static const void *basic_vtable(const request req, const basic_any &value, const void *other) {
+
53 static_assert(!std::is_void_v<Type> && std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, Type>, "Invalid type");
+
54 const Type *elem = nullptr;
+
55
+
56 if constexpr(in_situ<Type>) {
+
57 elem = (value.mode == any_policy::embedded) ? reinterpret_cast<const Type *>(&value.storage) : static_cast<const Type *>(value.instance);
+
58 } else {
+
59 elem = static_cast<const Type *>(value.instance);
+
60 }
+
61
+
62 switch(req) {
+
63 case request::transfer:
+
64 if constexpr(std::is_move_assignable_v<Type>) {
+
65 // NOLINTNEXTLINE(bugprone-casting-through-void)
+
66 *const_cast<Type *>(elem) = std::move(*static_cast<Type *>(const_cast<void *>(other)));
+
67 return other;
+
68 }
+
69 [[fallthrough]];
+
70 case request::assign:
+
71 if constexpr(std::is_copy_assignable_v<Type>) {
+
72 *const_cast<Type *>(elem) = *static_cast<const Type *>(other);
+
73 return other;
+
74 }
+
75 break;
+
76 case request::destroy:
+
77 if constexpr(in_situ<Type>) {
+
78 (value.mode == any_policy::embedded) ? elem->~Type() : (delete elem);
+
79 } else if constexpr(std::is_array_v<Type>) {
+
80 delete[] elem;
+
81 } else {
+
82 delete elem;
+
83 }
+
84 break;
+
85 case request::compare:
+
86 if constexpr(!std::is_function_v<Type> && !std::is_array_v<Type> && is_equality_comparable_v<Type>) {
+
87 return (*elem == *static_cast<const Type *>(other)) ? other : nullptr;
+
88 } else {
+
89 return (elem == other) ? other : nullptr;
+
90 }
+
91 case request::copy:
+
92 if constexpr(std::is_copy_constructible_v<Type>) {
+
93 // NOLINTNEXTLINE(bugprone-casting-through-void)
+
94 static_cast<basic_any *>(const_cast<void *>(other))->initialize<Type>(*elem);
95 }
96 break;
-
97 case operation::destroy:
-
98 if constexpr(in_situ<Type>) {
-
99 elem->~Type();
-
100 } else if constexpr(std::is_array_v<Type>) {
-
101 delete[] elem;
-
102 } else {
-
103 delete elem;
-
104 }
-
105 break;
-
106 case operation::compare:
-
107 if constexpr(!std::is_function_v<Type> && !std::is_array_v<Type> && is_equality_comparable_v<Type>) {
-
108 return *elem == *static_cast<const Type *>(other) ? other : nullptr;
-
109 } else {
-
110 return (elem == other) ? other : nullptr;
-
111 }
-
112 case operation::get:
-
113 return elem;
-
114 }
-
115
-
116 return nullptr;
-
117 }
-
118
-
119 template<typename Type, typename... Args>
-
120 void initialize([[maybe_unused]] Args &&...args) {
-
121 using plain_type = std::remove_cv_t<std::remove_reference_t<Type>>;
-
122 info = &type_id<plain_type>();
-
123
-
124 if constexpr(!std::is_void_v<Type>) {
- -
126
-
127 if constexpr(std::is_lvalue_reference_v<Type>) {
-
128 static_assert((std::is_lvalue_reference_v<Args> && ...) && (sizeof...(Args) == 1u), "Invalid arguments");
-
129 mode = std::is_const_v<std::remove_reference_t<Type>> ? any_policy::cref : any_policy::ref;
-
130 instance = (std::addressof(args), ...);
-
131 } else if constexpr(in_situ<plain_type>) {
-
132 if constexpr(std::is_aggregate_v<plain_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<plain_type>)) {
-
133 ::new(&storage) plain_type{std::forward<Args>(args)...};
-
134 } else {
-
135 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
-
136 ::new(&storage) plain_type(std::forward<Args>(args)...);
-
137 }
-
138 } else {
-
139 if constexpr(std::is_aggregate_v<plain_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<plain_type>)) {
-
140 instance = new plain_type{std::forward<Args>(args)...};
-
141 } else if constexpr(std::is_array_v<plain_type>) {
-
142 static_assert(sizeof...(Args) == 0u, "Invalid arguments");
-
143 instance = new plain_type[std::extent_v<plain_type>]();
-
144 } else {
-
145 instance = new plain_type(std::forward<Args>(args)...);
-
146 }
-
147 }
-
148 }
-
149 }
-
150
- -
152 : instance{other.data()},
-
153 info{other.info},
-
154 vtable{other.vtable},
-
155 mode{pol} {}
-
156
-
157public:
-
159 static constexpr auto length = Len;
-
161 static constexpr auto alignment = Align;
-
162
-
-
164 constexpr basic_any() noexcept
-
165 : basic_any{std::in_place_type<void>} {}
+
97 case request::move:
+
98 ENTT_ASSERT(value.mode == any_policy::embedded, "Unexpected policy");
+
99 if constexpr(in_situ<Type>) {
+
100 // NOLINTNEXTLINE(bugprone-casting-through-void, bugprone-multi-level-implicit-pointer-conversion)
+
101 return ::new(&static_cast<basic_any *>(const_cast<void *>(other))->storage) Type{std::move(*const_cast<Type *>(elem))};
+
102 }
+
103 [[fallthrough]];
+
104 case request::get:
+
105 ENTT_ASSERT(value.mode == any_policy::embedded, "Unexpected policy");
+
106 if constexpr(in_situ<Type>) {
+
107 // NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
+
108 return elem;
+
109 }
+
110 }
+
111
+
112 return nullptr;
+
113 }
+
114
+
115 template<typename Type, typename... Args>
+
116 void initialize([[maybe_unused]] Args &&...args) {
+
117 if constexpr(!std::is_void_v<Type>) {
+
118 using plain_type = std::remove_cv_t<std::remove_reference_t<Type>>;
+
119
+
120 info = &type_id<plain_type>();
+
121 vtable = basic_vtable<plain_type>;
+
122
+
123 if constexpr(std::is_lvalue_reference_v<Type>) {
+
124 static_assert((std::is_lvalue_reference_v<Args> && ...) && (sizeof...(Args) == 1u), "Invalid arguments");
+
125 mode = std::is_const_v<std::remove_reference_t<Type>> ? any_policy::cref : any_policy::ref;
+
126 // NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
+
127 instance = (std::addressof(args), ...);
+
128 } else if constexpr(in_situ<plain_type>) {
+ +
130
+
131 if constexpr(std::is_aggregate_v<plain_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<plain_type>)) {
+
132 ::new(&storage) plain_type{std::forward<Args>(args)...};
+
133 } else {
+
134 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
+
135 ::new(&storage) plain_type(std::forward<Args>(args)...);
+
136 }
+
137 } else {
+
138 mode = any_policy::dynamic;
+
139
+
140 if constexpr(std::is_aggregate_v<plain_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<plain_type>)) {
+
141 instance = new plain_type{std::forward<Args>(args)...};
+
142 } else if constexpr(std::is_array_v<plain_type>) {
+
143 static_assert(sizeof...(Args) == 0u, "Invalid arguments");
+
144 instance = new plain_type[std::extent_v<plain_type>]();
+
145 } else {
+
146 instance = new plain_type(std::forward<Args>(args)...);
+
147 }
+
148 }
+
149 }
+
150 }
+
151
+
152 basic_any(const basic_any &other, const any_policy pol) noexcept
+
153 : instance{other.data()},
+
154 info{other.info},
+
155 vtable{other.vtable},
+
156 mode{pol} {}
+
157
+
158public:
+
160 static constexpr auto length = Len;
+
162 static constexpr auto alignment = Align;
+
163
+
+
165 constexpr basic_any() noexcept
+
166 : basic_any{std::in_place_type<void>} {}
-
166
-
173 template<typename Type, typename... Args>
-
-
174 explicit basic_any(std::in_place_type_t<Type>, Args &&...args)
-
175 : instance{},
-
176 info{},
-
177 vtable{},
-
178 mode{any_policy::owner} {
-
179 initialize<Type>(std::forward<Args>(args)...);
-
180 }
+
167
+
174 template<typename Type, typename... Args>
+
+
175 explicit basic_any(std::in_place_type_t<Type>, Args &&...args)
+
176 : instance{} {
+
177 initialize<Type>(std::forward<Args>(args)...);
+
178 }
-
181
-
187 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
-
-
188 basic_any(Type &&value)
-
189 : basic_any{std::in_place_type<std::decay_t<Type>>, std::forward<Type>(value)} {}
+
179
+
185 template<typename Type>
+
+
186 explicit basic_any(std::in_place_t, Type *value)
+
187 : instance{} {
+
188 static_assert(!std::is_const_v<Type> && !std::is_void_v<Type>, "Non-const non-void pointer required");
+
189
+
190 if(value != nullptr) {
+
191 initialize<Type &>(*value);
+
192 mode = any_policy::dynamic;
+
193 }
+
194 }
-
190
-
- -
196 : basic_any{} {
-
197 if(other.vtable) {
-
198 other.vtable(operation::copy, other, this);
-
199 }
-
200 }
+
195
+
201 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+
+
202 basic_any(Type &&value)
+
203 : basic_any{std::in_place_type<std::decay_t<Type>>, std::forward<Type>(value)} {}
-
201
-
- -
207 : instance{},
-
208 info{other.info},
-
209 vtable{other.vtable},
-
210 mode{other.mode} {
-
211 if(other.vtable) {
-
212 other.vtable(operation::move, other, this);
+
204
+
+
209 basic_any(const basic_any &other)
+
210 : basic_any{} {
+
211 if(other.vtable) {
+
212 other.vtable(request::copy, other, this);
213 }
214 }
-
215
-
- -
218 if(vtable && (mode == any_policy::owner)) {
-
219 vtable(operation::destroy, *this, nullptr);
-
220 }
-
221 }
+
215
+
+
220 basic_any(basic_any &&other) noexcept
+
221 : instance{},
+
222 info{other.info},
+
223 vtable{other.vtable},
+
224 mode{other.mode} {
+
225 if(other.mode == any_policy::embedded) {
+
226 other.vtable(request::move, other, this);
+
227 } else if(other.mode != any_policy::empty) {
+
228 instance = std::exchange(other.instance, nullptr);
+
229 }
+
230 }
-
222
-
- -
229 if(this != &other) {
-
230 reset();
-
231
-
232 if(other.vtable) {
-
233 other.vtable(operation::copy, other, this);
-
234 }
-
235 }
-
236
-
237 return *this;
-
238 }
+
231
+
+ +
234 if(owner()) {
+
235 vtable(request::destroy, *this, nullptr);
+
236 }
+
237 }
-
239
-
- -
246 ENTT_ASSERT(this != &other, "Self move assignment");
+
238
+
+
244 basic_any &operator=(const basic_any &other) {
+
245 if(this != &other) {
+
246 reset();
247
-
248 reset();
-
249
-
250 if(other.vtable) {
-
251 other.vtable(operation::move, other, this);
-
252 info = other.info;
-
253 vtable = other.vtable;
-
254 mode = other.mode;
-
255 }
-
256
-
257 return *this;
-
258 }
+
248 if(other.vtable) {
+
249 other.vtable(request::copy, other, this);
+
250 }
+
251 }
+
252
+
253 return *this;
+
254 }
-
259
-
266 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
-
-
267 basic_any &operator=(Type &&value) {
-
268 emplace<std::decay_t<Type>>(std::forward<Type>(value));
-
269 return *this;
-
270 }
+
255
+
+
265 basic_any &operator=(basic_any &&other) noexcept {
+
266 reset();
+
267
+
268 if(other.mode == any_policy::embedded) {
+
269 other.vtable(request::move, other, this);
+
270 } else if(other.mode != any_policy::empty) {
+
271 instance = std::exchange(other.instance, nullptr);
+
272 }
+
273
+
274 info = other.info;
+
275 vtable = other.vtable;
+
276 mode = other.mode;
+
277
+
278 return *this;
+
279 }
-
271
-
- -
277 return *info;
-
278 }
+
280
+
287 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+
+
288 basic_any &operator=(Type &&value) {
+
289 emplace<std::decay_t<Type>>(std::forward<Type>(value));
+
290 return *this;
+
291 }
-
279
-
-
284 [[nodiscard]] const void *data() const noexcept {
-
285 return vtable ? vtable(operation::get, *this, nullptr) : nullptr;
-
286 }
+
292
+
+
297 [[nodiscard]] const type_info &type() const noexcept {
+
298 return (info == nullptr) ? type_id<void>() : *info;
+
299 }
-
287
-
-
293 [[nodiscard]] const void *data(const type_info &req) const noexcept {
-
294 return *info == req ? data() : nullptr;
-
295 }
+
300
+
+
305 [[nodiscard]] const void *data() const noexcept {
+
306 return (mode == any_policy::embedded) ? vtable(request::get, *this, nullptr) : instance;
+
307 }
-
296
-
-
301 [[nodiscard]] void *data() noexcept {
-
302 return mode == any_policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data());
-
303 }
+
308
+
+
314 [[nodiscard]] const void *data(const type_info &req) const noexcept {
+
315 return (type() == req) ? data() : nullptr;
+
316 }
-
304
-
-
310 [[nodiscard]] void *data(const type_info &req) noexcept {
-
311 return mode == any_policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data(req));
-
312 }
-
-
313
-
320 template<typename Type, typename... Args>
-
-
321 void emplace(Args &&...args) {
-
322 reset();
-
323 initialize<Type>(std::forward<Args>(args)...);
+
317
+
+
322 [[nodiscard]] void *data() noexcept {
+
323 return mode == any_policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data());
324 }
-
325
+
325
-
331 bool assign(const basic_any &other) {
-
332 if(vtable && mode != any_policy::cref && *info == *other.info) {
-
333 return (vtable(operation::assign, *this, other.data()) != nullptr);
-
334 }
-
335
-
336 return false;
-
337 }
+
331 [[nodiscard]] void *data(const type_info &req) noexcept {
+
332 return mode == any_policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data(req));
+
333 }
-
338
-
- -
341 if(vtable && mode != any_policy::cref && *info == *other.info) {
-
342 if(auto *val = other.data(); val) {
-
343 return (vtable(operation::transfer, *this, val) != nullptr);
-
344 }
-
345
-
346 return (vtable(operation::assign, *this, std::as_const(other).data()) != nullptr);
-
347 }
-
348
-
349 return false;
-
350 }
+
334
+
341 template<typename Type, typename... Args>
+
+
342 void emplace(Args &&...args) {
+
343 reset();
+
344 initialize<Type>(std::forward<Args>(args)...);
+
345 }
-
351
-
-
353 void reset() {
-
354 if(vtable && (mode == any_policy::owner)) {
-
355 vtable(operation::destroy, *this, nullptr);
-
356 }
-
357
-
358 // unnecessary but it helps to detect nasty bugs
-
359 ENTT_ASSERT((instance = nullptr) == nullptr, "");
-
360 info = &type_id<void>();
-
361 vtable = nullptr;
-
362 mode = any_policy::owner;
-
363 }
+
346
+
+
352 bool assign(const basic_any &other) {
+
353 if(vtable && mode != any_policy::cref && *info == other.type()) {
+
354 return (vtable(request::assign, *this, other.data()) != nullptr);
+
355 }
+
356
+
357 return false;
+
358 }
-
364
-
-
369 [[nodiscard]] explicit operator bool() const noexcept {
-
370 return vtable != nullptr;
-
371 }
+
359
+
361 // NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved)
+
+
362 bool assign(basic_any &&other) {
+
363 if(vtable && mode != any_policy::cref && *info == other.type()) {
+
364 if(auto *val = other.data(); val) {
+
365 return (vtable(request::transfer, *this, val) != nullptr);
+
366 }
+
367
+
368 return (vtable(request::assign, *this, std::as_const(other).data()) != nullptr);
+
369 }
+
370
+
371 return false;
+
372 }
-
372
-
-
378 [[nodiscard]] bool operator==(const basic_any &other) const noexcept {
-
379 if(vtable && *info == *other.info) {
-
380 return (vtable(operation::compare, *this, other.data()) != nullptr);
-
381 }
-
382
-
383 return (!vtable && !other.vtable);
+
373
+
+
375 void reset() {
+
376 if(owner()) {
+
377 vtable(request::destroy, *this, nullptr);
+
378 }
+
379
+
380 instance = nullptr;
+
381 info = nullptr;
+
382 vtable = nullptr;
+
383 mode = any_policy::empty;
384 }
-
385
-
-
391 [[nodiscard]] bool operator!=(const basic_any &other) const noexcept {
-
392 return !(*this == other);
-
393 }
+
385
+
+
390 [[nodiscard]] explicit operator bool() const noexcept {
+
391 return vtable != nullptr;
+
392 }
-
394
+
393
- -
400 return basic_any{*this, (mode == any_policy::cref ? any_policy::cref : any_policy::ref)};
-
401 }
+
399 [[nodiscard]] bool operator==(const basic_any &other) const noexcept {
+
400 if(vtable && *info == other.type()) {
+
401 return (vtable(request::compare, *this, other.data()) != nullptr);
+
402 }
+
403
+
404 return (!vtable && !other.vtable);
+
405 }
-
402
-
- -
405 return basic_any{*this, any_policy::cref};
-
406 }
-
-
407
+
406
- -
413 return mode;
+
412 [[nodiscard]] bool operator!=(const basic_any &other) const noexcept {
+
413 return !(*this == other);
414 }
-
415
-
416private:
-
417 union {
-
418 const void *instance;
- -
420 };
-
421 const type_info *info;
-
422 vtable_type *vtable;
-
423 any_policy mode;
-
424};
+
415
+
+
420 [[nodiscard]] basic_any as_ref() noexcept {
+
421 return basic_any{*this, (mode == any_policy::cref ? any_policy::cref : any_policy::ref)};
+
422 }
-
425
-
434template<typename Type, std::size_t Len, std::size_t Align>
-
-
435[[nodiscard]] std::remove_const_t<Type> any_cast(const basic_any<Len, Align> &data) noexcept {
-
436 const auto *const instance = any_cast<std::remove_reference_t<Type>>(&data);
-
437 ENTT_ASSERT(instance, "Invalid instance");
-
438 return static_cast<Type>(*instance);
-
439}
+
423
+
+
425 [[nodiscard]] basic_any as_ref() const noexcept {
+
426 return basic_any{*this, any_policy::cref};
+
427 }
-
440
-
442template<typename Type, std::size_t Len, std::size_t Align>
-
-
443[[nodiscard]] std::remove_const_t<Type> any_cast(basic_any<Len, Align> &data) noexcept {
-
444 // forces const on non-reference types to make them work also with wrappers for const references
-
445 auto *const instance = any_cast<std::remove_reference_t<const Type>>(&data);
-
446 ENTT_ASSERT(instance, "Invalid instance");
-
447 return static_cast<Type>(*instance);
-
448}
+
428
+
+
433 [[nodiscard]] bool owner() const noexcept {
+
434 return (mode == any_policy::dynamic || mode == any_policy::embedded);
+
435 }
-
449
-
451template<typename Type, std::size_t Len, std::size_t Align>
-
-
452[[nodiscard]] std::remove_const_t<Type> any_cast(basic_any<Len, Align> &&data) noexcept {
-
453 if constexpr(std::is_copy_constructible_v<std::remove_cv_t<std::remove_reference_t<Type>>>) {
-
454 if(auto *const instance = any_cast<std::remove_reference_t<Type>>(&data); instance) {
-
455 return static_cast<Type>(std::move(*instance));
-
456 }
-
457
-
458 return any_cast<Type>(data);
-
459 } else {
-
460 auto *const instance = any_cast<std::remove_reference_t<Type>>(&data);
-
461 ENTT_ASSERT(instance, "Invalid instance");
-
462 return static_cast<Type>(std::move(*instance));
-
463 }
-
464}
+
436
+
+
441 [[nodiscard]] any_policy policy() const noexcept {
+
442 return mode;
+
443 }
-
465
-
467template<typename Type, std::size_t Len, std::size_t Align>
-
-
468[[nodiscard]] const Type *any_cast(const basic_any<Len, Align> *data) noexcept {
-
469 const auto &info = type_id<std::remove_cv_t<Type>>();
-
470 return static_cast<const Type *>(data->data(info));
-
471}
+
444
+
445private:
+
446 union {
+
447 const void *instance;
+ +
449 };
+
450 const type_info *info{};
+
451 vtable_type *vtable{};
+ +
453};
-
472
-
474template<typename Type, std::size_t Len, std::size_t Align>
-
-
475[[nodiscard]] Type *any_cast(basic_any<Len, Align> *data) noexcept {
-
476 if constexpr(std::is_const_v<Type>) {
-
477 // last attempt to make wrappers for const references return their values
-
478 return any_cast<Type>(&std::as_const(*data));
-
479 } else {
-
480 const auto &info = type_id<std::remove_cv_t<Type>>();
-
481 return static_cast<Type *>(data->data(info));
-
482 }
-
483}
+
454
+
463template<typename Type, std::size_t Len, std::size_t Align>
+
+
464[[nodiscard]] std::remove_const_t<Type> any_cast(const basic_any<Len, Align> &data) noexcept {
+
465 const auto *const instance = any_cast<std::remove_reference_t<Type>>(&data);
+
466 ENTT_ASSERT(instance, "Invalid instance");
+
467 return static_cast<Type>(*instance);
+
468}
-
484
- -
- -
496 return basic_any<Len, Align>{std::in_place_type<Type>, std::forward<Args>(args)...};
-
497}
+
469
+
471template<typename Type, std::size_t Len, std::size_t Align>
+
+
472[[nodiscard]] std::remove_const_t<Type> any_cast(basic_any<Len, Align> &data) noexcept {
+
473 // forces const on non-reference types to make them work also with wrappers for const references
+
474 auto *const instance = any_cast<std::remove_reference_t<const Type>>(&data);
+
475 ENTT_ASSERT(instance, "Invalid instance");
+
476 return static_cast<Type>(*instance);
+
477}
-
498
- -
- -
509 return basic_any<Len, Align>{std::in_place_type<Type &&>, std::forward<Type>(value)};
-
510}
+
478
+
480template<typename Type, std::size_t Len, std::size_t Align>
+
481// NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved)
+
+
482[[nodiscard]] std::remove_const_t<Type> any_cast(basic_any<Len, Align> &&data) noexcept {
+
483 if constexpr(std::is_copy_constructible_v<std::remove_cv_t<std::remove_reference_t<Type>>>) {
+
484 if(auto *const instance = any_cast<std::remove_reference_t<Type>>(&data); instance) {
+
485 return static_cast<Type>(std::move(*instance));
+
486 }
+
487
+
488 return any_cast<Type>(data);
+
489 } else {
+
490 auto *const instance = any_cast<std::remove_reference_t<Type>>(&data);
+
491 ENTT_ASSERT(instance, "Invalid instance");
+
492 return static_cast<Type>(std::move(*instance));
+
493 }
+
494}
-
511
-
512} // namespace entt
-
513
-
514#endif
-
A SBO friendly, type-safe container for single values of any type.
Definition any.hpp:48
-
void reset()
Destroys contained object.
Definition any.hpp:353
-
constexpr basic_any() noexcept
Default constructor.
Definition any.hpp:164
-
basic_any(const basic_any &other)
Copy constructor.
Definition any.hpp:195
-
basic_any(std::in_place_type_t< Type >, Args &&...args)
Constructs a wrapper by directly initializing the new object.
Definition any.hpp:174
-
const void * data() const noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:284
-
bool assign(const basic_any &other)
Assigns a value to the contained object without replacing it.
Definition any.hpp:331
-
bool assign(basic_any &&other)
Assigns a value to the contained object without replacing it.
Definition any.hpp:340
-
static constexpr auto length
Size of the internal storage.
Definition any.hpp:159
-
void emplace(Args &&...args)
Replaces the contained object by creating a new instance directly.
Definition any.hpp:321
-
const type_info & type() const noexcept
Returns the object type if any, type_id<void>() otherwise.
Definition any.hpp:276
-
bool operator!=(const basic_any &other) const noexcept
Checks if two wrappers differ in their content.
Definition any.hpp:391
-
static constexpr auto alignment
Alignment requirement.
Definition any.hpp:161
-
basic_any(basic_any &&other) noexcept
Move constructor.
Definition any.hpp:206
-
any_policy policy() const noexcept
Returns the current mode of an any object.
Definition any.hpp:412
-
basic_any as_ref() noexcept
Aliasing constructor.
Definition any.hpp:399
-
~basic_any()
Frees the internal storage, whatever it means.
Definition any.hpp:217
-
basic_any & operator=(const basic_any &other)
Copy assignment operator.
Definition any.hpp:228
-
void * data(const type_info &req) noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:310
-
basic_any as_ref() const noexcept
Aliasing constructor.
Definition any.hpp:404
-
basic_any & operator=(Type &&value)
Value assignment operator.
Definition any.hpp:267
-
basic_any & operator=(basic_any &&other) noexcept
Move assignment operator.
Definition any.hpp:245
-
bool operator==(const basic_any &other) const noexcept
Checks if two wrappers differ in their content.
Definition any.hpp:378
-
void * data() noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:301
-
basic_any(Type &&value)
Constructs a wrapper from a given value.
Definition any.hpp:188
-
const void * data(const type_info &req) const noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:293
-
Storage implementation.
Definition storage.hpp:230
+
495
+
497template<typename Type, std::size_t Len, std::size_t Align>
+
+
498[[nodiscard]] const Type *any_cast(const basic_any<Len, Align> *data) noexcept {
+
499 const auto &info = type_id<std::remove_cv_t<Type>>();
+
500 return static_cast<const Type *>(data->data(info));
+
501}
+
+
502
+
504template<typename Type, std::size_t Len, std::size_t Align>
+
+
505[[nodiscard]] Type *any_cast(basic_any<Len, Align> *data) noexcept {
+
506 if constexpr(std::is_const_v<Type>) {
+
507 // last attempt to make wrappers for const references return their values
+
508 return any_cast<Type>(&std::as_const(*data));
+
509 } else {
+
510 const auto &info = type_id<std::remove_cv_t<Type>>();
+
511 return static_cast<Type *>(data->data(info));
+
512 }
+
513}
+
+
514
+
524template<typename Type, std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
+
+
525[[nodiscard]] basic_any<Len, Align> make_any(Args &&...args) {
+
526 return basic_any<Len, Align>{std::in_place_type<Type>, std::forward<Args>(args)...};
+
527}
+
+
528
+
537template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type>
+
+
538[[nodiscard]] basic_any<Len, Align> forward_as_any(Type &&value) {
+
539 return basic_any<Len, Align>{std::in_place_type<Type &&>, std::forward<Type>(value)};
+
540}
+
+
541
+
542} // namespace entt
+
543
+
544#endif
+
A SBO friendly, type-safe container for single values of any type.
Definition any.hpp:38
+
void reset()
Destroys contained object.
Definition any.hpp:375
+
constexpr basic_any() noexcept
Default constructor.
Definition any.hpp:165
+
basic_any(const basic_any &other)
Copy constructor.
Definition any.hpp:209
+
basic_any(std::in_place_type_t< Type >, Args &&...args)
Constructs a wrapper by directly initializing the new object.
Definition any.hpp:175
+
const void * data() const noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:305
+
bool owner() const noexcept
Returns true if a wrapper owns its object, false otherwise.
Definition any.hpp:433
+
bool assign(const basic_any &other)
Assigns a value to the contained object without replacing it.
Definition any.hpp:352
+
bool assign(basic_any &&other)
Assigns a value to the contained object without replacing it.
Definition any.hpp:362
+
static constexpr auto length
Definition any.hpp:160
+
void emplace(Args &&...args)
Definition any.hpp:342
+
const type_info & type() const noexcept
Returns the object type if any, type_id<void>() otherwise.
Definition any.hpp:297
+
bool operator!=(const basic_any &other) const noexcept
Checks if two wrappers differ in their content.
Definition any.hpp:412
+
static constexpr auto alignment
Definition any.hpp:162
+
basic_any(basic_any &&other) noexcept
Move constructor.
Definition any.hpp:220
+
any_policy policy() const noexcept
Returns the current mode of an any object.
Definition any.hpp:441
+
basic_any(std::in_place_t, Type *value)
Constructs a wrapper taking ownership of the passed object.
Definition any.hpp:186
+
basic_any as_ref() noexcept
Aliasing constructor.
Definition any.hpp:420
+
~basic_any()
Frees the internal storage, whatever it means.
Definition any.hpp:233
+
basic_any & operator=(const basic_any &other)
Copy assignment operator.
Definition any.hpp:244
+
void * data(const type_info &req) noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:331
+
basic_any as_ref() const noexcept
Aliasing constructor.
Definition any.hpp:425
+
basic_any & operator=(Type &&value)
Value assignment operator.
Definition any.hpp:288
+
basic_any & operator=(basic_any &&other) noexcept
Move assignment operator.
Definition any.hpp:265
+
bool operator==(const basic_any &other) const noexcept
Checks if two wrappers differ in their content.
Definition any.hpp:399
+
void * data() noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:322
+
basic_any(Type &&value)
Constructs a wrapper from a given value.
Definition any.hpp:202
+
const void * data(const type_info &req) const noexcept
Returns an opaque pointer to the contained instance.
Definition any.hpp:314
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
Performs type-safe access to the contained object.
Definition any.hpp:435
-
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:168
-
basic_any< Len, Align > make_any(Args &&...args)
Constructs a wrapper from a given type, passing it all arguments.
Definition any.hpp:495
-
any_policy
Possible modes of an any object.
Definition any.hpp:33
-
@ ref
Aliasing mode, the object points to a non-const element.
-
@ cref
Const aliasing mode, the object points to a const element.
-
@ owner
Default mode, the object owns the contained element.
-
basic_any< Len, Align > forward_as_any(Type &&value)
Forwards its argument and avoids copies for lvalue references.
Definition any.hpp:508
-
Provides a common way to define storage types.
Definition fwd.hpp:227
+
constexpr bool is_equality_comparable_v
Helper variable template.
+
std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
Performs type-safe access to the contained object.
Definition any.hpp:464
+
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:167
+
basic_any< Len, Align > make_any(Args &&...args)
Constructs a wrapper from a given type, passing it all arguments.
Definition any.hpp:525
+
const type_info & type_id() noexcept
Returns the type info object associated to a given type.
+
any_policy
Possible modes of an any object.
Definition fwd.hpp:11
+
@ ref
Aliasing mode, the object points to a non-const element.
Definition fwd.hpp:19
+
@ cref
Const aliasing mode, the object points to a const element.
Definition fwd.hpp:21
+
@ embedded
Owning mode, the object owns an embedded element.
Definition fwd.hpp:17
+
@ empty
Default mode, the object does not own any elements.
Definition fwd.hpp:13
+
@ dynamic
Owning mode, the object owns a dynamically allocated element.
Definition fwd.hpp:15
+
basic_any< Len, Align > forward_as_any(Type &&value)
Forwards its argument and avoids copies for lvalue references.
Definition any.hpp:538
+
basic_storage< Type > storage
Alias declaration for the most common use case.
Definition fwd.hpp:78
+
Provides a common way to define storage types.
Definition fwd.hpp:226
Implementation specific information about a type.
+
diff --git a/attribute_8h_source.html b/attribute_8h_source.html index 154ff5308..b16d773bf 100644 --- a/attribute_8h_source.html +++ b/attribute_8h_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/attribute.h Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
attribute.h
@@ -116,7 +124,8 @@ $(function() { codefold.init(0); });
+
diff --git a/bit_8hpp_source.html b/bit_8hpp_source.html index 2115b5074..46bacf064 100644 --- a/bit_8hpp_source.html +++ b/bit_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/bit.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
bit.hpp
@@ -92,56 +100,57 @@ $(function() { codefold.init(0); });
7#include "../config/config.h"
8
9namespace entt {
-
10
+
10
18template<typename Type>
-
19[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, int> popcount(const Type value) noexcept {
-
20 return value ? (int(value & 1) + popcount(static_cast<Type>(value >> 1))) : 0;
+
19[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, int> popcount(const Type value) noexcept {
+
20 return value ? (int(value & 1) + popcount(static_cast<Type>(value >> 1))) : 0;
21}
-
22
+
22
30template<typename Type>
-
31[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, bool> has_single_bit(const Type value) noexcept {
+
31[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, bool> has_single_bit(const Type value) noexcept {
32 return value && ((value & (value - 1)) == 0);
33}
-
34
+
34
42template<typename Type>
-
43[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, Type> next_power_of_two(const Type value) noexcept {
-
44 ENTT_ASSERT_CONSTEXPR(value < (Type{1u} << (std::numeric_limits<Type>::digits - 1)), "Numeric limits exceeded");
-
45 Type curr = value - (value != 0u);
-
46
-
47 for(int next = 1; next < std::numeric_limits<Type>::digits; next = next * 2) {
-
48 curr |= (curr >> next);
-
49 }
-
50
-
51 return ++curr;
-
52}
+
43[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, Type> next_power_of_two(const Type value) noexcept {
+
44 // NOLINTNEXTLINE(bugprone-assert-side-effect)
+
45 ENTT_ASSERT_CONSTEXPR(value < (Type{1u} << (std::numeric_limits<Type>::digits - 1)), "Numeric limits exceeded");
+
46 Type curr = value - (value != 0u);
+
47
+
48 for(int next = 1; next < std::numeric_limits<Type>::digits; next = next * 2) {
+
49 curr |= (curr >> next);
+
50 }
+
51
+
52 return ++curr;
+
53}
-
53
-
61template<typename Type>
-
-
62[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, Type> fast_mod(const Type value, const std::size_t mod) noexcept {
-
63 ENTT_ASSERT_CONSTEXPR(has_single_bit(mod), "Value must be a power of two");
-
64 return value & (mod - 1u);
-
65}
+
54
+
62template<typename Type>
+
+
63[[nodiscard]] constexpr std::enable_if_t<std::is_unsigned_v<Type>, Type> fast_mod(const Type value, const std::size_t mod) noexcept {
+
64 ENTT_ASSERT_CONSTEXPR(has_single_bit(mod), "Value must be a power of two");
+
65 return static_cast<Type>(value & (mod - 1u));
+
66}
-
66
-
67} // namespace entt
-
68
-
69#endif
+
67
+
68} // namespace entt
+
69
+
70#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:62
+
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:63
constexpr std::enable_if_t< std::is_unsigned_v< Type >, bool > has_single_bit(const Type value) noexcept
Checks whether a value is a power of two or not (waiting for C++20 and std::has_single_bit).
Definition bit.hpp:31
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > next_power_of_two(const Type value) noexcept
Computes the smallest power of two greater than or equal to a value (waiting for C++20 and std::bit_c...
Definition bit.hpp:43
constexpr std::enable_if_t< std::is_unsigned_v< Type >, int > popcount(const Type value) noexcept
Returns the number of set bits in a value (waiting for C++20 and std::popcount).
Definition bit.hpp:19
+
diff --git a/cache_8hpp_source.html b/cache_8hpp_source.html index 860755884..8355f3e4d 100644 --- a/cache_8hpp_source.html +++ b/cache_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/resource/cache.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
cache.hpp
@@ -103,7 +111,7 @@ $(function() { codefold.init(0); });
18#include "resource.hpp"
19
20namespace entt {
-
21
+
21
23namespace internal {
24
25template<typename Type, typename It>
@@ -133,7 +141,7 @@ $(function() { codefold.init(0); });
49 }
50
51 constexpr resource_cache_iterator operator++(int) noexcept {
-
52 resource_cache_iterator orig = *this;
+
52 const resource_cache_iterator orig = *this;
53 return ++(*this), orig;
54 }
55
@@ -142,7 +150,7 @@ $(function() { codefold.init(0); });
58 }
59
60 constexpr resource_cache_iterator operator--(int) noexcept {
-
61 resource_cache_iterator orig = *this;
+
61 const resource_cache_iterator orig = *this;
62 return operator--(), orig;
63 }
64
@@ -225,183 +233,184 @@ $(function() { codefold.init(0); });
141}
142
143} // namespace internal
+
145
152template<typename Type, typename Loader, typename Allocator>
- +
154 using alloc_traits = std::allocator_traits<Allocator>;
155 static_assert(std::is_same_v<typename alloc_traits::value_type, Type>, "Invalid value type");
-
156 using container_allocator = typename alloc_traits::template rebind_alloc<std::pair<const id_type, typename Loader::result_type>>;
- +
156 using container_allocator = typename alloc_traits::template rebind_alloc<std::pair<const id_type, typename Loader::result_type>>;
+
157 using container_type = dense_map<id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator>;
158
159public:
161 using allocator_type = Allocator;
163 using value_type = Type;
165 using size_type = std::size_t;
- +
167 using loader_type = Loader;
169 using iterator = internal::resource_cache_iterator<Type, typename container_type::iterator>;
171 using const_iterator = internal::resource_cache_iterator<const Type, typename container_type::const_iterator>;
-
172
+
172
-
176
+
176
- - +
181 explicit resource_cache(const allocator_type &allocator)
+
182 : resource_cache{loader_type{}, allocator} {}
-
183
+
183
- -
190 : pool{container_type{allocator}, callable} {}
+
189 explicit resource_cache(const loader_type &callable, const allocator_type &allocator = allocator_type{})
+
190 : pool{container_type{allocator}, callable} {}
-
191
-
193 resource_cache(const resource_cache &) = default;
-
194
+
191
+
193 resource_cache(const resource_cache &) = default;
+
194
- -
201 : pool{std::piecewise_construct, std::forward_as_tuple(other.pool.first(), allocator), std::forward_as_tuple(other.pool.second())} {}
+
200 resource_cache(const resource_cache &other, const allocator_type &allocator)
+
201 : pool{std::piecewise_construct, std::forward_as_tuple(other.pool.first(), allocator), std::forward_as_tuple(other.pool.second())} {}
-
202
- -
205
+
202
+
204 resource_cache(resource_cache &&) noexcept = default;
+
205
- -
212 : pool{std::piecewise_construct, std::forward_as_tuple(std::move(other.pool.first()), allocator), std::forward_as_tuple(std::move(other.pool.second()))} {}
+ +
212 : pool{std::piecewise_construct, std::forward_as_tuple(std::move(other.pool.first()), allocator), std::forward_as_tuple(std::move(other.pool.second()))} {}
-
213
+
213
215 ~resource_cache() = default;
-
216
- -
222
- -
228
+
216
+ +
222
+
227 resource_cache &operator=(resource_cache &&) noexcept = default;
+
228
- -
234 return pool.first().get_allocator();
+
233 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
234 return pool.first().get_allocator();
235 }
-
236
+
236
- +
244 [[nodiscard]] const_iterator cbegin() const noexcept {
245 return pool.first().begin();
246 }
-
247
+
247
- +
249 [[nodiscard]] const_iterator begin() const noexcept {
250 return cbegin();
251 }
-
252
+
252
- +
254 [[nodiscard]] iterator begin() noexcept {
255 return pool.first().begin();
256 }
-
257
+
257
- +
263 [[nodiscard]] const_iterator cend() const noexcept {
264 return pool.first().end();
265 }
-
266
+
266
- +
268 [[nodiscard]] const_iterator end() const noexcept {
269 return cend();
270 }
-
271
+
271
- +
273 [[nodiscard]] iterator end() noexcept {
274 return pool.first().end();
275 }
-
276
+
276
- +
281 [[nodiscard]] bool empty() const noexcept {
282 return pool.first().empty();
283 }
-
284
+
284
- +
289 [[nodiscard]] size_type size() const noexcept {
290 return pool.first().size();
291 }
-
292
+
292
- +
294 void clear() noexcept {
295 pool.first().clear();
296 }
-
297
-
315 template<typename... Args>
+
297
+
315 template<typename... Args>
-
316 std::pair<iterator, bool> load(const id_type id, Args &&...args) {
-
317 if(auto it = pool.first().find(id); it != pool.first().end()) {
-
318 return {it, false};
+
316 std::pair<iterator, bool> load(const id_type id, Args &&...args) {
+
317 if(auto it = pool.first().find(id); it != pool.first().end()) {
+
318 return {it, false};
319 }
320
-
321 return pool.first().emplace(id, pool.second()(std::forward<Args>(args)...));
+
321 return pool.first().emplace(id, pool.second()(std::forward<Args>(args)...));
322 }
-
323
-
328 template<typename... Args>
+
323
+
328 template<typename... Args>
-
329 std::pair<iterator, bool> force_load(const id_type id, Args &&...args) {
-
330 return {pool.first().insert_or_assign(id, pool.second()(std::forward<Args>(args)...)).first, true};
+
329 std::pair<iterator, bool> force_load(const id_type id, Args &&...args) {
+
330 return {pool.first().insert_or_assign(id, pool.second()(std::forward<Args>(args)...)).first, true};
331 }
-
332
+
332
- -
344 if(auto it = pool.first().find(id); it != pool.first().cend()) {
-
345 return resource<const value_type>{it->second};
+
343 [[nodiscard]] resource<const value_type> operator[](const id_type id) const {
+
344 if(auto it = pool.first().find(id); it != pool.first().cend()) {
+
345 return resource<const value_type>{it->second};
346 }
347
348 return {};
349 }
-
350
+
350
- -
353 if(auto it = pool.first().find(id); it != pool.first().end()) {
-
354 return resource<value_type>{it->second};
+
352 [[nodiscard]] resource<value_type> operator[](const id_type id) {
+
353 if(auto it = pool.first().find(id); it != pool.first().end()) {
+
354 return resource<value_type>{it->second};
355 }
356
357 return {};
358 }
-
359
+
359
-
365 [[nodiscard]] bool contains(const id_type id) const {
+
365 [[nodiscard]] bool contains(const id_type id) const {
366 return pool.first().contains(id);
367 }
-
368
+
368
- -
375 const auto it = pool.first().begin();
-
376 return pool.first().erase(it + (pos - const_iterator{it}));
+ +
375 const auto it = pool.first().begin();
+
376 return pool.first().erase(it + (pos - const_iterator{it}));
377 }
-
378
+
378
-
386 const auto it = pool.first().begin();
-
387 return pool.first().erase(it + (first - const_iterator{it}), it + (last - const_iterator{it}));
+
386 const auto it = pool.first().begin();
+
387 return pool.first().erase(it + (first - const_iterator{it}), it + (last - const_iterator{it}));
388 }
-
389
+
389
- +
396 return pool.first().erase(id);
397 }
-
398
+
398
- +
403 [[nodiscard]] loader_type loader() const {
404 return pool.second();
405 }
@@ -415,8 +424,7 @@ $(function() { codefold.init(0); });
412
413#endif
A compressed pair.
-
Associative container for key-value pairs with unique keys.
-
Basic cache for resources of any type.
Definition cache.hpp:153
+
Associative container for key-value pairs with unique keys.
size_type erase(const id_type id)
Removes the given elements from a cache.
Definition cache.hpp:395
resource_cache()
Default constructor.
Definition cache.hpp:174
resource_cache & operator=(resource_cache &&) noexcept=default
Default move assignment operator.
@@ -453,11 +461,10 @@ $(function() { codefold.init(0); });
bool contains(const id_type id) const
Checks if a cache contains a given identifier.
Definition cache.hpp:365
Basic resource handle.
Definition resource.hpp:22
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
-
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
+
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
@@ -465,7 +472,8 @@ $(function() { codefold.init(0); });
+
diff --git a/classentt_1_1adjacency__matrix-members.html b/classentt_1_1adjacency__matrix-members.html index 694aca2c9..5580383c2 100644 --- a/classentt_1_1adjacency__matrix-members.html +++ b/classentt_1_1adjacency__matrix-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::adjacency_matrix< Category, Allocator > Member List
@@ -116,7 +129,8 @@ $(function() {
+
diff --git a/classentt_1_1adjacency__matrix.html b/classentt_1_1adjacency__matrix.html index c707098c1..b151d344f 100644 --- a/classentt_1_1adjacency__matrix.html +++ b/classentt_1_1adjacency__matrix.html @@ -3,13 +3,15 @@ - + EnTT: entt::adjacency_matrix< Category, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,111 +103,111 @@ $(function() { - + - + - + - + - + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using vertex_type = size_type
using vertex_type = size_type
 Vertex type.
 
using edge_type = std::pair<vertex_type, vertex_type>
using edge_type = std::pair<vertex_type, vertex_type>
 Edge type.
 
using vertex_iterator = iota_iterator<vertex_type>
using vertex_iterator = iota_iterator<vertex_type>
 Vertex iterator type.
 
using edge_iterator = internal::edge_iterator<typename container_type::const_iterator>
using edge_iterator = internal::edge_iterator<typename container_type::const_iterator>
 Edge iterator type.
 
using out_edge_iterator = edge_iterator
using out_edge_iterator = edge_iterator
 Out-edge iterator type.
 
using in_edge_iterator = edge_iterator
using in_edge_iterator = edge_iterator
 In-edge iterator type.
 
using graph_category = Category
using graph_category = Category
 Graph category tag.
 
- + - + - + +  - + +  - + +  - + - + - - - - - - - + - + + + + + + + - + - + - + - + - + - + - + - + - +

Public Member Functions

 adjacency_matrix () noexcept(noexcept(allocator_type{}))
 adjacency_matrix () noexcept(noexcept(allocator_type{}))
 Default constructor.
 
 adjacency_matrix (const allocator_type &allocator) noexcept
 adjacency_matrix (const allocator_type &allocator) noexcept
 Constructs an empty container with a given allocator.
 
 adjacency_matrix (const size_type vertices, const allocator_type &allocator=allocator_type{})
 adjacency_matrix (const size_type vertices, const allocator_type &allocator=allocator_type{})
 Constructs an empty container with a given allocator and user supplied number of vertices.
 
adjacency_matrix (const adjacency_matrix &)=default
adjacency_matrix (const adjacency_matrix &)=default
 Default copy constructor.
 
 adjacency_matrix (const adjacency_matrix &other, const allocator_type &allocator)
 adjacency_matrix (const adjacency_matrix &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
adjacency_matrix (adjacency_matrix &&) noexcept=default
adjacency_matrix (adjacency_matrix &&) noexcept=default
 Default move constructor.
 
 adjacency_matrix (adjacency_matrix &&other, const allocator_type &allocator)
 adjacency_matrix (adjacency_matrix &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~adjacency_matrix ()=default
~adjacency_matrix ()=default
 Default destructor.
 
adjacency_matrixoperator= (const adjacency_matrix &)=default
adjacency_matrixoperator= (const adjacency_matrix &)=default
 Default copy assignment operator.
 
adjacency_matrixoperator= (adjacency_matrix &&) noexcept=default
adjacency_matrixoperator= (adjacency_matrix &&) noexcept=default
 Default move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void clear () noexcept
 Clears the adjacency matrix.
 
void swap (adjacency_matrix &other) noexcept
void swap (adjacency_matrix &other) noexcept
 Exchanges the contents with those of a given adjacency matrix.
 
bool empty () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void clear () noexcept
 Clears the adjacency matrix.
 
bool empty () const noexcept
 Returns true if an adjacency matrix is empty, false otherwise.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of vertices.
 
iterable_adaptor< vertex_iteratorvertices () const noexcept
iterable_adaptor< vertex_iteratorvertices () const noexcept
 Returns an iterable object to visit all vertices of a matrix.
 
iterable_adaptor< edge_iteratoredges () const noexcept
iterable_adaptor< edge_iteratoredges () const noexcept
 Returns an iterable object to visit all edges of a matrix.
 
iterable_adaptor< out_edge_iteratorout_edges (const vertex_type vertex) const noexcept
iterable_adaptor< out_edge_iteratorout_edges (const vertex_type vertex) const noexcept
 Returns an iterable object to visit all out-edges of a vertex.
 
iterable_adaptor< in_edge_iteratorin_edges (const vertex_type vertex) const noexcept
iterable_adaptor< in_edge_iteratorin_edges (const vertex_type vertex) const noexcept
 Returns an iterable object to visit all in-edges of a vertex.
 
void resize (const size_type vertices)
void resize (const size_type vertices)
 Resizes an adjacency matrix.
 
std::pair< edge_iterator, boolinsert (const vertex_type lhs, const vertex_type rhs)
std::pair< edge_iterator, bool > insert (const vertex_type lhs, const vertex_type rhs)
 Inserts an edge into the adjacency matrix, if it does not exist.
 
size_type erase (const vertex_type lhs, const vertex_type rhs)
size_type erase (const vertex_type lhs, const vertex_type rhs)
 Removes the edge associated with a pair of given vertices.
 
bool contains (const vertex_type lhs, const vertex_type rhs) const
bool contains (const vertex_type lhs, const vertex_type rhs) const
 Checks if an adjacency matrix contains a given edge.
 

Detailed Description

-
template<typename Category, typename Allocator>
+
template<typename Category, typename Allocator>
class entt::adjacency_matrix< Category, Allocator >

Basic implementation of a directed adjacency matrix.

Template Parameters
@@ -204,7 +217,7 @@ class entt::adjacency_matrix< Category, Allocator >

Basic implemen -

Definition at line 91 of file adjacency_matrix.hpp.

+

Definition at line 96 of file adjacency_matrix.hpp.

Member Typedef Documentation

◆ allocator_type

@@ -212,17 +225,17 @@ class entt::adjacency_matrix< Category, Allocator >

Basic implemen

-template<typename Category , typename Allocator >
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::allocator_type = Allocatorusing entt::adjacency_matrix< Category, Allocator >::allocator_type = Allocator

Allocator type.

-

Definition at line 99 of file adjacency_matrix.hpp.

+

Definition at line 104 of file adjacency_matrix.hpp.

@@ -232,17 +245,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::edge_iterator = internal::edge_iterator<typename container_type::const_iterator>using entt::adjacency_matrix< Category, Allocator >::edge_iterator = internal::edge_iterator<typename container_type::const_iterator>

Edge iterator type.

-

Definition at line 109 of file adjacency_matrix.hpp.

+

Definition at line 114 of file adjacency_matrix.hpp.

@@ -252,17 +265,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::edge_type = std::pair<vertex_type, vertex_type>using entt::adjacency_matrix< Category, Allocator >::edge_type = std::pair<vertex_type, vertex_type>

Edge type.

-

Definition at line 105 of file adjacency_matrix.hpp.

+

Definition at line 110 of file adjacency_matrix.hpp.

@@ -272,17 +285,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::graph_category = Categoryusing entt::adjacency_matrix< Category, Allocator >::graph_category = Category

Graph category tag.

-

Definition at line 115 of file adjacency_matrix.hpp.

+

Definition at line 120 of file adjacency_matrix.hpp.

@@ -292,17 +305,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::in_edge_iterator = edge_iteratorusing entt::adjacency_matrix< Category, Allocator >::in_edge_iterator = edge_iterator

In-edge iterator type.

-

Definition at line 113 of file adjacency_matrix.hpp.

+

Definition at line 118 of file adjacency_matrix.hpp.

@@ -312,17 +325,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::out_edge_iterator = edge_iteratorusing entt::adjacency_matrix< Category, Allocator >::out_edge_iterator = edge_iterator

Out-edge iterator type.

-

Definition at line 111 of file adjacency_matrix.hpp.

+

Definition at line 116 of file adjacency_matrix.hpp.

@@ -332,17 +345,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::size_type = std::size_tusing entt::adjacency_matrix< Category, Allocator >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 101 of file adjacency_matrix.hpp.

+

Definition at line 106 of file adjacency_matrix.hpp.

@@ -352,17 +365,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::vertex_iterator = iota_iterator<vertex_type>using entt::adjacency_matrix< Category, Allocator >::vertex_iterator = iota_iterator<vertex_type>

Vertex iterator type.

-

Definition at line 107 of file adjacency_matrix.hpp.

+

Definition at line 112 of file adjacency_matrix.hpp.

@@ -372,17 +385,17 @@ template<
+template<typename Category, typename Allocator>
- +
using entt::adjacency_matrix< Category, Allocator >::vertex_type = size_typeusing entt::adjacency_matrix< Category, Allocator >::vertex_type = size_type

Vertex type.

-

Definition at line 103 of file adjacency_matrix.hpp.

+

Definition at line 108 of file adjacency_matrix.hpp.

@@ -393,28 +406,28 @@ template<
+template<typename Category, typename Allocator>
+inlinenoexcept
- + - +
entt::adjacency_matrix< Category, Allocator >::adjacency_matrix entt::adjacency_matrix< Category, Allocator >::adjacency_matrix ())
-inlinenoexcept

Default constructor.

-

Definition at line 118 of file adjacency_matrix.hpp.

+

Definition at line 123 of file adjacency_matrix.hpp.

@@ -424,21 +437,21 @@ template<
+template<typename Category, typename Allocator>
+inlineexplicitnoexcept
- + - +
entt::adjacency_matrix< Category, Allocator >::adjacency_matrix entt::adjacency_matrix< Category, Allocator >::adjacency_matrix (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicitnoexcept
@@ -451,7 +464,7 @@ template<Definition at line 126 of file adjacency_matrix.hpp.

+

Definition at line 131 of file adjacency_matrix.hpp.

@@ -461,25 +474,25 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - + - +
entt::adjacency_matrix< Category, Allocator >::adjacency_matrix entt::adjacency_matrix< Category, Allocator >::adjacency_matrix (const size_type vertices, const size_type vertices,
const allocator_type & allocator = allocator_type{} )const allocator_type & allocator = allocator_type{} )
-inline
@@ -493,7 +506,7 @@ template<Definition at line 135 of file adjacency_matrix.hpp.

+

Definition at line 140 of file adjacency_matrix.hpp.

@@ -503,25 +516,25 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - + - +
entt::adjacency_matrix< Category, Allocator >::adjacency_matrix entt::adjacency_matrix< Category, Allocator >::adjacency_matrix (const adjacency_matrix< Category, Allocator > & other, const adjacency_matrix< Category, Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -535,7 +548,7 @@ template<Definition at line 147 of file adjacency_matrix.hpp.

+

Definition at line 152 of file adjacency_matrix.hpp.

@@ -545,25 +558,25 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - + - +
entt::adjacency_matrix< Category, Allocator >::adjacency_matrix entt::adjacency_matrix< Category, Allocator >::adjacency_matrix (adjacency_matrix< Category, Allocator > && other, adjacency_matrix< Category, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -577,7 +590,7 @@ template<Definition at line 159 of file adjacency_matrix.hpp.

+

Definition at line 164 of file adjacency_matrix.hpp.

@@ -588,28 +601,28 @@ template<
+template<typename Category, typename Allocator>
+inlinenoexcept
- + - +
void entt::adjacency_matrix< Category, Allocator >::clear void entt::adjacency_matrix< Category, Allocator >::clear ())
-inlinenoexcept

Clears the adjacency matrix.

-

Definition at line 187 of file adjacency_matrix.hpp.

+

Definition at line 202 of file adjacency_matrix.hpp.

@@ -619,25 +632,25 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscard
- + - + - +
bool entt::adjacency_matrix< Category, Allocator >::contains bool entt::adjacency_matrix< Category, Allocator >::contains (const vertex_type lhs, const vertex_type lhs,
const vertex_type rhs ) constconst vertex_type rhs ) const
-inline
@@ -652,7 +665,7 @@ template<
Returns
True if there is such an edge, false otherwise.
-

Definition at line 324 of file adjacency_matrix.hpp.

+

Definition at line 329 of file adjacency_matrix.hpp.

@@ -662,21 +675,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterable_adaptor< edge_iterator > entt::adjacency_matrix< Category, Allocator >::edges iterable_adaptor< edge_iterator > entt::adjacency_matrix< Category, Allocator >::edges ()) const
-inlinenoexcept
@@ -684,7 +697,7 @@ template<
Returns
An iterable object to visit all edges of a matrix.
-

Definition at line 235 of file adjacency_matrix.hpp.

+

Definition at line 240 of file adjacency_matrix.hpp.

@@ -694,21 +707,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::adjacency_matrix< Category, Allocator >::empty bool entt::adjacency_matrix< Category, Allocator >::empty ()) const
-inlinenoexcept
@@ -717,7 +730,7 @@ template<
Warning
Potentially expensive, try to avoid it on hot paths.
Returns
True if the adjacency matrix is empty, false otherwise.
-

Definition at line 210 of file adjacency_matrix.hpp.

+

Definition at line 215 of file adjacency_matrix.hpp.

@@ -727,25 +740,25 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - + - +
size_type entt::adjacency_matrix< Category, Allocator >::erase size_type entt::adjacency_matrix< Category, Allocator >::erase (const vertex_type lhs, const vertex_type lhs,
const vertex_type rhs )const vertex_type rhs )
-inline
@@ -760,7 +773,7 @@ template<
Returns
Number of elements removed (either 0 or 1).
-

Definition at line 306 of file adjacency_matrix.hpp.

+

Definition at line 311 of file adjacency_matrix.hpp.

@@ -770,21 +783,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::adjacency_matrix< Category, Allocator >::get_allocator allocator_type entt::adjacency_matrix< Category, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -792,7 +805,7 @@ template<
Returns
The associated allocator.
-

Definition at line 182 of file adjacency_matrix.hpp.

+

Definition at line 197 of file adjacency_matrix.hpp.

@@ -802,21 +815,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterable_adaptor< in_edge_iterator > entt::adjacency_matrix< Category, Allocator >::in_edges iterable_adaptor< in_edge_iterator > entt::adjacency_matrix< Category, Allocator >::in_edges (const vertex_type vertex)const vertex_type vertex) const
-inlinenoexcept
@@ -830,7 +843,7 @@ template<
Returns
An iterable object to visit all in-edges of a vertex.
-

Definition at line 258 of file adjacency_matrix.hpp.

+

Definition at line 263 of file adjacency_matrix.hpp.

@@ -840,25 +853,25 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - + - +
std::pair< edge_iterator, bool > entt::adjacency_matrix< Category, Allocator >::insert std::pair< edge_iterator, bool > entt::adjacency_matrix< Category, Allocator >::insert (const vertex_type lhs, const vertex_type lhs,
const vertex_type rhs )const vertex_type rhs )
-inline
@@ -873,7 +886,7 @@ template<
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
-

Definition at line 287 of file adjacency_matrix.hpp.

+

Definition at line 292 of file adjacency_matrix.hpp.

@@ -883,21 +896,21 @@ template<
+template<typename Category, typename Allocator>
+defaultnoexcept
- + - +
adjacency_matrix & entt::adjacency_matrix< Category, Allocator >::operator= adjacency_matrix & entt::adjacency_matrix< Category, Allocator >::operator= (adjacency_matrix< Category, Allocator > && )adjacency_matrix< Category, Allocator > && )
-defaultnoexcept
@@ -913,21 +926,21 @@ template<
+template<typename Category, typename Allocator>
+default
- + - +
adjacency_matrix & entt::adjacency_matrix< Category, Allocator >::operator= adjacency_matrix & entt::adjacency_matrix< Category, Allocator >::operator= (const adjacency_matrix< Category, Allocator > & )const adjacency_matrix< Category, Allocator > & )
-default
@@ -943,21 +956,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterable_adaptor< out_edge_iterator > entt::adjacency_matrix< Category, Allocator >::out_edges iterable_adaptor< out_edge_iterator > entt::adjacency_matrix< Category, Allocator >::out_edges (const vertex_type vertex)const vertex_type vertex) const
-inlinenoexcept
@@ -971,7 +984,7 @@ template<
Returns
An iterable object to visit all out-edges of a vertex.
-

Definition at line 246 of file adjacency_matrix.hpp.

+

Definition at line 251 of file adjacency_matrix.hpp.

@@ -981,21 +994,21 @@ template<
+template<typename Category, typename Allocator>
+inline
- + - +
void entt::adjacency_matrix< Category, Allocator >::resize void entt::adjacency_matrix< Category, Allocator >::resize (const size_type vertices)const size_type vertices)
-inline
@@ -1008,7 +1021,7 @@ template<Definition at line 269 of file adjacency_matrix.hpp.

+

Definition at line 274 of file adjacency_matrix.hpp.

@@ -1018,21 +1031,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::adjacency_matrix< Category, Allocator >::size size_type entt::adjacency_matrix< Category, Allocator >::size ()) const
-inlinenoexcept
@@ -1040,7 +1053,7 @@ template<
Returns
The number of vertices.
-

Definition at line 219 of file adjacency_matrix.hpp.

+

Definition at line 224 of file adjacency_matrix.hpp.

@@ -1050,21 +1063,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenoexcept
- + - +
void entt::adjacency_matrix< Category, Allocator >::swap void entt::adjacency_matrix< Category, Allocator >::swap (adjacency_matrix< Category, Allocator > & other)adjacency_matrix< Category, Allocator > & other)
-inlinenoexcept
@@ -1077,7 +1090,7 @@ template<Definition at line 196 of file adjacency_matrix.hpp.

+

Definition at line 187 of file adjacency_matrix.hpp.

@@ -1087,21 +1100,21 @@ template<
+template<typename Category, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterable_adaptor< vertex_iterator > entt::adjacency_matrix< Category, Allocator >::vertices iterable_adaptor< vertex_iterator > entt::adjacency_matrix< Category, Allocator >::vertices ()) const
-inlinenoexcept
@@ -1109,7 +1122,7 @@ template<
Returns
An iterable object to visit all vertices of a matrix.
-

Definition at line 227 of file adjacency_matrix.hpp.

+

Definition at line 232 of file adjacency_matrix.hpp.

@@ -1119,7 +1132,8 @@ template< + diff --git a/classentt_1_1as__group-members.html b/classentt_1_1as__group-members.html index 7291663fd..76addfb8a 100644 --- a/classentt_1_1as__group-members.html +++ b/classentt_1_1as__group-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::as_group< Registry > Member List
@@ -88,7 +101,8 @@ $(function() {
+ diff --git a/classentt_1_1as__group.html b/classentt_1_1as__group.html index 58c170aef..dad1495b4 100644 --- a/classentt_1_1as__group.html +++ b/classentt_1_1as__group.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_group< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,25 +103,25 @@ $(function() { - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 Type of registry to convert.
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
- + - - + +

Public Member Functions

 as_group (registry_type &source) noexcept
 as_group (registry_type &source) noexcept
 Constructs a converter for a given registry.
 
template<typename Owned , typename Get , typename Exclude >
 operator basic_group< Owned, Get, Exclude > () const
template<typename Owned, typename Get, typename Exclude>
 operator basic_group< Owned, Get, Exclude > () const
 Conversion function from a registry to a group.
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::as_group< Registry >

Converts a registry to a group.

Template Parameters
@@ -125,10 +138,10 @@ class entt::as_group< Registry >

Converts a registry to a group. <

-template<typename Registry >
+template<typename Registry>
- +
using entt::as_group< Registry >::entity_type = typename registry_type::entity_typeusing entt::as_group< Registry >::entity_type = typename registry_type::entity_type
@@ -145,10 +158,10 @@ template<
+template<typename Registry>
- +
using entt::as_group< Registry >::registry_type = Registryusing entt::as_group< Registry >::registry_type = Registry
@@ -166,13 +179,13 @@ template<
+template<typename Registry>
@@ -31,23 +33,33 @@
- + @@ -180,7 +193,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::as_group< Registry >::as_group entt::as_group< Registry >::as_group ( registry_type & source)
@@ -204,23 +217,23 @@ template<
+template<typename Registry>
+template<typename Owned, typename Get, typename Exclude>
+inline
- + - +
entt::as_group< Registry >::operator basic_group< Owned, Get, Exclude > entt::as_group< Registry >::operator basic_group< Owned, Get, Exclude > ()) const
-inline
@@ -246,7 +259,8 @@ template< +
diff --git a/classentt_1_1as__view-members.html b/classentt_1_1as__view-members.html index e96c8580f..3a3323a80 100644 --- a/classentt_1_1as__view-members.html +++ b/classentt_1_1as__view-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::as_view< Registry > Member List
@@ -88,7 +101,8 @@ $(function() {
+
diff --git a/classentt_1_1as__view.html b/classentt_1_1as__view.html index 446bfd030..f7150f5a7 100644 --- a/classentt_1_1as__view.html +++ b/classentt_1_1as__view.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_view< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,25 +103,25 @@ $(function() { - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 Type of registry to convert.
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
- + - - + +

Public Member Functions

 as_view (registry_type &source) noexcept
 as_view (registry_type &source) noexcept
 Constructs a converter for a given registry.
 
template<typename Get , typename Exclude >
 operator basic_view< Get, Exclude > () const
template<typename Get, typename Exclude>
 operator basic_view< Get, Exclude > () const
 Conversion function from a registry to a view.
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::as_view< Registry >

Converts a registry to a view.

Template Parameters
@@ -125,10 +138,10 @@ class entt::as_view< Registry >

Converts a registry to a view.

-template<typename Registry >
+template<typename Registry>
- +
using entt::as_view< Registry >::entity_type = typename registry_type::entity_typeusing entt::as_view< Registry >::entity_type = typename registry_type::entity_type
@@ -145,10 +158,10 @@ template<
+template<typename Registry>
- +
using entt::as_view< Registry >::registry_type = Registryusing entt::as_view< Registry >::registry_type = Registry
@@ -166,13 +179,13 @@ template<
+template<typename Registry>
@@ -31,23 +33,33 @@
- + @@ -180,7 +193,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::as_view< Registry >::as_view entt::as_view< Registry >::as_view ( registry_type & source)
@@ -204,23 +217,23 @@ template<
+template<typename Registry>
-template<typename Get , typename Exclude >
+template<typename Get, typename Exclude>
+inline
- + - +
entt::as_view< Registry >::operator basic_view< Get, Exclude > entt::as_view< Registry >::operator basic_view< Get, Exclude > ()) const
-inline
@@ -245,7 +258,8 @@ template< +
diff --git a/classentt_1_1basic__any-members.html b/classentt_1_1basic__any-members.html index 0d77f6eb9..896530a5d 100644 --- a/classentt_1_1basic__any-members.html +++ b/classentt_1_1basic__any-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::basic_any< Len, Align > Member List
@@ -88,22 +101,24 @@ $(function() { assign(basic_any &&other)entt::basic_any< Len, Align >inline basic_any() noexceptentt::basic_any< Len, Align >inline basic_any(std::in_place_type_t< Type >, Args &&...args)entt::basic_any< Len, Align >inlineexplicit - basic_any(Type &&value)entt::basic_any< Len, Align >inline - basic_any(const basic_any &other)entt::basic_any< Len, Align >inline - basic_any(basic_any &&other) noexceptentt::basic_any< Len, Align >inline - data() const noexceptentt::basic_any< Len, Align >inline - data(const type_info &req) const noexceptentt::basic_any< Len, Align >inline - data() noexceptentt::basic_any< Len, Align >inline - data(const type_info &req) noexceptentt::basic_any< Len, Align >inline - emplace(Args &&...args)entt::basic_any< Len, Align >inline - instance (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align > - lengthentt::basic_any< Len, Align >static - operator bool() const noexceptentt::basic_any< Len, Align >inlineexplicit - operator!=(const basic_any &other) const noexceptentt::basic_any< Len, Align >inline - operator=(const basic_any &other)entt::basic_any< Len, Align >inline - operator=(basic_any &&other) noexceptentt::basic_any< Len, Align >inline - operator=(Type &&value)entt::basic_any< Len, Align >inline - operator==(const basic_any &other) const noexceptentt::basic_any< Len, Align >inline + basic_any(std::in_place_t, Type *value)entt::basic_any< Len, Align >inlineexplicit + basic_any(Type &&value)entt::basic_any< Len, Align >inline + basic_any(const basic_any &other)entt::basic_any< Len, Align >inline + basic_any(basic_any &&other) noexceptentt::basic_any< Len, Align >inline + data() const noexceptentt::basic_any< Len, Align >inline + data(const type_info &req) const noexceptentt::basic_any< Len, Align >inline + data() noexceptentt::basic_any< Len, Align >inline + data(const type_info &req) noexceptentt::basic_any< Len, Align >inline + emplace(Args &&...args)entt::basic_any< Len, Align >inline + instance (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align > + lengthentt::basic_any< Len, Align >static + operator bool() const noexceptentt::basic_any< Len, Align >inlineexplicit + operator!=(const basic_any &other) const noexceptentt::basic_any< Len, Align >inline + operator=(const basic_any &other)entt::basic_any< Len, Align >inline + operator=(basic_any &&other) noexceptentt::basic_any< Len, Align >inline + operator=(Type &&value)entt::basic_any< Len, Align >inline + operator==(const basic_any &other) const noexceptentt::basic_any< Len, Align >inline + owner() const noexceptentt::basic_any< Len, Align >inline policy() const noexceptentt::basic_any< Len, Align >inline reset()entt::basic_any< Len, Align >inline storage (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align > @@ -112,7 +127,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__any.html b/classentt_1_1basic__any.html index 5a2186a0c..06fe2d838 100644 --- a/classentt_1_1basic__any.html +++ b/classentt_1_1basic__any.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_any< Len, Align > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Member Functions | @@ -100,89 +113,96 @@ Collaboration diagram for entt::basic_any< Len, Align >:
- + - - + + - + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - + + + +

Public Member Functions

constexpr basic_any () noexcept
constexpr basic_any () noexcept
 Default constructor.
 
template<typename Type , typename... Args>
 basic_any (std::in_place_type_t< Type >, Args &&...args)
template<typename Type, typename... Args>
 basic_any (std::in_place_type_t< Type >, Args &&...args)
 Constructs a wrapper by directly initializing the new object.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
template<typename Type>
 basic_any (std::in_place_t, Type *value)
 Constructs a wrapper taking ownership of the passed object.
 
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
 basic_any (Type &&value)
 Constructs a wrapper from a given value.
 
 basic_any (const basic_any &other)
 basic_any (const basic_any &other)
 Copy constructor.
 
 basic_any (basic_any &&other) noexcept
 basic_any (basic_any &&other) noexcept
 Move constructor.
 
 ~basic_any ()
 Frees the internal storage, whatever it means.
 
basic_anyoperator= (const basic_any &other)
basic_anyoperator= (const basic_any &other)
 Copy assignment operator.
 
basic_anyoperator= (basic_any &&other) noexcept
basic_anyoperator= (basic_any &&other) noexcept
 Move assignment operator.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
basic_anyoperator= (Type &&value)
 Value assignment operator.
 
const type_infotype () const noexcept
const type_infotype () const noexcept
 Returns the object type if any, type_id<void>() otherwise.
 
const voiddata () const noexcept
const void * data () const noexcept
 Returns an opaque pointer to the contained instance.
 
const voiddata (const type_info &req) const noexcept
const void * data (const type_info &req) const noexcept
 Returns an opaque pointer to the contained instance.
 
voiddata () noexcept
void * data () noexcept
 Returns an opaque pointer to the contained instance.
 
voiddata (const type_info &req) noexcept
void * data (const type_info &req) noexcept
 Returns an opaque pointer to the contained instance.
 
template<typename Type , typename... Args>
void emplace (Args &&...args)
template<typename Type, typename... Args>
void emplace (Args &&...args)
 Replaces the contained object by creating a new instance directly.
 
bool assign (const basic_any &other)
bool assign (const basic_any &other)
 Assigns a value to the contained object without replacing it.
 
bool assign (basic_any &&other)
 Assigns a value to the contained object without replacing it.
bool assign (basic_any &&other)
 Assigns a value to the contained object without replacing it.
 
void reset ()
void reset ()
 Destroys contained object.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns false if a wrapper is empty, true otherwise.
 
bool operator== (const basic_any &other) const noexcept
bool operator== (const basic_any &other) const noexcept
 Checks if two wrappers differ in their content.
 
bool operator!= (const basic_any &other) const noexcept
bool operator!= (const basic_any &other) const noexcept
 Checks if two wrappers differ in their content.
 
basic_any as_ref () noexcept
basic_any as_ref () noexcept
 Aliasing constructor.
 
basic_any as_ref () const noexcept
 Aliasing constructor.
basic_any as_ref () const noexcept
 Aliasing constructor.
 
any_policy policy () const noexcept
bool owner () const noexcept
 Returns true if a wrapper owns its object, false otherwise.
 
any_policy policy () const noexcept
 Returns the current mode of an any object.
 
- + - +

Static Public Attributes

static constexpr auto length = Len
static constexpr auto length = Len
 Size of the internal storage.
 
static constexpr auto alignment = Align
static constexpr auto alignment = Align
 Alignment requirement.
 
@@ -197,10 +217,10 @@ class entt::basic_any< Len, Align >

A SBO friendly, type-safe cont -

Definition at line 48 of file any.hpp.

+

Definition at line 38 of file any.hpp.

Constructor & Destructor Documentation

-

◆ basic_any() [1/5]

+

◆ basic_any() [1/6]

@@ -211,52 +231,52 @@ template<std::size_t Len, std::size_t Align>
- + - +
constexpr entt::basic_any< Len, Align >::basic_any entt::basic_any< Len, Align >::basic_any ())
-inlineconstexprnoexcept +inlineconstexprnoexcept

Default constructor.

-

Definition at line 164 of file any.hpp.

+

Definition at line 165 of file any.hpp.

-

◆ basic_any() [2/5]

+

◆ basic_any() [2/6]

template<std::size_t Len, std::size_t Align>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inlineexplicit
- + - + - +
entt::basic_any< Len, Align >::basic_any entt::basic_any< Len, Align >::basic_any (std::in_place_type_t< Type > , std::in_place_type_t< Type > ,
Args &&... args )Args &&... args )
-inlineexplicit
@@ -276,25 +296,74 @@ template<Definition at line 174 of file any.hpp.

+

Definition at line 175 of file any.hpp.

- -

◆ basic_any() [3/5]

+ +

◆ basic_any() [3/6]

template<std::size_t Len, std::size_t Align>
-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+template<typename Type>
+ + +
- + + + + + + + + + +
entt::basic_any< Len, Align >::basic_any entt::basic_any< Len, Align >::basic_any (std::in_place_t ,
Type * value )
+
+inlineexplicit
+
+ +

Constructs a wrapper taking ownership of the passed object.

+
Template Parameters
+ + +
TypeType of object to use to initialize the wrapper.
+
+
+
Parameters
+ + +
valueA pointer to an object to take ownership of.
+
+
+ +

Definition at line 186 of file any.hpp.

+ +
+
+ +

◆ basic_any() [4/6]

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+ + + +inline
+ + + @@ -302,7 +371,7 @@ template< -inline +inline
entt::basic_any< Len, Align >::basic_any ( Type && value)
-

◆ basic_any() [4/5]

+

◆ basic_any() [5/6]

@@ -337,15 +406,15 @@ template<std::size_t Len, std::size_t Align>
- + - +
entt::basic_any< Len, Align >::basic_any entt::basic_any< Len, Align >::basic_any (const basic_any< Len, Align > & other)const basic_any< Len, Align > & other)
-inline
@@ -358,12 +427,12 @@ template<std::size_t Len, std::size_t Align>
-

Definition at line 195 of file any.hpp.

+

Definition at line 209 of file any.hpp.

-

◆ basic_any() [5/5]

+

◆ basic_any() [6/6]

@@ -374,15 +443,15 @@ template<std::size_t Len, std::size_t Align>
- + - +
entt::basic_any< Len, Align >::basic_any entt::basic_any< Len, Align >::basic_any (basic_any< Len, Align > && other)basic_any< Len, Align > && other)
-inlinenoexcept +inlinenoexcept
@@ -395,7 +464,7 @@ template<std::size_t Len, std::size_t Align>
-

Definition at line 206 of file any.hpp.

+

Definition at line 220 of file any.hpp.

@@ -411,22 +480,22 @@ template<std::size_t Len, std::size_t Align> - + - +
entt::basic_any< Len, Align >::~basic_any entt::basic_any< Len, Align >::~basic_any ())
-inline +inline

Frees the internal storage, whatever it means.

-

Definition at line 217 of file any.hpp.

+

Definition at line 233 of file any.hpp.

@@ -443,23 +512,23 @@ template<std::size_t Len, std::size_t Align> - + - +
basic_any entt::basic_any< Len, Align >::as_ref basic_any entt::basic_any< Len, Align >::as_ref ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Aliasing constructor.

-
Returns
A wrapper that shares a reference to an unmanaged object.
+

Aliasing constructor.

+
Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 404 of file any.hpp.

+

Definition at line 425 of file any.hpp.

@@ -475,15 +544,15 @@ template<std::size_t Len, std::size_t Align> - + - +
basic_any entt::basic_any< Len, Align >::as_ref basic_any entt::basic_any< Len, Align >::as_ref ())
-inlinenoexcept +inlinenodiscardnoexcept
@@ -491,7 +560,7 @@ template<std::size_t Len, std::size_t Align>

Aliasing constructor.

Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 399 of file any.hpp.

+

Definition at line 420 of file any.hpp.

@@ -507,29 +576,29 @@ template<std::size_t Len, std::size_t Align> - + - +
bool entt::basic_any< Len, Align >::assign bool entt::basic_any< Len, Align >::assign (basic_any< Len, Align > && other)basic_any< Len, Align > && other)
-inline +inline
-

Assigns a value to the contained object without replacing it.

+

Assigns a value to the contained object without replacing it.

Parameters
otherThe value to assign to the contained object.
-
Returns
True in case of success, false otherwise.
+
Returns
True in case of success, false otherwise.
-

Definition at line 340 of file any.hpp.

+

Definition at line 362 of file any.hpp.

@@ -545,15 +614,15 @@ template<std::size_t Len, std::size_t Align> - + - +
bool entt::basic_any< Len, Align >::assign bool entt::basic_any< Len, Align >::assign (const basic_any< Len, Align > & other)const basic_any< Len, Align > & other)
-inline +inline
@@ -567,7 +636,7 @@ template<std::size_t Len, std::size_t Align>
Returns
True in case of success, false otherwise.
-

Definition at line 331 of file any.hpp.

+

Definition at line 352 of file any.hpp.

@@ -583,15 +652,15 @@ template<std::size_t Len, std::size_t Align> - + - +
const void * entt::basic_any< Len, Align >::data const void * entt::basic_any< Len, Align >::data ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -599,7 +668,7 @@ template<std::size_t Len, std::size_t Align>

Returns an opaque pointer to the contained instance.

Returns
An opaque pointer the contained instance, if any.
-

Definition at line 284 of file any.hpp.

+

Definition at line 305 of file any.hpp.

@@ -615,15 +684,15 @@ template<std::size_t Len, std::size_t Align> - + - +
void * entt::basic_any< Len, Align >::data void * entt::basic_any< Len, Align >::data ())
-inlinenoexcept +inlinenodiscardnoexcept
@@ -631,7 +700,7 @@ template<std::size_t Len, std::size_t Align>

Returns an opaque pointer to the contained instance.

Returns
An opaque pointer the contained instance, if any.
-

Definition at line 301 of file any.hpp.

+

Definition at line 322 of file any.hpp.

@@ -647,15 +716,15 @@ template<std::size_t Len, std::size_t Align> - + - +
const void * entt::basic_any< Len, Align >::data const void * entt::basic_any< Len, Align >::data (const type_info & req)const type_info & req) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -669,7 +738,7 @@ template<std::size_t Len, std::size_t Align>
Returns
An opaque pointer the contained instance, if any.
-

Definition at line 293 of file any.hpp.

+

Definition at line 314 of file any.hpp.

@@ -685,15 +754,15 @@ template<std::size_t Len, std::size_t Align> - + - +
void * entt::basic_any< Len, Align >::data void * entt::basic_any< Len, Align >::data (const type_info & req)const type_info & req)
-inlinenoexcept +inlinenodiscardnoexcept
@@ -707,7 +776,7 @@ template<std::size_t Len, std::size_t Align>
Returns
An opaque pointer the contained instance, if any.
-

Definition at line 310 of file any.hpp.

+

Definition at line 331 of file any.hpp.

@@ -719,21 +788,21 @@ template<std::size_t Len, std::size_t Align>
template<std::size_t Len, std::size_t Align>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args> +inline
- + - +
void entt::basic_any< Len, Align >::emplace void entt::basic_any< Len, Align >::emplace (Args &&... args)Args &&... args)
-inline
@@ -753,7 +822,7 @@ template<Definition at line 321 of file any.hpp.

+

Definition at line 342 of file any.hpp.

@@ -769,15 +838,15 @@ template<std::size_t Len, std::size_t Align> - + - +
entt::basic_any< Len, Align >::operator bool entt::basic_any< Len, Align >::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -785,7 +854,7 @@ template<std::size_t Len, std::size_t Align>

Returns false if a wrapper is empty, true otherwise.

Returns
False if the wrapper is empty, true otherwise.
-

Definition at line 369 of file any.hpp.

+

Definition at line 390 of file any.hpp.

@@ -801,15 +870,15 @@ template<std::size_t Len, std::size_t Align> - + - +
bool entt::basic_any< Len, Align >::operator!= bool entt::basic_any< Len, Align >::operator!= (const basic_any< Len, Align > & other)const basic_any< Len, Align > & other) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -823,7 +892,7 @@ template<std::size_t Len, std::size_t Align>
Returns
True if the two objects differ in their content, false otherwise.
-

Definition at line 391 of file any.hpp.

+

Definition at line 412 of file any.hpp.

@@ -839,20 +908,21 @@ template<std::size_t Len, std::size_t Align> - + - +
basic_any & entt::basic_any< Len, Align >::operator= basic_any & entt::basic_any< Len, Align >::operator= (basic_any< Len, Align > && other)basic_any< Len, Align > && other)
-inlinenoexcept +inlinenoexcept

Move assignment operator.

+
Warning
Self-moving puts objects in a safe but unspecified state.
Parameters
@@ -861,7 +931,7 @@ template<std::size_t Len, std::size_t Align>
Returns
This any object.
-

Definition at line 245 of file any.hpp.

+

Definition at line 265 of file any.hpp.

@@ -877,15 +947,15 @@ template<std::size_t Len, std::size_t Align> +inline
otherThe instance to move from.
- + - +
basic_any & entt::basic_any< Len, Align >::operator= basic_any & entt::basic_any< Len, Align >::operator= (const basic_any< Len, Align > & other)const basic_any< Len, Align > & other)
-inline
@@ -899,7 +969,7 @@ template<std::size_t Len, std::size_t Align>
Returns
This any object.
-

Definition at line 228 of file any.hpp.

+

Definition at line 244 of file any.hpp.

@@ -911,13 +981,13 @@ template<std::size_t Len, std::size_t Align>
template<std::size_t Len, std::size_t Align>
-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>> +inlinenodiscardnoexcept
- + @@ -925,7 +995,7 @@ template< -inline +inline
basic_any & entt::basic_any< Len, Align >::operator= basic_any & entt::basic_any< Len, Align >::operator= ( Type && value)
@@ -961,15 +1031,15 @@ template<std::size_t Len, std::size_t Align>
- + - +
bool entt::basic_any< Len, Align >::operator== bool entt::basic_any< Len, Align >::operator== (const basic_any< Len, Align > & other)const basic_any< Len, Align > & other) const
-inlinenoexcept
@@ -983,7 +1053,39 @@ template<std::size_t Len, std::size_t Align>
Returns
False if the two objects differ in their content, true otherwise.
-

Definition at line 378 of file any.hpp.

+

Definition at line 399 of file any.hpp.

+ + + + +

◆ owner()

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+ + + + + +
+ + + + + + + +
bool entt::basic_any< Len, Align >::owner () const
+
+inlinenodiscardnoexcept
+
+ +

Returns true if a wrapper owns its object, false otherwise.

+
Returns
True if the wrapper owns its object, false otherwise.
+ +

Definition at line 433 of file any.hpp.

@@ -999,15 +1101,15 @@ template<std::size_t Len, std::size_t Align> - + - +
any_policy entt::basic_any< Len, Align >::policy any_policy entt::basic_any< Len, Align >::policy ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1015,7 +1117,7 @@ template<std::size_t Len, std::size_t Align>

Returns the current mode of an any object.

Returns
The current mode of the any object.
-

Definition at line 412 of file any.hpp.

+

Definition at line 441 of file any.hpp.

@@ -1031,22 +1133,22 @@ template<std::size_t Len, std::size_t Align> - + - +
void entt::basic_any< Len, Align >::reset void entt::basic_any< Len, Align >::reset ())
-inline +inline

Destroys contained object.

-

Definition at line 353 of file any.hpp.

+

Definition at line 375 of file any.hpp.

@@ -1062,15 +1164,15 @@ template<std::size_t Len, std::size_t Align> - + - +
const type_info & entt::basic_any< Len, Align >::type const type_info & entt::basic_any< Len, Align >::type ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1078,7 +1180,7 @@ template<std::size_t Len, std::size_t Align>

Returns the object type if any, type_id<void>() otherwise.

Returns
The object type if any, type_id<void>() otherwise.
-

Definition at line 276 of file any.hpp.

+

Definition at line 297 of file any.hpp.

@@ -1095,19 +1197,19 @@ template<std::size_t Len, std::size_t Align> - +
constexpr auto entt::basic_any< Len, Align >::alignment = Alignauto entt::basic_any< Len, Align >::alignment = Align
-staticconstexpr +staticconstexpr

Alignment requirement.

-

Definition at line 161 of file any.hpp.

+

Definition at line 162 of file any.hpp.

@@ -1120,12 +1222,12 @@ template<std::size_t Len, std::size_t Align> template<std::size_t Len, std::size_t Align> - +
const void* entt::basic_any< Len, Align >::instanceconst void* entt::basic_any< Len, Align >::instance
-

Definition at line 418 of file any.hpp.

+

Definition at line 447 of file any.hpp.

@@ -1141,19 +1243,19 @@ template<std::size_t Len, std::size_t Align> - +
constexpr auto entt::basic_any< Len, Align >::length = Lenauto entt::basic_any< Len, Align >::length = Len
-staticconstexpr +staticconstexpr

Size of the internal storage.

-

Definition at line 159 of file any.hpp.

+

Definition at line 160 of file any.hpp.

@@ -1166,12 +1268,12 @@ template<std::size_t Len, std::size_t Align> template<std::size_t Len, std::size_t Align> - +
storage_type entt::basic_any< Len, Align >::storagestorage_type entt::basic_any< Len, Align >::storage
-

Definition at line 419 of file any.hpp.

+

Definition at line 448 of file any.hpp.

@@ -1181,7 +1283,8 @@ template<std::size_t Len, std::size_t Align> + diff --git a/classentt_1_1basic__common__view-members.html b/classentt_1_1basic__common__view-members.html index 31d478021..52cb3dbf6 100644 --- a/classentt_1_1basic__common__view-members.html +++ b/classentt_1_1basic__common__view-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
-
entt::basic_common_view< Type, Get, Exclude > Member List
+
entt::basic_common_view< Type, Checked, Get, Exclude > Member List
-

This is the complete list of members for entt::basic_common_view< Type, Get, Exclude >, including all inherited members.

+

This is the complete list of members for entt::basic_common_view< Type, Checked, Get, Exclude >, including all inherited members.

- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
back() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
begin() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
common_type typedefentt::basic_common_view< Type, Get, Exclude >
contains(const entity_type entt) const noexceptentt::basic_common_view< Type, Get, Exclude >inline
end() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
entity_type typedefentt::basic_common_view< Type, Get, Exclude >
find(const entity_type entt) const noexceptentt::basic_common_view< Type, Get, Exclude >inline
front() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
handle() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
internal::view_pack (defined in entt::basic_common_view< Type, Get, Exclude >)entt::basic_common_view< Type, Get, Exclude >friend
iterator typedefentt::basic_common_view< Type, Get, Exclude >
operator bool() const noexceptentt::basic_common_view< Type, Get, Exclude >inlineexplicit
refresh() noexceptentt::basic_common_view< Type, Get, Exclude >inline
size_hint() const noexceptentt::basic_common_view< Type, Get, Exclude >inline
size_type typedefentt::basic_common_view< Type, Get, Exclude >
back() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
begin() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
common_type typedefentt::basic_common_view< Type, Checked, Get, Exclude >
contains(const entity_type entt) const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
difference_type typedefentt::basic_common_view< Type, Checked, Get, Exclude >
end() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
entity_type typedefentt::basic_common_view< Type, Checked, Get, Exclude >
find(const entity_type entt) const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
front() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
handle() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
internal::view_pack (defined in entt::basic_common_view< Type, Checked, Get, Exclude >)entt::basic_common_view< Type, Checked, Get, Exclude >friend
iterator typedefentt::basic_common_view< Type, Checked, Get, Exclude >
operator bool() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inlineexplicit
refresh() noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
size_hint() const noexceptentt::basic_common_view< Type, Checked, Get, Exclude >inline
size_type typedefentt::basic_common_view< Type, Checked, Get, Exclude >
+
diff --git a/classentt_1_1basic__common__view.html b/classentt_1_1basic__common__view.html index 71a00b4eb..3e5e057b8 100644 --- a/classentt_1_1basic__common__view.html +++ b/classentt_1_1basic__common__view.html @@ -3,13 +3,15 @@ - + -EnTT: entt::basic_common_view< Type, Get, Exclude > Class Template Reference +EnTT: entt::basic_common_view< Type, Checked, Get, Exclude > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
-
entt::basic_common_view< Type, Get, Exclude > Class Template Reference
+
entt::basic_common_view< Type, Checked, Get, Exclude > Class Template Reference
@@ -91,176 +104,200 @@ $(function() { - - - - - - - - - - - - + + + + + + + + + + + + + + +

Public Types

using common_type = Type
 Common type among all storage types.
 
using entity_type = typename Type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = internal::view_iterator<common_type, Get, Exclude>
 Forward iterator type.
 
using common_type = Type
 Common type among all storage types.
 
using entity_type = typename Type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterator = internal::view_iterator<common_type, Checked, Get, Exclude>
 Forward iterator type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

void refresh () noexcept
 Updates the internal leading view if required.
 
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
size_type size_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
entity_type front () const noexcept
 Returns the first entity of the view, if any.
 
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 Checks if a view is fully initialized.
 
bool contains (const entity_type entt) const noexcept
 Checks if a view contains an entity.
 
void refresh () noexcept
 Updates the internal leading view if required.
 
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
size_type size_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
entity_type front () const noexcept
 Returns the first entity of the view, if any.
 
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 Checks if a view is fully initialized.
 
bool contains (const entity_type entt) const noexcept
 Checks if a view contains an entity.
 
- +template<typename Return, typename View, typename Other, std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs> +

Friends

-template<typename Return , typename View , typename Other , std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs>
Return internal::view_pack (const View &, const Other &, std::index_sequence< GLhs... >, std::index_sequence< ELhs... >, std::index_sequence< GRhs... >, std::index_sequence< ERhs... >)
Return internal::view_pack (const View &, const Other &, std::index_sequence< GLhs... >, std::index_sequence< ELhs... >, std::index_sequence< GRhs... >, std::index_sequence< ERhs... >)
 

Detailed Description

-
template<typename Type, std::size_t Get, std::size_t Exclude>
-class entt::basic_common_view< Type, Get, Exclude >

Basic storage view implementation.

+
template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+class entt::basic_common_view< Type, Checked, Get, Exclude >

Basic storage view implementation.

Warning
For internal use only, backward compatibility not guaranteed.
Template Parameters
+
TypeCommon type among all storage types.
CheckedTrue to enable the tombstone check, false otherwise.
GetNumber of storage iterated by the view.
ExcludeNumber of storage used to filter the view.
-

Definition at line 226 of file view.hpp.

+

Definition at line 233 of file view.hpp.

Member Typedef Documentation

- -

◆ common_type

+ +

◆ common_type

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
- +
using entt::basic_common_view< Type, Get, Exclude >::common_type = Typeusing entt::basic_common_view< Type, Checked, Get, Exclude >::common_type = Type

Common type among all storage types.

-

Definition at line 302 of file view.hpp.

+

Definition at line 301 of file view.hpp.

- -

◆ entity_type

+ +

◆ difference_type

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
- + + +
using entt::basic_common_view< Type, Get, Exclude >::entity_type = typename Type::entity_typeusing entt::basic_common_view< Type, Checked, Get, Exclude >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 307 of file view.hpp.

+ +
+
+ +

◆ entity_type

+ +
+
+
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+ + +
using entt::basic_common_view< Type, Checked, Get, Exclude >::entity_type = typename Type::entity_type

Underlying entity identifier.

-

Definition at line 304 of file view.hpp.

+

Definition at line 303 of file view.hpp.

- -

◆ iterator

+ +

◆ iterator

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
- +
using entt::basic_common_view< Type, Get, Exclude >::iterator = internal::view_iterator<common_type, Get, Exclude>using entt::basic_common_view< Type, Checked, Get, Exclude >::iterator = internal::view_iterator<common_type, Checked, Get, Exclude>

Forward iterator type.

-

Definition at line 308 of file view.hpp.

+

Definition at line 309 of file view.hpp.

- -

◆ size_type

+ +

◆ size_type

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
- +
using entt::basic_common_view< Type, Get, Exclude >::size_type = std::size_tusing entt::basic_common_view< Type, Checked, Get, Exclude >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 306 of file view.hpp.

+

Definition at line 305 of file view.hpp.

Member Function Documentation

- -

◆ back()

+ +

◆ back()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_common_view< Type, Get, Exclude >::back entity_type entt::basic_common_view< Type, Checked, Get, Exclude >::back ()) const
-inlinenoexcept
@@ -268,64 +305,64 @@ template<
Returns
The last entity of the view if one exists, the null entity otherwise.
-

Definition at line 370 of file view.hpp.

+

Definition at line 371 of file view.hpp.

- -

◆ begin()

+ +

◆ begin()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_common_view< Type, Get, Exclude >::begin iterator entt::basic_common_view< Type, Checked, Get, Exclude >::begin ()) const
-inlinenoexcept

Returns an iterator to the first entity of the view.

-

If the view is empty, the returned iterator will be equal to end().

+

If the view is empty, the returned iterator will be equal to end().

Returns
An iterator to the first entity of the view.
-

Definition at line 343 of file view.hpp.

+

Definition at line 344 of file view.hpp.

- -

◆ contains()

+ +

◆ contains()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_common_view< Type, Get, Exclude >::contains bool entt::basic_common_view< Type, Checked, Get, Exclude >::contains (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -339,31 +376,31 @@ template<
Returns
True if the view contains the given entity, false otherwise.
-

Definition at line 404 of file view.hpp.

+

Definition at line 405 of file view.hpp.

- -

◆ end()

+ +

◆ end()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_common_view< Type, Get, Exclude >::end iterator entt::basic_common_view< Type, Checked, Get, Exclude >::end ()) const
-inlinenoexcept
@@ -371,31 +408,31 @@ template<
Returns
An iterator to the entity following the last entity of the view.
-

Definition at line 351 of file view.hpp.

+

Definition at line 352 of file view.hpp.

- -

◆ find()

+ +

◆ find()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_common_view< Type, Get, Exclude >::find iterator entt::basic_common_view< Type, Checked, Get, Exclude >::find (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -409,31 +446,31 @@ template<
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
-

Definition at line 387 of file view.hpp.

+

Definition at line 388 of file view.hpp.

- -

◆ front()

+ +

◆ front()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_common_view< Type, Get, Exclude >::front entity_type entt::basic_common_view< Type, Checked, Get, Exclude >::front ()) const
-inlinenoexcept
@@ -441,31 +478,31 @@ template<
Returns
The first entity of the view if one exists, the null entity otherwise.
-

Definition at line 360 of file view.hpp.

+

Definition at line 361 of file view.hpp.

- -

◆ handle()

+ +

◆ handle()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
const common_type * entt::basic_common_view< Type, Get, Exclude >::handle const common_type * entt::basic_common_view< Type, Checked, Get, Exclude >::handle ()) const
-inlinenoexcept
@@ -473,31 +510,31 @@ template<
Returns
The leading storage of the view.
-

Definition at line 324 of file view.hpp.

+

Definition at line 325 of file view.hpp.

- -

◆ operator bool()

+ +

◆ operator bool()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_common_view< Type, Get, Exclude >::operator bool entt::basic_common_view< Type, Checked, Get, Exclude >::operator bool ()) const
-inlineexplicitnoexcept
@@ -505,62 +542,62 @@ template<
Returns
True if the view is fully initialized, false otherwise.
-

Definition at line 395 of file view.hpp.

+

Definition at line 396 of file view.hpp.

- -

◆ refresh()

+ +

◆ refresh()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenoexcept
- + - +
void entt::basic_common_view< Type, Get, Exclude >::refresh void entt::basic_common_view< Type, Checked, Get, Exclude >::refresh ())
-inlinenoexcept

Updates the internal leading view if required.

-

Definition at line 311 of file view.hpp.

+

Definition at line 312 of file view.hpp.

- -

◆ size_hint()

+ +

◆ size_hint()

-template<typename Type , std::size_t Get, std::size_t Exclude>
+template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_common_view< Type, Get, Exclude >::size_hint size_type entt::basic_common_view< Type, Checked, Get, Exclude >::size_hint ()) const
-inlinenoexcept
@@ -568,7 +605,7 @@ template<
Returns
Estimated number of entities iterated by the view.
-

Definition at line 332 of file view.hpp.

+

Definition at line 333 of file view.hpp.

@@ -578,7 +615,8 @@ template< + diff --git a/classentt_1_1basic__continuous__loader-members.html b/classentt_1_1basic__continuous__loader-members.html index 524f24643..145cd53e7 100644 --- a/classentt_1_1basic__continuous__loader-members.html +++ b/classentt_1_1basic__continuous__loader-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_continuous_loader< Registry > Member List
@@ -96,7 +109,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__continuous__loader.html b/classentt_1_1basic__continuous__loader.html index dfc646462..430068fd0 100644 --- a/classentt_1_1basic__continuous__loader.html +++ b/classentt_1_1basic__continuous__loader.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_continuous_loader< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,51 +103,51 @@ $(function() { - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
- + +  +  +  - + - + - - + + - + - +

Public Member Functions

 basic_continuous_loader (registry_type &source) noexcept
 basic_continuous_loader (registry_type &source) noexcept
 Constructs an instance that is bound to a given registry.
 
basic_continuous_loader (const basic_continuous_loader &)=delete
basic_continuous_loader (const basic_continuous_loader &)=delete
 Default copy constructor, deleted on purpose.
 
basic_continuous_loader (basic_continuous_loader &&) noexcept=default
basic_continuous_loader (basic_continuous_loader &&) noexcept=default
 Default move constructor.
 
~basic_continuous_loader ()=default
~basic_continuous_loader ()=default
 Default destructor.
 
basic_continuous_loaderoperator= (const basic_continuous_loader &)=delete
basic_continuous_loaderoperator= (const basic_continuous_loader &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_continuous_loaderoperator= (basic_continuous_loader &&) noexcept=default
basic_continuous_loaderoperator= (basic_continuous_loader &&) noexcept=default
 Default move assignment operator.
 
template<typename Type , typename Archive >
basic_continuous_loaderget (Archive &archive, const id_type id=type_hash< Type >::value())
template<typename Type, typename Archive>
basic_continuous_loaderget (Archive &archive, const id_type id=type_hash< Type >::value())
 Restores all elements of a type with associated identifiers.
 
basic_continuous_loaderorphans ()
 Destroys those entities that have no elements.
 
bool contains (entity_type entt) const noexcept
bool contains (entity_type entt) const noexcept
 Tests if a loader knows about a given entity.
 
entity_type map (entity_type entt) const noexcept
entity_type map (entity_type entt) const noexcept
 Returns the identifier to which an entity refers.
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::basic_continuous_loader< Registry >

Utility class for continuous loading.

A continuous loader is designed to load data from a source registry to a (possibly) non-empty destination. The loader can accommodate in a registry more than one snapshot in a sort of continuous loading that updates the destination one step at a time.
Identifiers that entities originally had are not transferred to the target. Instead, the loader maps remote identifiers to local ones while restoring a snapshot.
@@ -146,7 +159,7 @@ class entt::basic_continuous_loader< Registry >

Utility class for -

Definition at line 303 of file snapshot.hpp.

+

Definition at line 306 of file snapshot.hpp.

Member Typedef Documentation

◆ entity_type

@@ -154,17 +167,17 @@ class entt::basic_continuous_loader< Registry >

Utility class for

-template<typename Registry >
+template<typename Registry>
- +
using entt::basic_continuous_loader< Registry >::entity_type = typename registry_type::entity_typeusing entt::basic_continuous_loader< Registry >::entity_type = typename registry_type::entity_type

Underlying entity identifier.

-

Definition at line 366 of file snapshot.hpp.

+

Definition at line 369 of file snapshot.hpp.

@@ -174,16 +187,16 @@ template<
+template<typename Registry>
- +
using entt::basic_continuous_loader< Registry >::registry_type = Registryusing entt::basic_continuous_loader< Registry >::registry_type = Registry

Basic registry type.

-

Definition at line 364 of file snapshot.hpp.

+

Definition at line 367 of file snapshot.hpp.

@@ -194,13 +207,13 @@ template<
+template<typename Registry>
@@ -31,23 +33,33 @@
- + @@ -208,7 +221,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::basic_continuous_loader< Registry >::basic_continuous_loader entt::basic_continuous_loader< Registry >::basic_continuous_loader ( registry_type & source)
@@ -232,13 +245,13 @@ template<
+template<typename Registry>
- + @@ -246,7 +259,7 @@ template< -inlinenoexcept +inlinenodiscardnoexcept
bool entt::basic_continuous_loader< Registry >::contains bool entt::basic_continuous_loader< Registry >::contains ( entity_type entt) const
@@ -270,34 +283,34 @@ template<
+template<typename Registry>
-template<typename Type , typename Archive >
+template<typename Type, typename Archive> +inline
- + - + - +
basic_continuous_loader & entt::basic_continuous_loader< Registry >::get basic_continuous_loader & entt::basic_continuous_loader< Registry >::get (Archive & archive, Archive & archive,
const id_type id = type_hash<Type>::value() )const id_type id = type_hash<Type>::value() )
-inline

Restores all elements of a type with associated identifiers.

It creates local counterparts for remote elements as needed.
- Members are either data members of type entity_type or containers of entities. In both cases, a loader visits them and replaces entities with their local counterpart.

+ Members are either data members of type entity_type or containers of entities. In both cases, a loader visits them and replaces entities with their local counterpart.

Template Parameters
@@ -314,7 +327,7 @@ template<
Returns
A valid loader to continue restoring data.
-

Definition at line 412 of file snapshot.hpp.

+

Definition at line 415 of file snapshot.hpp.

@@ -324,13 +337,13 @@ template<
+template<typename Registry>
TypeType of elements to restore.
@@ -31,23 +33,33 @@
- + @@ -338,7 +351,7 @@ template< -inlinenoexcept +inlinenodiscardnoexcept
entity_type entt::basic_continuous_loader< Registry >::map entity_type entt::basic_continuous_loader< Registry >::map ( entity_type entt) const
@@ -362,21 +375,21 @@ template<
+template<typename Registry>
+defaultnoexcept
- + - +
basic_continuous_loader & entt::basic_continuous_loader< Registry >::operator= basic_continuous_loader & entt::basic_continuous_loader< Registry >::operator= (basic_continuous_loader< Registry > && )basic_continuous_loader< Registry > && )
-defaultnoexcept
@@ -392,21 +405,21 @@ template<
+template<typename Registry>
+delete
- + - +
basic_continuous_loader & entt::basic_continuous_loader< Registry >::operator= basic_continuous_loader & entt::basic_continuous_loader< Registry >::operator= (const basic_continuous_loader< Registry > & )const basic_continuous_loader< Registry > & )
-delete
@@ -422,21 +435,21 @@ template<
+template<typename Registry>
+inline
- + - +
basic_continuous_loader & entt::basic_continuous_loader< Registry >::orphans basic_continuous_loader & entt::basic_continuous_loader< Registry >::orphans ())
-inline
@@ -446,7 +459,7 @@ template<
Returns
A non-const reference to this loader.
-

Definition at line 474 of file snapshot.hpp.

+

Definition at line 477 of file snapshot.hpp.

@@ -457,7 +470,8 @@ template< + diff --git a/classentt_1_1basic__dispatcher-members.html b/classentt_1_1basic__dispatcher-members.html index b621ef354..72f92c173 100644 --- a/classentt_1_1basic__dispatcher-members.html +++ b/classentt_1_1basic__dispatcher-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_dispatcher< Allocator > Member List
@@ -111,7 +124,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__dispatcher.html b/classentt_1_1basic__dispatcher.html index c14ba9d57..7aa989d20 100644 --- a/classentt_1_1basic__dispatcher.html +++ b/classentt_1_1basic__dispatcher.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_dispatcher< Allocator > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
Public Types | @@ -90,10 +103,10 @@ $(function() { - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
@@ -102,95 +115,95 @@ Public Member Functions - + +  - + - + +  - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - +
 basic_dispatcher ()
 Default constructor.
 
 basic_dispatcher (const allocator_type &allocator)
 basic_dispatcher (const allocator_type &allocator)
 Constructs a dispatcher with a given allocator.
 
basic_dispatcher (const basic_dispatcher &)=delete
basic_dispatcher (const basic_dispatcher &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_dispatcher (basic_dispatcher &&other) noexcept
 basic_dispatcher (basic_dispatcher &&other) noexcept
 Move constructor.
 
 basic_dispatcher (basic_dispatcher &&other, const allocator_type &allocator)
 basic_dispatcher (basic_dispatcher &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_dispatcher ()=default
~basic_dispatcher ()=default
 Default destructor.
 
basic_dispatcheroperator= (const basic_dispatcher &)=delete
basic_dispatcheroperator= (const basic_dispatcher &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_dispatcheroperator= (basic_dispatcher &&other) noexcept
basic_dispatcheroperator= (basic_dispatcher &&other) noexcept
 Move assignment operator.
 
void swap (basic_dispatcher &other) noexcept
void swap (basic_dispatcher &other) noexcept
 Exchanges the contents with those of a given dispatcher.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
template<typename Type >
size_type size (const id_type id=type_hash< Type >::value()) const noexcept
template<typename Type>
size_type size (const id_type id=type_hash< Type >::value()) const noexcept
 Returns the number of pending events for a given type.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the total number of pending events.
 
template<typename Type >
auto sink (const id_type id=type_hash< Type >::value())
template<typename Type>
auto sink (const id_type id=type_hash< Type >::value())
 Returns a sink object for the given event and queue.
 
template<typename Type >
void trigger (Type &&value={})
template<typename Type>
void trigger (Type &&value={})
 Triggers an immediate event of a given type.
 
template<typename Type >
void trigger (const id_type id, Type &&value={})
template<typename Type>
void trigger (const id_type id, Type &&value={})
 Triggers an immediate event on a queue of a given type.
 
template<typename Type , typename... Args>
void enqueue (Args &&...args)
template<typename Type, typename... Args>
void enqueue (Args &&...args)
 Enqueues an event of the given type.
 
template<typename Type >
void enqueue (Type &&value)
template<typename Type>
void enqueue (Type &&value)
 Enqueues an event of the given type.
 
template<typename Type , typename... Args>
void enqueue_hint (const id_type id, Args &&...args)
template<typename Type, typename... Args>
void enqueue_hint (const id_type id, Args &&...args)
 Enqueues an event of the given type.
 
template<typename Type >
void enqueue_hint (const id_type id, Type &&value)
template<typename Type>
void enqueue_hint (const id_type id, Type &&value)
 Enqueues an event of the given type.
 
template<typename Type >
void disconnect (Type &value_or_instance)
template<typename Type>
void disconnect (Type &value_or_instance)
 Utility function to disconnect everything related to a given value or instance from a dispatcher.
 
template<typename Type >
void disconnect (Type *value_or_instance)
template<typename Type>
void disconnect (Type *value_or_instance)
 Utility function to disconnect everything related to a given value or instance from a dispatcher.
 
template<typename Type >
void clear (const id_type id=type_hash< Type >::value())
template<typename Type>
void clear (const id_type id=type_hash< Type >::value())
 Discards all the events stored so far in a given queue.
 
void clear () noexcept
void clear () noexcept
 Discards all the events queued so far.
 
template<typename Type >
void update (const id_type id=type_hash< Type >::value())
template<typename Type>
void update (const id_type id=type_hash< Type >::value())
 Delivers all the pending events of a given queue.
 
void update () const
void update () const
 Delivers all the pending events.
 

Detailed Description

-
template<typename Allocator>
+
template<typename Allocator>
class entt::basic_dispatcher< Allocator >

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 Type, listeners are such that they can be invoked with an argument of type Type &, no matter what the return type is.

@@ -210,10 +223,10 @@ class entt::basic_dispatcher< Allocator >

Basic dispatcher impleme

-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_dispatcher< Allocator >::allocator_type = Allocatorusing entt::basic_dispatcher< Allocator >::allocator_type = Allocator
@@ -230,10 +243,10 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_dispatcher< Allocator >::size_type = std::size_tusing entt::basic_dispatcher< Allocator >::size_type = std::size_t
@@ -251,7 +264,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -259,13 +272,13 @@ template<entt::basic_dispatcher< Allocator >::basic_dispatcher ())
-inline +inline
@@ -282,7 +295,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -290,13 +303,13 @@ template<entt::basic_dispatcher< Allocator >::basic_dispatcher (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit +inlineexplicit
@@ -319,7 +332,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenoexcept
@@ -333,7 +346,7 @@ template< -inlinenoexcept
@@ -356,7 +369,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- + - +
@@ -364,17 +377,17 @@ template<entt::basic_dispatcher< Allocator >::basic_dispatcher (basic_dispatcher< Allocator > && other, basic_dispatcher< Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline +inline
@@ -399,21 +412,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_dispatcher< Allocator >::clear void entt::basic_dispatcher< Allocator >::clear ())
-inlinenoexcept
@@ -430,23 +443,23 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::basic_dispatcher< Allocator >::clear void entt::basic_dispatcher< Allocator >::clear (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -475,15 +488,15 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
@@ -31,23 +33,33 @@
- + @@ -491,7 +504,7 @@ template< -inline +inline
void entt::basic_dispatcher< Allocator >::disconnect void entt::basic_dispatcher< Allocator >::disconnect ( Type & value_or_instance)
@@ -520,15 +533,15 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
@@ -31,23 +33,33 @@
- + @@ -536,7 +549,7 @@ template< -inline +inline
void entt::basic_dispatcher< Allocator >::disconnect void entt::basic_dispatcher< Allocator >::disconnect ( Type * value_or_instance)
@@ -565,23 +578,23 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
void entt::basic_dispatcher< Allocator >::enqueue void entt::basic_dispatcher< Allocator >::enqueue (Args &&... args)Args &&... args)
-inline
@@ -611,15 +624,15 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
- + @@ -627,7 +640,7 @@ template< -inline +inline
void entt::basic_dispatcher< Allocator >::enqueue void entt::basic_dispatcher< Allocator >::enqueue ( Type && value)
@@ -656,27 +669,27 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - + - +
void entt::basic_dispatcher< Allocator >::enqueue_hint void entt::basic_dispatcher< Allocator >::enqueue_hint (const id_type id, const id_type id,
Args &&... args )Args &&... args )
-inline
@@ -707,17 +720,17 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscardnoexcept
- + - + @@ -727,7 +740,7 @@ template< -inline +inline
void entt::basic_dispatcher< Allocator >::enqueue_hint void entt::basic_dispatcher< Allocator >::enqueue_hint (const id_type id, const id_type id,
@@ -757,21 +770,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_dispatcher< Allocator >::get_allocator allocator_type entt::basic_dispatcher< Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -789,13 +802,13 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenodiscardnoexcept
- + @@ -803,7 +816,7 @@ template< -inlinenoexcept +inlinenoexcept
basic_dispatcher & entt::basic_dispatcher< Allocator >::operator= basic_dispatcher & entt::basic_dispatcher< Allocator >::operator= ( basic_dispatcher< Allocator > && other)
@@ -827,21 +840,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+delete
- + - +
basic_dispatcher & entt::basic_dispatcher< Allocator >::operator= basic_dispatcher & entt::basic_dispatcher< Allocator >::operator= (const basic_dispatcher< Allocator > & )const basic_dispatcher< Allocator > & )
-delete
@@ -857,23 +870,23 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
auto entt::basic_dispatcher< Allocator >::sink auto entt::basic_dispatcher< Allocator >::sink (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -881,8 +894,7 @@ template<
void(Type &);
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
void(Type &);

The order of invocation of the listeners isn't guaranteed.

See also
sink
Template Parameters
@@ -909,7 +921,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -917,13 +929,13 @@ template<size_type entt::basic_dispatcher< Allocator >::size ()) const
-inlinenoexcept
@@ -941,9 +953,9 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
- +
@@ -951,13 +963,13 @@ template<size_type entt::basic_dispatcher< Allocator >::size (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value()) const
-inlinenoexcept
@@ -987,13 +999,13 @@ template<
-template<typename Allocator >
+template<typename Allocator>
@@ -31,23 +33,33 @@
- + @@ -1001,7 +1013,7 @@ template< -inlinenoexcept +inlinenoexcept
void entt::basic_dispatcher< Allocator >::swap void entt::basic_dispatcher< Allocator >::swap ( basic_dispatcher< Allocator > & other)
@@ -1024,27 +1036,27 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - + - +
void entt::basic_dispatcher< Allocator >::trigger void entt::basic_dispatcher< Allocator >::trigger (const id_type id, const id_type id,
Type && value = {} )Type && value = {} )
-inline
@@ -1074,23 +1086,23 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::basic_dispatcher< Allocator >::trigger void entt::basic_dispatcher< Allocator >::trigger (Type && value = {})Type && value = {})
-inline
@@ -1119,21 +1131,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inline
- + - +
void entt::basic_dispatcher< Allocator >::update void entt::basic_dispatcher< Allocator >::update ()) const
-inline
@@ -1150,23 +1162,23 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::basic_dispatcher< Allocator >::update void entt::basic_dispatcher< Allocator >::update (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -1195,7 +1207,8 @@ template< +
diff --git a/classentt_1_1basic__entt__traits-members.html b/classentt_1_1basic__entt__traits-members.html index d94a8e5c4..23332e544 100644 --- a/classentt_1_1basic__entt__traits-members.html +++ b/classentt_1_1basic__entt__traits-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_entt_traits< Traits > Member List
@@ -95,7 +108,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__entt__traits.html b/classentt_1_1basic__entt__traits.html index d20d25a03..1b42e53f6 100644 --- a/classentt_1_1basic__entt__traits.html +++ b/classentt_1_1basic__entt__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_entt_traits< Traits > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
Public Types | @@ -88,51 +101,63 @@ $(function() { More...

#include <entity.hpp>

+
+Inheritance diagram for entt::basic_entt_traits< Traits >:
+
+
Inheritance graph
+ + + + + + + +
[legend]
- + - + - +

Public Types

using value_type = typename Traits::value_type
using value_type = typename Traits::value_type
 Value type.
 
using entity_type = typename Traits::entity_type
using entity_type = typename Traits::entity_type
 Underlying entity type.
 
using version_type = typename Traits::version_type
using version_type = typename Traits::version_type
 Underlying version type.
 
- + - + - + - + - + - +

Static Public Member Functions

static constexpr entity_type to_integral (const value_type value) noexcept
static constexpr entity_type to_integral (const value_type value) noexcept
 Converts an entity to its underlying type.
 
static constexpr entity_type to_entity (const value_type value) noexcept
static constexpr entity_type to_entity (const value_type value) noexcept
 Returns the entity part once converted to the underlying type.
 
static constexpr version_type to_version (const value_type value) noexcept
static constexpr version_type to_version (const value_type value) noexcept
 Returns the version part once converted to the underlying type.
 
static constexpr value_type next (const value_type value) noexcept
static constexpr value_type next (const value_type value) noexcept
 Returns the successor of a given identifier.
 
static constexpr value_type construct (const entity_type entity, const version_type version) noexcept
static constexpr value_type construct (const entity_type entity, const version_type version) noexcept
 Constructs an identifier from its parts.
 
static constexpr value_type combine (const entity_type lhs, const entity_type rhs) noexcept
static constexpr value_type combine (const entity_type lhs, const entity_type rhs) noexcept
 Combines two identifiers in a single one.
 
- + - +

Static Public Attributes

static constexpr entity_type entity_mask = Traits::entity_mask
static constexpr entity_type entity_mask = Traits::entity_mask
 Entity mask size.
 
static constexpr entity_type version_mask = Traits::version_mask
static constexpr entity_type version_mask = Traits::version_mask
 Version mask size.
 

Detailed Description

-
template<typename Traits>
+
template<typename Traits>
class entt::basic_entt_traits< Traits >

Common basic entity traits implementation.

Template Parameters
@@ -149,10 +174,10 @@ class entt::basic_entt_traits< Traits >

Common basic entity traits

-template<typename Traits >
+template<typename Traits>
- +
using entt::basic_entt_traits< Traits >::entity_type = typename Traits::entity_typeusing entt::basic_entt_traits< Traits >::entity_type = typename Traits::entity_type
@@ -169,10 +194,10 @@ template<
+template<typename Traits>
- +
using entt::basic_entt_traits< Traits >::value_type = typename Traits::value_typeusing entt::basic_entt_traits< Traits >::value_type = typename Traits::value_type
@@ -189,10 +214,10 @@ template<
+template<typename Traits>
- +
using entt::basic_entt_traits< Traits >::version_type = typename Traits::version_typeusing entt::basic_entt_traits< Traits >::version_type = typename Traits::version_type
@@ -210,25 +235,25 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - + - +
static constexpr value_type entt::basic_entt_traits< Traits >::combine static constexpr value_type entt::basic_entt_traits< Traits >::combine (const entity_type lhs, const entity_type lhs,
const entity_type rhs )const entity_type rhs )
-inlinestaticconstexprnoexcept
@@ -254,25 +279,25 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - + - +
static constexpr value_type entt::basic_entt_traits< Traits >::construct static constexpr value_type entt::basic_entt_traits< Traits >::construct (const entity_type entity, const entity_type entity,
const version_type version )const version_type version )
-inlinestaticconstexprnoexcept
@@ -299,21 +324,21 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - +
static constexpr value_type entt::basic_entt_traits< Traits >::next static constexpr value_type entt::basic_entt_traits< Traits >::next (const value_type value)const value_type value)
-inlinestaticconstexprnoexcept
@@ -337,21 +362,21 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - +
static constexpr entity_type entt::basic_entt_traits< Traits >::to_entity static constexpr entity_type entt::basic_entt_traits< Traits >::to_entity (const value_type value)const value_type value)
-inlinestaticconstexprnoexcept
@@ -375,21 +400,21 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - +
static constexpr entity_type entt::basic_entt_traits< Traits >::to_integral static constexpr entity_type entt::basic_entt_traits< Traits >::to_integral (const value_type value)const value_type value)
-inlinestaticconstexprnoexcept
@@ -413,21 +438,21 @@ template<
+template<typename Traits>
+inlinestaticnodiscardconstexprnoexcept
- + - +
static constexpr version_type entt::basic_entt_traits< Traits >::to_version static constexpr version_type entt::basic_entt_traits< Traits >::to_version (const value_type value)const value_type value)
-inlinestaticconstexprnoexcept
@@ -452,18 +477,18 @@ template<
+template<typename Traits>
+staticconstexpr
- +
constexpr entity_type entt::basic_entt_traits< Traits >::entity_mask = Traits::entity_maskentity_type entt::basic_entt_traits< Traits >::entity_mask = Traits::entity_mask
-staticconstexpr
@@ -480,18 +505,18 @@ template<
+template<typename Traits>
+staticconstexpr
- +
constexpr entity_type entt::basic_entt_traits< Traits >::version_mask = Traits::version_maskentity_type entt::basic_entt_traits< Traits >::version_mask = Traits::version_mask
-staticconstexpr
@@ -508,7 +533,8 @@ template< +
diff --git a/classentt_1_1basic__entt__traits__inherit__graph.map b/classentt_1_1basic__entt__traits__inherit__graph.map new file mode 100644 index 000000000..68c42923a --- /dev/null +++ b/classentt_1_1basic__entt__traits__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/classentt_1_1basic__entt__traits__inherit__graph.md5 b/classentt_1_1basic__entt__traits__inherit__graph.md5 new file mode 100644 index 000000000..d601e7476 --- /dev/null +++ b/classentt_1_1basic__entt__traits__inherit__graph.md5 @@ -0,0 +1 @@ +104e4f0540f4960d20f4a0e3ef8e9ed6 \ No newline at end of file diff --git a/classentt_1_1basic__entt__traits__inherit__graph.png b/classentt_1_1basic__entt__traits__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..ccdd5b5e521f5e31ffc10618f05d9f03e9fa534b GIT binary patch literal 4287 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 - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::basic_flow< Allocator > Member List
@@ -111,7 +124,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__flow.html b/classentt_1_1basic__flow.html index 072fdbf0a..e3f6038af 100644 --- a/classentt_1_1basic__flow.html +++ b/classentt_1_1basic__flow.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_flow< Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,16 +103,16 @@ $(function() { - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterable = iterable_adaptor<typename task_container_type::const_iterator>
using iterable = iterable_adaptor<typename task_container_type::const_iterator>
 Iterable task list.
 
using graph_type = adjacency_matrix_type
using graph_type = adjacency_matrix_type
 Adjacency matrix type.
 
@@ -108,80 +121,80 @@ Public Member Functions - + +  - + +  - + +  - + - + - - - - - - - - - - + - + + + + + + + + + + - + - + - + - + - - + + - + - - + + - +
 basic_flow ()
 Default constructor.
 
 basic_flow (const allocator_type &allocator)
 basic_flow (const allocator_type &allocator)
 Constructs a flow builder with a given allocator.
 
basic_flow (const basic_flow &)=default
basic_flow (const basic_flow &)=default
 Default copy constructor.
 
 basic_flow (const basic_flow &other, const allocator_type &allocator)
 basic_flow (const basic_flow &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
basic_flow (basic_flow &&) noexcept=default
basic_flow (basic_flow &&) noexcept=default
 Default move constructor.
 
 basic_flow (basic_flow &&other, const allocator_type &allocator)
 basic_flow (basic_flow &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_flow ()=default
~basic_flow ()=default
 Default destructor.
 
basic_flowoperator= (const basic_flow &)=default
basic_flowoperator= (const basic_flow &)=default
 Default copy assignment operator.
 
basic_flowoperator= (basic_flow &&) noexcept=default
basic_flowoperator= (basic_flow &&) noexcept=default
 Default move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
id_type operator[] (const size_type pos) const
 Returns the identifier at specified location.
 
void clear () noexcept
 Clears the flow builder.
 
void swap (basic_flow &other) noexcept
void swap (basic_flow &other) noexcept
 Exchanges the contents with those of a given flow builder.
 
bool empty () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
id_type operator[] (const size_type pos) const
 Returns the identifier at specified location.
 
void clear () noexcept
 Clears the flow builder.
 
bool empty () const noexcept
 Returns true if a flow builder contains no tasks, false otherwise.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of tasks.
 
basic_flowbind (const id_type value)
basic_flowbind (const id_type value)
 Binds a task to a flow builder.
 
basic_flowsync ()
 Turns the current task into a sync point.
 
basic_flowset (const id_type res, bool is_rw=false)
basic_flowset (const id_type res, bool is_rw=false)
 Assigns a resource to the current task with a given access mode.
 
basic_flowro (const id_type res)
basic_flowro (const id_type res)
 Assigns a read-only resource to the current task.
 
template<typename It >
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > ro (It first, It last)
template<typename It>
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > ro (It first, It last)
 Assigns a range of read-only resources to the current task.
 
basic_flowrw (const id_type res)
basic_flowrw (const id_type res)
 Assigns a writable resource to the current task.
 
template<typename It >
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > rw (It first, It last)
template<typename It>
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > rw (It first, It last)
 Assigns a range of writable resources to the current task.
 
graph_type graph () const
graph_type graph () const
 Generates a task graph for the current content.
 

Detailed Description

-
template<typename Allocator>
+
template<typename Allocator>
class entt::basic_flow< Allocator >

Utility class for creating task graphs.

Template Parameters
@@ -198,10 +211,10 @@ class entt::basic_flow< Allocator >

Utility class for creating tas

-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_flow< Allocator >::allocator_type = Allocatorusing entt::basic_flow< Allocator >::allocator_type = Allocator
@@ -218,10 +231,10 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_flow< Allocator >::graph_type = adjacency_matrix_typeusing entt::basic_flow< Allocator >::graph_type = adjacency_matrix_type
@@ -238,10 +251,10 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_flow< Allocator >::iterable = iterable_adaptor<typename task_container_type::const_iterator>using entt::basic_flow< Allocator >::iterable = iterable_adaptor<typename task_container_type::const_iterator>
@@ -258,10 +271,10 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
using entt::basic_flow< Allocator >::size_type = std::size_tusing entt::basic_flow< Allocator >::size_type = std::size_t
@@ -279,7 +292,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -287,13 +300,13 @@ template<entt::basic_flow< Allocator >::basic_flow ())
-inline +inline
@@ -310,7 +323,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -318,13 +331,13 @@ template<entt::basic_flow< Allocator >::basic_flow (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit +inlineexplicit
@@ -347,7 +360,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- + - +
@@ -355,17 +368,17 @@ template<entt::basic_flow< Allocator >::basic_flow (const basic_flow< Allocator > & other, const basic_flow< Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline +inline
@@ -389,7 +402,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- + - +
@@ -397,17 +410,17 @@ template<entt::basic_flow< Allocator >::basic_flow (basic_flow< Allocator > && other, basic_flow< Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline +inline
@@ -432,7 +445,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -440,13 +453,13 @@ template<basic_flow & entt::basic_flow< Allocator >::bind (const id_type value)const id_type value)
-inline +inline
@@ -470,28 +483,28 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_flow< Allocator >::clear void entt::basic_flow< Allocator >::clear ())
-inlinenoexcept

Clears the flow builder.

-

Definition at line 201 of file flow.hpp.

+

Definition at line 213 of file flow.hpp.

@@ -501,21 +514,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_flow< Allocator >::empty bool entt::basic_flow< Allocator >::empty ()) const
-inlinenoexcept
@@ -533,21 +546,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_flow< Allocator >::get_allocator allocator_type entt::basic_flow< Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -555,7 +568,7 @@ template<
Returns
The associated allocator.
-

Definition at line 187 of file flow.hpp.

+

Definition at line 199 of file flow.hpp.

@@ -565,7 +578,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -573,13 +586,13 @@ template<graph_type entt::basic_flow< Allocator >::graph ()) const
-inline +inlinenodiscard
@@ -597,21 +610,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+defaultnoexcept
- + - +
basic_flow & entt::basic_flow< Allocator >::operator= basic_flow & entt::basic_flow< Allocator >::operator= (basic_flow< Allocator > && )basic_flow< Allocator > && )
-defaultnoexcept
@@ -627,21 +640,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+default
- + - +
basic_flow & entt::basic_flow< Allocator >::operator= basic_flow & entt::basic_flow< Allocator >::operator= (const basic_flow< Allocator > & )const basic_flow< Allocator > & )
-default
@@ -657,21 +670,21 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inlinenodiscard
- + - +
id_type entt::basic_flow< Allocator >::operator[] id_type entt::basic_flow< Allocator >::operator[] (const size_type pos)const size_type pos) const
-inline
@@ -685,7 +698,7 @@ template<
Returns
The requested identifier.
-

Definition at line 196 of file flow.hpp.

+

Definition at line 208 of file flow.hpp.

@@ -695,7 +708,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -703,13 +716,13 @@ template<basic_flow & entt::basic_flow< Allocator >::ro (const id_type res)const id_type res)
-inline +inline
@@ -733,27 +746,27 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename It >
+template<typename It>
+inline
- + - + - +
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > entt::basic_flow< Allocator >::ro std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > entt::basic_flow< Allocator >::ro (It first, It first,
It last )It last )
-inline
@@ -784,7 +797,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -792,13 +805,13 @@ template<basic_flow & entt::basic_flow< Allocator >::rw (const id_type res)const id_type res)
-inline +inline
@@ -822,27 +835,27 @@ template<
-template<typename Allocator >
+template<typename Allocator>
-template<typename It >
+template<typename It>
+inline
- + - + - +
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > entt::basic_flow< Allocator >::rw std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > entt::basic_flow< Allocator >::rw (It first, It first,
It last )It last )
-inline
@@ -873,7 +886,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- + - +
@@ -881,17 +894,17 @@ template<basic_flow & entt::basic_flow< Allocator >::set (const id_type res, const id_type res,
bool is_rw = false )bool is_rw = false )
-inline +inline
@@ -916,7 +929,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -924,13 +937,13 @@ template<size_type entt::basic_flow< Allocator >::size ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -948,13 +961,13 @@ template<
-template<typename Allocator >
+template<typename Allocator>
+inline
- + @@ -962,7 +975,7 @@ template< -inlinenoexcept +inlinenoexcept
void entt::basic_flow< Allocator >::swap void entt::basic_flow< Allocator >::swap ( basic_flow< Allocator > & other)
@@ -985,7 +998,7 @@ template<
-template<typename Allocator >
+template<typename Allocator>
- +
@@ -993,13 +1006,13 @@ template<basic_flow & entt::basic_flow< Allocator >::sync ())
-inline
@@ -1017,7 +1030,8 @@ template< +
diff --git a/classentt_1_1basic__group.html b/classentt_1_1basic__group.html index c79957433..9b2181e21 100644 --- a/classentt_1_1basic__group.html +++ b/classentt_1_1basic__group.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_group< typename, typename, typename > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_group< typename, typename, typename > Class Template Reference
@@ -82,18 +95,19 @@ $(function() {

Group. More...

Detailed Description

-
template<typename, typename, typename>
+
template<typename, typename, typename>
class entt::basic_group< typename, typename, typename >

Group.

Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

-

Definition at line 48 of file fwd.hpp.

+

Definition at line 53 of file fwd.hpp.


The documentation for this class was generated from the following file:
+
diff --git a/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html b/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html index 73ae1bea7..54c699e0a 100644 --- a/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html +++ b/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -91,110 +104,113 @@ $(function() { - + - + - + + + + - + - + - + - +

Public Types

using entity_type = underlying_type
using entity_type = underlying_type
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using common_type = base_type
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using common_type = base_type
 Common type among all storage types.
 
using iterator = typename common_type::iterator
using iterator = typename common_type::iterator
 Random access iterator type.
 
using reverse_iterator = typename common_type::reverse_iterator
using reverse_iterator = typename common_type::reverse_iterator
 Reverse iterator type.
 
using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>
using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>
 Iterable group type.
 
using handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>
using handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>
 Group handler type.
 
- + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - - + +

Public Member Functions

 basic_group () noexcept
 basic_group () noexcept
 Default constructor to use to create empty, invalid groups.
 
 basic_group (handler &ref) noexcept
 basic_group (handler &ref) noexcept
 Constructs a group from a set of storage classes.
 
const common_typehandle () const noexcept
const common_typehandle () const noexcept
 Returns the leading storage of a group.
 
template<typename Type >
autostorage () const noexcept
template<typename Type>
auto * storage () const noexcept
 Returns the storage for a given element type, if any.
 
template<std::size_t Index>
autostorage () const noexcept
auto * storage () const noexcept
 Returns the storage for a given index, if any.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of entities that that are part of the group.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a group is empty.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the first entity of the group.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator that is past the last entity of the group.
 
reverse_iterator rbegin () const noexcept
reverse_iterator rbegin () const noexcept
 Returns an iterator to the first entity of the reversed group.
 
reverse_iterator rend () const noexcept
reverse_iterator rend () const noexcept
 Returns an iterator that is past the last entity of the reversed group.
 
entity_type front () const noexcept
entity_type front () const noexcept
 Returns the first entity of the group, if any.
 
entity_type back () const noexcept
entity_type back () const noexcept
 Returns the last entity of the group, if any.
 
iterator find (const entity_type entt) const noexcept
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
entity_type operator[] (const size_type pos) const
entity_type operator[] (const size_type pos) const
 Returns the identifier that occupies the given position.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks if a group is properly initialized.
 
bool contains (const entity_type entt) const noexcept
bool contains (const entity_type entt) const noexcept
 Checks if a group contains an entity.
 
template<typename Type , typename... Other>
decltype(autoget (const entity_type entt) const
template<typename Type, typename... Other>
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<std::size_t... Index>
decltype(autoget (const entity_type entt) const
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<typename Func >
void each (Func func) const
template<typename Func>
void each (Func func) const
 Iterates entities and elements and applies the given function object to them.
 
iterable each () const noexcept
iterable each () const noexcept
 Returns an iterable object to use to visit a group.
 
template<typename Type , typename... Other, typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args) const
template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args) const
 Sort a group according to the given comparison function.
 
template<std::size_t... Index, typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args) const
template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args) const
 Sort a group according to the given comparison function.
 
- +

Static Public Member Functions

static id_type group_id () noexcept
static id_type group_id () noexcept
 Group opaque identifier.
 
@@ -225,7 +241,7 @@ class entt::basic_group< owned_t< Owned... >, get_t< Get... >, ex -

Definition at line 694 of file group.hpp.

+

Definition at line 696 of file group.hpp.

Member Typedef Documentation

◆ common_type

@@ -236,14 +252,34 @@ class entt::basic_group< owned_t< Owned... >, get_t< Get... >, ex template<typename... Owned, typename... Get, typename... Exclude>
- +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type = base_typeusing entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type = base_type

Common type among all storage types.

-

Definition at line 715 of file group.hpp.

+

Definition at line 719 of file group.hpp.

+ +
+ + +

◆ difference_type

+ +
+
+
+template<typename... Owned, typename... Get, typename... Exclude>
+ + + + +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 717 of file group.hpp.

@@ -256,14 +292,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type = underlying_typeusing entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type = underlying_type

Underlying entity identifier.

-

Definition at line 711 of file group.hpp.

+

Definition at line 713 of file group.hpp.

@@ -276,14 +312,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>

Group handler type.

-

Definition at line 723 of file group.hpp.

+

Definition at line 727 of file group.hpp.

@@ -296,14 +332,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>

Iterable group type.

-

Definition at line 721 of file group.hpp.

+

Definition at line 725 of file group.hpp.

@@ -316,14 +352,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator = typename common_type::iteratorusing entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator = typename common_type::iterator

Random access iterator type.

-

Definition at line 717 of file group.hpp.

+

Definition at line 721 of file group.hpp.

@@ -336,14 +372,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator = typename common_type::reverse_iteratorusing entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator = typename common_type::reverse_iterator

Reverse iterator type.

-

Definition at line 719 of file group.hpp.

+

Definition at line 723 of file group.hpp.

@@ -356,14 +392,14 @@ template<typename... Owned, typename... Get, typename... Exclude> template<typename... Owned, typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type = std::size_tusing entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 713 of file group.hpp.

+

Definition at line 715 of file group.hpp.

@@ -382,20 +418,20 @@ template<typename... Owned, typename... Get, typename... Exclude> entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::basic_group ( - ) + ) -inlinenoexcept +inlinenoexcept

Default constructor to use to create empty, invalid groups.

-

Definition at line 734 of file group.hpp.

+

Definition at line 738 of file group.hpp.

@@ -419,7 +455,7 @@ template<typename... Owned, typename... Get, typename... Exclude> -inlinenoexcept +inlinenoexcept
@@ -432,7 +468,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
-

Definition at line 741 of file group.hpp.

+

Definition at line 745 of file group.hpp.

@@ -451,13 +487,13 @@ template<typename... Owned, typename... Get, typename... Exclude> entity_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::back ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -465,7 +501,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns the last entity of the group, if any.

Returns
The last entity of the group if one exists, the null entity otherwise.
-

Definition at line 845 of file group.hpp.

+

Definition at line 849 of file group.hpp.

@@ -483,13 +519,13 @@ template<typename... Owned, typename... Get, typename... Exclude> iterator entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::begin ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -498,7 +534,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

If the group is empty, the returned iterator will be equal to end().

Returns
An iterator to the first entity of the group.
-

Definition at line 796 of file group.hpp.

+

Definition at line 800 of file group.hpp.

@@ -514,15 +550,15 @@ template<typename... Owned, typename... Get, typename... Exclude> - + - +
bool entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains bool entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains (const entity_type entt)const entity_type entt) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -536,7 +572,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
Returns
True if the group contains the given entity, false otherwise.
-

Definition at line 883 of file group.hpp.

+

Definition at line 887 of file group.hpp.

@@ -554,13 +590,13 @@ template<typename... Owned, typename... Get, typename... Exclude> iterable entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -570,7 +606,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Returns
An iterable object to use to visit the group.
-

Definition at line 964 of file group.hpp.

+

Definition at line 968 of file group.hpp.

@@ -582,13 +618,13 @@ template<typename... Owned, typename... Get, typename... Exclude>
template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Func >
+template<typename Func> - +
- + @@ -596,7 +632,7 @@ template< -inline +inline
void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each ( Func func) const
@@ -604,10 +640,9 @@ template<
void(const entity_type, Type &...);
-
void(Type &...);
- -
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
void(const entity_type, Type &...);
+
void(Type &...);
+
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Template Parameters
@@ -622,7 +657,7 @@ template<Definition at line 941 of file group.hpp.

+

Definition at line 945 of file group.hpp.

@@ -638,15 +673,15 @@ template<typename... Owned, typename... Get, typename... Exclude> +inlinenodiscardnoexcept
- + - +
bool entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty bool entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty ()) const
-inlinenoexcept
@@ -654,7 +689,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Checks whether a group is empty.

Returns
True if the group is empty, false otherwise.
-

Definition at line 785 of file group.hpp.

+

Definition at line 789 of file group.hpp.

@@ -672,13 +707,13 @@ template<typename... Owned, typename... Get, typename... Exclude>
iterator entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::end ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -686,7 +721,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns an iterator that is past the last entity of the group.

Returns
An iterator to the entity following the last entity of the group.
-

Definition at line 805 of file group.hpp.

+

Definition at line 809 of file group.hpp.

@@ -704,13 +739,13 @@ template<typename... Owned, typename... Get, typename... Exclude> iterator entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::find ( - const entity_type entt) + const entity_type entt) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -724,7 +759,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
-

Definition at line 856 of file group.hpp.

+

Definition at line 860 of file group.hpp.

@@ -742,13 +777,13 @@ template<typename... Owned, typename... Get, typename... Exclude> entity_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::front ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -756,7 +791,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns the first entity of the group, if any.

Returns
The first entity of the group if one exists, the null entity otherwise.
-

Definition at line 835 of file group.hpp.

+

Definition at line 839 of file group.hpp.

@@ -768,21 +803,21 @@ template<typename... Owned, typename... Get, typename... Exclude>
template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Type , typename... Other>
+template<typename Type, typename... Other> +inlinenodiscard
- + - +
decltype(auto) entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get decltype(auto) entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -803,7 +838,7 @@ template<
Returns
The elements assigned to the entity.
-

Definition at line 895 of file group.hpp.

+

Definition at line 899 of file group.hpp.

@@ -821,15 +856,15 @@ template<std::size_t... Index> - + - +
decltype(auto) entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get decltype(auto) entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get (const entity_type entt)const entity_type entt) const
-inline +inlinenodiscard
@@ -849,7 +884,7 @@ template<std::size_t... Index>
Returns
The elements assigned to the entity.
-

Definition at line 906 of file group.hpp.

+

Definition at line 910 of file group.hpp.

@@ -865,15 +900,15 @@ template<typename... Owned, typename... Get, typename... Exclude> - + - +
static id_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::group_id static id_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::group_id ())
-inlinestaticnoexcept +inlinestaticnoexcept
@@ -881,7 +916,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Group opaque identifier.

Returns
Group opaque identifier.
-

Definition at line 729 of file group.hpp.

+

Definition at line 733 of file group.hpp.

@@ -897,15 +932,15 @@ template<typename... Owned, typename... Get, typename... Exclude> - + - +
const common_type & entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle const common_type & entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -913,7 +948,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns the leading storage of a group.

Returns
The leading storage of the group.
-

Definition at line 748 of file group.hpp.

+

Definition at line 752 of file group.hpp.

@@ -929,15 +964,15 @@ template<typename... Owned, typename... Get, typename... Exclude> - + - +
entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -945,7 +980,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Checks if a group is properly initialized.

Returns
True if the group is properly initialized, false otherwise.
-

Definition at line 874 of file group.hpp.

+

Definition at line 878 of file group.hpp.

@@ -961,15 +996,15 @@ template<typename... Owned, typename... Get, typename... Exclude> - + - +
entity_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator[] entity_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator[] (const size_type pos)const size_type pos) const
-inline +inlinenodiscard
@@ -983,7 +1018,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
Returns
The identifier that occupies the given position.
-

Definition at line 866 of file group.hpp.

+

Definition at line 870 of file group.hpp.

@@ -1001,13 +1036,13 @@ template<typename... Owned, typename... Get, typename... Exclude> reverse_iterator entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rbegin ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1016,7 +1051,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

If the group is empty, the returned iterator will be equal to rend().

Returns
An iterator to the first entity of the reversed group.
-

Definition at line 816 of file group.hpp.

+

Definition at line 820 of file group.hpp.

@@ -1034,13 +1069,13 @@ template<typename... Owned, typename... Get, typename... Exclude> reverse_iterator entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rend ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1048,7 +1083,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns an iterator that is past the last entity of the reversed group.

Returns
An iterator to the entity following the last entity of the reversed group.
-

Definition at line 826 of file group.hpp.

+

Definition at line 830 of file group.hpp.

@@ -1066,13 +1101,13 @@ template<typename... Owned, typename... Get, typename... Exclude> size_type entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1080,7 +1115,7 @@ template<typename... Owned, typename... Get, typename... Exclude>

Returns the number of entities that that are part of the group.

Returns
Number of entities that that are part of the group.
-

Definition at line 777 of file group.hpp.

+

Definition at line 781 of file group.hpp.

@@ -1092,42 +1127,42 @@ template<typename... Owned, typename... Get, typename... Exclude>
template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Type , typename... Other, typename Compare , typename Sort = std_sort, typename... Args>
+template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - +
void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args ) constArgs &&... args ) const
-inline

Sort a group according to the given comparison function.

The comparison function object must return true if the first element is less than the second one, false otherwise. The signature of the comparison function should be equivalent to one of the following:

-
bool(std::tuple<Type &...>, std::tuple<Type &...>);
-
bool(const Type &, const Type &);
-
bool(const Entity, const Entity);
+
bool(std::tuple<Type &...>, std::tuple<Type &...>);
+
bool(const Type &, const Type &);
+
bool(const Entity, const Entity);

Where Type are either owned types or not but still such that they are iterated by the group.
Moreover, the comparison function object shall induce a strict weak ordering on the values.

-

The sort function object must offer a member function template operator() that accepts three arguments:

+

The sort function object must offer a member function template operator() that accepts three arguments:

  • An iterator to the first element of the range to sort.
  • An iterator past the last element of the range to sort.
  • @@ -1152,7 +1187,7 @@ template<Definition at line 1004 of file group.hpp.

    +

    Definition at line 1008 of file group.hpp.

@@ -1164,30 +1199,30 @@ template< template<typename... Owned, typename... Get, typename... Exclude>
-template<std::size_t... Index, typename Compare , typename Sort = std_sort, typename... Args>
+template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - +
void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort void entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args ) constArgs &&... args ) const
-inline
@@ -1212,7 +1247,7 @@ template<std::size_t... Index, Definition at line 1022 of file group.hpp.

+

Definition at line 1026 of file group.hpp.

@@ -1224,21 +1259,21 @@ template<std::size_t... Index, template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Type >
+template<typename Type> +inlinenodiscardnoexcept
- + - +
auto * entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage auto * entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage ()) const
-inlinenoexcept
@@ -1252,7 +1287,7 @@ template<
Returns
The storage for the given element type.
-

Definition at line 758 of file group.hpp.

+

Definition at line 762 of file group.hpp.

@@ -1270,15 +1305,15 @@ template<std::size_t Index> - + - +
auto * entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage auto * entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1292,7 +1327,7 @@ template<std::size_t Index>
Returns
The storage for the given index.
-

Definition at line 768 of file group.hpp.

+

Definition at line 772 of file group.hpp.

@@ -1302,7 +1337,8 @@ template<std::size_t Index> + diff --git a/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_01b407520ab540940fa0ad999da0692bf6.html b/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_01b407520ab540940fa0ad999da0692bf6.html index 48e314b17..648f125a6 100644 --- a/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_01b407520ab540940fa0ad999da0692bf6.html +++ b/classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_01b407520ab540940fa0ad999da0692bf6.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > Member List
@@ -87,35 +100,37 @@ $(function() { begin() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline common_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > contains(const entity_type entt) const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - each(Func func) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - each() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - empty() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - end() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - entity_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - find(const entity_type entt) const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - front() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - get(const entity_type entt) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - get(const entity_type entt) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - group_id() noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inlinestatic - handle() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - handler typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - iterable typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - iterator typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - operator bool() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inlineexplicit - operator[](const size_type pos) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - rbegin() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - rend() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - reverse_iterator typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - size() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - size_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > - sort(Compare compare, Sort algo=Sort{}, Args &&...args) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - sort(Compare compare, Sort algo=Sort{}, Args &&...args) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline - storage() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + difference_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + each(Func func) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + each() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + empty() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + end() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + entity_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + find(const entity_type entt) const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + front() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + get(const entity_type entt) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + get(const entity_type entt) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + group_id() noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inlinestatic + handle() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + handler typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + iterable typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + iterator typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + operator bool() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inlineexplicit + operator[](const size_type pos) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + rbegin() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + rend() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + reverse_iterator typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + size() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + size_type typedefentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > + sort(Compare compare, Sort algo=Sort{}, Args &&...args) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + sort(Compare compare, Sort algo=Sort{}, Args &&...args) constentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline storage() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline + storage() const noexceptentt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >inline
+ diff --git a/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4-members.html b/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4-members.html index 942f80219..7483eefd9 100644 --- a/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4-members.html +++ b/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > Member List
@@ -88,37 +101,39 @@ $(function() { capacity() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline common_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > contains(const entity_type entt) const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - each(Func func) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - each() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - empty() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - end() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - entity_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - find(const entity_type entt) const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - front() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - get(const entity_type entt) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - get(const entity_type entt) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - group_id() noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inlinestatic - handle() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - handler typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - iterable typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - iterator typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - operator bool() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inlineexplicit - operator[](const size_type pos) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - rbegin() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - rend() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - reverse_iterator typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - shrink_to_fit()entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - size() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - size_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > - sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - sort_as(It first, It last) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline - storage() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + difference_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + each(Func func) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + each() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + empty() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + end() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + entity_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + find(const entity_type entt) const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + front() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + get(const entity_type entt) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + get(const entity_type entt) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + group_id() noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inlinestatic + handle() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + handler typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + iterable typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + iterator typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + operator bool() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inlineexplicit + operator[](const size_type pos) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + rbegin() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + rend() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + reverse_iterator typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + shrink_to_fit()entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + size() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + size_type typedefentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > + sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + sort_as(It first, It last) constentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline storage() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline + storage() const noexceptentt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >inline
+ diff --git a/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html b/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html index ba4a101b3..01993cbbd 100644 --- a/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html +++ b/classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -91,120 +104,123 @@ $(function() { - + - + - + + + + - + - + - + - +

Public Types

using entity_type = underlying_type
using entity_type = underlying_type
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using common_type = base_type
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using common_type = base_type
 Common type among all storage types.
 
using iterator = typename common_type::iterator
using iterator = typename common_type::iterator
 Random access iterator type.
 
using reverse_iterator = typename common_type::reverse_iterator
using reverse_iterator = typename common_type::reverse_iterator
 Reverse iterator type.
 
using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<>, get_t<Get...>>>
using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<>, get_t<Get...>>>
 Iterable group type.
 
using handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>
using handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>
 Group handler type.
 
- + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - - + + - - + +

Public Member Functions

 basic_group () noexcept
 basic_group () noexcept
 Default constructor to use to create empty, invalid groups.
 
 basic_group (handler &ref) noexcept
 basic_group (handler &ref) noexcept
 Constructs a group from a set of storage classes.
 
const common_typehandle () const noexcept
const common_typehandle () const noexcept
 Returns the leading storage of a group.
 
template<typename Type >
autostorage () const noexcept
template<typename Type>
auto * storage () const noexcept
 Returns the storage for a given element type, if any.
 
template<std::size_t Index>
autostorage () const noexcept
auto * storage () const noexcept
 Returns the storage for a given index, if any.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of entities that are part of the group.
 
size_type capacity () const noexcept
size_type capacity () const noexcept
 Returns the number of elements that a group has currently allocated space for.
 
void shrink_to_fit ()
void shrink_to_fit ()
 Requests the removal of unused capacity.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a group is empty.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the first entity of the group.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator that is past the last entity of the group.
 
reverse_iterator rbegin () const noexcept
reverse_iterator rbegin () const noexcept
 Returns an iterator to the first entity of the reversed group.
 
reverse_iterator rend () const noexcept
reverse_iterator rend () const noexcept
 Returns an iterator that is past the last entity of the reversed group.
 
entity_type front () const noexcept
entity_type front () const noexcept
 Returns the first entity of the group, if any.
 
entity_type back () const noexcept
entity_type back () const noexcept
 Returns the last entity of the group, if any.
 
iterator find (const entity_type entt) const noexcept
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
entity_type operator[] (const size_type pos) const
entity_type operator[] (const size_type pos) const
 Returns the identifier that occupies the given position.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks if a group is properly initialized.
 
bool contains (const entity_type entt) const noexcept
bool contains (const entity_type entt) const noexcept
 Checks if a group contains an entity.
 
template<typename Type , typename... Other>
decltype(autoget (const entity_type entt) const
template<typename Type, typename... Other>
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<std::size_t... Index>
decltype(autoget (const entity_type entt) const
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<typename Func >
void each (Func func) const
template<typename Func>
void each (Func func) const
 Iterates entities and elements and applies the given function object to them.
 
iterable each () const noexcept
iterable each () const noexcept
 Returns an iterable object to use to visit a group.
 
template<typename Type , typename... Other, typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort a group according to the given comparison function.
 
template<std::size_t... Index, typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort a group according to the given comparison function.
 
template<typename It >
void sort_as (It first, It last) const
template<typename It>
void sort_as (It first, It last) const
 Sort entities according to their order in a range.
 
- +

Static Public Member Functions

static id_type group_id () noexcept
static id_type group_id () noexcept
 Group opaque identifier.
 
@@ -239,13 +255,33 @@ class entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< template<typename... Get, typename... Exclude>
- +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type = base_typeusing entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type = base_type

Common type among all storage types.

+

Definition at line 303 of file group.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename... Get, typename... Exclude>
+ + + + +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+

Definition at line 301 of file group.hpp.

@@ -259,7 +295,7 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type = underlying_typeusing entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type = underlying_type
@@ -279,14 +315,14 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>

Group handler type.

-

Definition at line 309 of file group.hpp.

+

Definition at line 311 of file group.hpp.

@@ -299,14 +335,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<>, get_t<Get...>>>using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<>, get_t<Get...>>>

Iterable group type.

-

Definition at line 307 of file group.hpp.

+

Definition at line 309 of file group.hpp.

@@ -319,14 +355,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator = typename common_type::iteratorusing entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator = typename common_type::iterator

Random access iterator type.

-

Definition at line 303 of file group.hpp.

+

Definition at line 305 of file group.hpp.

@@ -339,14 +375,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator = typename common_type::reverse_iteratorusing entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator = typename common_type::reverse_iterator

Reverse iterator type.

-

Definition at line 305 of file group.hpp.

+

Definition at line 307 of file group.hpp.

@@ -359,7 +395,7 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type = std::size_tusing entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type = std::size_t
@@ -385,20 +421,20 @@ template<typename... Get, typename... Exclude>
entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::basic_group ( - ) + ) -inlinenoexcept +inlinenoexcept

Default constructor to use to create empty, invalid groups.

-

Definition at line 320 of file group.hpp.

+

Definition at line 322 of file group.hpp.

@@ -422,7 +458,7 @@ template<typename... Get, typename... Exclude> -inlinenoexcept +inlinenoexcept
@@ -435,7 +471,7 @@ template<typename... Get, typename... Exclude>
-

Definition at line 327 of file group.hpp.

+

Definition at line 329 of file group.hpp.

@@ -454,13 +490,13 @@ template<typename... Get, typename... Exclude> entity_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::back ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -468,7 +504,7 @@ template<typename... Get, typename... Exclude>

Returns the last entity of the group, if any.

Returns
The last entity of the group if one exists, the null entity otherwise.
-

Definition at line 447 of file group.hpp.

+

Definition at line 449 of file group.hpp.

@@ -486,13 +522,13 @@ template<typename... Get, typename... Exclude> iterator entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::begin ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -501,7 +537,7 @@ template<typename... Get, typename... Exclude>

If the group is empty, the returned iterator will be equal to end().

Returns
An iterator to the first entity of the group.
-

Definition at line 398 of file group.hpp.

+

Definition at line 400 of file group.hpp.

@@ -519,13 +555,13 @@ template<typename... Get, typename... Exclude> size_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::capacity ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -533,7 +569,7 @@ template<typename... Get, typename... Exclude>

Returns the number of elements that a group has currently allocated space for.

Returns
Capacity of the group.
-

Definition at line 372 of file group.hpp.

+

Definition at line 374 of file group.hpp.

@@ -549,15 +585,15 @@ template<typename... Get, typename... Exclude> - + - +
bool entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains bool entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains (const entity_type entt)const entity_type entt) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -571,7 +607,7 @@ template<typename... Get, typename... Exclude>
Returns
True if the group contains the given entity, false otherwise.
-

Definition at line 484 of file group.hpp.

+

Definition at line 486 of file group.hpp.

@@ -589,13 +625,13 @@ template<typename... Get, typename... Exclude> iterable entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -605,7 +641,7 @@ template<typename... Get, typename... Exclude>
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Returns
An iterable object to use to visit the group.
-

Definition at line 565 of file group.hpp.

+

Definition at line 567 of file group.hpp.

@@ -617,13 +653,13 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude>
-template<typename Func >
+template<typename Func> - +
- + @@ -631,7 +667,7 @@ template< -inline +inline
void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each ( Func func) const
@@ -639,10 +675,9 @@ template<
void(const entity_type, Type &...);
-
void(Type &...);
+
void(const entity_type, Type &...);
+
void(Type &...);
underlying_type entity_type
Underlying entity identifier.
Definition group.hpp:297
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Template Parameters
@@ -657,7 +692,7 @@ template<Definition at line 542 of file group.hpp.

+

Definition at line 544 of file group.hpp.

@@ -673,15 +708,15 @@ template<typename... Get, typename... Exclude> +inlinenodiscardnoexcept
- + - +
bool entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty bool entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty ()) const
-inlinenoexcept
@@ -689,7 +724,7 @@ template<typename... Get, typename... Exclude>

Checks whether a group is empty.

Returns
True if the group is empty, false otherwise.
-

Definition at line 387 of file group.hpp.

+

Definition at line 389 of file group.hpp.

@@ -707,13 +742,13 @@ template<typename... Get, typename... Exclude>
iterator entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::end ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -721,7 +756,7 @@ template<typename... Get, typename... Exclude>

Returns an iterator that is past the last entity of the group.

Returns
An iterator to the entity following the last entity of the group.
-

Definition at line 407 of file group.hpp.

+

Definition at line 409 of file group.hpp.

@@ -739,13 +774,13 @@ template<typename... Get, typename... Exclude> iterator entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::find ( - const entity_type entt) + const entity_type entt) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -759,7 +794,7 @@ template<typename... Get, typename... Exclude>
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
-

Definition at line 458 of file group.hpp.

+

Definition at line 460 of file group.hpp.

@@ -777,13 +812,13 @@ template<typename... Get, typename... Exclude> entity_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::front ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -791,7 +826,7 @@ template<typename... Get, typename... Exclude>

Returns the first entity of the group, if any.

Returns
The first entity of the group if one exists, the null entity otherwise.
-

Definition at line 437 of file group.hpp.

+

Definition at line 439 of file group.hpp.

@@ -803,21 +838,21 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude>
-template<typename Type , typename... Other>
+template<typename Type, typename... Other> +inlinenodiscard
- + - +
decltype(auto) entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get decltype(auto) entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -838,7 +873,7 @@ template<
Returns
The elements assigned to the entity.
-

Definition at line 496 of file group.hpp.

+

Definition at line 498 of file group.hpp.

@@ -856,15 +891,15 @@ template<std::size_t... Index> - + - +
decltype(auto) entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get decltype(auto) entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get (const entity_type entt)const entity_type entt) const
-inline +inlinenodiscard
@@ -884,7 +919,7 @@ template<std::size_t... Index>
Returns
The elements assigned to the entity.
-

Definition at line 507 of file group.hpp.

+

Definition at line 509 of file group.hpp.

@@ -900,15 +935,15 @@ template<typename... Get, typename... Exclude> - + - +
static id_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::group_id static id_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::group_id ())
-inlinestaticnoexcept +inlinestaticnoexcept
@@ -916,7 +951,7 @@ template<typename... Get, typename... Exclude>

Group opaque identifier.

Returns
Group opaque identifier.
-

Definition at line 315 of file group.hpp.

+

Definition at line 317 of file group.hpp.

@@ -932,15 +967,15 @@ template<typename... Get, typename... Exclude> - + - +
const common_type & entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle const common_type & entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -948,7 +983,7 @@ template<typename... Get, typename... Exclude>

Returns the leading storage of a group.

Returns
The leading storage of the group.
-

Definition at line 334 of file group.hpp.

+

Definition at line 336 of file group.hpp.

@@ -964,15 +999,15 @@ template<typename... Get, typename... Exclude> - + - +
entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -980,7 +1015,7 @@ template<typename... Get, typename... Exclude>

Checks if a group is properly initialized.

Returns
True if the group is properly initialized, false otherwise.
-

Definition at line 475 of file group.hpp.

+

Definition at line 477 of file group.hpp.

@@ -996,15 +1031,15 @@ template<typename... Get, typename... Exclude> - + - +
entity_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator[] entity_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator[] (const size_type pos)const size_type pos) const
-inline +inlinenodiscard
@@ -1018,7 +1053,7 @@ template<typename... Get, typename... Exclude>
Returns
The identifier that occupies the given position.
-

Definition at line 467 of file group.hpp.

+

Definition at line 469 of file group.hpp.

@@ -1036,13 +1071,13 @@ template<typename... Get, typename... Exclude> reverse_iterator entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rbegin ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1051,7 +1086,7 @@ template<typename... Get, typename... Exclude>

If the group is empty, the returned iterator will be equal to rend().

Returns
An iterator to the first entity of the reversed group.
-

Definition at line 418 of file group.hpp.

+

Definition at line 420 of file group.hpp.

@@ -1069,13 +1104,13 @@ template<typename... Get, typename... Exclude> reverse_iterator entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rend ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1083,7 +1118,7 @@ template<typename... Get, typename... Exclude>

Returns an iterator that is past the last entity of the reversed group.

Returns
An iterator to the entity following the last entity of the reversed group.
-

Definition at line 428 of file group.hpp.

+

Definition at line 430 of file group.hpp.

@@ -1099,22 +1134,22 @@ template<typename... Get, typename... Exclude> - + - +
void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit ())
-inline +inline

Requests the removal of unused capacity.

-

Definition at line 377 of file group.hpp.

+

Definition at line 379 of file group.hpp.

@@ -1132,13 +1167,13 @@ template<typename... Get, typename... Exclude> size_type entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1146,7 +1181,7 @@ template<typename... Get, typename... Exclude>

Returns the number of entities that are part of the group.

Returns
Number of entities that are part of the group.
-

Definition at line 363 of file group.hpp.

+

Definition at line 365 of file group.hpp.

@@ -1158,42 +1193,42 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude>
-template<typename Type , typename... Other, typename Compare , typename Sort = std_sort, typename... Args>
+template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - +
void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args )Args &&... args )
-inline

Sort a group according to the given comparison function.

The comparison function object must return true if the first element is less than the second one, false otherwise. The signature of the comparison function should be equivalent to one of the following:

-
bool(std::tuple<Type &...>, std::tuple<Type &...>);
-
bool(const Type &..., const Type &...);
-
bool(const Entity, const Entity);
+
bool(std::tuple<Type &...>, std::tuple<Type &...>);
+
bool(const Type &..., const Type &...);
+
bool(const Entity, const Entity);

Where Type are such that they are iterated by the group.
Moreover, the comparison function object shall induce a strict weak ordering on the values.

-

The sort function object must offer a member function template operator() that accepts three arguments:

+

The sort function object must offer a member function template operator() that accepts three arguments:

  • An iterator to the first element of the range to sort.
  • An iterator past the last element of the range to sort.
  • @@ -1218,7 +1253,7 @@ template<Definition at line 604 of file group.hpp.

    +

    Definition at line 606 of file group.hpp.

@@ -1230,30 +1265,30 @@ template< template<typename... Get, typename... Exclude>
-template<std::size_t... Index, typename Compare , typename Sort = std_sort, typename... Args>
+template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - +
void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args )Args &&... args )
-inline
@@ -1278,7 +1313,7 @@ template<std::size_t... Index, Definition at line 622 of file group.hpp.

+

Definition at line 624 of file group.hpp.

@@ -1290,25 +1325,25 @@ template<std::size_t... Index, template<typename... Get, typename... Exclude>
-template<typename It >
+template<typename It> +inline
- + - + - +
void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as void entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as (It first, It first,
It last ) constIt last ) const
-inline
@@ -1329,7 +1364,7 @@ template<Definition at line 652 of file group.hpp.

+

Definition at line 654 of file group.hpp.

@@ -1341,21 +1376,21 @@ template< template<typename... Get, typename... Exclude>
-template<typename Type >
+template<typename Type> +inlinenodiscardnoexcept
- + - +
auto * entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage auto * entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage ()) const
-inlinenoexcept
@@ -1369,7 +1404,7 @@ template<
Returns
The storage for the given element type.
-

Definition at line 344 of file group.hpp.

+

Definition at line 346 of file group.hpp.

@@ -1387,15 +1422,15 @@ template<std::size_t Index> - + - +
auto * entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage auto * entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1409,7 +1444,7 @@ template<std::size_t Index>
Returns
The storage for the given index.
-

Definition at line 354 of file group.hpp.

+

Definition at line 356 of file group.hpp.

@@ -1419,7 +1454,8 @@ template<std::size_t Index> + diff --git a/classentt_1_1basic__handle-members.html b/classentt_1_1basic__handle-members.html index 97ae96d43..594618d94 100644 --- a/classentt_1_1basic__handle-members.html +++ b/classentt_1_1basic__handle-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_handle< Registry, Scope > Member List
@@ -112,7 +125,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__handle.html b/classentt_1_1basic__handle.html index 4f4285e9e..40fffb83b 100644 --- a/classentt_1_1basic__handle.html +++ b/classentt_1_1basic__handle.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_handle< Registry, Scope > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,108 +103,108 @@ $(function() { - + - + - + - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 Type of registry accepted by the handle.
 
using entity_type = typename traits_type::value_type
using entity_type = typename traits_type::value_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
using version_type = typename traits_type::version_type
 Underlying version type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>
using iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>
 Iterable handle type.
 
- + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - + - - + +

Public Member Functions

 basic_handle () noexcept
 basic_handle () noexcept
 Constructs an invalid handle.
 
 basic_handle (registry_type &ref, entity_type value) noexcept
 basic_handle (registry_type &ref, entity_type value) noexcept
 Constructs a handle from a given registry and entity.
 
iterable storage () const noexcept
iterable storage () const noexcept
 Returns an iterable object to use to visit a handle.
 
 operator bool () const noexcept
 Checks if a handle refers to a valid registry and entity.
 operator bool () const noexcept
 Checks if a handle refers to a valid registry and entity.
 
bool valid () const
bool valid () const
 Checks if a handle refers to a valid registry and entity.
 
registry_typeregistry () const noexcept
registry_typeregistry () const noexcept
 Returns a pointer to the underlying registry, if any.
 
entity_type entity () const noexcept
entity_type entity () const noexcept
 Returns the entity associated with a handle.
 
 operator entity_type () const noexcept
 Returns the entity associated with a handle.
 operator entity_type () const noexcept
 Returns the entity associated with a handle.
 
void destroy ()
void destroy ()
 Destroys the entity associated with a handle.
 
void destroy (const version_type version)
void destroy (const version_type version)
 Destroys the entity associated with a handle.
 
template<typename Type , typename... Args>
decltype(autoemplace (Args &&...args) const
template<typename Type, typename... Args>
decltype(auto) emplace (Args &&...args) const
 Assigns the given element to a handle.
 
template<typename Type , typename... Args>
decltype(autoemplace_or_replace (Args &&...args) const
template<typename Type, typename... Args>
decltype(auto) emplace_or_replace (Args &&...args) const
 Assigns or replaces the given element for a handle.
 
template<typename Type , typename... Func>
decltype(autopatch (Func &&...func) const
template<typename Type, typename... Func>
decltype(auto) patch (Func &&...func) const
 Patches the given element for a handle.
 
template<typename Type , typename... Args>
decltype(autoreplace (Args &&...args) const
template<typename Type, typename... Args>
decltype(auto) replace (Args &&...args) const
 Replaces the given element for a handle.
 
template<typename... Type>
size_type remove () const
size_type remove () const
 Removes the given elements from a handle.
 
template<typename... Type>
void erase () const
void erase () const
 Erases the given elements from a handle.
 
template<typename... Type>
decltype(autoall_of () const
decltype(auto) all_of () const
 Checks if a handle has all the given elements.
 
template<typename... Type>
decltype(autoany_of () const
decltype(auto) any_of () const
 Checks if a handle has at least one of the given elements.
 
template<typename... Type>
decltype(autoget () const
decltype(auto) get () const
 Returns references to the given elements for a handle.
 
template<typename Type , typename... Args>
decltype(autoget_or_emplace (Args &&...args) const
template<typename Type, typename... Args>
decltype(auto) get_or_emplace (Args &&...args) const
 Returns a reference to the given element for a handle.
 
template<typename... Type>
auto try_get () const
auto try_get () const
 Returns pointers to the given elements for a handle.
 
bool orphan () const
bool orphan () const
 Checks if a handle has elements assigned.
 
template<typename Other , typename... Args>
 operator basic_handle< Other, Args... > () const noexcept
template<typename Other, typename... Args>
 operator basic_handle< Other, Args... > () const noexcept
 Returns a const handle from a non-const one.
 

Detailed Description

-
template<typename Registry, typename... Scope>
+
template<typename Registry, typename... Scope>
class entt::basic_handle< Registry, Scope >

Non-owning handle to an entity.

Tiny wrapper around a registry and an entity.

Template Parameters
@@ -210,10 +223,10 @@ class entt::basic_handle< Registry, Scope >

Non-owning handle to a

-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- +
using entt::basic_handle< Registry, Scope >::entity_type = typename traits_type::value_typeusing entt::basic_handle< Registry, Scope >::entity_type = typename traits_type::value_type
@@ -230,10 +243,10 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- +
using entt::basic_handle< Registry, Scope >::iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>using entt::basic_handle< Registry, Scope >::iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>
@@ -250,10 +263,10 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- +
using entt::basic_handle< Registry, Scope >::registry_type = Registryusing entt::basic_handle< Registry, Scope >::registry_type = Registry
@@ -270,10 +283,10 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- +
using entt::basic_handle< Registry, Scope >::size_type = std::size_tusing entt::basic_handle< Registry, Scope >::size_type = std::size_t
@@ -290,10 +303,10 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- +
using entt::basic_handle< Registry, Scope >::version_type = typename traits_type::version_typeusing entt::basic_handle< Registry, Scope >::version_type = typename traits_type::version_type
@@ -311,21 +324,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenoexcept
- + - +
entt::basic_handle< Registry, Scope >::basic_handle entt::basic_handle< Registry, Scope >::basic_handle ())
-inlinenoexcept
@@ -342,15 +355,15 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
- + - + @@ -360,7 +373,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::basic_handle< Registry, Scope >::basic_handle entt::basic_handle< Registry, Scope >::basic_handle (registry_type & ref, registry_type & ref,
@@ -385,7 +398,7 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -393,15 +406,15 @@ template<typename... Type> +inlinenodiscard
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::all_of decltype(auto) entt::basic_handle< Registry, Scope >::all_of ()) const
-inline
@@ -425,7 +438,7 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -433,15 +446,15 @@ template<typename... Type> +inlinenodiscard
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::any_of decltype(auto) entt::basic_handle< Registry, Scope >::any_of ()) const
-inline
@@ -465,21 +478,21 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inline
- + - +
void entt::basic_handle< Registry, Scope >::destroy void entt::basic_handle< Registry, Scope >::destroy ())
-inline
@@ -496,21 +509,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inline
- + - +
void entt::basic_handle< Registry, Scope >::destroy void entt::basic_handle< Registry, Scope >::destroy (const version_type version)const version_type version)
-inline
@@ -533,23 +546,23 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::emplace decltype(auto) entt::basic_handle< Registry, Scope >::emplace (Args &&... args)Args &&... args) const
-inline
@@ -580,23 +593,23 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::emplace_or_replace decltype(auto) entt::basic_handle< Registry, Scope >::emplace_or_replace (Args &&... args)Args &&... args) const
-inline
@@ -627,21 +640,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_handle< Registry, Scope >::entity entity_type entt::basic_handle< Registry, Scope >::entity ()) const
-inlinenoexcept
@@ -659,7 +672,7 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -667,15 +680,15 @@ template<typename... Type> +inline
- + - +
void entt::basic_handle< Registry, Scope >::erase void entt::basic_handle< Registry, Scope >::erase ()) const
-inline
@@ -698,7 +711,7 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -706,15 +719,15 @@ template<typename... Type> +inlinenodiscard
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::get decltype(auto) entt::basic_handle< Registry, Scope >::get ()) const
-inline
@@ -738,23 +751,23 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inlinenodiscard
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::get_or_emplace decltype(auto) entt::basic_handle< Registry, Scope >::get_or_emplace (Args &&... args)Args &&... args) const
-inline
@@ -785,23 +798,23 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Other , typename... Args>
+template<typename Other, typename... Args>
+inlinenoexcept
- + - +
entt::basic_handle< Registry, Scope >::operator basic_handle< Other, Args... > entt::basic_handle< Registry, Scope >::operator basic_handle< Other, Args... > ()) const
-inlinenoexcept
@@ -826,27 +839,27 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_handle< Registry, Scope >::operator bool entt::basic_handle< Registry, Scope >::operator bool ()) const
-inlineexplicitnoexcept
-

Checks if a handle refers to a valid registry and entity.

-
Returns
True if the handle refers to a valid registry and entity, false otherwise.
+

Checks if a handle refers to a valid registry and entity.

+
Returns
True if the handle refers to a valid registry and entity, false otherwise.

Definition at line 148 of file handle.hpp.

@@ -858,27 +871,27 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscardnoexcept
- + - +
entt::basic_handle< Registry, Scope >::operator entity_type entt::basic_handle< Registry, Scope >::operator entity_type ()) const
-inlinenoexcept
-

Returns the entity associated with a handle.

-
Returns
The entity associated with the handle.
+

Returns the entity associated with a handle.

+
Returns
The entity associated with the handle.

Definition at line 178 of file handle.hpp.

@@ -890,21 +903,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscard
- + - +
bool entt::basic_handle< Registry, Scope >::orphan bool entt::basic_handle< Registry, Scope >::orphan ()) const
-inline
@@ -922,15 +935,15 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Type , typename... Func>
+template<typename Type, typename... Func>
@@ -31,23 +33,33 @@
- + @@ -938,7 +951,7 @@ template< -inline +inline
decltype(auto) entt::basic_handle< Registry, Scope >::patch decltype(auto) entt::basic_handle< Registry, Scope >::patch ( Func &&... func) const
@@ -969,21 +982,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscardnoexcept
- + - +
registry_type * entt::basic_handle< Registry, Scope >::registry registry_type * entt::basic_handle< Registry, Scope >::registry ()) const
-inlinenoexcept
@@ -1001,7 +1014,7 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -1009,15 +1022,15 @@ template<typename... Type> +inline
- + - +
size_type entt::basic_handle< Registry, Scope >::remove size_type entt::basic_handle< Registry, Scope >::remove ()) const
-inline
@@ -1041,23 +1054,23 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
decltype(auto) entt::basic_handle< Registry, Scope >::replace decltype(auto) entt::basic_handle< Registry, Scope >::replace (Args &&... args)Args &&... args) const
-inline
@@ -1088,21 +1101,21 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscardnoexcept
- + - +
iterable entt::basic_handle< Registry, Scope >::storage iterable entt::basic_handle< Registry, Scope >::storage ()) const
-inlinenoexcept
@@ -1122,7 +1135,7 @@ template<
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
template<typename... Type>
@@ -1130,15 +1143,15 @@ template<typename... Type> +inlinenodiscard
- + - +
auto entt::basic_handle< Registry, Scope >::try_get auto entt::basic_handle< Registry, Scope >::try_get ()) const
-inline
@@ -1162,21 +1175,21 @@ template<typename... Type>
-template<typename Registry , typename... Scope>
+template<typename Registry, typename... Scope>
+inlinenodiscard
- + - +
bool entt::basic_handle< Registry, Scope >::valid bool entt::basic_handle< Registry, Scope >::valid ()) const
-inline
@@ -1195,7 +1208,8 @@ template< +
diff --git a/classentt_1_1basic__hashed__string-members.html b/classentt_1_1basic__hashed__string-members.html index a1cf8bc3c..90a843689 100644 --- a/classentt_1_1basic__hashed__string-members.html +++ b/classentt_1_1basic__hashed__string-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_hashed_string< Char > Member List
@@ -99,7 +112,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__hashed__string.html b/classentt_1_1basic__hashed__string.html index 3ac96f95c..daa0e312d 100644 --- a/classentt_1_1basic__hashed__string.html +++ b/classentt_1_1basic__hashed__string.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_hashed_string< Char > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -111,62 +124,62 @@ Collaboration diagram for entt::basic_hashed_string< Char >:
- + - + - +

Public Types

using value_type = typename base_type::value_type
using value_type = typename base_type::value_type
 Character type.
 
using size_type = typename base_type::size_type
using size_type = typename base_type::size_type
 Unsigned integer type.
 
using hash_type = typename base_type::hash_type
using hash_type = typename base_type::hash_type
 Unsigned integer type.
 
- + - + - + - - + + - + - + - + - - + + - +

Public Member Functions

constexpr basic_hashed_string () noexcept
constexpr basic_hashed_string () noexcept
 Constructs an empty hashed string.
 
constexpr basic_hashed_string (const value_type *str, const size_type len) noexcept
constexpr basic_hashed_string (const value_type *str, const size_type len) noexcept
 Constructs a hashed string from a string view.
 
template<std::size_t N>
constexpr basic_hashed_string (const value_type(&str)[N]) noexcept
constexpr basic_hashed_string (const value_type(&str)[N]) noexcept
 Constructs a hashed string from an array of const characters.
 
constexpr basic_hashed_string (const_wrapper wrapper) noexcept
 Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.
constexpr basic_hashed_string (const_wrapper wrapper) noexcept
 Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.
 
constexpr size_type size () const noexcept
constexpr size_type size () const noexcept
 Returns the size a hashed string.
 
constexpr const value_typedata () const noexcept
constexpr const value_typedata () const noexcept
 Returns the human-readable representation of a hashed string.
 
constexpr hash_type value () const noexcept
constexpr hash_type value () const noexcept
 Returns the numeric representation of a hashed string.
 
constexpr operator const value_type * () const noexcept
 Returns the human-readable representation of a hashed string.
constexpr operator const value_type * () const noexcept
 Returns the human-readable representation of a hashed string.
 
constexpr operator hash_type () const noexcept
constexpr operator hash_type () const noexcept
 Returns the numeric representation of a hashed string.
 
- + - + - +

Static Public Member Functions

static constexpr hash_type value (const value_type *str, const size_type len) noexcept
static constexpr hash_type value (const value_type *str, const size_type len) noexcept
 Returns directly the numeric representation of a string view.
 
template<std::size_t N>
static constexpr hash_type value (const value_type(&str)[N]) noexcept
static constexpr hash_type value (const value_type(&str)[N]) noexcept
 Returns directly the numeric representation of a string.
 
static constexpr hash_type value (const_wrapper wrapper) noexcept
static constexpr hash_type value (const_wrapper wrapper) noexcept
 Returns directly the numeric representation of a string.
 

Detailed Description

-
template<typename Char>
+
template<typename Char>
class entt::basic_hashed_string< Char >

Zero overhead unique identifier.

A hashed string is a compile-time tool that allows users to use human-readable identifiers in the codebase while using their numeric counterparts at runtime.
Because of that, a hashed string can also be used in constant expressions if required.

@@ -186,10 +199,10 @@ class entt::basic_hashed_string< Char >

Zero overhead unique ident

-template<typename Char >
+template<typename Char>
- +
using entt::basic_hashed_string< Char >::hash_type = typename base_type::hash_typeusing entt::basic_hashed_string< Char >::hash_type = typename base_type::hash_type
@@ -206,10 +219,10 @@ template<
+template<typename Char>
- +
using entt::basic_hashed_string< Char >::size_type = typename base_type::size_typeusing entt::basic_hashed_string< Char >::size_type = typename base_type::size_type
@@ -226,10 +239,10 @@ template<
+template<typename Char>
- +
using entt::basic_hashed_string< Char >::value_type = typename base_type::value_typeusing entt::basic_hashed_string< Char >::value_type = typename base_type::value_type
@@ -247,21 +260,21 @@ template<
+template<typename Char>
+inlineconstexprnoexcept
- + - +
constexpr entt::basic_hashed_string< Char >::basic_hashed_string entt::basic_hashed_string< Char >::basic_hashed_string ())
-inlineconstexprnoexcept
@@ -278,25 +291,25 @@ template<
+template<typename Char>
+inlineconstexprnoexcept
- + - + - +
constexpr entt::basic_hashed_string< Char >::basic_hashed_string entt::basic_hashed_string< Char >::basic_hashed_string (const value_type * str, const value_type * str,
const size_type len )const size_type len )
-inlineconstexprnoexcept
@@ -320,7 +333,7 @@ template<
+template<typename Char>
template<std::size_t N>
@@ -328,15 +341,15 @@ template<std::size_t N> +inlineconstexprnoexcept
- + - +
constexpr entt::basic_hashed_string< Char >::basic_hashed_string entt::basic_hashed_string< Char >::basic_hashed_string (const value_type(&) str[N])const value_type(&) str[N])
-inlineconstexprnoexcept
@@ -365,13 +378,13 @@ template<std::size_t N>
-template<typename Char >
+template<typename Char>
- + @@ -379,12 +392,12 @@ template< -inlineexplicitconstexprnoexcept +inlineexplicitconstexprnoexcept
constexpr entt::basic_hashed_string< Char >::basic_hashed_string entt::basic_hashed_string< Char >::basic_hashed_string ( const_wrapper wrapper)
-

Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.

+

Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *.

Warning
The lifetime of the string is not extended nor is it copied.
Parameters
@@ -404,21 +417,21 @@ template<
+template<typename Char>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr const value_type * entt::basic_hashed_string< Char >::data const value_type * entt::basic_hashed_string< Char >::data ()) const
-inlineconstexprnoexcept
@@ -436,27 +449,27 @@ template<
+template<typename Char>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr entt::basic_hashed_string< Char >::operator const value_type * entt::basic_hashed_string< Char >::operator const value_type * ()) const
-inlineconstexprnoexcept
-

Returns the human-readable representation of a hashed string.

-
Returns
The string used to initialize the hashed string.
+

Returns the human-readable representation of a hashed string.

+
Returns
The string used to initialize the hashed string.

Definition at line 180 of file hashed_string.hpp.

@@ -468,21 +481,21 @@ template<
+template<typename Char>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr entt::basic_hashed_string< Char >::operator hash_type entt::basic_hashed_string< Char >::operator hash_type ()) const
-inlineconstexprnoexcept
@@ -500,21 +513,21 @@ template<
+template<typename Char>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr size_type entt::basic_hashed_string< Char >::size size_type entt::basic_hashed_string< Char >::size ()) const
-inlineconstexprnoexcept
@@ -532,21 +545,21 @@ template<
+template<typename Char>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr hash_type entt::basic_hashed_string< Char >::value hash_type entt::basic_hashed_string< Char >::value ()) const
-inlineconstexprnoexcept
@@ -564,25 +577,25 @@ template<
+template<typename Char>
+inlinestaticnodiscardconstexprnoexcept
- + - + - +
static constexpr hash_type entt::basic_hashed_string< Char >::value static constexpr hash_type entt::basic_hashed_string< Char >::value (const value_type * str, const value_type * str,
const size_type len )const size_type len )
-inlinestaticconstexprnoexcept
@@ -607,7 +620,7 @@ template<
+template<typename Char>
template<std::size_t N>
@@ -615,15 +628,15 @@ template<std::size_t N> +inlinestaticnodiscardconstexprnoexcept
- + - +
static constexpr hash_type entt::basic_hashed_string< Char >::value static constexpr hash_type entt::basic_hashed_string< Char >::value (const value_type(&) str[N])const value_type(&) str[N])
-inlinestaticconstexprnoexcept
@@ -653,13 +666,13 @@ template<std::size_t N>
-template<typename Char >
+template<typename Char>
@@ -31,23 +33,33 @@
- + @@ -667,7 +680,7 @@ template< -inlinestaticconstexprnoexcept +inlinestaticnodiscardconstexprnoexcept
static constexpr hash_type entt::basic_hashed_string< Char >::value static constexpr hash_type entt::basic_hashed_string< Char >::value ( const_wrapper wrapper)
@@ -692,7 +705,8 @@ template< +
diff --git a/classentt_1_1basic__observer-members.html b/classentt_1_1basic__observer-members.html deleted file mode 100644 index 21124ce6d..000000000 --- a/classentt_1_1basic__observer-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
entt::basic_observer< Registry, Allocator > Member List
-
-
- -

This is the complete list of members for entt::basic_observer< Registry, Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedefentt::basic_observer< Registry, Allocator >
basic_observer()entt::basic_observer< Registry, Allocator >inline
basic_observer(const allocator_type &allocator)entt::basic_observer< Registry, Allocator >inlineexplicit
basic_observer(const basic_observer &)=deleteentt::basic_observer< Registry, Allocator >
basic_observer(basic_observer &&)=deleteentt::basic_observer< Registry, Allocator >
basic_observer(registry_type &reg, basic_collector< Matcher... >, const allocator_type &allocator=allocator_type{})entt::basic_observer< Registry, Allocator >inline
begin() const noexceptentt::basic_observer< Registry, Allocator >inline
clear() noexceptentt::basic_observer< Registry, Allocator >inline
connect(registry_type &reg, basic_collector< Matcher... >)entt::basic_observer< Registry, Allocator >inline
data() const noexceptentt::basic_observer< Registry, Allocator >inline
disconnect()entt::basic_observer< Registry, Allocator >inline
each(Func func) constentt::basic_observer< Registry, Allocator >inline
each(Func func)entt::basic_observer< Registry, Allocator >inline
empty() const noexceptentt::basic_observer< Registry, Allocator >inline
end() const noexceptentt::basic_observer< Registry, Allocator >inline
entity_type typedefentt::basic_observer< Registry, Allocator >
iterator typedefentt::basic_observer< Registry, Allocator >
operator=(const basic_observer &)=deleteentt::basic_observer< Registry, Allocator >
operator=(basic_observer &&)=deleteentt::basic_observer< Registry, Allocator >
registry_type typedefentt::basic_observer< Registry, Allocator >
size() const noexceptentt::basic_observer< Registry, Allocator >inline
size_type typedefentt::basic_observer< Registry, Allocator >
~basic_observer()=defaultentt::basic_observer< Registry, Allocator >
- - - - diff --git a/classentt_1_1basic__observer.html b/classentt_1_1basic__observer.html deleted file mode 100644 index 352de8069..000000000 --- a/classentt_1_1basic__observer.html +++ /dev/null @@ -1,868 +0,0 @@ - - - - - - - -EnTT: entt::basic_observer< Registry, Allocator > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
entt::basic_observer< Registry, Allocator > Class Template Reference
-
-
- -

Observer. - More...

- -

#include <observer.hpp>

- - - - - - - - - - - - - - - - -

-Public Types

using allocator_type = Allocator
 Allocator type.
 
using registry_type = Registry
 
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = typename registry_type::common_type::iterator
 Random access iterator type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 basic_observer ()
 Default constructor.
 
 basic_observer (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_observer (const basic_observer &)=delete
 Default copy constructor, deleted on purpose.
 
basic_observer (basic_observer &&)=delete
 Default move constructor, deleted on purpose.
 
template<typename... Matcher>
 basic_observer (registry_type &reg, basic_collector< Matcher... >, const allocator_type &allocator=allocator_type{})
 Creates an observer and connects it to a given registry.
 
~basic_observer ()=default
 Default destructor.
 
basic_observeroperator= (const basic_observer &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_observeroperator= (basic_observer &&)=delete
 Default move assignment operator, deleted on purpose.
 
template<typename... Matcher>
void connect (registry_type &reg, basic_collector< Matcher... >)
 Connects an observer to a given registry.
 
void disconnect ()
 Disconnects an observer from the registry it keeps track of.
 
size_type size () const noexcept
 Returns the number of elements in an observer.
 
bool empty () const noexcept
 Checks whether an observer is empty.
 
const entity_typedata () const noexcept
 Direct access to the list of entities of the observer.
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the observer.
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the observer.
 
void clear () noexcept
 Clears the underlying container.
 
template<typename Func >
void each (Func func) const
 Iterates entities and applies the given function object to them.
 
template<typename Func >
void each (Func func)
 Iterates entities and applies the given function object to them, then clears the observer.
 
-

Detailed Description

-
template<typename Registry, typename Allocator>
-class entt::basic_observer< Registry, Allocator >

Observer.

-

An observer returns all the entities and only the entities that fit the requirements of at least one matcher. Moreover, it's guaranteed that the entity list is tightly packed in memory for fast iterations.
- In general, observers don't stay true to the order of any set of elements.

-

Observers work mainly with two types of matchers, provided through a collector:

-
    -
  • Observing matcher: an observer will return at least all the living entities for which one or more of the given elements have been updated and not yet destroyed.
  • -
  • Grouping matcher: an observer will return at least all the living entities that would have entered the given group if it existed and that would have not yet left it.
  • -
-

If an entity respects the requirements of multiple matchers, it will be returned once and only once by the observer in any case.

-

Matchers support also filtering by means of a where clause that accepts both a list of types and an exclusion list.
- Whenever a matcher finds that an entity matches its requirements, the condition of the filter is verified before to register the entity itself. Moreover, a registered entity isn't returned by the observer if the condition set by the filter is broken in the meantime.

-

Important

-

Iterators aren't invalidated if:

-
    -
  • New instances of the given elements are created and assigned to entities.
  • -
  • The entity currently pointed is modified (as an example, if one of the given elements is removed from the entity to which the iterator points).
  • -
  • The entity currently pointed is destroyed.
  • -
-

In all the other cases, modifying the pools of the given elements in any way invalidates all the iterators.

-
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
- - - -
RegistryBasic registry type.
AllocatorType of allocator used to manage memory and elements.
-
-
- -

Definition at line 160 of file observer.hpp.

-

Member Typedef Documentation

- -

◆ allocator_type

- -
-
-
-template<typename Registry , typename Allocator >
- - - - -
using entt::basic_observer< Registry, Allocator >::allocator_type = Allocator
-
- -

Allocator type.

- -

Definition at line 257 of file observer.hpp.

- -
-
- -

◆ entity_type

- -
-
-
-template<typename Registry , typename Allocator >
- - - - -
using entt::basic_observer< Registry, Allocator >::entity_type = typename registry_type::entity_type
-
- -

Underlying entity identifier.

- -

Definition at line 261 of file observer.hpp.

- -
-
- -

◆ iterator

- -
-
-
-template<typename Registry , typename Allocator >
- - - - -
using entt::basic_observer< Registry, Allocator >::iterator = typename registry_type::common_type::iterator
-
- -

Random access iterator type.

- -

Definition at line 265 of file observer.hpp.

- -
-
- -

◆ registry_type

- -
-
-
-template<typename Registry , typename Allocator >
- - - - -
using entt::basic_observer< Registry, Allocator >::registry_type = Registry
-
-

Basic registry type.

- -

Definition at line 259 of file observer.hpp.

- -
-
- -

◆ size_type

- -
-
-
-template<typename Registry , typename Allocator >
- - - - -
using entt::basic_observer< Registry, Allocator >::size_type = std::size_t
-
- -

Unsigned integer type.

- -

Definition at line 263 of file observer.hpp.

- -
-
-

Constructor & Destructor Documentation

- -

◆ basic_observer() [1/3]

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
entt::basic_observer< Registry, Allocator >::basic_observer ()
-
-inline
-
- -

Default constructor.

- -

Definition at line 268 of file observer.hpp.

- -
-
- -

◆ basic_observer() [2/3]

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
entt::basic_observer< Registry, Allocator >::basic_observer (const allocator_type & allocator)
-
-inlineexplicit
-
- -

Constructs an empty storage with a given allocator.

-
Parameters
- - -
allocatorThe allocator to use.
-
-
- -

Definition at line 275 of file observer.hpp.

- -
-
- -

◆ basic_observer() [3/3]

- -
-
-
-template<typename Registry , typename Allocator >
-
-template<typename... Matcher>
- - - - - -
- - - - - - - - - - - - - - - - -
entt::basic_observer< Registry, Allocator >::basic_observer (registry_type & reg,
basic_collector< Matcher... > ,
const allocator_type & allocator = allocator_type{} )
-
-inline
-
- -

Creates an observer and connects it to a given registry.

-
Template Parameters
- - -
MatcherTypes of matchers to use to initialize the observer.
-
-
-
Parameters
- - - -
regA valid reference to a registry.
allocatorThe allocator to use.
-
-
- -

Definition at line 293 of file observer.hpp.

- -
-
-

Member Function Documentation

- -

◆ begin()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
iterator entt::basic_observer< Registry, Allocator >::begin () const
-
-inlinenoexcept
-
- -

Returns an iterator to the first entity of the observer.

-

If the observer is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first entity of the observer.
- -

Definition at line 377 of file observer.hpp.

- -
-
- -

◆ clear()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
void entt::basic_observer< Registry, Allocator >::clear ()
-
-inlinenoexcept
-
- -

Clears the underlying container.

- -

Definition at line 391 of file observer.hpp.

- -
-
- -

◆ connect()

- -
-
-
-template<typename Registry , typename Allocator >
-
-template<typename... Matcher>
- - - - - -
- - - - - - - - - - - -
void entt::basic_observer< Registry, Allocator >::connect (registry_type & reg,
basic_collector< Matcher... >  )
-
-inline
-
- -

Connects an observer to a given registry.

-
Template Parameters
- - -
MatcherTypes of matchers to use to initialize the observer.
-
-
-
Parameters
- - -
regA valid reference to a registry.
-
-
- -

Definition at line 321 of file observer.hpp.

- -
-
- -

◆ data()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
const entity_type * entt::basic_observer< Registry, Allocator >::data () const
-
-inlinenoexcept
-
- -

Direct access to the list of entities of the observer.

-

The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

-
Note
Entities are in the reverse order as returned by the begin/end iterators.
-
Returns
A pointer to the array of entities.
- -

Definition at line 366 of file observer.hpp.

- -
-
- -

◆ disconnect()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
void entt::basic_observer< Registry, Allocator >::disconnect ()
-
-inline
-
- -

Disconnects an observer from the registry it keeps track of.

- -

Definition at line 331 of file observer.hpp.

- -
-
- -

◆ each() [1/2]

- -
-
-
-template<typename Registry , typename Allocator >
-
-template<typename Func >
- - - - - -
- - - - - - - -
void entt::basic_observer< Registry, Allocator >::each (Func func)
-
-inline
-
- -

Iterates entities and applies the given function object to them, then clears the observer.

-
See also
each
-
Template Parameters
- - -
FuncType of the function object to invoke.
-
-
-
Parameters
- - -
funcA valid function object.
-
-
- -

Definition at line 425 of file observer.hpp.

- -
-
- -

◆ each() [2/2]

- -
-
-
-template<typename Registry , typename Allocator >
-
-template<typename Func >
- - - - - -
- - - - - - - -
void entt::basic_observer< Registry, Allocator >::each (Func func) const
-
-inline
-
- -

Iterates entities and applies the given function object to them.

-

The function object is invoked for each entity.
- The signature of the function must be equivalent to the following form:

-
-
typename registry_type::entity_type entity_type
Underlying entity identifier.
Definition observer.hpp:261
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
Template Parameters
- - -
FuncType of the function object to invoke.
-
-
-
Parameters
- - -
funcA valid function object.
-
-
- -

Definition at line 409 of file observer.hpp.

- -
-
- -

◆ empty()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
bool entt::basic_observer< Registry, Allocator >::empty () const
-
-inlinenoexcept
-
- -

Checks whether an observer is empty.

-
Returns
True if the observer is empty, false otherwise.
- -

Definition at line 350 of file observer.hpp.

- -
-
- -

◆ end()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
iterator entt::basic_observer< Registry, Allocator >::end () const
-
-inlinenoexcept
-
- -

Returns an iterator that is past the last entity of the observer.

-
Returns
An iterator to the entity following the last entity of the observer.
- -

Definition at line 386 of file observer.hpp.

- -
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
basic_observer & entt::basic_observer< Registry, Allocator >::operator= (basic_observer< Registry, Allocator > && )
-
-delete
-
- -

Default move assignment operator, deleted on purpose.

-
Returns
This observer.
- -
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
basic_observer & entt::basic_observer< Registry, Allocator >::operator= (const basic_observer< Registry, Allocator > & )
-
-delete
-
- -

Default copy assignment operator, deleted on purpose.

-
Returns
This observer.
- -
-
- -

◆ size()

- -
-
-
-template<typename Registry , typename Allocator >
- - - - - -
- - - - - - - -
size_type entt::basic_observer< Registry, Allocator >::size () const
-
-inlinenoexcept
-
- -

Returns the number of elements in an observer.

-
Returns
Number of elements.
- -

Definition at line 342 of file observer.hpp.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/classentt_1_1basic__organizer-members.html b/classentt_1_1basic__organizer-members.html index d16655b50..7ce4f61c9 100644 --- a/classentt_1_1basic__organizer-members.html +++ b/classentt_1_1basic__organizer-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_organizer< Registry > Member List
@@ -93,7 +106,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__organizer.html b/classentt_1_1basic__organizer.html index 200e1b4bc..7b5d8b91c 100644 --- a/classentt_1_1basic__organizer.html +++ b/classentt_1_1basic__organizer.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_organizer< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Classes | @@ -97,41 +110,41 @@ Classes - + - + - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using function_type = callback_type
using function_type = callback_type
 Raw task function type.
 
- - + + - - + + - + - +

Public Member Functions

template<auto Candidate, typename... Req>
void emplace (const char *name=nullptr)
template<auto Candidate, typename... Req>
void emplace (const char *name=nullptr)
 Adds a free function to the task list.
 
template<auto Candidate, typename... Req, typename Type >
void emplace (Type &value_or_instance, const char *name=nullptr)
template<auto Candidate, typename... Req, typename Type>
void emplace (Type &value_or_instance, const char *name=nullptr)
 Adds a free function with payload or a member function with an instance to the task list.
 
template<typename... Req>
void emplace (function_type *func, const void *payload=nullptr, const char *name=nullptr)
void emplace (function_type *func, const void *payload=nullptr, const char *name=nullptr)
 Adds an user defined function with optional payload to the task list.
 
std::vector< vertexgraph ()
 Generates a task graph for the current content.
 
void clear ()
void clear ()
 Erases all elements from a container.
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::basic_organizer< Registry >

Utility class for creating a static task graph.

This class offers minimal support (but sufficient in many cases) for creating an execution graph from functions and their requirements on resources.
Note that the resulting tasks aren't executed in any case. This isn't the goal of the tool. Instead, they are returned to the user in the form of a graph that allows for safe execution.

@@ -142,7 +155,7 @@ class entt::basic_organizer< Registry >

Utility class for creating -

Definition at line 100 of file organizer.hpp.

+

Definition at line 119 of file organizer.hpp.

Member Typedef Documentation

◆ entity_type

@@ -150,17 +163,17 @@ class entt::basic_organizer< Registry >

Utility class for creating

-template<typename Registry >
+template<typename Registry>
- +
using entt::basic_organizer< Registry >::entity_type = typename registry_type::entity_typeusing entt::basic_organizer< Registry >::entity_type = typename registry_type::entity_type

Underlying entity identifier.

-

Definition at line 162 of file organizer.hpp.

+

Definition at line 183 of file organizer.hpp.

@@ -170,17 +183,17 @@ template<
+template<typename Registry>
- +
using entt::basic_organizer< Registry >::function_type = callback_typeusing entt::basic_organizer< Registry >::function_type = callback_type

Raw task function type.

-

Definition at line 166 of file organizer.hpp.

+

Definition at line 187 of file organizer.hpp.

@@ -190,16 +203,16 @@ template<
+template<typename Registry>
- +
using entt::basic_organizer< Registry >::registry_type = Registryusing entt::basic_organizer< Registry >::registry_type = Registry

Basic registry type.

-

Definition at line 160 of file organizer.hpp.

+

Definition at line 181 of file organizer.hpp.

@@ -209,17 +222,17 @@ template<
+template<typename Registry>
- +
using entt::basic_organizer< Registry >::size_type = std::size_tusing entt::basic_organizer< Registry >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 164 of file organizer.hpp.

+

Definition at line 185 of file organizer.hpp.

@@ -230,28 +243,28 @@ template<
+template<typename Registry>
+inline
- + - +
void entt::basic_organizer< Registry >::clear void entt::basic_organizer< Registry >::clear ())
-inline

Erases all elements from a container.

-

Definition at line 414 of file organizer.hpp.

+

Definition at line 427 of file organizer.hpp.

@@ -261,23 +274,23 @@ template<
+template<typename Registry>
-template<auto Candidate, typename... Req>
+template<auto Candidate, typename... Req> +inline
- + - +
void entt::basic_organizer< Registry >::emplace void entt::basic_organizer< Registry >::emplace (const char * name = nullptr)const char * name = nullptr)
-inline
@@ -297,7 +310,7 @@ template<Definition at line 305 of file organizer.hpp.

+

Definition at line 318 of file organizer.hpp.

@@ -307,7 +320,7 @@ template<
+template<typename Registry>
template<typename... Req>
@@ -315,24 +328,24 @@ template<typename... Req> +inline
- + - + - + - +
void entt::basic_organizer< Registry >::emplace void entt::basic_organizer< Registry >::emplace (function_type * func, function_type * func,
const void * payload = nullptr, const void * payload = nullptr,
const char * name = nullptr )const char * name = nullptr )
-inline
@@ -353,7 +366,7 @@ template<typename... Req>
-

Definition at line 369 of file organizer.hpp.

+

Definition at line 382 of file organizer.hpp.

@@ -363,27 +376,27 @@ template<typename... Req>
-template<typename Registry >
+template<typename Registry>
-template<auto Candidate, typename... Req, typename Type >
+template<auto Candidate, typename... Req, typename Type>
+inline
- + - + - +
void entt::basic_organizer< Registry >::emplace void entt::basic_organizer< Registry >::emplace (Type & value_or_instance, Type & value_or_instance,
const char * name = nullptr )const char * name = nullptr )
-inline
@@ -405,7 +418,7 @@ template<Definition at line 337 of file organizer.hpp.

+

Definition at line 350 of file organizer.hpp.

@@ -415,21 +428,21 @@ template<
+template<typename Registry>
+inlinenodiscard
- + - +
std::vector< vertex > entt::basic_organizer< Registry >::graph std::vector< vertex > entt::basic_organizer< Registry >::graph ())
-inline
@@ -437,7 +450,7 @@ template<
Returns
The adjacency list of the task graph.
-

Definition at line 390 of file organizer.hpp.

+

Definition at line 403 of file organizer.hpp.

@@ -448,7 +461,8 @@ template< + diff --git a/classentt_1_1basic__poly-members.html b/classentt_1_1basic__poly-members.html index ade1c4a8a..91763b982 100644 --- a/classentt_1_1basic__poly-members.html +++ b/classentt_1_1basic__poly-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_poly< Concept, Len, Align > Member List
@@ -100,7 +113,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__poly.html b/classentt_1_1basic__poly.html index c588fb290..3023c39e6 100644 --- a/classentt_1_1basic__poly.html +++ b/classentt_1_1basic__poly.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_poly< Concept, Len, Align > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -111,66 +124,66 @@ Collaboration diagram for entt::basic_poly< Concept, Len, Align >:
- + - +

Public Types

using concept_type = typename Concept::template type<poly_base<basic_poly>>
using concept_type = typename Concept::template type<poly_base<basic_poly>>
 Concept type.
 
using vtable_type = typename poly_vtable<Concept, Len, Align>::type
using vtable_type = typename poly_vtable<Concept, Len, Align>::type
 Virtual table type.
 
+  - - + + - - + + - + - + - - + + - - + + - + - + - + - - + + - + - - + +

Public Member Functions

basic_poly () noexcept=default
basic_poly () noexcept=default
 Default constructor.
 
template<typename Type , typename... Args>
 basic_poly (std::in_place_type_t< Type >, Args &&...args)
template<typename Type, typename... Args>
 basic_poly (std::in_place_type_t< Type >, Args &&...args)
 Constructs a poly by directly initializing the new object.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
 basic_poly (Type &&value) noexcept
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
 basic_poly (Type &&value) noexcept
 Constructs a poly from a given value.
 
const type_infotype () const noexcept
const type_infotype () const noexcept
 Returns the object type if any, type_id<void>() otherwise.
 
const voiddata () const noexcept
const void * data () const noexcept
 Returns an opaque pointer to the contained instance.
 
voiddata () noexcept
 Returns an opaque pointer to the contained instance.
void * data () noexcept
 Returns an opaque pointer to the contained instance.
 
template<typename Type , typename... Args>
void emplace (Args &&...args)
template<typename Type, typename... Args>
void emplace (Args &&...args)
 Replaces the contained object by creating a new instance directly.
 
void reset ()
void reset ()
 Destroys contained object.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns false if a poly is empty, true otherwise.
 
concept_typeoperator-> () noexcept
concept_typeoperator-> () noexcept
 Returns a pointer to the underlying concept.
 
const concept_typeoperator-> () const noexcept
 Returns a pointer to the underlying concept.
const concept_typeoperator-> () const noexcept
 Returns a pointer to the underlying concept.
 
basic_poly as_ref () noexcept
basic_poly as_ref () noexcept
 Aliasing constructor.
 
basic_poly as_ref () const noexcept
 Aliasing constructor.
basic_poly as_ref () const noexcept
 Aliasing constructor.
 
- +

Friends

struct poly_base< basic_poly >
struct poly_base< basic_poly >
 

Detailed Description

-
template<typename Concept, std::size_t Len, std::size_t Align>
+
template<typename Concept, std::size_t Len, std::size_t Align>
class entt::basic_poly< Concept, Len, Align >

Static polymorphism made simple and within everyone's reach.

Static polymorphism is a very powerful tool in C++, albeit sometimes cumbersome to obtain.
This class aims to make it simple and easy to use.

@@ -193,10 +206,10 @@ class entt::basic_poly< Concept, Len, Align >

Static polymorphism

-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
- +
using entt::basic_poly< Concept, Len, Align >::concept_type = typename Concept::template type<poly_base<basic_poly>>using entt::basic_poly< Concept, Len, Align >::concept_type = typename Concept::template type<poly_base<basic_poly>>
@@ -213,10 +226,10 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
- +
using entt::basic_poly< Concept, Len, Align >::vtable_type = typename poly_vtable<Concept, Len, Align>::typeusing entt::basic_poly< Concept, Len, Align >::vtable_type = typename poly_vtable<Concept, Len, Align>::type
@@ -234,27 +247,27 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inlineexplicit
- + - + - +
entt::basic_poly< Concept, Len, Align >::basic_poly entt::basic_poly< Concept, Len, Align >::basic_poly (std::in_place_type_t< Type > , std::in_place_type_t< Type > ,
Args &&... args )Args &&... args )
-inlineexplicit
@@ -284,15 +297,15 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
@@ -31,23 +33,33 @@
- + @@ -300,7 +313,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::basic_poly< Concept, Len, Align >::basic_poly entt::basic_poly< Concept, Len, Align >::basic_poly ( Type && value)
@@ -330,27 +343,27 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
basic_poly entt::basic_poly< Concept, Len, Align >::as_ref basic_poly entt::basic_poly< Concept, Len, Align >::as_ref ()) const
-inlinenoexcept
-

Aliasing constructor.

-
Returns
A poly that shares a reference to an unmanaged object.
+

Aliasing constructor.

+
Returns
A poly that shares a reference to an unmanaged object.

Definition at line 297 of file poly.hpp.

@@ -362,21 +375,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
basic_poly entt::basic_poly< Concept, Len, Align >::as_ref basic_poly entt::basic_poly< Concept, Len, Align >::as_ref ())
-inlinenoexcept
@@ -394,21 +407,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
const void * entt::basic_poly< Concept, Len, Align >::data const void * entt::basic_poly< Concept, Len, Align >::data ()) const
-inlinenoexcept
@@ -426,27 +439,27 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
void * entt::basic_poly< Concept, Len, Align >::data void * entt::basic_poly< Concept, Len, Align >::data ())
-inlinenoexcept
-

Returns an opaque pointer to the contained instance.

-
Returns
An opaque pointer the contained instance, if any.
+

Returns an opaque pointer to the contained instance.

+
Returns
An opaque pointer the contained instance, if any.

Definition at line 242 of file poly.hpp.

@@ -458,23 +471,23 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
void entt::basic_poly< Concept, Len, Align >::emplace void entt::basic_poly< Concept, Len, Align >::emplace (Args &&... args)Args &&... args)
-inline
@@ -504,21 +517,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_poly< Concept, Len, Align >::operator bool entt::basic_poly< Concept, Len, Align >::operator bool ()) const
-inlineexplicitnoexcept
@@ -536,27 +549,27 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
const concept_type * entt::basic_poly< Concept, Len, Align >::operator-> const concept_type * entt::basic_poly< Concept, Len, Align >::operator-> ()) const
-inlinenoexcept
-

Returns a pointer to the underlying concept.

-
Returns
A pointer to the underlying concept.
+

Returns a pointer to the underlying concept.

+
Returns
A pointer to the underlying concept.

Definition at line 281 of file poly.hpp.

@@ -568,21 +581,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
concept_type * entt::basic_poly< Concept, Len, Align >::operator-> concept_type * entt::basic_poly< Concept, Len, Align >::operator-> ())
-inlinenoexcept
@@ -600,21 +613,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inline
- + - +
void entt::basic_poly< Concept, Len, Align >::reset void entt::basic_poly< Concept, Len, Align >::reset ())
-inline
@@ -631,21 +644,21 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+inlinenodiscardnoexcept
- + - +
const type_info & entt::basic_poly< Concept, Len, Align >::type const type_info & entt::basic_poly< Concept, Len, Align >::type ()) const
-inlinenoexcept
@@ -664,18 +677,18 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
+friend
- +
friend struct poly_base< basic_poly >friend struct poly_base< basic_poly >
-friend
@@ -691,7 +704,8 @@ template< +
diff --git a/classentt_1_1basic__reactive__mixin-members.html b/classentt_1_1basic__reactive__mixin-members.html index ce3becd5a..4028773c4 100644 --- a/classentt_1_1basic__reactive__mixin-members.html +++ b/classentt_1_1basic__reactive__mixin-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::basic_reactive_mixin< Type, Registry > Member List
@@ -97,14 +110,15 @@ $(function() { registry() const noexceptentt::basic_reactive_mixin< Type, Registry >inline registry() noexceptentt::basic_reactive_mixin< Type, Registry >inline registry_type typedefentt::basic_reactive_mixin< Type, Registry > - swap(basic_reactive_mixin &other) noexceptentt::basic_reactive_mixin< Type, Registry >inline + reset()entt::basic_reactive_mixin< Type, Registry >inline view(exclude_t< Exclude... >=exclude_t{}) constentt::basic_reactive_mixin< Type, Registry >inline view(exclude_t< Exclude... >=exclude_t{})entt::basic_reactive_mixin< Type, Registry >inline ~basic_reactive_mixin() override=defaultentt::basic_reactive_mixin< Type, Registry >
+
diff --git a/classentt_1_1basic__reactive__mixin.html b/classentt_1_1basic__reactive__mixin.html index 5cefaea3d..85200c7d7 100644 --- a/classentt_1_1basic__reactive__mixin.html +++ b/classentt_1_1basic__reactive__mixin.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_reactive_mixin< Type, Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -110,13 +123,13 @@ Collaboration diagram for entt::basic_reactive_mixin< Type, Registry >:

Public Types

-using allocator_type = typename underlying_type::allocator_type +using allocator_type = typename underlying_type::allocator_type  Allocator type.
  -using entity_type = typename underlying_type::entity_type +using entity_type = typename underlying_type::entity_type  Underlying entity identifier.
  -using registry_type = owner_type +using registry_type = owner_type  Expected registry type.
  @@ -125,64 +138,64 @@ Public Member Functions - + +  - + - + +  - + - + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + + + +
 basic_reactive_mixin ()
 Default constructor.
 
 basic_reactive_mixin (const allocator_type &allocator)
 basic_reactive_mixin (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_reactive_mixin (const basic_reactive_mixin &)=delete
basic_reactive_mixin (const basic_reactive_mixin &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_reactive_mixin (basic_reactive_mixin &&other) noexcept
 basic_reactive_mixin (basic_reactive_mixin &&other) noexcept
 Move constructor.
 
 basic_reactive_mixin (basic_reactive_mixin &&other, const allocator_type &allocator)
 basic_reactive_mixin (basic_reactive_mixin &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_reactive_mixin () override=default
~basic_reactive_mixin () override=default
 Default destructor.
 
basic_reactive_mixinoperator= (const basic_reactive_mixin &)=delete
basic_reactive_mixinoperator= (const basic_reactive_mixin &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_reactive_mixinoperator= (basic_reactive_mixin &&other) noexcept
basic_reactive_mixinoperator= (basic_reactive_mixin &&other) noexcept
 Move assignment operator.
 
void swap (basic_reactive_mixin &other) noexcept
 Exchanges the contents with those of a given storage.
 
template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_construct (const id_type id=type_hash< Clazz >::value())
template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_construct (const id_type id=type_hash< Clazz >::value())
 Makes storage react to creation of objects of the given type.
 
template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_update (const id_type id=type_hash< Clazz >::value())
template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_update (const id_type id=type_hash< Clazz >::value())
 Makes storage react to update of objects of the given type.
 
template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_destroy (const id_type id=type_hash< Clazz >::value())
template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
basic_reactive_mixinon_destroy (const id_type id=type_hash< Clazz >::value())
 Makes storage react to destruction of objects of the given type.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks if a mixin refers to a valid registry.
 
const registry_typeregistry () const noexcept
const registry_typeregistry () const noexcept
 Returns a pointer to the underlying registry, if any.
 
registry_typeregistry () noexcept
 Returns a pointer to the underlying registry, if any.
registry_typeregistry () noexcept
 Returns a pointer to the underlying registry, if any.
 
template<typename... Get, typename... Exclude>
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > view (exclude_t< Exclude... >=exclude_t{}) const
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > view (exclude_t< Exclude... >=exclude_t{}) const
 Returns a view that is filtered by the underlying storage.
 
template<typename... Get, typename... Exclude>
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > view (exclude_t< Exclude... >=exclude_t{})
 Returns a view that is filtered by the underlying storage.
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > view (exclude_t< Exclude... >=exclude_t{})
 Returns a view that is filtered by the underlying storage.
 
void reset ()
 Releases all connections to the underlying registry, if any.
 

Detailed Description

-
template<typename Type, typename Registry>
+
template<typename Type, typename Registry>
class entt::basic_reactive_mixin< Type, Registry >

Mixin type used to add reactive support to storage types.

Template Parameters
@@ -192,7 +205,7 @@ class entt::basic_reactive_mixin< Type, Registry >

Mixin type used -

Definition at line 389 of file mixin.hpp.

+

Definition at line 394 of file mixin.hpp.

Member Typedef Documentation

◆ allocator_type

@@ -200,17 +213,17 @@ class entt::basic_reactive_mixin< Type, Registry >

Mixin type used

-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
- +
using entt::basic_reactive_mixin< Type, Registry >::allocator_type = typename underlying_type::allocator_typeusing entt::basic_reactive_mixin< Type, Registry >::allocator_type = typename underlying_type::allocator_type

Allocator type.

-

Definition at line 416 of file mixin.hpp.

+

Definition at line 430 of file mixin.hpp.

@@ -220,17 +233,17 @@ template<
+template<typename Type, typename Registry>
- +
using entt::basic_reactive_mixin< Type, Registry >::entity_type = typename underlying_type::entity_typeusing entt::basic_reactive_mixin< Type, Registry >::entity_type = typename underlying_type::entity_type

Underlying entity identifier.

-

Definition at line 418 of file mixin.hpp.

+

Definition at line 432 of file mixin.hpp.

@@ -240,17 +253,17 @@ template<
+template<typename Type, typename Registry>
- +
using entt::basic_reactive_mixin< Type, Registry >::registry_type = owner_typeusing entt::basic_reactive_mixin< Type, Registry >::registry_type = owner_type

Expected registry type.

-

Definition at line 420 of file mixin.hpp.

+

Definition at line 434 of file mixin.hpp.

@@ -261,28 +274,28 @@ template<
+template<typename Type, typename Registry>
+inline
- + - +
entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin ())
-inline

Default constructor.

-

Definition at line 423 of file mixin.hpp.

+

Definition at line 437 of file mixin.hpp.

@@ -292,21 +305,21 @@ template<
+template<typename Type, typename Registry>
+inlineexplicit
- + - +
entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -319,7 +332,7 @@ template<Definition at line 430 of file mixin.hpp.

+

Definition at line 444 of file mixin.hpp.

@@ -329,21 +342,21 @@ template<
+template<typename Type, typename Registry>
+inlinenoexcept
- + - +
entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin (basic_reactive_mixin< Type, Registry > && other)basic_reactive_mixin< Type, Registry > && other)
-inlinenoexcept
@@ -356,7 +369,7 @@ template<Definition at line 442 of file mixin.hpp.

+

Definition at line 458 of file mixin.hpp.

@@ -366,25 +379,25 @@ template<
+template<typename Type, typename Registry>
+inline
- + - + - +
entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin entt::basic_reactive_mixin< Type, Registry >::basic_reactive_mixin (basic_reactive_mixin< Type, Registry > && other, basic_reactive_mixin< Type, Registry > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -398,7 +411,7 @@ template<Definition at line 451 of file mixin.hpp.

+

Definition at line 471 of file mixin.hpp.

@@ -409,23 +422,23 @@ template<
+template<typename Type, typename Registry>
-template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
+template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element> +inline
- + - +
basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_construct basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_construct (const id_type id = type_hash<Clazz>::value())const id_type id = type_hash<Clazz>::value())
-inline
@@ -446,7 +459,7 @@ template<
Returns
This mixin.
-

Definition at line 492 of file mixin.hpp.

+

Definition at line 505 of file mixin.hpp.

@@ -456,23 +469,23 @@ template<
+template<typename Type, typename Registry>
-template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
+template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element> +inline
- + - +
basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_destroy basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_destroy (const id_type id = type_hash<Clazz>::value())const id_type id = type_hash<Clazz>::value())
-inline
@@ -493,7 +506,7 @@ template<
Returns
This mixin.
-

Definition at line 518 of file mixin.hpp.

+

Definition at line 533 of file mixin.hpp.

@@ -503,23 +516,23 @@ template<
+template<typename Type, typename Registry>
-template<typename Clazz , auto Candidate = &basic_reactive_mixin::emplace_element>
+template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element> +inline
- + - +
basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_update basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::on_update (const id_type id = type_hash<Clazz>::value())const id_type id = type_hash<Clazz>::value())
-inline
@@ -540,7 +553,7 @@ template<
Returns
This mixin.
-

Definition at line 505 of file mixin.hpp.

+

Definition at line 519 of file mixin.hpp.

@@ -550,21 +563,21 @@ template<
+template<typename Type, typename Registry>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_reactive_mixin< Type, Registry >::operator bool entt::basic_reactive_mixin< Type, Registry >::operator bool ()) const
-inlineexplicitnoexcept
@@ -572,7 +585,7 @@ template<
Returns
True if the mixin refers to a valid registry, false otherwise.
-

Definition at line 527 of file mixin.hpp.

+

Definition at line 543 of file mixin.hpp.

@@ -582,21 +595,21 @@ template<
+template<typename Type, typename Registry>
+inlinenoexcept
- + - +
basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::operator= basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::operator= (basic_reactive_mixin< Type, Registry > && other)basic_reactive_mixin< Type, Registry > && other)
-inlinenoexcept
@@ -610,7 +623,7 @@ template<
Returns
This mixin.
-

Definition at line 469 of file mixin.hpp.

+

Definition at line 492 of file mixin.hpp.

@@ -620,21 +633,21 @@ template<
+template<typename Type, typename Registry>
+delete
- + - +
basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::operator= basic_reactive_mixin & entt::basic_reactive_mixin< Type, Registry >::operator= (const basic_reactive_mixin< Type, Registry > & )const basic_reactive_mixin< Type, Registry > & )
-delete
@@ -650,21 +663,21 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
const registry_type & entt::basic_reactive_mixin< Type, Registry >::registry const registry_type & entt::basic_reactive_mixin< Type, Registry >::registry ()) const
-inlinenoexcept
@@ -672,7 +685,7 @@ template<
Returns
A pointer to the underlying registry, if any.
-

Definition at line 535 of file mixin.hpp.

+

Definition at line 551 of file mixin.hpp.

@@ -682,66 +695,60 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
registry_type & entt::basic_reactive_mixin< Type, Registry >::registry registry_type & entt::basic_reactive_mixin< Type, Registry >::registry ())
-inlinenoexcept
-

Returns a pointer to the underlying registry, if any.

-
Returns
A pointer to the underlying registry, if any.
+

Returns a pointer to the underlying registry, if any.

+
Returns
A pointer to the underlying registry, if any.
-

Definition at line 540 of file mixin.hpp.

+

Definition at line 556 of file mixin.hpp.

- -

◆ swap()

+ +

◆ reset()

-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
+inline
- + - +
void entt::basic_reactive_mixin< Type, Registry >::swap void entt::basic_reactive_mixin< Type, Registry >::reset (basic_reactive_mixin< Type, Registry > & other))
-inlinenoexcept
-

Exchanges the contents with those of a given storage.

-
Parameters
- - -
otherStorage to exchange the content with.
-
-
+

Releases all connections to the underlying registry, if any.

-

Definition at line 478 of file mixin.hpp.

+

Definition at line 584 of file mixin.hpp.

@@ -751,7 +758,7 @@ template<
+template<typename Type, typename Registry>
template<typename... Get, typename... Exclude>
@@ -759,20 +766,20 @@ template<typename... Get, typename... Exclude> +inlinenodiscard
- + - +
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > entt::basic_reactive_mixin< Type, Registry >::view basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > entt::basic_reactive_mixin< Type, Registry >::view (exclude_t< Exclude... > = exclude_t{})exclude_t< Exclude... > = exclude_t{})
-inline
-

Returns a view that is filtered by the underlying storage.

+

Returns a view that is filtered by the underlying storage.

Template Parameters
@@ -780,9 +787,9 @@ template<typename... Get, typename... Exclude>
GetTypes of elements used to construct the view.
-
Returns
A newly created view.
+
Returns
A newly created view.
-

Definition at line 562 of file mixin.hpp.

+

Definition at line 578 of file mixin.hpp.

@@ -792,7 +799,7 @@ template<typename... Get, typename... Exclude>
-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
template<typename... Get, typename... Exclude>
@@ -800,15 +807,15 @@ template<typename... Get, typename... Exclude> +inlinenodiscard
- + - +
basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > entt::basic_reactive_mixin< Type, Registry >::view basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > entt::basic_reactive_mixin< Type, Registry >::view (exclude_t< Exclude... > = exclude_t{})exclude_t< Exclude... > = exclude_t{}) const
-inline
@@ -823,7 +830,7 @@ template<typename... Get, typename... Exclude>
Returns
A newly created view.
-

Definition at line 552 of file mixin.hpp.

+

Definition at line 568 of file mixin.hpp.

@@ -834,7 +841,8 @@ template<typename... Get, typename... Exclude> + diff --git a/classentt_1_1basic__registry-members.html b/classentt_1_1basic__registry-members.html index a1edce93b..01f086beb 100644 --- a/classentt_1_1basic__registry-members.html +++ b/classentt_1_1basic__registry-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_registry< Entity, Allocator > Member List
@@ -151,7 +164,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__registry.html b/classentt_1_1basic__registry.html index 49a660f09..0fc030860 100644 --- a/classentt_1_1basic__registry.html +++ b/classentt_1_1basic__registry.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_registry< Entity, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,32 +103,32 @@ $(function() { - + - + - + - + - + - + - + - + - - + +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using entity_type = typename traits_type::value_type
using entity_type = typename traits_type::value_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
using version_type = typename traits_type::version_type
 Underlying version type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using common_type = base_type
using common_type = base_type
 Common type among all storage types.
 
using context = internal::registry_context<allocator_type>
using context = internal::registry_context<allocator_type>
 Context type.
 
using iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::iterator>>
using iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::iterator>>
 Iterable registry type.
 
using const_iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::const_iterator>>
using const_iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::const_iterator>>
 Constant iterable registry type.
 
template<typename Type >
using storage_for_type = typename storage_for<Type, Entity, typename alloc_traits::template rebind_alloc<std::remove_const_t<Type>>>::type
template<typename Type>
using storage_for_type = typename storage_for<Type, Entity, typename alloc_traits::template rebind_alloc<std::remove_const_t<Type>>>::type
 
- + - + +  - + +  - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - + - - + + - - + + - + - - + +

@@ -123,216 +136,216 @@ Public Member Functions

 basic_registry ()
 Default constructor.
 
 basic_registry (const allocator_type &allocator)
 basic_registry (const allocator_type &allocator)
 Constructs an empty registry with a given allocator.
 
 basic_registry (const size_type count, const allocator_type &allocator=allocator_type{})
 basic_registry (const size_type count, const allocator_type &allocator=allocator_type{})
 Allocates enough memory upon construction to store count pools.
 
basic_registry (const basic_registry &)=delete
basic_registry (const basic_registry &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_registry (basic_registry &&other) noexcept
 basic_registry (basic_registry &&other) noexcept
 Move constructor.
 
~basic_registry ()=default
~basic_registry ()=default
 Default destructor.
 
basic_registryoperator= (const basic_registry &)=delete
basic_registryoperator= (const basic_registry &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_registryoperator= (basic_registry &&other) noexcept
basic_registryoperator= (basic_registry &&other) noexcept
 Move assignment operator.
 
void swap (basic_registry &other) noexcept
void swap (basic_registry &other) noexcept
 Exchanges the contents with those of a given registry.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
iterable storage () noexcept
iterable storage () noexcept
 Returns an iterable object to use to visit a registry.
 
const_iterable storage () const noexcept
 Returns an iterable object to use to visit a registry.
const_iterable storage () const noexcept
 Returns an iterable object to use to visit a registry.
 
common_typestorage (const id_type id)
common_typestorage (const id_type id)
 Finds the storage associated with a given name, if any.
 
const common_typestorage (const id_type id) const
const common_typestorage (const id_type id) const
 Finds the storage associated with a given name, if any.
 
template<typename Type >
storage_for_type< Type > & storage (const id_type id=type_hash< Type >::value())
template<typename Type>
storage_for_type< Type > & storage (const id_type id=type_hash< Type >::value())
 Returns the storage for a given element type.
 
template<typename Type >
const storage_for_type< Type > * storage (const id_type id=type_hash< Type >::value()) const
template<typename Type>
const storage_for_type< Type > * storage (const id_type id=type_hash< Type >::value()) const
 Returns the storage for a given element type, if any.
 
bool reset (const id_type id)
bool reset (const id_type id)
 Discards the storage associated with a given name, if any.
 
bool valid (const entity_type entt) const
bool valid (const entity_type entt) const
 Checks if an identifier refers to a valid entity.
 
version_type current (const entity_type entt) const
version_type current (const entity_type entt) const
 Returns the actual version for an identifier.
 
entity_type create ()
 Creates a new entity or recycles a destroyed one.
 
entity_type create (const entity_type hint)
 Creates a new entity or recycles a destroyed one.
entity_type create (const entity_type hint)
 Creates a new entity or recycles a destroyed one.
 
template<typename It >
void create (It first, It last)
template<typename It>
void create (It first, It last)
 Assigns each element in a range an identifier.
 
version_type destroy (const entity_type entt)
version_type destroy (const entity_type entt)
 Destroys an entity and releases its identifier.
 
version_type destroy (const entity_type entt, const version_type version)
version_type destroy (const entity_type entt, const version_type version)
 Destroys an entity and releases its identifier.
 
template<typename It >
void destroy (It first, It last)
template<typename It>
void destroy (It first, It last)
 Destroys all entities in a range and releases their identifiers.
 
template<typename Type , typename... Args>
decltype(autoemplace (const entity_type entt, Args &&...args)
template<typename Type, typename... Args>
decltype(auto) emplace (const entity_type entt, Args &&...args)
 Assigns the given element to an entity.
 
template<typename Type , typename It >
void insert (It first, It last, const Type &value={})
template<typename Type, typename It>
void insert (It first, It last, const Type &value={})
 Assigns each entity in a range the given element.
 
template<typename Type , typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, Type>>>
void insert (EIt first, EIt last, CIt from)
template<typename Type, typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, Type>>>
void insert (EIt first, EIt last, CIt from)
 Assigns each entity in a range the given elements.
 
template<typename Type , typename... Args>
decltype(autoemplace_or_replace (const entity_type entt, Args &&...args)
template<typename Type, typename... Args>
decltype(auto) emplace_or_replace (const entity_type entt, Args &&...args)
 Assigns or replaces the given element for an entity.
 
template<typename Type , typename... Func>
decltype(autopatch (const entity_type entt, Func &&...func)
template<typename Type, typename... Func>
decltype(auto) patch (const entity_type entt, Func &&...func)
 Patches the given element for an entity.
 
template<typename Type , typename... Args>
decltype(autoreplace (const entity_type entt, Args &&...args)
template<typename Type, typename... Args>
decltype(auto) replace (const entity_type entt, Args &&...args)
 Replaces the given element for an entity.
 
template<typename Type , typename... Other>
size_type remove (const entity_type entt)
template<typename Type, typename... Other>
size_type remove (const entity_type entt)
 Removes the given elements from an entity.
 
template<typename Type , typename... Other, typename It >
size_type remove (It first, It last)
template<typename Type, typename... Other, typename It>
size_type remove (It first, It last)
 Removes the given elements from all the entities in a range.
 
template<typename Type , typename... Other>
void erase (const entity_type entt)
template<typename Type, typename... Other>
void erase (const entity_type entt)
 Erases the given elements from an entity.
 
template<typename Type , typename... Other, typename It >
void erase (It first, It last)
template<typename Type, typename... Other, typename It>
void erase (It first, It last)
 Erases the given elements from all the entities in a range.
 
template<typename Func >
void erase_if (const entity_type entt, Func func)
template<typename Func>
void erase_if (const entity_type entt, Func func)
 Erases elements satisfying specific criteria from an entity.
 
template<typename... Type>
void compact ()
void compact ()
 Removes all tombstones from a registry or only the pools for the given elements.
 
template<typename... Type>
bool all_of (const entity_type entt) const
bool all_of (const entity_type entt) const
 Check if an entity is part of all the given storage.
 
template<typename... Type>
bool any_of (const entity_type entt) const
bool any_of (const entity_type entt) const
 Check if an entity is part of at least one given storage.
 
template<typename... Type>
decltype(autoget (const entity_type entt) const
decltype(auto) get (const entity_type entt) const
 Returns references to the given elements for an entity.
 
template<typename... Type>
decltype(autoget (const entity_type entt)
 Returns references to the given elements for an entity.
decltype(auto) get (const entity_type entt)
 Returns references to the given elements for an entity.
 
template<typename Type , typename... Args>
decltype(autoget_or_emplace (const entity_type entt, Args &&...args)
template<typename Type, typename... Args>
decltype(auto) get_or_emplace (const entity_type entt, Args &&...args)
 Returns a reference to the given element for an entity.
 
template<typename... Type>
auto try_get (const entity_type entt) const
auto try_get (const entity_type entt) const
 Returns pointers to the given elements for an entity.
 
template<typename... Type>
auto try_get (const entity_type entt)
 Returns pointers to the given elements for an entity.
auto try_get (const entity_type entt)
 Returns pointers to the given elements for an entity.
 
template<typename... Type>
void clear ()
void clear ()
 Clears a whole registry or the pools for the given elements.
 
bool orphan (const entity_type entt) const
bool orphan (const entity_type entt) const
 Checks if an entity has elements assigned.
 
template<typename Type >
auto on_construct (const id_type id=type_hash< Type >::value())
template<typename Type>
auto on_construct (const id_type id=type_hash< Type >::value())
 Returns a sink object for the given element.
 
template<typename Type >
auto on_update (const id_type id=type_hash< Type >::value())
template<typename Type>
auto on_update (const id_type id=type_hash< Type >::value())
 Returns a sink object for the given element.
 
template<typename Type >
auto on_destroy (const id_type id=type_hash< Type >::value())
template<typename Type>
auto on_destroy (const id_type id=type_hash< Type >::value())
 Returns a sink object for the given element.
 
template<typename Type , typename... Other, typename... Exclude>
basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view (exclude_t< Exclude... >=exclude_t{}) const
template<typename Type, typename... Other, typename... Exclude>
basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view (exclude_t< Exclude... >=exclude_t{}) const
 Returns a view for the given elements.
 
template<typename Type , typename... Other, typename... Exclude>
basic_view< get_t< storage_for_type< Type >, storage_for_type< Other >... >, exclude_t< storage_for_type< Exclude >... > > view (exclude_t< Exclude... >=exclude_t{})
 Returns a view for the given elements.
template<typename Type, typename... Other, typename... Exclude>
basic_view< get_t< storage_for_type< Type >, storage_for_type< Other >... >, exclude_t< storage_for_type< Exclude >... > > view (exclude_t< Exclude... >=exclude_t{})
 Returns a view for the given elements.
 
template<typename... Owned, typename... Get, typename... Exclude>
basic_group< owned_t< storage_for_type< Owned >... >, get_t< storage_for_type< Get >... >, exclude_t< storage_for_type< Exclude >... > > group (get_t< Get... >=get_t{}, exclude_t< Exclude... >=exclude_t{})
basic_group< owned_t< storage_for_type< Owned >... >, get_t< storage_for_type< Get >... >, exclude_t< storage_for_type< Exclude >... > > group (get_t< Get... >=get_t{}, exclude_t< Exclude... >=exclude_t{})
 Returns a group for the given elements.
 
template<typename... Owned, typename... Get, typename... Exclude>
basic_group< owned_t< storage_for_type< const Owned >... >, get_t< storage_for_type< const Get >... >, exclude_t< storage_for_type< const Exclude >... > > group_if_exists (get_t< Get... >=get_t{}, exclude_t< Exclude... >=exclude_t{}) const
 Returns a group for the given elements.
basic_group< owned_t< storage_for_type< const Owned >... >, get_t< storage_for_type< const Get >... >, exclude_t< storage_for_type< const Exclude >... > > group_if_exists (get_t< Get... >=get_t{}, exclude_t< Exclude... >=exclude_t{}) const
 Returns a group for the given elements.
 
template<typename... Type>
bool owned () const
bool owned () const
 Checks whether the given elements belong to any group.
 
template<typename Type , typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Type, typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sorts the elements of a given element.
 
template<typename To , typename From >
void sort ()
template<typename To, typename From>
void sort ()
 Sorts two pools of elements in the same way.
 
contextctx () noexcept
contextctx () noexcept
 Returns the context object, that is, a general purpose container.
 
const contextctx () const noexcept
 Returns the context object, that is, a general purpose container.
const contextctx () const noexcept
 Returns the context object, that is, a general purpose container.
 

Detailed Description

-
template<typename Entity, typename Allocator>
+
template<typename Entity, typename Allocator>
class entt::basic_registry< Entity, Allocator >

Fast and reliable entity-component system.

Template Parameters
@@ -350,10 +363,10 @@ class entt::basic_registry< Entity, Allocator >

Fast and reliable

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::allocator_type = Allocatorusing entt::basic_registry< Entity, Allocator >::allocator_type = Allocator
@@ -370,10 +383,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::common_type = base_typeusing entt::basic_registry< Entity, Allocator >::common_type = base_type
@@ -390,10 +403,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::const_iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::const_iterator>>using entt::basic_registry< Entity, Allocator >::const_iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::const_iterator>>
@@ -410,10 +423,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::context = internal::registry_context<allocator_type>using entt::basic_registry< Entity, Allocator >::context = internal::registry_context<allocator_type>
@@ -430,10 +443,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::entity_type = typename traits_type::value_typeusing entt::basic_registry< Entity, Allocator >::entity_type = typename traits_type::value_type
@@ -450,10 +463,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::iterator>>using entt::basic_registry< Entity, Allocator >::iterable = iterable_adaptor<internal::registry_storage_iterator<typename pool_container_type::iterator>>
@@ -470,10 +483,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::size_type = std::size_tusing entt::basic_registry< Entity, Allocator >::size_type = std::size_t
@@ -490,12 +503,12 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
- +
using entt::basic_registry< Entity, Allocator >::storage_for_type = typename storage_for<Type, Entity, typename alloc_traits::template rebind_alloc<std::remove_const_t<Type>>>::typeusing entt::basic_registry< Entity, Allocator >::storage_for_type = typename storage_for<Type, Entity, typename alloc_traits::template rebind_alloc<std::remove_const_t<Type>>>::type
@@ -518,10 +531,10 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_registry< Entity, Allocator >::version_type = typename traits_type::version_typeusing entt::basic_registry< Entity, Allocator >::version_type = typename traits_type::version_type
@@ -539,21 +552,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
entt::basic_registry< Entity, Allocator >::basic_registry entt::basic_registry< Entity, Allocator >::basic_registry ())
-inline
@@ -570,21 +583,21 @@ template<
+template<typename Entity, typename Allocator>
+inlineexplicit
- + - +
entt::basic_registry< Entity, Allocator >::basic_registry entt::basic_registry< Entity, Allocator >::basic_registry (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -607,25 +620,25 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - + - +
entt::basic_registry< Entity, Allocator >::basic_registry entt::basic_registry< Entity, Allocator >::basic_registry (const size_type count, const size_type count,
const allocator_type & allocator = allocator_type{} )const allocator_type & allocator = allocator_type{} )
-inline
@@ -649,21 +662,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
entt::basic_registry< Entity, Allocator >::basic_registry entt::basic_registry< Entity, Allocator >::basic_registry (basic_registry< Entity, Allocator > && other)basic_registry< Entity, Allocator > && other)
-inlinenoexcept
@@ -687,7 +700,7 @@ template<
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -695,15 +708,15 @@ template<typename... Type> +inlinenodiscard
- + - +
bool entt::basic_registry< Entity, Allocator >::all_of bool entt::basic_registry< Entity, Allocator >::all_of (const entity_type entt)const entity_type entt) const
-inline
@@ -733,7 +746,7 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -741,15 +754,15 @@ template<typename... Type> +inlinenodiscard
- + - +
bool entt::basic_registry< Entity, Allocator >::any_of bool entt::basic_registry< Entity, Allocator >::any_of (const entity_type entt)const entity_type entt) const
-inline
@@ -779,7 +792,7 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -787,15 +800,15 @@ template<typename... Type> +inline
- + - +
void entt::basic_registry< Entity, Allocator >::clear void entt::basic_registry< Entity, Allocator >::clear ())
-inline
@@ -818,7 +831,7 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -826,15 +839,15 @@ template<typename... Type> +inline
- + - +
void entt::basic_registry< Entity, Allocator >::compact void entt::basic_registry< Entity, Allocator >::compact ())
-inline
@@ -857,21 +870,21 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
entity_type entt::basic_registry< Entity, Allocator >::create entity_type entt::basic_registry< Entity, Allocator >::create ())
-inline
@@ -889,26 +902,26 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
entity_type entt::basic_registry< Entity, Allocator >::create entity_type entt::basic_registry< Entity, Allocator >::create (const entity_type hint)const entity_type hint)
-inline
-

Creates a new entity or recycles a destroyed one.

+

Creates a new entity or recycles a destroyed one.

If the requested entity isn't in use, the suggested identifier is used. Otherwise, a new identifier is generated.

Parameters
@@ -928,27 +941,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It>
+inline
- + - + - +
void entt::basic_registry< Entity, Allocator >::create void entt::basic_registry< Entity, Allocator >::create (It first, It first,
It last )It last )
-inline
@@ -979,27 +992,27 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const context & entt::basic_registry< Entity, Allocator >::ctx const context & entt::basic_registry< Entity, Allocator >::ctx ()) const
-inlinenoexcept
-

Returns the context object, that is, a general purpose container.

-
Returns
The context object, that is, a general purpose container.
+

Returns the context object, that is, a general purpose container.

+
Returns
The context object, that is, a general purpose container.

Definition at line 1206 of file registry.hpp.

@@ -1011,21 +1024,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
context & entt::basic_registry< Entity, Allocator >::ctx context & entt::basic_registry< Entity, Allocator >::ctx ())
-inlinenoexcept
@@ -1043,21 +1056,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
version_type entt::basic_registry< Entity, Allocator >::current version_type entt::basic_registry< Entity, Allocator >::current (const entity_type entt)const entity_type entt) const
-inline
@@ -1081,21 +1094,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
version_type entt::basic_registry< Entity, Allocator >::destroy version_type entt::basic_registry< Entity, Allocator >::destroy (const entity_type entt)const entity_type entt)
-inline
@@ -1120,25 +1133,25 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - + - +
version_type entt::basic_registry< Entity, Allocator >::destroy version_type entt::basic_registry< Entity, Allocator >::destroy (const entity_type entt, const entity_type entt,
const version_type version )const version_type version )
-inline
@@ -1165,27 +1178,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It>
+inline
- + - + - +
void entt::basic_registry< Entity, Allocator >::destroy void entt::basic_registry< Entity, Allocator >::destroy (It first, It first,
It last )It last )
-inline
@@ -1216,27 +1229,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::emplace decltype(auto) entt::basic_registry< Entity, Allocator >::emplace (const entity_type entt, const entity_type entt,
Args &&... args )Args &&... args )
-inline
@@ -1270,27 +1283,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::emplace_or_replace decltype(auto) entt::basic_registry< Entity, Allocator >::emplace_or_replace (const entity_type entt, const entity_type entt,
Args &&... args )Args &&... args )
-inline
@@ -1325,23 +1338,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other>
+template<typename Type, typename... Other>
+inline
- + - +
void entt::basic_registry< Entity, Allocator >::erase void entt::basic_registry< Entity, Allocator >::erase (const entity_type entt)const entity_type entt)
-inline
@@ -1372,27 +1385,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other, typename It >
+template<typename Type, typename... Other, typename It>
+inline
- + - + - +
void entt::basic_registry< Entity, Allocator >::erase void entt::basic_registry< Entity, Allocator >::erase (It first, It first,
It last )It last )
-inline
@@ -1425,17 +1438,17 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Func >
+template<typename Func>
- + - + @@ -1445,17 +1458,16 @@ template< -inline +inline
void entt::basic_registry< Entity, Allocator >::erase_if void entt::basic_registry< Entity, Allocator >::erase_if (const entity_type entt, const entity_type entt,

Erases elements satisfying specific criteria from an entity.

The function type is equivalent to:

-
-
Sparse set implementation.
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
+
base_type common_type
Common type among all storage types.
Definition registry.hpp:310
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29

Only storage where the entity exists are passed to the function.

Template Parameters
@@ -1481,7 +1493,7 @@ template<
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -1489,20 +1501,20 @@ template<typename... Type> +inlinenodiscard
- + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::get decltype(auto) entt::basic_registry< Entity, Allocator >::get (const entity_type entt)const entity_type entt)
-inline
-

Returns references to the given elements for an entity.

+

Returns references to the given elements for an entity.

Warning
Attempting to get an element from an entity that doesn't own it results in undefined behavior.
Template Parameters
@@ -1516,7 +1528,7 @@ template<typename... Type>
-
Returns
References to the elements owned by the entity.
+
Returns
References to the elements owned by the entity.

Definition at line 895 of file registry.hpp.

@@ -1528,7 +1540,7 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -1536,15 +1548,15 @@ template<typename... Type> +inlinenodiscard
- + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::get decltype(auto) entt::basic_registry< Entity, Allocator >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -1575,21 +1587,21 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_registry< Entity, Allocator >::get_allocator allocator_type entt::basic_registry< Entity, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -1607,27 +1619,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inlinenodiscard
- + - + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::get_or_emplace decltype(auto) entt::basic_registry< Entity, Allocator >::get_or_emplace (const entity_type entt, const entity_type entt,
Args &&... args )Args &&... args )
-inline
@@ -1663,7 +1675,7 @@ template<
+template<typename Entity, typename Allocator>
template<typename... Owned, typename... Get, typename... Exclude>
@@ -1671,19 +1683,19 @@ template<typename... Owned, typename... Get, typename... Exclude> +inline
- + - + - +
basic_group< owned_t< storage_for_type< Owned >... >, get_t< storage_for_type< Get >... >, exclude_t< storage_for_type< Exclude >... > > entt::basic_registry< Entity, Allocator >::group basic_group< owned_t< storage_for_type< Owned >... >, get_t< storage_for_type< Get >... >, exclude_t< storage_for_type< Exclude >... > > entt::basic_registry< Entity, Allocator >::group (get_t< Get... > = get_t{}, get_t< Get... > = get_t{},
exclude_t< Exclude... > = exclude_t{} )exclude_t< Exclude... > = exclude_t{} )
-inline
@@ -1709,7 +1721,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Owned, typename... Get, typename... Exclude>
@@ -1717,24 +1729,24 @@ template<typename... Owned, typename... Get, typename... Exclude> +inlinenodiscard
- + - + - +
basic_group< owned_t< storage_for_type< const Owned >... >, get_t< storage_for_type< const Get >... >, exclude_t< storage_for_type< const Exclude >... > > entt::basic_registry< Entity, Allocator >::group_if_exists basic_group< owned_t< storage_for_type< const Owned >... >, get_t< storage_for_type< const Get >... >, exclude_t< storage_for_type< const Exclude >... > > entt::basic_registry< Entity, Allocator >::group_if_exists (get_t< Get... > = get_t{}, get_t< Get... > = get_t{},
exclude_t< Exclude... > = exclude_t{} ) constexclude_t< Exclude... > = exclude_t{} ) const
-inline
-

Returns a group for the given elements.

+

Returns a group for the given elements.

Template Parameters
@@ -1743,7 +1755,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
OwnedTypes of storage owned by the group.
-
Returns
A newly created group.
+
Returns
A newly created group.

Definition at line 1109 of file registry.hpp.

@@ -1755,32 +1767,32 @@ template<typename... Owned, typename... Get, typename... Exclude>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
-template<typename Type , typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, Type>>>
+template<typename Type, typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, Type>>>
+inline
- + - + - + - +
void entt::basic_registry< Entity, Allocator >::insert void entt::basic_registry< Entity, Allocator >::insert (EIt first, EIt first,
EIt last, EIt last,
CIt from )CIt from )
-inline
@@ -1814,32 +1826,32 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename It >
+template<typename Type, typename It>
+inline
- + - + - + - +
void entt::basic_registry< Entity, Allocator >::insert void entt::basic_registry< Entity, Allocator >::insert (It first, It first,
It last, It last,
const Type & value = {} )const Type & value = {} )
-inline
@@ -1872,23 +1884,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
auto entt::basic_registry< Entity, Allocator >::on_construct auto entt::basic_registry< Entity, Allocator >::on_construct (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -1896,8 +1908,8 @@ template< -
Fast and reliable entity-component system.
Definition registry.hpp:234
+
void(basic_registry<Entity> &, Entity);
+
basic_registry()
Default constructor.
Definition registry.hpp:326

Listeners are invoked after assigning the element to the entity.

See also
sink
Template Parameters
@@ -1924,23 +1936,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
auto entt::basic_registry< Entity, Allocator >::on_destroy auto entt::basic_registry< Entity, Allocator >::on_destroy (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -1948,7 +1960,7 @@ template< +
void(basic_registry<Entity> &, Entity);

Listeners are invoked before removing the element from the entity.

See also
sink
Template Parameters
@@ -1975,23 +1987,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
auto entt::basic_registry< Entity, Allocator >::on_update auto entt::basic_registry< Entity, Allocator >::on_update (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -1999,7 +2011,7 @@ template< +
void(basic_registry<Entity> &, Entity);

Listeners are invoked after updating the element.

See also
sink
Template Parameters
@@ -2026,21 +2038,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
basic_registry & entt::basic_registry< Entity, Allocator >::operator= basic_registry & entt::basic_registry< Entity, Allocator >::operator= (basic_registry< Entity, Allocator > && other)basic_registry< Entity, Allocator > && other)
-inlinenoexcept
@@ -2064,21 +2076,21 @@ template<
+template<typename Entity, typename Allocator>
+delete
- + - +
basic_registry & entt::basic_registry< Entity, Allocator >::operator= basic_registry & entt::basic_registry< Entity, Allocator >::operator= (const basic_registry< Entity, Allocator > & )const basic_registry< Entity, Allocator > & )
-delete
@@ -2094,21 +2106,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
bool entt::basic_registry< Entity, Allocator >::orphan bool entt::basic_registry< Entity, Allocator >::orphan (const entity_type entt)const entity_type entt) const
-inline
@@ -2132,7 +2144,7 @@ template<
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -2140,15 +2152,15 @@ template<typename... Type> +inlinenodiscard
- + - +
bool entt::basic_registry< Entity, Allocator >::owned bool entt::basic_registry< Entity, Allocator >::owned ()) const
-inline
@@ -2172,17 +2184,17 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Func>
+template<typename Type, typename... Func>
@@ -31,23 +33,33 @@
- + - + @@ -2192,14 +2204,14 @@ template< -inline +inline
decltype(auto) entt::basic_registry< Entity, Allocator >::patch decltype(auto) entt::basic_registry< Entity, Allocator >::patch (const entity_type entt, const entity_type entt,

Patches the given element for an entity.

The signature of the function should be equivalent to the following:

-
void(Type &);
+
void(Type &);
Warning
Attempting to patch an element of an entity that doesn't own it results in undefined behavior.
Template Parameters
@@ -2227,23 +2239,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other>
+template<typename Type, typename... Other>
+inline
- + - +
size_type entt::basic_registry< Entity, Allocator >::remove size_type entt::basic_registry< Entity, Allocator >::remove (const entity_type entt)const entity_type entt)
-inline
@@ -2274,27 +2286,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other, typename It >
+template<typename Type, typename... Other, typename It>
+inline
- + - + - +
size_type entt::basic_registry< Entity, Allocator >::remove size_type entt::basic_registry< Entity, Allocator >::remove (It first, It first,
It last )It last )
-inline
@@ -2328,27 +2340,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - + - +
decltype(auto) entt::basic_registry< Entity, Allocator >::replace decltype(auto) entt::basic_registry< Entity, Allocator >::replace (const entity_type entt, const entity_type entt,
Args &&... args )Args &&... args )
-inline
@@ -2382,21 +2394,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
bool entt::basic_registry< Entity, Allocator >::reset bool entt::basic_registry< Entity, Allocator >::reset (const id_type id)const id_type id)
-inline
@@ -2420,23 +2432,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename To , typename From >
+template<typename To, typename From>
+inline
- + - +
void entt::basic_registry< Entity, Allocator >::sort void entt::basic_registry< Entity, Allocator >::sort ())
-inline
@@ -2462,42 +2474,42 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename Compare , typename Sort = std_sort, typename... Args>
+template<typename Type, typename Compare, typename Sort = std_sort, typename... Args>
+inline
- + - + - + - +
void entt::basic_registry< Entity, Allocator >::sort void entt::basic_registry< Entity, Allocator >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args )Args &&... args )
-inline

Sorts the elements of a given element.

The comparison function object returns true if the first element is less than the second one, false otherwise. Its signature is also equivalent to one of the following:

-
bool(const Entity, const Entity);
-
bool(const Type &, const Type &);
+
bool(const Entity, const Entity);
+
bool(const Type &, const Type &);

Moreover, it shall induce a strict weak ordering on the values.
- The sort function object offers an operator() that accepts:

+ The sort function object offers an operator() that accepts:

-

Returns an iterable object to use to visit a registry.

+

Returns an iterable object to use to visit a registry.

The iterable object returns a pair that contains the name and a reference to the current storage.

-
Returns
An iterable object to use to visit the registry.
+
Returns
An iterable object to use to visit the registry.

Definition at line 421 of file registry.hpp.

@@ -2566,21 +2578,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterable entt::basic_registry< Entity, Allocator >::storage iterable entt::basic_registry< Entity, Allocator >::storage ())
-inlinenoexcept
@@ -2599,21 +2611,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
common_type * entt::basic_registry< Entity, Allocator >::storage common_type * entt::basic_registry< Entity, Allocator >::storage (const id_type id)const id_type id)
-inline
@@ -2637,21 +2649,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
const common_type * entt::basic_registry< Entity, Allocator >::storage const common_type * entt::basic_registry< Entity, Allocator >::storage (const id_type id)const id_type id) const
-inline
@@ -2675,23 +2687,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
storage_for_type< Type > & entt::basic_registry< Entity, Allocator >::storage storage_for_type< Type > & entt::basic_registry< Entity, Allocator >::storage (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
-inline
@@ -2721,23 +2733,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
const storage_for_type< Type > * entt::basic_registry< Entity, Allocator >::storage const storage_for_type< Type > * entt::basic_registry< Entity, Allocator >::storage (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value()) const
-inline
@@ -2767,21 +2779,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_registry< Entity, Allocator >::swap void entt::basic_registry< Entity, Allocator >::swap (basic_registry< Entity, Allocator > & other)basic_registry< Entity, Allocator > & other)
-inlinenoexcept
@@ -2804,7 +2816,7 @@ template<
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -2812,20 +2824,20 @@ template<typename... Type> +inlinenodiscard
- + - +
auto entt::basic_registry< Entity, Allocator >::try_get auto entt::basic_registry< Entity, Allocator >::try_get (const entity_type entt)const entity_type entt)
-inline
-

Returns pointers to the given elements for an entity.

+

Returns pointers to the given elements for an entity.

Note
The registry retains ownership of the pointed-to elements.
Template Parameters
@@ -2839,7 +2851,7 @@ template<typename... Type>
-
Returns
Pointers to the elements owned by the entity.
+
Returns
Pointers to the elements owned by the entity.

Definition at line 947 of file registry.hpp.

@@ -2851,7 +2863,7 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
template<typename... Type>
@@ -2859,15 +2871,15 @@ template<typename... Type> +inlinenodiscard
- + - +
auto entt::basic_registry< Entity, Allocator >::try_get auto entt::basic_registry< Entity, Allocator >::try_get (const entity_type entt)const entity_type entt) const
-inline
@@ -2898,21 +2910,21 @@ template<typename... Type>
-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenodiscard
- + - +
bool entt::basic_registry< Entity, Allocator >::valid bool entt::basic_registry< Entity, Allocator >::valid (const entity_type entt)const entity_type entt) const
-inline
@@ -2936,28 +2948,28 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other, typename... Exclude>
+template<typename Type, typename... Other, typename... Exclude>
+inlinenodiscard
- + - +
basic_view< get_t< storage_for_type< Type >, storage_for_type< Other >... >, exclude_t< storage_for_type< Exclude >... > > entt::basic_registry< Entity, Allocator >::view basic_view< get_t< storage_for_type< Type >, storage_for_type< Other >... >, exclude_t< storage_for_type< Exclude >... > > entt::basic_registry< Entity, Allocator >::view (exclude_t< Exclude... > = exclude_t{})exclude_t< Exclude... > = exclude_t{})
-inline
-

Returns a view for the given elements.

+

Returns a view for the given elements.

Template Parameters
@@ -2966,7 +2978,7 @@ template<
Returns
A newly created view.
+
Returns
A newly created view.

Definition at line 1072 of file registry.hpp.

@@ -2978,23 +2990,23 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Type , typename... Other, typename... Exclude>
+template<typename Type, typename... Other, typename... Exclude>
TypeType of element used to construct the view.
+inlinenodiscard
- + - +
basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > entt::basic_registry< Entity, Allocator >::view basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > entt::basic_registry< Entity, Allocator >::view (exclude_t< Exclude... > = exclude_t{})exclude_t< Exclude... > = exclude_t{}) const
-inline
@@ -3021,7 +3033,8 @@ template< +
diff --git a/classentt_1_1basic__runtime__view-members.html b/classentt_1_1basic__runtime__view-members.html index aea25249c..9f5c16022 100644 --- a/classentt_1_1basic__runtime__view-members.html +++ b/classentt_1_1basic__runtime__view-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_runtime_view< Type, Allocator > Member List
@@ -109,7 +122,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__runtime__view.html b/classentt_1_1basic__runtime__view.html index 775037991..ea6344994 100644 --- a/classentt_1_1basic__runtime__view.html +++ b/classentt_1_1basic__runtime__view.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_runtime_view< Type, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,61 +103,61 @@ $(function() { - + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using entity_type = typename Type::entity_type
using entity_type = typename Type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using common_type = Type
using common_type = Type
 Common type among all storage types.
 
using iterator = internal::runtime_view_iterator<common_type>
using iterator = internal::runtime_view_iterator<common_type>
 Bidirectional iterator type.
 
- + - + +  - + +  - + +  - + - + - + - + - + @@ -153,28 +166,28 @@ Public Member Functions - + - + - + - + - + - - + +

Public Member Functions

 basic_runtime_view () noexcept
 basic_runtime_view () noexcept
 Default constructor to use to create empty, invalid views.
 
 basic_runtime_view (const allocator_type &allocator)
 basic_runtime_view (const allocator_type &allocator)
 Constructs an empty, invalid view with a given allocator.
 
basic_runtime_view (const basic_runtime_view &)=default
basic_runtime_view (const basic_runtime_view &)=default
 Default copy constructor.
 
 basic_runtime_view (const basic_runtime_view &other, const allocator_type &allocator)
 basic_runtime_view (const basic_runtime_view &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
basic_runtime_view (basic_runtime_view &&) noexcept=default
basic_runtime_view (basic_runtime_view &&) noexcept=default
 Default move constructor.
 
 basic_runtime_view (basic_runtime_view &&other, const allocator_type &allocator)
 basic_runtime_view (basic_runtime_view &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_runtime_view ()=default
~basic_runtime_view ()=default
 Default destructor.
 
basic_runtime_viewoperator= (const basic_runtime_view &)=default
basic_runtime_viewoperator= (const basic_runtime_view &)=default
 Default copy assignment operator.
 
basic_runtime_viewoperator= (basic_runtime_view &&) noexcept=default
basic_runtime_viewoperator= (basic_runtime_view &&) noexcept=default
 Default move assignment operator.
 
void swap (basic_runtime_view &other) noexcept
void swap (basic_runtime_view &other) noexcept
 Exchanges the contents with those of a given view.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void clear ()
void clear ()
 Clears the view.
 
basic_runtime_viewiterate (common_type &base)
basic_runtime_viewexclude (common_type &base)
 Adds an opaque storage object as a filter of a runtime view.
 
size_type size_hint () const
size_type size_hint () const
 Estimates the number of entities iterated by the view.
 
iterator begin () const
iterator begin () const
 Returns an iterator to the first entity that has the given elements.
 
iterator end () const
iterator end () const
 Returns an iterator that is past the last entity that has the given elements.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks whether a view is initialized or not.
 
bool contains (const entity_type entt) const
bool contains (const entity_type entt) const
 Checks if a view contains an entity.
 
template<typename Func >
void each (Func func) const
template<typename Func>
void each (Func func) const
 Iterates entities and applies the given function object to them.
 

Detailed Description

-
template<typename Type, typename Allocator>
+
template<typename Type, typename Allocator>
class entt::basic_runtime_view< Type, Allocator >

Generic runtime view.

Runtime views iterate over those entities that are at least in the given storage. During initialization, a runtime view looks at the number of entities available for each element and uses the smallest set in order to get a performance boost when iterating.

Important

@@ -201,10 +214,10 @@ class entt::basic_runtime_view< Type, Allocator >

Generic runtime

-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
using entt::basic_runtime_view< Type, Allocator >::allocator_type = Allocatorusing entt::basic_runtime_view< Type, Allocator >::allocator_type = Allocator
@@ -221,10 +234,10 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
using entt::basic_runtime_view< Type, Allocator >::common_type = Typeusing entt::basic_runtime_view< Type, Allocator >::common_type = Type
@@ -241,10 +254,10 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
using entt::basic_runtime_view< Type, Allocator >::entity_type = typename Type::entity_typeusing entt::basic_runtime_view< Type, Allocator >::entity_type = typename Type::entity_type
@@ -261,10 +274,10 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
using entt::basic_runtime_view< Type, Allocator >::iterator = internal::runtime_view_iterator<common_type>using entt::basic_runtime_view< Type, Allocator >::iterator = internal::runtime_view_iterator<common_type>
@@ -281,10 +294,10 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
using entt::basic_runtime_view< Type, Allocator >::size_type = std::size_tusing entt::basic_runtime_view< Type, Allocator >::size_type = std::size_t
@@ -302,7 +315,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
@@ -310,13 +323,13 @@ template<entt::basic_runtime_view< Type, Allocator >::basic_runtime_view ())
-inlinenoexcept +inlinenoexcept
@@ -333,7 +346,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
@@ -341,13 +354,13 @@ template<entt::basic_runtime_view< Type, Allocator >::basic_runtime_view (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit +inlineexplicit
@@ -370,7 +383,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- + - +
@@ -378,17 +391,17 @@ template<entt::basic_runtime_view< Type, Allocator >::basic_runtime_view (const basic_runtime_view< Type, Allocator > & other, const basic_runtime_view< Type, Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline +inline
@@ -412,7 +425,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- + - +
@@ -420,17 +433,17 @@ template<entt::basic_runtime_view< Type, Allocator >::basic_runtime_view (basic_runtime_view< Type, Allocator > && other, basic_runtime_view< Type, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline +inline
@@ -455,7 +468,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
@@ -463,13 +476,13 @@ template<iterator entt::basic_runtime_view< Type, Allocator >::begin ()) const
-inline +inlinenodiscard
@@ -488,21 +501,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inline
- + - +
void entt::basic_runtime_view< Type, Allocator >::clear void entt::basic_runtime_view< Type, Allocator >::clear ())
-inline
@@ -519,21 +532,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inlinenodiscard
- + - +
bool entt::basic_runtime_view< Type, Allocator >::contains bool entt::basic_runtime_view< Type, Allocator >::contains (const entity_type entt)const entity_type entt) const
-inline
@@ -557,15 +570,15 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
-template<typename Func >
+template<typename Func>
+inlinenodiscard
- + @@ -573,7 +586,7 @@ template< -inline +inline
void entt::basic_runtime_view< Type, Allocator >::each void entt::basic_runtime_view< Type, Allocator >::each ( Func func) const
@@ -581,9 +594,8 @@ template< +
void(const entity_type);
typename Type::entity_type entity_type
Underlying entity identifier.
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
Template Parameters
@@ -607,7 +619,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
FuncType of the function object to invoke.
- +
@@ -615,13 +627,13 @@ template<iterator entt::basic_runtime_view< Type, Allocator >::end ()) const
-inline
@@ -639,7 +651,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inline
@@ -653,7 +665,7 @@ template< -inline
@@ -677,21 +689,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_runtime_view< Type, Allocator >::get_allocator allocator_type entt::basic_runtime_view< Type, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -709,7 +721,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inline
@@ -723,7 +735,7 @@ template< -inline
@@ -747,21 +759,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_runtime_view< Type, Allocator >::operator bool entt::basic_runtime_view< Type, Allocator >::operator bool ()) const
-inlineexplicitnoexcept
@@ -779,21 +791,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+defaultnoexcept
- + - +
basic_runtime_view & entt::basic_runtime_view< Type, Allocator >::operator= basic_runtime_view & entt::basic_runtime_view< Type, Allocator >::operator= (basic_runtime_view< Type, Allocator > && )basic_runtime_view< Type, Allocator > && )
-defaultnoexcept
@@ -809,21 +821,21 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
+default
- + - +
basic_runtime_view & entt::basic_runtime_view< Type, Allocator >::operator= basic_runtime_view & entt::basic_runtime_view< Type, Allocator >::operator= (const basic_runtime_view< Type, Allocator > & )const basic_runtime_view< Type, Allocator > & )
-default
@@ -839,7 +851,7 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
- +
@@ -847,13 +859,13 @@ template<size_type entt::basic_runtime_view< Type, Allocator >::size_hint ()) const
-inline +inlinenodiscard
@@ -871,13 +883,13 @@ template<
-template<typename Type , typename Allocator >
+template<typename Type, typename Allocator>
@@ -31,23 +33,33 @@
- + @@ -885,7 +897,7 @@ template< -inlinenoexcept +inlinenoexcept
void entt::basic_runtime_view< Type, Allocator >::swap void entt::basic_runtime_view< Type, Allocator >::swap ( basic_runtime_view< Type, Allocator > & other)
@@ -909,7 +921,8 @@ template< +
diff --git a/classentt_1_1basic__scheduler-members.html b/classentt_1_1basic__scheduler-members.html index fe757da74..30bc6cd6d 100644 --- a/classentt_1_1basic__scheduler-members.html +++ b/classentt_1_1basic__scheduler-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::basic_scheduler< Delta, Allocator > Member List
@@ -106,7 +119,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__scheduler.html b/classentt_1_1basic__scheduler.html index d48268aba..260f19bdc 100644 --- a/classentt_1_1basic__scheduler.html +++ b/classentt_1_1basic__scheduler.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_scheduler< Delta, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,13 +103,13 @@ $(function() { - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using delta_type = Delta
using delta_type = Delta
 Unsigned integer type.
 
@@ -105,80 +118,79 @@ Public Member Functions - + +  - + - + +  - + - + - + - + - + - + - + - - + + - + - - + + - + - + - +
 basic_scheduler ()
 Default constructor.
 
 basic_scheduler (const allocator_type &allocator)
 basic_scheduler (const allocator_type &allocator)
 Constructs a scheduler with a given allocator.
 
basic_scheduler (const basic_scheduler &)=delete
basic_scheduler (const basic_scheduler &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_scheduler (basic_scheduler &&other) noexcept
 basic_scheduler (basic_scheduler &&other) noexcept
 Move constructor.
 
 basic_scheduler (basic_scheduler &&other, const allocator_type &allocator)
 basic_scheduler (basic_scheduler &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_scheduler ()=default
~basic_scheduler ()=default
 Default destructor.
 
basic_scheduleroperator= (const basic_scheduler &)=delete
basic_scheduleroperator= (const basic_scheduler &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_scheduleroperator= (basic_scheduler &&other) noexcept
basic_scheduleroperator= (basic_scheduler &&other) noexcept
 Move assignment operator.
 
void swap (basic_scheduler &other) noexcept
void swap (basic_scheduler &other) noexcept
 Exchanges the contents with those of a given scheduler.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
size_type size () const noexcept
size_type size () const noexcept
 Number of processes currently scheduled.
 
bool empty () const noexcept
bool empty () const noexcept
 Returns true if at least a process is currently scheduled.
 
void clear ()
void clear ()
 Discards all scheduled processes.
 
template<typename Proc , typename... Args>
basic_schedulerattach (Args &&...args)
template<typename Proc, typename... Args>
basic_schedulerattach (Args &&...args)
 Schedules a process for the next tick.
 
template<typename Func >
template<typename Func>
basic_schedulerattach (Func &&func)
 Schedules a process for the next tick.
 
template<typename Proc , typename... Args>
basic_schedulerthen (Args &&...args)
template<typename Proc, typename... Args>
basic_schedulerthen (Args &&...args)
 Sets a process as a continuation of the last scheduled process.
 
template<typename Func >
template<typename Func>
basic_schedulerthen (Func &&func)
 Sets a process as a continuation of the last scheduled process.
 
void update (const delta_type delta, void *data=nullptr)
void update (const delta_type delta, void *data=nullptr)
 Updates all scheduled processes.
 
void abort (const bool immediate=false)
void abort (const bool immediate=false)
 Aborts all scheduled processes.
 

Detailed Description

-
template<typename Delta, typename Allocator>
+
template<typename Delta, typename Allocator>
class entt::basic_scheduler< Delta, Allocator >

Cooperative scheduler for processes.

A cooperative scheduler runs processes and helps managing their life cycles.

Each process is invoked once per tick. If a process terminates, it's removed automatically from the scheduler and it's never invoked again.
A process can also have a child. In this case, the process is replaced with its child when it terminates if it returns with success. In case of errors, both the process and its child are discarded.

Example of use (pseudocode):

-
scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
+
scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
// code
- -
Cooperative scheduler for processes.
Definition scheduler.hpp:82
-
basic_scheduler & attach(Args &&...args)
Schedules a process for the next tick.
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
}).then<my_process>(arguments...);
+
basic_scheduler & then(Args &&...args)
Sets a process as a continuation of the last scheduled process.
+
basic_scheduler<> scheduler
Alias declaration for the most common use case.
Definition fwd.hpp:16

In order to invoke all scheduled processes, call the update member function passing it the elapsed time to forward to the tasks.

See also
process
Template Parameters
@@ -197,10 +209,10 @@ class entt::basic_scheduler< Delta, Allocator >

Cooperative schedu

-template<typename Delta , typename Allocator >
+template<typename Delta, typename Allocator>
- +
using entt::basic_scheduler< Delta, Allocator >::allocator_type = Allocatorusing entt::basic_scheduler< Delta, Allocator >::allocator_type = Allocator
@@ -217,10 +229,10 @@ template<
+template<typename Delta, typename Allocator>
- +
using entt::basic_scheduler< Delta, Allocator >::delta_type = Deltausing entt::basic_scheduler< Delta, Allocator >::delta_type = Delta
@@ -237,10 +249,10 @@ template<
+template<typename Delta, typename Allocator>
- +
using entt::basic_scheduler< Delta, Allocator >::size_type = std::size_tusing entt::basic_scheduler< Delta, Allocator >::size_type = std::size_t
@@ -258,21 +270,21 @@ template<
+template<typename Delta, typename Allocator>
+inline
- + - +
entt::basic_scheduler< Delta, Allocator >::basic_scheduler entt::basic_scheduler< Delta, Allocator >::basic_scheduler ())
-inline
@@ -289,21 +301,21 @@ template<
+template<typename Delta, typename Allocator>
+inlineexplicit
- + - +
entt::basic_scheduler< Delta, Allocator >::basic_scheduler entt::basic_scheduler< Delta, Allocator >::basic_scheduler (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -326,21 +338,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenoexcept
- + - +
entt::basic_scheduler< Delta, Allocator >::basic_scheduler entt::basic_scheduler< Delta, Allocator >::basic_scheduler (basic_scheduler< Delta, Allocator > && other)basic_scheduler< Delta, Allocator > && other)
-inlinenoexcept
@@ -363,25 +375,25 @@ template<
+template<typename Delta, typename Allocator>
+inline
- + - + - +
entt::basic_scheduler< Delta, Allocator >::basic_scheduler entt::basic_scheduler< Delta, Allocator >::basic_scheduler (basic_scheduler< Delta, Allocator > && other, basic_scheduler< Delta, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -406,21 +418,21 @@ template<
+template<typename Delta, typename Allocator>
+inline
- + - +
void entt::basic_scheduler< Delta, Allocator >::abort void entt::basic_scheduler< Delta, Allocator >::abort (const bool immediate = false)const bool immediate = false)
-inline
@@ -445,23 +457,23 @@ template<
+template<typename Delta, typename Allocator>
-template<typename Proc , typename... Args>
+template<typename Proc, typename... Args>
+inline
- + - +
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::attach basic_scheduler & entt::basic_scheduler< Delta, Allocator >::attach (Args &&... args)Args &&... args)
-inline
@@ -470,13 +482,13 @@ template<
// schedules a task in the form of a process class
-
+
scheduler.attach<my_process>(arguments...)
// appends a child in the form of a lambda function
-
.then([](auto delta, void *, auto succeed, auto fail) {
+
.then([](auto delta, void *, auto succeed, auto fail) {
// code
})
// appends a child in the form of another process class
- +
Template Parameters
@@ -502,15 +514,15 @@ template<
+template<typename Delta, typename Allocator>
-template<typename Func >
+template<typename Func>
ProcType of process to schedule.
- - - + + + + + @@ -106,7 +121,8 @@ $(function() {
- + @@ -518,7 +530,7 @@ template< -inline +inline
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::attach basic_scheduler & entt::basic_scheduler< Delta, Allocator >::attach ( Func && func)
@@ -526,7 +538,7 @@ template<
void(Delta delta, void *data, auto succeed, auto fail);
+
void(Delta delta, void *data, auto succeed, auto fail);

Where:

  • delta is the elapsed time.
  • @@ -535,20 +547,19 @@ template<
    void();
    +
    void();

    Returned value can be used to attach a continuation for the last process. The continutation is scheduled automatically when the process terminates and only if the process returns with success.

    Example of use (pseudocode):

    // schedules a task in the form of a lambda function
    -
    scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
    +
    scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
    // code
    })
    // appends a child in the form of another lambda function
    -
    .then([](auto delta, void *, auto succeed, auto fail) {
    +
    .then([](auto delta, void *, auto succeed, auto fail) {
    // code
    })
    // appends a child in the form of a process class
    - -
    basic_scheduler & then(Args &&...args)
    Sets a process as a continuation of the last scheduled process.
    +
    .then<my_process>(arguments...);
    See also
    process_adaptor
    Template Parameters
    @@ -574,21 +585,21 @@ template<
    +template<typename Delta, typename Allocator>
    +inline
    - + - +
    void entt::basic_scheduler< Delta, Allocator >::clear void entt::basic_scheduler< Delta, Allocator >::clear ())
    -inline
@@ -606,21 +617,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_scheduler< Delta, Allocator >::empty bool entt::basic_scheduler< Delta, Allocator >::empty ()) const
-inlinenoexcept
@@ -638,21 +649,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_scheduler< Delta, Allocator >::get_allocator allocator_type entt::basic_scheduler< Delta, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -670,21 +681,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenoexcept
- + - +
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::operator= basic_scheduler & entt::basic_scheduler< Delta, Allocator >::operator= (basic_scheduler< Delta, Allocator > && other)basic_scheduler< Delta, Allocator > && other)
-inlinenoexcept
@@ -708,21 +719,21 @@ template<
+template<typename Delta, typename Allocator>
+delete
- + - +
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::operator= basic_scheduler & entt::basic_scheduler< Delta, Allocator >::operator= (const basic_scheduler< Delta, Allocator > & )const basic_scheduler< Delta, Allocator > & )
-delete
@@ -738,21 +749,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_scheduler< Delta, Allocator >::size size_type entt::basic_scheduler< Delta, Allocator >::size ()) const
-inlinenoexcept
@@ -770,21 +781,21 @@ template<
+template<typename Delta, typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_scheduler< Delta, Allocator >::swap void entt::basic_scheduler< Delta, Allocator >::swap (basic_scheduler< Delta, Allocator > & other)basic_scheduler< Delta, Allocator > & other)
-inlinenoexcept
@@ -807,23 +818,23 @@ template<
+template<typename Delta, typename Allocator>
-template<typename Proc , typename... Args>
+template<typename Proc, typename... Args>
+inline
- + - +
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::then basic_scheduler & entt::basic_scheduler< Delta, Allocator >::then (Args &&... args)Args &&... args)
-inline
@@ -854,15 +865,15 @@ template<
+template<typename Delta, typename Allocator>
-template<typename Func >
+template<typename Func>
@@ -31,23 +33,33 @@
- + @@ -870,7 +881,7 @@ template< -inline +inline
basic_scheduler & entt::basic_scheduler< Delta, Allocator >::then basic_scheduler & entt::basic_scheduler< Delta, Allocator >::then ( Func && func)
@@ -900,25 +911,25 @@ template<
+template<typename Delta, typename Allocator>
+inline
- + - + - +
void entt::basic_scheduler< Delta, Allocator >::update void entt::basic_scheduler< Delta, Allocator >::update (const delta_type delta, const delta_type delta,
void * data = nullptr )void * data = nullptr )
-inline
@@ -945,7 +956,8 @@ template< +
diff --git a/classentt_1_1basic__sigh__mixin-members.html b/classentt_1_1basic__sigh__mixin-members.html index f1aee3486..1a79ebc97 100644 --- a/classentt_1_1basic__sigh__mixin-members.html +++ b/classentt_1_1basic__sigh__mixin-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_sigh_mixin< Type, Registry > Member List
@@ -87,9 +100,11 @@ $(function() {
basic_sigh_mixin(const basic_sigh_mixin &)=deleteentt::basic_sigh_mixin< Type, Registry >
basic_sigh_mixin(basic_sigh_mixin &&other) noexceptentt::basic_sigh_mixin< Type, Registry >inline
basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)entt::basic_sigh_mixin< Type, Registry >inline
emplace()entt::basic_sigh_mixin< Type, Registry >inline
emplace(const entity_type hint, Args &&...args)entt::basic_sigh_mixin< Type, Registry >inline
entity_type typedefentt::basic_sigh_mixin< Type, Registry >
emplace(const entity_type entt, Args &&...args)entt::basic_sigh_mixin< Type, Registry >inline
entity_type typedefentt::basic_sigh_mixin< Type, Registry >
generate()entt::basic_sigh_mixin< Type, Registry >inline
generate(const entity_type hint)entt::basic_sigh_mixin< Type, Registry >inline
generate(It first, It last)entt::basic_sigh_mixin< Type, Registry >inline
insert(It first, It last, Args &&...args)entt::basic_sigh_mixin< Type, Registry >inline
on_construct() noexceptentt::basic_sigh_mixin< Type, Registry >inline
on_destroy() noexceptentt::basic_sigh_mixin< Type, Registry >inline
+
diff --git a/classentt_1_1basic__sigh__mixin.html b/classentt_1_1basic__sigh__mixin.html index d30913906..f1532c584 100644 --- a/classentt_1_1basic__sigh__mixin.html +++ b/classentt_1_1basic__sigh__mixin.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_sigh_mixin< Type, Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -110,13 +123,13 @@ Collaboration diagram for entt::basic_sigh_mixin< Type, Registry >:
- + - + - +

Public Types

using allocator_type = typename underlying_type::allocator_type
using allocator_type = typename underlying_type::allocator_type
 Allocator type.
 
using entity_type = typename underlying_type::entity_type
using entity_type = typename underlying_type::entity_type
 Underlying entity identifier.
 
using registry_type = owner_type
using registry_type = owner_type
 Expected registry type.
 
@@ -125,74 +138,80 @@ Public Member Functions - + +  - + - + +  - + - + - + - + - + - + - + - + - - + + - - - - - - - + + + + + + + + + + + + + + - - + + - - - + + +
 basic_sigh_mixin ()
 Default constructor.
 
 basic_sigh_mixin (const allocator_type &allocator)
 basic_sigh_mixin (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_sigh_mixin (const basic_sigh_mixin &)=delete
basic_sigh_mixin (const basic_sigh_mixin &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sigh_mixin (basic_sigh_mixin &&other) noexcept
 basic_sigh_mixin (basic_sigh_mixin &&other) noexcept
 Move constructor.
 
 basic_sigh_mixin (basic_sigh_mixin &&other, const allocator_type &allocator)
 basic_sigh_mixin (basic_sigh_mixin &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_sigh_mixin () override=default
~basic_sigh_mixin () override=default
 Default destructor.
 
basic_sigh_mixinoperator= (const basic_sigh_mixin &)=delete
basic_sigh_mixinoperator= (const basic_sigh_mixin &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sigh_mixinoperator= (basic_sigh_mixin &&other) noexcept
basic_sigh_mixinoperator= (basic_sigh_mixin &&other) noexcept
 Move assignment operator.
 
void swap (basic_sigh_mixin &other) noexcept
void swap (basic_sigh_mixin &other) noexcept
 Exchanges the contents with those of a given storage.
 
auto on_construct () noexcept
auto on_construct () noexcept
 Returns a sink object.
 
auto on_update () noexcept
auto on_update () noexcept
 Returns a sink object.
 
auto on_destroy () noexcept
auto on_destroy () noexcept
 Returns a sink object.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks if a mixin refers to a valid registry.
 
const registry_typeregistry () const noexcept
const registry_typeregistry () const noexcept
 Returns a pointer to the underlying registry, if any.
 
registry_typeregistry () noexcept
 Returns a pointer to the underlying registry, if any.
registry_typeregistry () noexcept
 Returns a pointer to the underlying registry, if any.
 
auto emplace ()
 Emplace elements into a storage.
 
template<typename... Args>
std::conditional_t< std::is_same_v< typename underlying_type::element_type, entity_type >, entity_type, decltype(std::declval< underlying_type >().get({}))> emplace (const entity_type hint, Args &&...args)
 Emplace elements into a storage.
 
auto generate ()
 Creates a new identifier or recycles a destroyed one.
 
entity_type generate (const entity_type hint)
 Creates a new identifier or recycles a destroyed one.
 
template<typename It>
void generate (It first, It last)
 Assigns each element in a range an identifier.
 
template<typename... Args>
decltype(auto) emplace (const entity_type entt, Args &&...args)
 Assigns an entity to a storage and constructs its object.
 
template<typename... Func>
decltype(autopatch (const entity_type entt, Func &&...func)
 Patches the given instance for an entity.
decltype(auto) patch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
template<typename It , typename... Args>
void insert (It first, It last, Args &&...args)
 Emplace elements into a storage.
template<typename It, typename... Args>
void insert (It first, It last, Args &&...args)
 Assigns one or more entities to a storage and constructs their objects from a given instance.
 

Detailed Description

-
template<typename Type, typename Registry>
+
template<typename Type, typename Registry>
class entt::basic_sigh_mixin< Type, Registry >

Mixin type used to add signal support to storage types.

The function type of a listener is equivalent to:

-
+
Fast and reliable entity-component system.
Definition registry.hpp:234
-
typename underlying_type::entity_type entity_type
Underlying entity identifier.
Definition mixin.hpp:141
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
typename underlying_type::entity_type entity_type
Underlying entity identifier.
Definition mixin.hpp:134

This applies to all signals made available.

Template Parameters
@@ -202,7 +221,7 @@ class entt::basic_sigh_mixin< Type, Registry >

Mixin type used to -

Definition at line 71 of file mixin.hpp.

+

Definition at line 57 of file mixin.hpp.

Member Typedef Documentation

◆ allocator_type

@@ -210,17 +229,17 @@ class entt::basic_sigh_mixin< Type, Registry >

Mixin type used to

-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
- +
using entt::basic_sigh_mixin< Type, Registry >::allocator_type = typename underlying_type::allocator_typeusing entt::basic_sigh_mixin< Type, Registry >::allocator_type = typename underlying_type::allocator_type

Allocator type.

-

Definition at line 139 of file mixin.hpp.

+

Definition at line 132 of file mixin.hpp.

@@ -230,17 +249,17 @@ template<
+template<typename Type, typename Registry>
- +
using entt::basic_sigh_mixin< Type, Registry >::entity_type = typename underlying_type::entity_typeusing entt::basic_sigh_mixin< Type, Registry >::entity_type = typename underlying_type::entity_type

Underlying entity identifier.

-

Definition at line 141 of file mixin.hpp.

+

Definition at line 134 of file mixin.hpp.

@@ -250,17 +269,17 @@ template<
+template<typename Type, typename Registry>
- +
using entt::basic_sigh_mixin< Type, Registry >::registry_type = owner_typeusing entt::basic_sigh_mixin< Type, Registry >::registry_type = owner_type

Expected registry type.

-

Definition at line 143 of file mixin.hpp.

+

Definition at line 136 of file mixin.hpp.

@@ -271,28 +290,28 @@ template<
+template<typename Type, typename Registry>
+inline
- + - +
entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin ())
-inline

Default constructor.

-

Definition at line 146 of file mixin.hpp.

+

Definition at line 139 of file mixin.hpp.

@@ -302,21 +321,21 @@ template<
+template<typename Type, typename Registry>
+inlineexplicit
- + - +
entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -329,7 +348,7 @@ template<Definition at line 153 of file mixin.hpp.

+

Definition at line 146 of file mixin.hpp.

@@ -339,21 +358,21 @@ template<
+template<typename Type, typename Registry>
+inlinenoexcept
- + - +
entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin (basic_sigh_mixin< Type, Registry > && other)basic_sigh_mixin< Type, Registry > && other)
-inlinenoexcept
@@ -366,7 +385,7 @@ template<Definition at line 179 of file mixin.hpp.

+

Definition at line 173 of file mixin.hpp.

@@ -376,25 +395,25 @@ template<
+template<typename Type, typename Registry>
+inline
- + - + - +
entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin entt::basic_sigh_mixin< Type, Registry >::basic_sigh_mixin (basic_sigh_mixin< Type, Registry > && other, basic_sigh_mixin< Type, Registry > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -408,52 +427,18 @@ template<Definition at line 191 of file mixin.hpp.

+

Definition at line 187 of file mixin.hpp.

Member Function Documentation

- -

◆ emplace() [1/2]

+ +

◆ emplace()

-template<typename Type , typename Registry >
- - - - - -
- - - - - - - -
auto entt::basic_sigh_mixin< Type, Registry >::emplace ()
-
-inline
-
- -

Emplace elements into a storage.

-

The behavior of this operation depends on the underlying storage type (for example, components vs entities).
- Refer to the specific documentation for more details.

-
Returns
Whatever the underlying storage returns.
- -

Definition at line 305 of file mixin.hpp.

- -
-
- -

◆ emplace() [2/2]

- -
-
-
-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
template<typename... Args>
@@ -461,26 +446,24 @@ template<typename... Args> +inline
- + - + - +
std::conditional_t< std::is_same_v< typename underlying_type::element_type, entity_type >, entity_type, decltype(std::declval< underlying_type >().get({}))> entt::basic_sigh_mixin< Type, Registry >::emplace decltype(auto) entt::basic_sigh_mixin< Type, Registry >::emplace (const entity_type hint, const entity_type entt,
Args &&... args )Args &&... args )
-inline
-

Emplace elements into a storage.

-

The behavior of this operation depends on the underlying storage type (for example, components vs entities).
- Refer to the specific documentation for more details.

+

Assigns an entity to a storage and constructs its object.

Template Parameters
@@ -489,14 +472,134 @@ template<typename... Args>
Parameters
ArgsTypes of arguments to forward to the underlying storage.
- +
hintA valid identifier.
enttA valid identifier.
argsParameters to forward to the underlying storage.
-
Returns
Whatever the underlying storage returns.
+
Returns
A reference to the newly created object.
-

Definition at line 325 of file mixin.hpp.

+

Definition at line 339 of file mixin.hpp.

+ +
+ + +

◆ generate() [1/3]

+ +
+
+
+template<typename Type, typename Registry>
+ + + + + +
+ + + + + + + +
auto entt::basic_sigh_mixin< Type, Registry >::generate ()
+
+inline
+
+ +

Creates a new identifier or recycles a destroyed one.

+
Returns
A valid identifier.
+ +

Definition at line 297 of file mixin.hpp.

+ +
+
+ +

◆ generate() [2/3]

+ +
+
+
+template<typename Type, typename Registry>
+ + + + + +
+ + + + + + + +
entity_type entt::basic_sigh_mixin< Type, Registry >::generate (const entity_type hint)
+
+inline
+
+ +

Creates a new identifier or recycles a destroyed one.

+
Parameters
+ + +
hintRequired identifier.
+
+
+
Returns
A valid identifier.
+ +

Definition at line 308 of file mixin.hpp.

+ +
+
+ +

◆ generate() [3/3]

+ +
+
+
+template<typename Type, typename Registry>
+
+template<typename It>
+ + + + + +
+ + + + + + + + + + + +
void entt::basic_sigh_mixin< Type, Registry >::generate (It first,
It last )
+
+inline
+
+ +

Assigns each element in a range an identifier.

+
Template Parameters
+ + +
ItType of mutable forward iterator.
+
+
+
Parameters
+ + + +
firstAn iterator to the first element of the range to generate.
lastAn iterator past the last element of the range to generate.
+
+
+ +

Definition at line 321 of file mixin.hpp.

@@ -506,56 +609,54 @@ template<typename... Args>
-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
-template<typename It , typename... Args>
+template<typename It, typename... Args>
+inline
- + - + - + - +
void entt::basic_sigh_mixin< Type, Registry >::insert void entt::basic_sigh_mixin< Type, Registry >::insert (It first, It first,
It last, It last,
Args &&... args )Args &&... args )
-inline
-

Emplace elements into a storage.

-

The behavior of this operation depends on the underlying storage type (for example, components vs entities).
- Refer to the specific documentation for more details.

+

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

Template Parameters
- +
ItIterator type (as required by the underlying storage type).
ItType of input iterator.
ArgsTypes of arguments to forward to the underlying storage.
Parameters
- - + +
firstAn iterator to the first element of the range.
lastAn iterator past the last element of the range.
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
argsParameters to use to forward to the underlying storage.
-

Definition at line 365 of file mixin.hpp.

+

Definition at line 369 of file mixin.hpp.

@@ -565,21 +666,21 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
auto entt::basic_sigh_mixin< Type, Registry >::on_construct auto entt::basic_sigh_mixin< Type, Registry >::on_construct ())
-inlinenoexcept
@@ -590,7 +691,7 @@ template<
See also
sink
Returns
A temporary sink object.
-

Definition at line 241 of file mixin.hpp.

+

Definition at line 238 of file mixin.hpp.

@@ -600,21 +701,21 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
auto entt::basic_sigh_mixin< Type, Registry >::on_destroy auto entt::basic_sigh_mixin< Type, Registry >::on_destroy ())
-inlinenoexcept
@@ -625,7 +726,7 @@ template<
See also
sink
Returns
A temporary sink object.
-

Definition at line 271 of file mixin.hpp.

+

Definition at line 268 of file mixin.hpp.

@@ -635,21 +736,21 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
auto entt::basic_sigh_mixin< Type, Registry >::on_update auto entt::basic_sigh_mixin< Type, Registry >::on_update ())
-inlinenoexcept
@@ -660,7 +761,7 @@ template<
See also
sink
Returns
A temporary sink object.
-

Definition at line 256 of file mixin.hpp.

+

Definition at line 253 of file mixin.hpp.

@@ -670,21 +771,21 @@ template<
+template<typename Type, typename Registry>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_sigh_mixin< Type, Registry >::operator bool entt::basic_sigh_mixin< Type, Registry >::operator bool ()) const
-inlineexplicitnoexcept
@@ -692,7 +793,7 @@ template<
Returns
True if the mixin refers to a valid registry, false otherwise.
-

Definition at line 279 of file mixin.hpp.

+

Definition at line 276 of file mixin.hpp.

@@ -702,21 +803,21 @@ template<
+template<typename Type, typename Registry>
+inlinenoexcept
- + - +
basic_sigh_mixin & entt::basic_sigh_mixin< Type, Registry >::operator= basic_sigh_mixin & entt::basic_sigh_mixin< Type, Registry >::operator= (basic_sigh_mixin< Type, Registry > && other)basic_sigh_mixin< Type, Registry > && other)
-inlinenoexcept
@@ -730,7 +831,7 @@ template<
Returns
This mixin.
-

Definition at line 212 of file mixin.hpp.

+

Definition at line 209 of file mixin.hpp.

@@ -740,21 +841,21 @@ template<
+template<typename Type, typename Registry>
+delete
- + - +
basic_sigh_mixin & entt::basic_sigh_mixin< Type, Registry >::operator= basic_sigh_mixin & entt::basic_sigh_mixin< Type, Registry >::operator= (const basic_sigh_mixin< Type, Registry > & )const basic_sigh_mixin< Type, Registry > & )
-delete
@@ -770,7 +871,7 @@ template<
+template<typename Type, typename Registry>
template<typename... Func>
@@ -778,9 +879,9 @@ template<typename... Func> +inline
- + - + @@ -790,12 +891,12 @@ template<typename... Func>
decltype(auto) entt::basic_sigh_mixin< Type, Registry >::patch decltype(auto) entt::basic_sigh_mixin< Type, Registry >::patch (const entity_type entt, const entity_type entt,
-inline
-

Patches the given instance for an entity.

+

Updates the instance assigned to a given entity in-place.

Template Parameters
@@ -811,7 +912,7 @@ template<typename... Func>
Returns
A reference to the patched instance.
-

Definition at line 345 of file mixin.hpp.

+

Definition at line 353 of file mixin.hpp.

@@ -821,21 +922,21 @@ template<typename... Func>
-template<typename Type , typename Registry >
+template<typename Type, typename Registry>
FuncTypes of the function objects to invoke.
+inlinenodiscardnoexcept
- + - +
const registry_type & entt::basic_sigh_mixin< Type, Registry >::registry const registry_type & entt::basic_sigh_mixin< Type, Registry >::registry ()) const
-inlinenoexcept
@@ -843,7 +944,7 @@ template<
Returns
A pointer to the underlying registry, if any.
-

Definition at line 287 of file mixin.hpp.

+

Definition at line 284 of file mixin.hpp.

@@ -853,29 +954,29 @@ template<
+template<typename Type, typename Registry>
+inlinenodiscardnoexcept
- + - +
registry_type & entt::basic_sigh_mixin< Type, Registry >::registry registry_type & entt::basic_sigh_mixin< Type, Registry >::registry ())
-inlinenoexcept
-

Returns a pointer to the underlying registry, if any.

-
Returns
A pointer to the underlying registry, if any.
+

Returns a pointer to the underlying registry, if any.

+
Returns
A pointer to the underlying registry, if any.
-

Definition at line 292 of file mixin.hpp.

+

Definition at line 289 of file mixin.hpp.

@@ -885,21 +986,21 @@ template<
+template<typename Type, typename Registry>
+inlinenoexcept
- + - +
void entt::basic_sigh_mixin< Type, Registry >::swap void entt::basic_sigh_mixin< Type, Registry >::swap (basic_sigh_mixin< Type, Registry > & other)basic_sigh_mixin< Type, Registry > & other)
-inlinenoexcept
@@ -912,7 +1013,7 @@ template<Definition at line 221 of file mixin.hpp.

+

Definition at line 218 of file mixin.hpp.

@@ -923,7 +1024,8 @@ template< + diff --git a/classentt_1_1basic__snapshot-members.html b/classentt_1_1basic__snapshot-members.html index 68aed4be5..4710b1815 100644 --- a/classentt_1_1basic__snapshot-members.html +++ b/classentt_1_1basic__snapshot-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_snapshot< Registry > Member List
@@ -94,7 +107,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__snapshot.html b/classentt_1_1basic__snapshot.html index d4b4be3f4..7eab11583 100644 --- a/classentt_1_1basic__snapshot.html +++ b/classentt_1_1basic__snapshot.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_snapshot< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,46 +103,46 @@ $(function() { - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
- + +  +  +  - + - + - - + + - - + +

Public Member Functions

 basic_snapshot (const registry_type &source) noexcept
 basic_snapshot (const registry_type &source) noexcept
 Constructs an instance that is bound to a given registry.
 
basic_snapshot (const basic_snapshot &)=delete
basic_snapshot (const basic_snapshot &)=delete
 Default copy constructor, deleted on purpose.
 
basic_snapshot (basic_snapshot &&) noexcept=default
basic_snapshot (basic_snapshot &&) noexcept=default
 Default move constructor.
 
~basic_snapshot ()=default
~basic_snapshot ()=default
 Default destructor.
 
basic_snapshotoperator= (const basic_snapshot &)=delete
basic_snapshotoperator= (const basic_snapshot &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_snapshotoperator= (basic_snapshot &&) noexcept=default
basic_snapshotoperator= (basic_snapshot &&) noexcept=default
 Default move assignment operator.
 
template<typename Type , typename Archive >
const basic_snapshotget (Archive &archive, const id_type id=type_hash< Type >::value()) const
template<typename Type, typename Archive>
const basic_snapshotget (Archive &archive, const id_type id=type_hash< Type >::value()) const
 Serializes all elements of a type with associated identifiers.
 
template<typename Type , typename Archive , typename It >
const basic_snapshotget (Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const
template<typename Type, typename Archive, typename It>
const basic_snapshotget (Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const
 Serializes all elements of a type with associated identifiers for the entities in a range.
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::basic_snapshot< Registry >

Utility class to create snapshots from a registry.

A snapshot can be either a dump of the entire registry or a narrower selection of elements of interest.
This type can be used in both cases if provided with a correctly configured output archive.

@@ -148,10 +161,10 @@ class entt::basic_snapshot< Registry >

Utility class to create sna

-template<typename Registry >
+template<typename Registry>
- +
using entt::basic_snapshot< Registry >::entity_type = typename registry_type::entity_typeusing entt::basic_snapshot< Registry >::entity_type = typename registry_type::entity_type
@@ -168,10 +181,10 @@ template<
+template<typename Registry>
- +
using entt::basic_snapshot< Registry >::registry_type = Registryusing entt::basic_snapshot< Registry >::registry_type = Registry
@@ -188,21 +201,21 @@ template<
+template<typename Registry>
+inlinenoexcept
- + - +
entt::basic_snapshot< Registry >::basic_snapshot entt::basic_snapshot< Registry >::basic_snapshot (const registry_type & source)const registry_type & source)
-inlinenoexcept
@@ -226,27 +239,27 @@ template<
+template<typename Registry>
-template<typename Type , typename Archive >
+template<typename Type, typename Archive>
+inline
- + - + - +
const basic_snapshot & entt::basic_snapshot< Registry >::get const basic_snapshot & entt::basic_snapshot< Registry >::get (Archive & archive, Archive & archive,
const id_type id = type_hash<Type>::value() ) constconst id_type id = type_hash<Type>::value() ) const
-inline
@@ -278,37 +291,37 @@ template<
+template<typename Registry>
-template<typename Type , typename Archive , typename It >
+template<typename Type, typename Archive, typename It>
+inline
- + - + - + - + - +
const basic_snapshot & entt::basic_snapshot< Registry >::get const basic_snapshot & entt::basic_snapshot< Registry >::get (Archive & archive, Archive & archive,
It first, It first,
It last, It last,
const id_type id = type_hash<Type>::value() ) constconst id_type id = type_hash<Type>::value() ) const
-inline
@@ -343,21 +356,21 @@ template<
+template<typename Registry>
+defaultnoexcept
- + - +
basic_snapshot & entt::basic_snapshot< Registry >::operator= basic_snapshot & entt::basic_snapshot< Registry >::operator= (basic_snapshot< Registry > && )basic_snapshot< Registry > && )
-defaultnoexcept
@@ -373,21 +386,21 @@ template<
+template<typename Registry>
+delete
- + - +
basic_snapshot & entt::basic_snapshot< Registry >::operator= basic_snapshot & entt::basic_snapshot< Registry >::operator= (const basic_snapshot< Registry > & )const basic_snapshot< Registry > & )
-delete
@@ -404,7 +417,8 @@ template< +
diff --git a/classentt_1_1basic__snapshot__loader-members.html b/classentt_1_1basic__snapshot__loader-members.html index 353866207..3cd5fc392 100644 --- a/classentt_1_1basic__snapshot__loader-members.html +++ b/classentt_1_1basic__snapshot__loader-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::basic_snapshot_loader< Registry > Member List
@@ -94,7 +107,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__snapshot__loader.html b/classentt_1_1basic__snapshot__loader.html index 089359568..4f0d27583 100644 --- a/classentt_1_1basic__snapshot__loader.html +++ b/classentt_1_1basic__snapshot__loader.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_snapshot_loader< Registry > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,37 +103,37 @@ $(function() { - + - +

Public Types

using registry_type = Registry
using registry_type = Registry
 
using entity_type = typename registry_type::entity_type
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
- + +  +  +  - + - + - - + + @@ -128,7 +141,7 @@ Public Member Functions

Public Member Functions

 basic_snapshot_loader (registry_type &source) noexcept
 basic_snapshot_loader (registry_type &source) noexcept
 Constructs an instance that is bound to a given registry.
 
basic_snapshot_loader (const basic_snapshot_loader &)=delete
basic_snapshot_loader (const basic_snapshot_loader &)=delete
 Default copy constructor, deleted on purpose.
 
basic_snapshot_loader (basic_snapshot_loader &&) noexcept=default
basic_snapshot_loader (basic_snapshot_loader &&) noexcept=default
 Default move constructor.
 
~basic_snapshot_loader ()=default
~basic_snapshot_loader ()=default
 Default destructor.
 
basic_snapshot_loaderoperator= (const basic_snapshot_loader &)=delete
basic_snapshot_loaderoperator= (const basic_snapshot_loader &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_snapshot_loaderoperator= (basic_snapshot_loader &&) noexcept=default
basic_snapshot_loaderoperator= (basic_snapshot_loader &&) noexcept=default
 Default move assignment operator.
 
template<typename Type , typename Archive >
basic_snapshot_loaderget (Archive &archive, const id_type id=type_hash< Type >::value())
template<typename Type, typename Archive>
basic_snapshot_loaderget (Archive &archive, const id_type id=type_hash< Type >::value())
 Restores all elements of a type with associated identifiers.
 
basic_snapshot_loaderorphans ()
 

Detailed Description

-
template<typename Registry>
+
template<typename Registry>
class entt::basic_snapshot_loader< Registry >

Utility class to restore a snapshot as a whole.

A snapshot loader requires that the destination registry be empty and loads all the data at once while keeping intact the identifiers that the entities originally had.
An example of use is the implementation of a save/restore utility.

@@ -147,10 +160,10 @@ class entt::basic_snapshot_loader< Registry >

Utility class to res

-template<typename Registry >
+template<typename Registry>
- +
using entt::basic_snapshot_loader< Registry >::entity_type = typename registry_type::entity_typeusing entt::basic_snapshot_loader< Registry >::entity_type = typename registry_type::entity_type
@@ -167,10 +180,10 @@ template<
+template<typename Registry>
- +
using entt::basic_snapshot_loader< Registry >::registry_type = Registryusing entt::basic_snapshot_loader< Registry >::registry_type = Registry
@@ -187,13 +200,13 @@ template<
+template<typename Registry>
@@ -31,23 +33,33 @@
- + @@ -201,7 +214,7 @@ template< -inlinenoexcept +inlinenoexcept
entt::basic_snapshot_loader< Registry >::basic_snapshot_loader entt::basic_snapshot_loader< Registry >::basic_snapshot_loader ( registry_type & source)
@@ -225,27 +238,27 @@ template<
+template<typename Registry>
-template<typename Type , typename Archive >
+template<typename Type, typename Archive>
+inline
- + - + - +
basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::get basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::get (Archive & archive, Archive & archive,
const id_type id = type_hash<Type>::value() )const id_type id = type_hash<Type>::value() )
-inline
@@ -277,21 +290,21 @@ template<
+template<typename Registry>
+defaultnoexcept
- + - +
basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::operator= basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::operator= (basic_snapshot_loader< Registry > && )basic_snapshot_loader< Registry > && )
-defaultnoexcept
@@ -307,21 +320,21 @@ template<
+template<typename Registry>
+delete
- + - +
basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::operator= basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::operator= (const basic_snapshot_loader< Registry > & )const basic_snapshot_loader< Registry > & )
-delete
@@ -337,21 +350,21 @@ template<
+template<typename Registry>
+inline
- + - +
basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::orphans basic_snapshot_loader & entt::basic_snapshot_loader< Registry >::orphans ())
-inline
@@ -361,7 +374,7 @@ template<
Returns
A valid loader to continue restoring data.
-

Definition at line 277 of file snapshot.hpp.

+

Definition at line 280 of file snapshot.hpp.

@@ -372,7 +385,8 @@ template< + diff --git a/classentt_1_1basic__sparse__set-members.html b/classentt_1_1basic__sparse__set-members.html index d45a16832..8cfbc9388 100644 --- a/classentt_1_1basic__sparse__set-members.html +++ b/classentt_1_1basic__sparse__set-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::basic_sparse_set< Entity, Allocator > Member List
@@ -91,23 +104,23 @@ $(function() { basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, Allocator >inline basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, Allocator >inline begin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline - bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline - bind_any(any) noexceptentt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual - bump(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline - capacity() const noexceptentt::basic_sparse_set< Entity, Allocator >inlinevirtual - cbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - cend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - clear()entt::basic_sparse_set< Entity, Allocator >inline - compact()entt::basic_sparse_set< Entity, Allocator >inline - const_iterator typedefentt::basic_sparse_set< Entity, Allocator > - const_reverse_iterator typedefentt::basic_sparse_set< Entity, Allocator > - contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline - contiguous() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - crbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - crend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline - current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline - data() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline + bind_any(any) noexceptentt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual + bump(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline + capacity() const noexceptentt::basic_sparse_set< Entity, Allocator >inlinevirtual + cbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + cend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + clear()entt::basic_sparse_set< Entity, Allocator >inline + compact()entt::basic_sparse_set< Entity, Allocator >inline + const_iterator typedefentt::basic_sparse_set< Entity, Allocator > + const_reverse_iterator typedefentt::basic_sparse_set< Entity, Allocator > + contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline + contiguous() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + crbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + crend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline + data() const noexceptentt::basic_sparse_set< Entity, Allocator >inline + difference_type typedefentt::basic_sparse_set< Entity, Allocator > empty() const noexceptentt::basic_sparse_set< Entity, Allocator >inline end() const noexceptentt::basic_sparse_set< Entity, Allocator >inline entity_type typedefentt::basic_sparse_set< Entity, Allocator > @@ -155,7 +168,8 @@ $(function() {
+
diff --git a/classentt_1_1basic__sparse__set.html b/classentt_1_1basic__sparse__set.html index 07a360734..26bad6f0e 100644 --- a/classentt_1_1basic__sparse__set.html +++ b/classentt_1_1basic__sparse__set.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_sparse_set< Entity, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -94,41 +107,42 @@ Inheritance diagram for entt::basic_sparse_set< Entity, Allocator >:
Inheritance graph
- - - - - + + +
[legend]
- + - + - + - + - + + + + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using entity_type = typename traits_type::value_type
using entity_type = typename traits_type::value_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
using version_type = typename traits_type::version_type
 Underlying version type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using pointer = typename packed_container_type::const_pointer
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using pointer = typename packed_container_type::const_pointer
 Pointer type to contained entities.
 
using iterator = basic_iterator
using iterator = basic_iterator
 Random access iterator type.
 
using const_iterator = iterator
using const_iterator = iterator
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
using reverse_iterator = std::reverse_iterator<iterator>
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 Constant reverse iterator type.
 
@@ -137,207 +151,203 @@ Public Member Functions - + - + - + +  - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - + - + - - - - - - - - + + + +
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
basic_sparse_set (const basic_sparse_set &)=delete
basic_sparse_set (const basic_sparse_set &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (const basic_sparse_set &)=delete
basic_sparse_setoperator= (const basic_sparse_set &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other) noexcept
void swap (basic_sparse_set &other) noexcept
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
size_type free_list () const noexcept
 Returns data on the free list whose meaning depends on the mode.
 
void free_list (const size_type value) noexcept
void free_list (const size_type value) noexcept
 Sets data on the free list whose meaning depends on the mode.
 
virtual void reserve (const size_type cap)
virtual void reserve (const size_type cap)
 Increases the capacity of a sparse set.
 
virtual size_type capacity () const noexcept
virtual size_type capacity () const noexcept
 Returns the number of elements that a sparse set has currently allocated space for.
 
virtual void shrink_to_fit ()
virtual void shrink_to_fit ()
 Requests the removal of unused capacity.
 
size_type extent () const noexcept
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
reverse_iterator rbegin () const noexcept
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rend () const noexcept
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_iterator find (const entity_type entt) const noexcept
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type operator[] (const size_type pos) const noexcept
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location.
 
const voidvalue (const entity_type entt) const noexcept
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
voidvalue (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
void * value (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
 
iterator push (const entity_type entt, const void *elem=nullptr)
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
template<typename It >
iterator push (It first, It last)
template<typename It>
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
template<typename It >
void erase (It first, It last)
template<typename It>
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
template<typename It >
size_type remove (It first, It last)
template<typename It>
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
template<typename Compare , typename Sort = std_sort, typename... Args>
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Compare, typename Sort = std_sort, typename... Args>
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
template<typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
template<typename It >
iterator sort_as (It first, It last)
template<typename It>
iterator sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void clear ()
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
const type_infotype () const noexcept
 Returned value type, if any.
 
template<typename Type >
std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
template<typename Type >
std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
template<typename Type>
void bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
- +

Protected Types

using basic_iterator = internal::sparse_set_iterator<packed_container_type>
using basic_iterator = internal::sparse_set_iterator<packed_container_type>
 Random access iterator type.
 
- + - + - + - + - + - + - +

Protected Member Functions

void swap_only (const basic_iterator it)
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void pop (basic_iterator first, basic_iterator last)
virtual void pop (basic_iterator first, basic_iterator last)
 Erases entities from a sparse set.
 
virtual void pop_all ()
virtual void pop_all ()
 Erases all entities of a sparse set.
 
virtual basic_iterator try_emplace (const Entity entt, const bool force_back, const void *=nullptr)
virtual basic_iterator try_emplace (const Entity entt, const bool force_back, const void *=nullptr)
 Assigns an entity to a sparse set.
 
virtual void bind_any (any) noexcept
virtual void bind_any (any) noexcept
 Forwards variables to derived classes, if any.
 

Detailed Description

-
template<typename Entity, typename Allocator>
+
template<typename Entity, typename Allocator>
class entt::basic_sparse_set< Entity, Allocator >

Sparse set implementation.

Sparse set or packed array or whatever is the name users give it.
Two arrays: an external one and an internal one; a sparse one and a packed one; one used for direct access through contiguous memory, the other one used to get the data through an extra level of indirection.
@@ -359,17 +369,17 @@ class entt::basic_sparse_set< Entity, Allocator >

Sparse set imple

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::allocator_type = Allocatorusing entt::basic_sparse_set< Entity, Allocator >::allocator_type = Allocator

Allocator type.

-

Definition at line 377 of file sparse_set.hpp.

+

Definition at line 387 of file sparse_set.hpp.

@@ -379,25 +389,25 @@ template<
+template<typename Entity, typename Allocator>
+protected
- +
using entt::basic_sparse_set< Entity, Allocator >::basic_iterator = internal::sparse_set_iterator<packed_container_type>using entt::basic_sparse_set< Entity, Allocator >::basic_iterator = internal::sparse_set_iterator<packed_container_type>
-protected

Random access iterator type.

-

Definition at line 238 of file sparse_set.hpp.

+

Definition at line 247 of file sparse_set.hpp.

@@ -407,17 +417,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::const_iterator = iteratorusing entt::basic_sparse_set< Entity, Allocator >::const_iterator = iterator

Constant random access iterator type.

-

Definition at line 389 of file sparse_set.hpp.

+

Definition at line 401 of file sparse_set.hpp.

@@ -427,17 +437,37 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::const_reverse_iterator = std::reverse_iterator<const_iterator>using entt::basic_sparse_set< Entity, Allocator >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Constant reverse iterator type.

-

Definition at line 393 of file sparse_set.hpp.

+

Definition at line 405 of file sparse_set.hpp.

+ +
+ + +

◆ difference_type

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + +
using entt::basic_sparse_set< Entity, Allocator >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 395 of file sparse_set.hpp.

@@ -447,17 +477,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::entity_type = typename traits_type::value_typeusing entt::basic_sparse_set< Entity, Allocator >::entity_type = typename traits_type::value_type

Underlying entity identifier.

-

Definition at line 379 of file sparse_set.hpp.

+

Definition at line 389 of file sparse_set.hpp.

@@ -467,17 +497,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::iterator = basic_iteratorusing entt::basic_sparse_set< Entity, Allocator >::iterator = basic_iterator

Random access iterator type.

-

Definition at line 387 of file sparse_set.hpp.

+

Definition at line 399 of file sparse_set.hpp.

@@ -487,17 +517,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::pointer = typename packed_container_type::const_pointerusing entt::basic_sparse_set< Entity, Allocator >::pointer = typename packed_container_type::const_pointer

Pointer type to contained entities.

-

Definition at line 385 of file sparse_set.hpp.

+

Definition at line 397 of file sparse_set.hpp.

@@ -507,17 +537,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::reverse_iterator = std::reverse_iterator<iterator>using entt::basic_sparse_set< Entity, Allocator >::reverse_iterator = std::reverse_iterator<iterator>

Reverse iterator type.

-

Definition at line 391 of file sparse_set.hpp.

+

Definition at line 403 of file sparse_set.hpp.

@@ -527,17 +557,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::size_type = std::size_tusing entt::basic_sparse_set< Entity, Allocator >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 383 of file sparse_set.hpp.

+

Definition at line 393 of file sparse_set.hpp.

@@ -547,17 +577,17 @@ template<
+template<typename Entity, typename Allocator>
- +
using entt::basic_sparse_set< Entity, Allocator >::version_type = typename traits_type::version_typeusing entt::basic_sparse_set< Entity, Allocator >::version_type = typename traits_type::version_type

Underlying version type.

-

Definition at line 381 of file sparse_set.hpp.

+

Definition at line 391 of file sparse_set.hpp.

@@ -568,28 +598,28 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set ())
-inline

Default constructor.

-

Definition at line 396 of file sparse_set.hpp.

+

Definition at line 408 of file sparse_set.hpp.

@@ -599,21 +629,21 @@ template<
+template<typename Entity, typename Allocator>
+inlineexplicit
- + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -626,7 +656,7 @@ template<Definition at line 403 of file sparse_set.hpp.

+

Definition at line 415 of file sparse_set.hpp.

@@ -636,25 +666,25 @@ template<
+template<typename Entity, typename Allocator>
+inlineexplicit
- + - + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (deletion_policy pol, deletion_policy pol,
const allocator_type & allocator = {} )const allocator_type & allocator = {} )
-inlineexplicit
@@ -668,7 +698,7 @@ template<Definition at line 411 of file sparse_set.hpp.

+

Definition at line 423 of file sparse_set.hpp.

@@ -678,30 +708,30 @@ template<
+template<typename Entity, typename Allocator>
+inlineexplicit
- + - + - + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (const type_info & elem, const type_info & elem,
deletion_policy pol = deletion_policy::swap_and_pop, deletion_policy pol = deletion_policy::swap_and_pop,
const allocator_type & allocator = {} )const allocator_type & allocator = {} )
-inlineexplicit
@@ -716,7 +746,7 @@ template<Definition at line 421 of file sparse_set.hpp.

+

Definition at line 433 of file sparse_set.hpp.

@@ -726,21 +756,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (basic_sparse_set< Entity, Allocator > && other)basic_sparse_set< Entity, Allocator > && other)
-inlinenoexcept
@@ -753,7 +783,7 @@ template<Definition at line 437 of file sparse_set.hpp.

+

Definition at line 449 of file sparse_set.hpp.

@@ -763,25 +793,25 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - + - +
entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (basic_sparse_set< Entity, Allocator > && other, basic_sparse_set< Entity, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -795,7 +825,7 @@ template<Definition at line 449 of file sparse_set.hpp.

+

Definition at line 461 of file sparse_set.hpp.

@@ -805,28 +835,28 @@ template<
+template<typename Entity, typename Allocator>
+inlinevirtual
- + - +
virtual entt::basic_sparse_set< Entity, Allocator >::~basic_sparse_set virtual entt::basic_sparse_set< Entity, Allocator >::~basic_sparse_set ())
-inlinevirtual

Default destructor.

-

Definition at line 459 of file sparse_set.hpp.

+

Definition at line 471 of file sparse_set.hpp.

@@ -837,21 +867,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_sparse_set< Entity, Allocator >::begin iterator entt::basic_sparse_set< Entity, Allocator >::begin ()) const
-inlinenoexcept
@@ -860,25 +890,25 @@ template<end().

Returns
An iterator to the first entity of the sparse set.
-

Definition at line 612 of file sparse_set.hpp.

+

Definition at line 650 of file sparse_set.hpp.

- -

◆ bind() [1/2]

+ +

◆ bind()

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
-template<typename Type >
+template<typename Type>
@@ -31,23 +33,33 @@
- + @@ -886,7 +916,7 @@ template< -inlinenoexcept +inlinenoexcept
std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > entt::basic_sparse_set< Entity, Allocator >::bind void entt::basic_sparse_set< Entity, Allocator >::bind ( Type && value)
- - -

◆ bind() [2/2]

- -
-
-
-template<typename Entity , typename Allocator >
-
-template<typename Type >
- - - - - -
- - - - - - - -
std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > entt::basic_sparse_set< Entity, Allocator >::bind (Type && value)
-
-inlinenoexcept
-
- -

Forwards variables to derived classes, if any.

-
Template Parameters
- - -
TypeType of the element to forward.
-
-
-
Parameters
- - -
valueThe element to forward.
-
-
-
Returns
Nothing.
- -

Definition at line 1072 of file sparse_set.hpp.

+

Definition at line 1095 of file sparse_set.hpp.

@@ -962,28 +945,28 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotectedvirtualnoexcept
- + - +
virtual void entt::basic_sparse_set< Entity, Allocator >::bind_any virtual void entt::basic_sparse_set< Entity, Allocator >::bind_any (any )any )
-inlineprotectedvirtualnoexcept

Forwards variables to derived classes, if any.

-

Definition at line 373 of file sparse_set.hpp.

+

Definition at line 383 of file sparse_set.hpp.

@@ -993,21 +976,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
version_type entt::basic_sparse_set< Entity, Allocator >::bump version_type entt::basic_sparse_set< Entity, Allocator >::bump (const entity_type entt)const entity_type entt)
-inline
@@ -1022,7 +1005,7 @@ template<
Returns
The version of the given identifier.
-

Definition at line 797 of file sparse_set.hpp.

+

Definition at line 835 of file sparse_set.hpp.

@@ -1032,21 +1015,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardvirtualnoexcept
- + - +
virtual size_type entt::basic_sparse_set< Entity, Allocator >::capacity virtual size_type entt::basic_sparse_set< Entity, Allocator >::capacity ()) const
-inlinevirtualnoexcept
@@ -1066,30 +1049,30 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_sparse_set< Entity, Allocator >::cbegin const_iterator entt::basic_sparse_set< Entity, Allocator >::cbegin ()) const
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the sparse set is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first entity of the sparse set.
+
Returns
An iterator to the first entity of the sparse set.
-

Definition at line 618 of file sparse_set.hpp.

+

Definition at line 656 of file sparse_set.hpp.

@@ -1099,29 +1082,29 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_sparse_set< Entity, Allocator >::cend const_iterator entt::basic_sparse_set< Entity, Allocator >::cend ()) const
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last entity of a sparse set.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last entity of a sparse set.
-

Definition at line 632 of file sparse_set.hpp.

+

Definition at line 670 of file sparse_set.hpp.

@@ -1131,28 +1114,28 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
void entt::basic_sparse_set< Entity, Allocator >::clear void entt::basic_sparse_set< Entity, Allocator >::clear ())
-inline

Clears a sparse set.

-

Definition at line 1035 of file sparse_set.hpp.

+

Definition at line 1073 of file sparse_set.hpp.

@@ -1162,28 +1145,28 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
void entt::basic_sparse_set< Entity, Allocator >::compact void entt::basic_sparse_set< Entity, Allocator >::compact ())
-inline

Removes all tombstones from a sparse set.

-

Definition at line 884 of file sparse_set.hpp.

+

Definition at line 922 of file sparse_set.hpp.

@@ -1193,21 +1176,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_sparse_set< Entity, Allocator >::contains bool entt::basic_sparse_set< Entity, Allocator >::contains (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1231,21 +1214,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_sparse_set< Entity, Allocator >::contiguous bool entt::basic_sparse_set< Entity, Allocator >::contiguous ()) const
-inlinenoexcept
@@ -1263,30 +1246,30 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_sparse_set< Entity, Allocator >::crbegin const_reverse_iterator entt::basic_sparse_set< Entity, Allocator >::crbegin ()) const
-inlinenoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the sparse set is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first entity of the reversed internal packed array.
+
Returns
An iterator to the first entity of the reversed internal packed array.
-

Definition at line 650 of file sparse_set.hpp.

+

Definition at line 688 of file sparse_set.hpp.

@@ -1296,29 +1279,29 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_sparse_set< Entity, Allocator >::crend const_reverse_iterator entt::basic_sparse_set< Entity, Allocator >::crend ()) const
-inlinenoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last entity of the reversed sparse set.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last entity of the reversed sparse set.
-

Definition at line 664 of file sparse_set.hpp.

+

Definition at line 702 of file sparse_set.hpp.

@@ -1328,21 +1311,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
version_type entt::basic_sparse_set< Entity, Allocator >::current version_type entt::basic_sparse_set< Entity, Allocator >::current (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1366,21 +1349,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
pointer entt::basic_sparse_set< Entity, Allocator >::data pointer entt::basic_sparse_set< Entity, Allocator >::data ()) const
-inlinenoexcept
@@ -1388,7 +1371,7 @@ template<
Returns
A pointer to the internal packed array.
-

Definition at line 600 of file sparse_set.hpp.

+

Definition at line 638 of file sparse_set.hpp.

@@ -1398,21 +1381,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_sparse_set< Entity, Allocator >::empty bool entt::basic_sparse_set< Entity, Allocator >::empty ()) const
-inlinenoexcept
@@ -1420,7 +1403,7 @@ template<
Returns
True if the sparse set is empty, false otherwise.
-

Definition at line 584 of file sparse_set.hpp.

+

Definition at line 622 of file sparse_set.hpp.

@@ -1430,21 +1413,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_sparse_set< Entity, Allocator >::end iterator entt::basic_sparse_set< Entity, Allocator >::end ()) const
-inlinenoexcept
@@ -1462,21 +1445,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
void entt::basic_sparse_set< Entity, Allocator >::erase void entt::basic_sparse_set< Entity, Allocator >::erase (const entity_type entt)const entity_type entt)
-inline
@@ -1490,7 +1473,7 @@ template<Definition at line 814 of file sparse_set.hpp.

+

Definition at line 852 of file sparse_set.hpp.

@@ -1500,27 +1483,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
void entt::basic_sparse_set< Entity, Allocator >::erase void entt::basic_sparse_set< Entity, Allocator >::erase (It first, It first,
It last )It last )
-inline
@@ -1541,7 +1524,7 @@ template<Definition at line 829 of file sparse_set.hpp.

+

Definition at line 867 of file sparse_set.hpp.

@@ -1551,30 +1534,30 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_sparse_set< Entity, Allocator >::extent size_type entt::basic_sparse_set< Entity, Allocator >::extent ()) const
-inlinenoexcept

Returns the extent of a sparse set.

-

The extent of a sparse set is also the size of the internal sparse array. There is no guarantee that the internal packed array has the same size. Usually the size of the internal sparse array is equal or greater than the one of the internal packed array.

+

The extent of a sparse set is also the size of the internal sparse array. There is no guarantee that all pages have been allocated, nor that the internal packed array is be the same size.

Returns
Extent of the sparse set.
-

Definition at line 562 of file sparse_set.hpp.

+

Definition at line 600 of file sparse_set.hpp.

@@ -1584,21 +1567,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_sparse_set< Entity, Allocator >::find const_iterator entt::basic_sparse_set< Entity, Allocator >::find (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1622,21 +1605,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_sparse_set< Entity, Allocator >::free_list size_type entt::basic_sparse_set< Entity, Allocator >::free_list ()) const
-inlinenoexcept
@@ -1644,7 +1627,7 @@ template<
Returns
Free list information that is mode dependent.
-

Definition at line 513 of file sparse_set.hpp.

+

Definition at line 525 of file sparse_set.hpp.

@@ -1654,21 +1637,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_sparse_set< Entity, Allocator >::free_list void entt::basic_sparse_set< Entity, Allocator >::free_list (const size_type value)const size_type value)
-inlinenoexcept
@@ -1681,7 +1664,7 @@ template<Definition at line 521 of file sparse_set.hpp.

+

Definition at line 533 of file sparse_set.hpp.

@@ -1691,21 +1674,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_sparse_set< Entity, Allocator >::get_allocator allocator_type entt::basic_sparse_set< Entity, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -1713,7 +1696,7 @@ template<
Returns
The associated allocator.
-

Definition at line 497 of file sparse_set.hpp.

+

Definition at line 509 of file sparse_set.hpp.

@@ -1723,21 +1706,21 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotected
- + - +
void entt::basic_sparse_set< Entity, Allocator >::in_place_pop void entt::basic_sparse_set< Entity, Allocator >::in_place_pop (const basic_iterator it)const basic_iterator it)
-inlineprotected
@@ -1750,7 +1733,7 @@ template<Definition at line 272 of file sparse_set.hpp.

+

Definition at line 282 of file sparse_set.hpp.

@@ -1760,21 +1743,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_sparse_set< Entity, Allocator >::index size_type entt::basic_sparse_set< Entity, Allocator >::index (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1789,7 +1772,7 @@ template<
Returns
The position of the entity in the sparse set.
-

Definition at line 713 of file sparse_set.hpp.

+

Definition at line 751 of file sparse_set.hpp.

@@ -1799,21 +1782,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
basic_sparse_set & entt::basic_sparse_set< Entity, Allocator >::operator= basic_sparse_set & entt::basic_sparse_set< Entity, Allocator >::operator= (basic_sparse_set< Entity, Allocator > && other)basic_sparse_set< Entity, Allocator > && other)
-inlinenoexcept
@@ -1827,7 +1810,7 @@ template<
Returns
This sparse set.
-

Definition at line 474 of file sparse_set.hpp.

+

Definition at line 486 of file sparse_set.hpp.

@@ -1837,21 +1820,21 @@ template<
+template<typename Entity, typename Allocator>
+delete
- + - +
basic_sparse_set & entt::basic_sparse_set< Entity, Allocator >::operator= basic_sparse_set & entt::basic_sparse_set< Entity, Allocator >::operator= (const basic_sparse_set< Entity, Allocator > & )const basic_sparse_set< Entity, Allocator > & )
-delete
@@ -1867,21 +1850,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_sparse_set< Entity, Allocator >::operator[] entity_type entt::basic_sparse_set< Entity, Allocator >::operator[] (const size_type pos)const size_type pos) const
-inlinenoexcept
@@ -1895,7 +1878,7 @@ template<
Returns
The entity at specified location.
-

Definition at line 723 of file sparse_set.hpp.

+

Definition at line 761 of file sparse_set.hpp.

@@ -1905,21 +1888,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
deletion_policy entt::basic_sparse_set< Entity, Allocator >::policy deletion_policy entt::basic_sparse_set< Entity, Allocator >::policy ()) const
-inlinenoexcept
@@ -1927,7 +1910,7 @@ template<
Returns
The deletion policy of the sparse set.
-

Definition at line 505 of file sparse_set.hpp.

+

Definition at line 517 of file sparse_set.hpp.

@@ -1937,15 +1920,15 @@ template<
+template<typename Entity, typename Allocator>
- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -142,11 +155,11 @@ $(function() { - + - - + + @@ -176,7 +189,7 @@ $(function() { - + @@ -191,7 +204,8 @@ $(function() {
- + - + @@ -1955,7 +1938,7 @@ template< -inlineprotectedvirtual +inlineprotectedvirtual
virtual void entt::basic_sparse_set< Entity, Allocator >::pop virtual void entt::basic_sparse_set< Entity, Allocator >::pop (basic_iterator first, basic_iterator first,
@@ -1981,30 +1964,30 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotectedvirtual
- + - +
virtual void entt::basic_sparse_set< Entity, Allocator >::pop_all virtual void entt::basic_sparse_set< Entity, Allocator >::pop_all ())
-inlineprotectedvirtual
@@ -2014,25 +1997,25 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - + - +
iterator entt::basic_sparse_set< Entity, Allocator >::push iterator entt::basic_sparse_set< Entity, Allocator >::push (const entity_type entt, const entity_type entt,
const void * elem = nullptr )const void * elem = nullptr )
-inline
@@ -2048,7 +2031,7 @@ template<
Returns
Iterator pointing to the emplaced element in case of success, the end() iterator otherwise.
-

Definition at line 759 of file sparse_set.hpp.

+

Definition at line 797 of file sparse_set.hpp.

@@ -2058,27 +2041,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
iterator entt::basic_sparse_set< Entity, Allocator >::push iterator entt::basic_sparse_set< Entity, Allocator >::push (It first, It first,
It last )It last )
-inline
@@ -2100,7 +2083,7 @@ template<
Returns
Iterator pointing to the first element inserted in case of success, the end() iterator otherwise.
-

Definition at line 777 of file sparse_set.hpp.

+

Definition at line 815 of file sparse_set.hpp.

@@ -2110,21 +2093,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rbegin reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rbegin ()) const
-inlinenoexcept
@@ -2133,7 +2116,7 @@ template<rend().

Returns
An iterator to the first entity of the reversed internal packed array.
-

Definition at line 645 of file sparse_set.hpp.

+

Definition at line 683 of file sparse_set.hpp.

@@ -2143,21 +2126,21 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - +
bool entt::basic_sparse_set< Entity, Allocator >::remove bool entt::basic_sparse_set< Entity, Allocator >::remove (const entity_type entt)const entity_type entt)
-inline
@@ -2181,27 +2164,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
size_type entt::basic_sparse_set< Entity, Allocator >::remove size_type entt::basic_sparse_set< Entity, Allocator >::remove (It first, It first,
It last )It last )
-inline
@@ -2222,7 +2205,7 @@ template<
Returns
The number of entities actually removed.
-

Definition at line 856 of file sparse_set.hpp.

+

Definition at line 894 of file sparse_set.hpp.

@@ -2232,21 +2215,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rend reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rend ()) const
-inlinenoexcept
@@ -2264,21 +2247,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinevirtual
- + - +
virtual void entt::basic_sparse_set< Entity, Allocator >::reserve virtual void entt::basic_sparse_set< Entity, Allocator >::reserve (const size_type cap)const size_type cap)
-inlinevirtual
@@ -2304,30 +2287,30 @@ template<
+template<typename Entity, typename Allocator>
+inlinevirtual
- + - +
virtual void entt::basic_sparse_set< Entity, Allocator >::shrink_to_fit virtual void entt::basic_sparse_set< Entity, Allocator >::shrink_to_fit ())
-inlinevirtual
@@ -2337,21 +2320,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::basic_sparse_set< Entity, Allocator >::size size_type entt::basic_sparse_set< Entity, Allocator >::size ()) const
-inlinenoexcept
@@ -2360,7 +2343,7 @@ template<
Returns
Number of elements.
-

Definition at line 576 of file sparse_set.hpp.

+

Definition at line 614 of file sparse_set.hpp.

@@ -2370,32 +2353,32 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Compare , typename Sort = std_sort, typename... Args>
+template<typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - +
void entt::basic_sparse_set< Entity, Allocator >::sort void entt::basic_sparse_set< Entity, Allocator >::sort (Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args )Args &&... args )
-inline
@@ -2419,7 +2402,7 @@ template<Definition at line 996 of file sparse_set.hpp.

+

Definition at line 1034 of file sparse_set.hpp.

@@ -2429,27 +2412,27 @@ template<
+template<typename Entity, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
iterator entt::basic_sparse_set< Entity, Allocator >::sort_as iterator entt::basic_sparse_set< Entity, Allocator >::sort_as (It first, It first,
It last )It last )
-inline
@@ -2482,47 +2465,46 @@ template<
+template<typename Entity, typename Allocator>
-template<typename Compare , typename Sort = std_sort, typename... Args>
+template<typename Compare, typename Sort = std_sort, typename... Args> +inline
- + - + - + - + - +
void entt::basic_sparse_set< Entity, Allocator >::sort_n void entt::basic_sparse_set< Entity, Allocator >::sort_n (const size_type length, const size_type length,
Compare compare, Compare compare,
Sort algo = Sort{}, Sort algo = Sort{},
Args &&... args )Args &&... args )
-inline

Sort the first count elements according to the given comparison function.

The comparison function object must return true if the first element is less than the second one, false otherwise. The signature of the comparison function should be equivalent to the following:

-
bool(const Entity, const Entity);
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
bool(const Entity, const Entity);

Moreover, the comparison function object shall induce a strict weak ordering on the values.

-

The sort function object must offer a member function template operator() that accepts three arguments:

+

The sort function object must offer a member function template operator() that accepts three arguments:

@@ -2556,21 +2538,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
void entt::basic_sparse_set< Entity, Allocator >::swap void entt::basic_sparse_set< Entity, Allocator >::swap (basic_sparse_set< Entity, Allocator > & other)basic_sparse_set< Entity, Allocator > & other)
-inlinenoexcept
@@ -2583,7 +2565,7 @@ template<Definition at line 484 of file sparse_set.hpp.

+

Definition at line 496 of file sparse_set.hpp.

@@ -2593,21 +2575,21 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotected
- + - +
void entt::basic_sparse_set< Entity, Allocator >::swap_and_pop void entt::basic_sparse_set< Entity, Allocator >::swap_and_pop (const basic_iterator it)const basic_iterator it)
-inlineprotected
@@ -2620,7 +2602,7 @@ template<Definition at line 255 of file sparse_set.hpp.

+

Definition at line 264 of file sparse_set.hpp.

@@ -2630,25 +2612,25 @@ template<
+template<typename Entity, typename Allocator>
+inline
- + - + - +
void entt::basic_sparse_set< Entity, Allocator >::swap_elements void entt::basic_sparse_set< Entity, Allocator >::swap_elements (const entity_type lhs, const entity_type lhs,
const entity_type rhs )const entity_type rhs )
-inline
@@ -2664,7 +2646,7 @@ template<Definition at line 921 of file sparse_set.hpp.

+

Definition at line 959 of file sparse_set.hpp.

@@ -2674,21 +2656,21 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotected
- + - +
void entt::basic_sparse_set< Entity, Allocator >::swap_only void entt::basic_sparse_set< Entity, Allocator >::swap_only (const basic_iterator it)const basic_iterator it)
-inlineprotected
@@ -2701,7 +2683,7 @@ template<Definition at line 244 of file sparse_set.hpp.

+

Definition at line 253 of file sparse_set.hpp.

@@ -2711,30 +2693,30 @@ template<
+template<typename Entity, typename Allocator>
+inlineprotectedvirtual
- + - + - + - +
virtual basic_iterator entt::basic_sparse_set< Entity, Allocator >::try_emplace virtual basic_iterator entt::basic_sparse_set< Entity, Allocator >::try_emplace (const Entity entt, const Entity entt,
const bool force_back, const bool force_back,
const void * = nullptr )const void * = nullptr )
-inlineprotectedvirtual
@@ -2761,21 +2743,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const type_info & entt::basic_sparse_set< Entity, Allocator >::type const type_info & entt::basic_sparse_set< Entity, Allocator >::type ()) const
-inlinenoexcept
@@ -2783,7 +2765,7 @@ template<
Returns
Returned value type, if any.
-

Definition at line 1047 of file sparse_set.hpp.

+

Definition at line 1085 of file sparse_set.hpp.

@@ -2793,21 +2775,21 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const void * entt::basic_sparse_set< Entity, Allocator >::value const void * entt::basic_sparse_set< Entity, Allocator >::value (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -2832,26 +2814,26 @@ template<
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept
- + - +
void * entt::basic_sparse_set< Entity, Allocator >::value void * entt::basic_sparse_set< Entity, Allocator >::value (const entity_type entt)const entity_type entt)
-inlinenoexcept
-

Returns the element assigned to an entity, if any.

+

Returns the element assigned to an entity, if any.

Warning
Attempting to use an entity that doesn't belong to the sparse set results in undefined behavior.
Parameters
@@ -2859,9 +2841,9 @@ template<
Returns
An opaque pointer to the element assigned to the entity, if any.
+
Returns
An opaque pointer to the element assigned to the entity, if any.
-

Definition at line 743 of file sparse_set.hpp.

+

Definition at line 781 of file sparse_set.hpp.

@@ -2872,7 +2854,8 @@ template< + diff --git a/classentt_1_1basic__sparse__set__inherit__graph.map b/classentt_1_1basic__sparse__set__inherit__graph.map index 2469542c4..8793b3948 100644 --- a/classentt_1_1basic__sparse__set__inherit__graph.map +++ b/classentt_1_1basic__sparse__set__inherit__graph.map @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/classentt_1_1basic__sparse__set__inherit__graph.md5 b/classentt_1_1basic__sparse__set__inherit__graph.md5 index bf2e6b8a3..f2b7cf44c 100644 --- a/classentt_1_1basic__sparse__set__inherit__graph.md5 +++ b/classentt_1_1basic__sparse__set__inherit__graph.md5 @@ -1 +1 @@ -49dda1a72a91c3f420d2f0c797021e64 \ No newline at end of file +fafb2f85b09d58ba81f6f031ee061562 \ No newline at end of file diff --git a/classentt_1_1basic__sparse__set__inherit__graph.png b/classentt_1_1basic__sparse__set__inherit__graph.png index 038bef5c723fe14d15bad36d7072583ddc8b82c2..acbf57803b1c6042c1762615a5b0d381cd55be04 100644 GIT binary patch literal 2165 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 - + EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_storage< Type, Entity, Allocator, typename > Member List
@@ -98,26 +111,26 @@ $(function() {
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, typename >inline
begin() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
begin() noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind_any(any) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
bump(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
capacity() const noexcept overrideentt::basic_storage< Type, Entity, Allocator, typename >inlinevirtual
cbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
cend() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
clear()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
const_iterable typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_pointer typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_reverse_iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
contiguous() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
crbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
crend() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
data() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind_any(any) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
bump(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
capacity() const noexcept overrideentt::basic_storage< Type, Entity, Allocator, typename >inlinevirtual
cbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
cend() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
clear()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
const_iterable typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_pointer typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, typename >
const_reverse_iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
contiguous() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
crbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
crend() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
data() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
difference_type typedefentt::basic_storage< Type, Entity, Allocator, typename >
each() noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
each() const noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
element_type typedefentt::basic_storage< Type, Entity, Allocator, typename >
insert(It first, It last, const value_type &value={})entt::basic_storage< Type, Entity, Allocator, typename >inline
insert(EIt first, EIt last, CIt from)entt::basic_storage< Type, Entity, Allocator, typename >inline
iterable typedefentt::basic_storage< Type, Entity, Allocator, typename >
iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
iterator typedefentt::basic_storage< Type, Entity, Allocator, typename >
operator=(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, typename >
operator=(basic_storage &&other) noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Type, Entity, Allocator, typename >inline
pointer typedefentt::basic_storage< Type, Entity, Allocator, typename >
sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
storage_policyentt::basic_storage< Type, Entity, Allocator, typename >static
swap(basic_storage &other) noexceptentt::basic_storage< Type, Entity, Allocator, typename >inline
basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
+ diff --git a/classentt_1_1basic__storage.html b/classentt_1_1basic__storage.html index 13830153f..b9e051cc2 100644 --- a/classentt_1_1basic__storage.html +++ b/classentt_1_1basic__storage.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_storage< Type, Entity, Allocator, typename > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
Public Types | @@ -112,52 +125,55 @@ Collaboration diagram for entt::basic_storage< Type, Entity, Allocator, typen - + - + - + - + - + - + - + + + + - + - - - - - - - + + + + + + + - + - + - + - + - + @@ -173,6 +189,9 @@ Public Types + + + @@ -194,124 +213,124 @@ Public Member Functions - + +  - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - + - - + + - + - - + + @@ -379,25 +398,21 @@ Public Member Functions - - - - @@ -418,7 +433,6 @@ Public Member Functions - @@ -462,28 +476,25 @@ Public Member Functions - - - - - - + + +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using base_type = underlying_type
using base_type = underlying_type
 Base type.
 
using element_type = Type
using element_type = Type
 Element type.
 
using value_type = element_type
using value_type = element_type
 Type of the objects assigned to entities.
 
using entity_type = Entity
using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using pointer = typename container_type::pointer
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using pointer = typename container_type::pointer
 Pointer type to contained elements.
 
using const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointer
using const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointer
 Constant pointer type to contained elements.
 
using iterator = internal::storage_iterator<container_type>
 Random access iterator type.
 
using const_iterator = internal::storage_iterator<const container_type>
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
using iterator = internal::storage_iterator<container_type, traits_type::page_size>
 Random access iterator type.
 
using const_iterator = internal::storage_iterator<const container_type, traits_type::page_size>
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 Constant reverse iterator type.
 
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator, iterator>>
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator, iterator>>
 Extended iterable storage proxy.
 
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator, const_iterator>>
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator, const_iterator>>
 Constant extended iterable storage proxy.
 
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator, reverse_iterator>>
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator, reverse_iterator>>
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator, const_reverse_iterator>>
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator, const_reverse_iterator>>
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using size_type
 Unsigned integer type.
 
using difference_type
 Signed integer type.
 
using pointer
 Pointer type to contained entities.
 
 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 basic_storage (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_storage (const basic_storage &)=delete
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept
 basic_storage (basic_storage &&other) noexcept
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
 ~basic_storage () override
 ~basic_storage () override
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept
basic_storageoperator= (basic_storage &&other) noexcept
 Move assignment operator.
 
void swap (basic_storage &other) noexcept
void swap (basic_storage &other) noexcept
 Exchanges the contents with those of a given storage.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void reserve (const size_type cap) override
void reserve (const size_type cap) override
 Increases the capacity of a storage.
 
size_type capacity () const noexcept override
size_type capacity () const noexcept override
 Returns the number of elements that a storage has currently allocated space for.
 
void shrink_to_fit () override
void shrink_to_fit () override
 Requests the removal of unused capacity.
 
const_pointer raw () const noexcept
const_pointer raw () const noexcept
 Direct access to the array of objects.
 
pointer raw () noexcept
 Direct access to the array of objects.
pointer raw () noexcept
 Direct access to the array of objects.
 
const_iterator cbegin () const noexcept
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
iterator end () noexcept
 Returns an iterator to the end.
 
const_reverse_iterator crbegin () const noexcept
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crend () const noexcept
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
 
const value_typeget (const entity_type entt) const noexcept
const value_typeget (const entity_type entt) const noexcept
 Returns the object assigned to an entity.
 
value_typeget (const entity_type entt) noexcept
 Returns the object assigned to an entity.
value_typeget (const entity_type entt) noexcept
 Returns the object assigned to an entity.
 
std::tuple< const value_type & > get_as_tuple (const entity_type entt) const noexcept
std::tuple< const value_type & > get_as_tuple (const entity_type entt) const noexcept
 Returns the object assigned to an entity as a tuple.
 
std::tuple< value_type & > get_as_tuple (const entity_type entt) noexcept
 Returns the object assigned to an entity as a tuple.
std::tuple< value_type & > get_as_tuple (const entity_type entt) noexcept
 Returns the object assigned to an entity as a tuple.
 
template<typename... Args>
value_typeemplace (const entity_type entt, Args &&...args)
value_typeemplace (const entity_type entt, Args &&...args)
 Assigns an entity to a storage and constructs its object.
 
template<typename... Func>
value_typepatch (const entity_type entt, Func &&...func)
value_typepatch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
template<typename It >
iterator insert (It first, It last, const value_type &value={})
template<typename It>
iterator insert (It first, It last, const value_type &value={})
 Assigns one or more entities to a storage and constructs their objects from a given instance.
 
template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, value_type>>>
iterator insert (EIt first, EIt last, CIt from)
template<typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, value_type>>>
iterator insert (EIt first, EIt last, CIt from)
 Assigns one or more entities to a storage and constructs their objects from a given range.
 
iterable each () noexcept
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 basic_sparse_set ()
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 Returns the element assigned to an entity, if any.
 
void * value (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
 
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
const type_infotype () const noexcept
 Returned value type, if any.
 
std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
void bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
- +

Static Public Attributes

static constexpr deletion_policy storage_policy {traits_type::in_place_delete}
static constexpr deletion_policy storage_policy {traits_type::in_place_delete}
 Storage deletion policy.
 
- + - + - + @@ -508,7 +519,7 @@ Additional Inherited Members

Protected Member Functions

void pop (underlying_iterator first, underlying_iterator last) override
void pop (underlying_iterator first, underlying_iterator last) override
 Erases entities from a storage.
 
void pop_all () override
void pop_all () override
 Erases all entities of a storage.
 
underlying_iterator try_emplace (const Entity entt, const bool force_back, const void *value) override
underlying_iterator try_emplace (const Entity entt, const bool force_back, const void *value) override
 Assigns an entity to a storage.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 

Detailed Description

-
template<typename Type, typename Entity, typename Allocator, typename>
+
template<typename Type, typename Entity, typename Allocator, typename>
class entt::basic_storage< Type, Entity, Allocator, typename >

Storage implementation.

Internal data structures arrange elements to maximize performance. There are no guarantees that objects are returned in the insertion order when iterate a storage. Do not make assumption on the order in any case.

Warning
Empty types aren't explicitly instantiated. Therefore, many of the functions normally available for non-empty types will not be available for empty ones.
@@ -521,7 +532,7 @@ class entt::basic_storage< Type, Entity, Allocator, typename >

Sto -

Definition at line 230 of file storage.hpp.

+

Definition at line 229 of file storage.hpp.

Member Typedef Documentation

◆ allocator_type

@@ -529,17 +540,17 @@ class entt::basic_storage< Type, Entity, Allocator, typename >

Sto

-template<typename Type , typename Entity , typename Allocator , typename >
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::allocator_type = Allocatorusing entt::basic_storage< Type, Entity, Allocator, typename >::allocator_type = Allocator

Allocator type.

-

Definition at line 394 of file storage.hpp.

+

Definition at line 398 of file storage.hpp.

@@ -549,17 +560,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::base_type = underlying_typeusing entt::basic_storage< Type, Entity, Allocator, typename >::base_type = underlying_type

Base type.

-

Definition at line 396 of file storage.hpp.

+

Definition at line 400 of file storage.hpp.

@@ -569,37 +580,37 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator, const_iterator>>using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator, const_iterator>>

Constant extended iterable storage proxy.

-

Definition at line 420 of file storage.hpp.

+

Definition at line 426 of file storage.hpp.

- -

◆ const_iterator

+ +

◆ const_iterator

-template<typename Type , typename Entity , typename Allocator , typename >
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterator = internal::storage_iterator<const container_type>using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterator = internal::storage_iterator<const container_type, traits_type::page_size>

Constant random access iterator type.

-

Definition at line 412 of file storage.hpp.

+

Definition at line 418 of file storage.hpp.

@@ -609,17 +620,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointerusing entt::basic_storage< Type, Entity, Allocator, typename >::const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointer

Constant pointer type to contained elements.

-

Definition at line 408 of file storage.hpp.

+

Definition at line 414 of file storage.hpp.

@@ -629,17 +640,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator, const_reverse_iterator>>using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator, const_reverse_iterator>>

Constant extended reverse iterable storage proxy.

-

Definition at line 424 of file storage.hpp.

+

Definition at line 430 of file storage.hpp.

@@ -649,17 +660,37 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterator = std::reverse_iterator<const_iterator>using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Constant reverse iterator type.

-

Definition at line 416 of file storage.hpp.

+

Definition at line 422 of file storage.hpp.

+ +
+ + +

◆ difference_type

+ +
+
+
+template<typename Type, typename Entity, typename Allocator, typename>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 410 of file storage.hpp.

@@ -669,17 +700,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::element_type = Typeusing entt::basic_storage< Type, Entity, Allocator, typename >::element_type = Type

Element type.

-

Definition at line 398 of file storage.hpp.

+

Definition at line 402 of file storage.hpp.

@@ -689,17 +720,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::entity_type = Entityusing entt::basic_storage< Type, Entity, Allocator, typename >::entity_type = Entity

Underlying entity identifier.

-

Definition at line 402 of file storage.hpp.

+

Definition at line 406 of file storage.hpp.

@@ -709,37 +740,37 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator, iterator>>using entt::basic_storage< Type, Entity, Allocator, typename >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator, iterator>>

Extended iterable storage proxy.

-

Definition at line 418 of file storage.hpp.

+

Definition at line 424 of file storage.hpp.

- -

◆ iterator

+ +

◆ iterator

-template<typename Type , typename Entity , typename Allocator , typename >
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::iterator = internal::storage_iterator<container_type>using entt::basic_storage< Type, Entity, Allocator, typename >::iterator = internal::storage_iterator<container_type, traits_type::page_size>

Random access iterator type.

-

Definition at line 410 of file storage.hpp.

+

Definition at line 416 of file storage.hpp.

@@ -749,17 +780,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::pointer = typename container_type::pointerusing entt::basic_storage< Type, Entity, Allocator, typename >::pointer = typename container_type::pointer

Pointer type to contained elements.

-

Definition at line 406 of file storage.hpp.

+

Definition at line 412 of file storage.hpp.

@@ -769,17 +800,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator, reverse_iterator>>using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator, reverse_iterator>>

Extended reverse iterable storage proxy.

-

Definition at line 422 of file storage.hpp.

+

Definition at line 428 of file storage.hpp.

@@ -789,17 +820,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterator = std::reverse_iterator<iterator>using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterator = std::reverse_iterator<iterator>

Reverse iterator type.

-

Definition at line 414 of file storage.hpp.

+

Definition at line 420 of file storage.hpp.

@@ -809,17 +840,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::size_type = std::size_tusing entt::basic_storage< Type, Entity, Allocator, typename >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 404 of file storage.hpp.

+

Definition at line 408 of file storage.hpp.

@@ -829,17 +860,17 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
- +
using entt::basic_storage< Type, Entity, Allocator, typename >::value_type = element_typeusing entt::basic_storage< Type, Entity, Allocator, typename >::value_type = element_type

Type of the objects assigned to entities.

-

Definition at line 400 of file storage.hpp.

+

Definition at line 404 of file storage.hpp.

@@ -850,28 +881,28 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inline
- + - +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage ())
-inline

Default constructor.

-

Definition at line 429 of file storage.hpp.

+

Definition at line 435 of file storage.hpp.

@@ -881,21 +912,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineexplicit
- + - +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -908,7 +939,7 @@ template<Definition at line 436 of file storage.hpp.

+

Definition at line 442 of file storage.hpp.

@@ -918,21 +949,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenoexcept
- + - +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (basic_storage< Type, Entity, Allocator, typename > && other)basic_storage< Type, Entity, Allocator, typename > && other)
-inlinenoexcept
@@ -945,7 +976,7 @@ template<Definition at line 447 of file storage.hpp.

+

Definition at line 454 of file storage.hpp.

@@ -955,25 +986,25 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inline
- + - + - +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (basic_storage< Type, Entity, Allocator, typename > && other, basic_storage< Type, Entity, Allocator, typename > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -987,7 +1018,7 @@ template<Definition at line 456 of file storage.hpp.

+

Definition at line 465 of file storage.hpp.

@@ -997,28 +1028,28 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineoverride
- + - +
entt::basic_storage< Type, Entity, Allocator, typename >::~basic_storage entt::basic_storage< Type, Entity, Allocator, typename >::~basic_storage ())
-inlineoverride

Default destructor.

-

Definition at line 465 of file storage.hpp.

+

Definition at line 474 of file storage.hpp.

@@ -1029,30 +1060,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin ()) const
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the storage is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 560 of file storage.hpp.

+

Definition at line 569 of file storage.hpp.

@@ -1062,30 +1093,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin ())
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the storage is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 565 of file storage.hpp.

+

Definition at line 574 of file storage.hpp.

@@ -1095,21 +1126,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardoverridevirtualnoexcept
- + - +
size_type entt::basic_storage< Type, Entity, Allocator, typename >::capacity size_type entt::basic_storage< Type, Entity, Allocator, typename >::capacity ()) const
-inlineoverridevirtualnoexcept
@@ -1119,7 +1150,7 @@ template<entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 524 of file storage.hpp.

+

Definition at line 533 of file storage.hpp.

@@ -1129,21 +1160,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cbegin const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cbegin ()) const
-inlinenoexcept
@@ -1152,7 +1183,7 @@ template<end().

Returns
An iterator to the first instance of the internal array.
-

Definition at line 554 of file storage.hpp.

+

Definition at line 563 of file storage.hpp.

@@ -1162,21 +1193,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cend const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cend ()) const
-inlinenoexcept
@@ -1184,7 +1215,7 @@ template<
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 575 of file storage.hpp.

+

Definition at line 584 of file storage.hpp.

@@ -1194,21 +1225,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crbegin const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crbegin ()) const
-inlinenoexcept
@@ -1217,7 +1248,7 @@ template<rend().

Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 596 of file storage.hpp.

+

Definition at line 605 of file storage.hpp.

@@ -1227,21 +1258,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crend const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crend ()) const
-inlinenoexcept
@@ -1249,7 +1280,7 @@ template<
Returns
An iterator to the element following the last instance of the reversed internal array.
-

Definition at line 615 of file storage.hpp.

+

Definition at line 624 of file storage.hpp.

@@ -1259,30 +1290,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_iterable entt::basic_storage< Type, Entity, Allocator, typename >::each const_iterable entt::basic_storage< Type, Entity, Allocator, typename >::each ()) const
-inlinenoexcept
-

Returns an iterable object to use to visit a storage.

+

Returns an iterable object to use to visit a storage.

The iterable object returns a tuple that contains the current entity and a reference to its element.

-
Returns
An iterable object to use to visit the storage.
+
Returns
An iterable object to use to visit the storage.
-

Definition at line 758 of file storage.hpp.

+

Definition at line 767 of file storage.hpp.

@@ -1292,21 +1323,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
iterable entt::basic_storage< Type, Entity, Allocator, typename >::each iterable entt::basic_storage< Type, Entity, Allocator, typename >::each ())
-inlinenoexcept
@@ -1315,7 +1346,7 @@ template<
Returns
An iterable object to use to visit the storage.
-

Definition at line 753 of file storage.hpp.

+

Definition at line 762 of file storage.hpp.

@@ -1325,7 +1356,7 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
template<typename... Args>
@@ -1333,19 +1364,19 @@ template<typename... Args> +inline
- + - + - +
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::emplace value_type & entt::basic_storage< Type, Entity, Allocator, typename >::emplace (const entity_type entt, const entity_type entt,
Args &&... args )Args &&... args )
-inline
@@ -1367,7 +1398,7 @@ template<typename... Args>
Returns
A reference to the newly created object.
-

Definition at line 675 of file storage.hpp.

+

Definition at line 684 of file storage.hpp.

@@ -1377,29 +1408,29 @@ template<typename... Args>
-template<typename Type , typename Entity , typename Allocator , typename >
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::end const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::end ()) const
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 580 of file storage.hpp.

+

Definition at line 589 of file storage.hpp.

@@ -1409,29 +1440,29 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::end iterator entt::basic_storage< Type, Entity, Allocator, typename >::end ())
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 585 of file storage.hpp.

+

Definition at line 594 of file storage.hpp.

@@ -1441,21 +1472,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get const value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1470,7 +1501,7 @@ template<
Returns
The object assigned to the entity.
-

Definition at line 639 of file storage.hpp.

+

Definition at line 648 of file storage.hpp.

@@ -1480,26 +1511,26 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get (const entity_type entt)const entity_type entt)
-inlinenoexcept
-

Returns the object assigned to an entity.

+

Returns the object assigned to an entity.

Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
Parameters
@@ -1507,9 +1538,9 @@ template<
Returns
The object assigned to the entity.
+
Returns
The object assigned to the entity.
-

Definition at line 644 of file storage.hpp.

+

Definition at line 653 of file storage.hpp.

@@ -1519,21 +1550,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::basic_storage< Type, Entity, Allocator, typename >::get_allocator allocator_type entt::basic_storage< Type, Entity, Allocator, typename >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -1541,7 +1572,7 @@ template<
Returns
The associated allocator.
-

Definition at line 500 of file storage.hpp.

+

Definition at line 509 of file storage.hpp.

@@ -1551,21 +1582,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
std::tuple< const value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple std::tuple< const value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -1579,7 +1610,7 @@ template<
Returns
The object assigned to the entity as a tuple.
-

Definition at line 653 of file storage.hpp.

+

Definition at line 662 of file storage.hpp.

@@ -1589,35 +1620,35 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
std::tuple< value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple std::tuple< value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple (const entity_type entt)const entity_type entt)
-inlinenoexcept
-

Returns the object assigned to an entity as a tuple.

+

Returns the object assigned to an entity as a tuple.

Parameters
enttA valid identifier.
-
Returns
The object assigned to the entity as a tuple.
+
Returns
The object assigned to the entity as a tuple.
-

Definition at line 658 of file storage.hpp.

+

Definition at line 667 of file storage.hpp.

@@ -1627,32 +1658,32 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
-template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, value_type>>>
+template<typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, value_type>>> +inline
- + - + - + - +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert (EIt first, EIt first,
EIt last, EIt last,
CIt from )CIt from )
-inline
@@ -1676,7 +1707,7 @@ template<
Returns
Iterator pointing to the first element inserted, if any.
-

Definition at line 737 of file storage.hpp.

+

Definition at line 746 of file storage.hpp.

@@ -1686,32 +1717,32 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
-template<typename It >
+template<typename It> +inline
- + - + - + - +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert (It first, It first,
It last, It last,
const value_type & value = {} )const value_type & value = {} )
-inline
@@ -1734,7 +1765,7 @@ template<
Returns
Iterator pointing to the first element inserted, if any.
-

Definition at line 715 of file storage.hpp.

+

Definition at line 724 of file storage.hpp.

@@ -1744,21 +1775,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenoexcept
- + - +
basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= (basic_storage< Type, Entity, Allocator, typename > && other)basic_storage< Type, Entity, Allocator, typename > && other)
-inlinenoexcept
@@ -1772,7 +1803,7 @@ template<
Returns
This storage.
-

Definition at line 480 of file storage.hpp.

+

Definition at line 489 of file storage.hpp.

@@ -1782,21 +1813,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+delete
- + - +
basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= (const basic_storage< Type, Entity, Allocator, typename > & )const basic_storage< Type, Entity, Allocator, typename > & )
-delete
@@ -1812,7 +1843,7 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
template<typename... Func>
@@ -1820,9 +1851,9 @@ template<typename... Func> +inline
- + - + @@ -1832,7 +1863,7 @@ template<typename... Func>
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::patch value_type & entt::basic_storage< Type, Entity, Allocator, typename >::patch (const entity_type entt, const entity_type entt,
-inline
@@ -1853,7 +1884,7 @@ template<typename... Func>
Returns
A reference to the updated instance.
-

Definition at line 693 of file storage.hpp.

+

Definition at line 702 of file storage.hpp.

@@ -1863,15 +1894,15 @@ template<typename... Func>
-template<typename Type , typename Entity , typename Allocator , typename >
+template<typename Type, typename Entity, typename Allocator, typename>
@@ -31,23 +33,33 @@
- + - + @@ -1881,7 +1912,7 @@ template< -inlineoverrideprotectedvirtual +inlineoverrideprotectedvirtual
void entt::basic_storage< Type, Entity, Allocator, typename >::pop void entt::basic_storage< Type, Entity, Allocator, typename >::pop (underlying_iterator first, underlying_iterator first,
@@ -1907,21 +1938,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineoverrideprotectedvirtual
- + - +
void entt::basic_storage< Type, Entity, Allocator, typename >::pop_all void entt::basic_storage< Type, Entity, Allocator, typename >::pop_all ())
-inlineoverrideprotectedvirtual
@@ -1930,7 +1961,7 @@ template<entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 353 of file storage.hpp.

+

Definition at line 357 of file storage.hpp.

@@ -1940,21 +1971,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw const_pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw ()) const
-inlinenoexcept
@@ -1962,7 +1993,7 @@ template<
Returns
A pointer to the array of objects.
-

Definition at line 538 of file storage.hpp.

+

Definition at line 547 of file storage.hpp.

@@ -1972,29 +2003,29 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw ())
-inlinenoexcept
-

Direct access to the array of objects.

-
Returns
A pointer to the array of objects.
+

Direct access to the array of objects.

+
Returns
A pointer to the array of objects.
-

Definition at line 543 of file storage.hpp.

+

Definition at line 552 of file storage.hpp.

@@ -2004,30 +2035,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin ()) const
-inlinenoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the storage is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first instance of the reversed internal array.
+
Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 601 of file storage.hpp.

+

Definition at line 610 of file storage.hpp.

@@ -2037,30 +2068,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin ())
-inlinenoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the storage is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first instance of the reversed internal array.
+
Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 606 of file storage.hpp.

+

Definition at line 615 of file storage.hpp.

@@ -2070,30 +2101,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach ()) const
-inlinenoexcept
-

Returns a reverse iterable object to use to visit a storage.

+

Returns a reverse iterable object to use to visit a storage.

See also
each
-
Returns
A reverse iterable object to use to visit the storage.
+
Returns
A reverse iterable object to use to visit the storage.
-

Definition at line 774 of file storage.hpp.

+

Definition at line 783 of file storage.hpp.

@@ -2103,21 +2134,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach ())
-inlinenoexcept
@@ -2126,7 +2157,7 @@ template<
See also
each
Returns
A reverse iterable object to use to visit the storage.
-

Definition at line 769 of file storage.hpp.

+

Definition at line 778 of file storage.hpp.

@@ -2136,29 +2167,29 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend ()) const
-inlinenoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last instance of the reversed internal array.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
-

Definition at line 620 of file storage.hpp.

+

Definition at line 629 of file storage.hpp.

@@ -2168,29 +2199,29 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend ())
-inlinenoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last instance of the reversed internal array.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
-

Definition at line 625 of file storage.hpp.

+

Definition at line 634 of file storage.hpp.

@@ -2200,21 +2231,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineoverridevirtual
- + - +
void entt::basic_storage< Type, Entity, Allocator, typename >::reserve void entt::basic_storage< Type, Entity, Allocator, typename >::reserve (const size_type cap)const size_type cap)
-inlineoverridevirtual
@@ -2230,7 +2261,7 @@ template<entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 512 of file storage.hpp.

+

Definition at line 521 of file storage.hpp.

@@ -2240,21 +2271,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineoverridevirtual
- + - +
void entt::basic_storage< Type, Entity, Allocator, typename >::shrink_to_fit void entt::basic_storage< Type, Entity, Allocator, typename >::shrink_to_fit ())
-inlineoverridevirtual
@@ -2263,7 +2294,7 @@ template<entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 529 of file storage.hpp.

+

Definition at line 538 of file storage.hpp.

@@ -2273,21 +2304,21 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlinenoexcept
- + - +
void entt::basic_storage< Type, Entity, Allocator, typename >::swap void entt::basic_storage< Type, Entity, Allocator, typename >::swap (basic_storage< Type, Entity, Allocator, typename > & other)basic_storage< Type, Entity, Allocator, typename > & other)
-inlinenoexcept
@@ -2300,7 +2331,7 @@ template<Definition at line 490 of file storage.hpp.

+

Definition at line 499 of file storage.hpp.

@@ -2310,30 +2341,30 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+inlineoverrideprotectedvirtual
- + - + - + - +
underlying_iterator entt::basic_storage< Type, Entity, Allocator, typename >::try_emplace underlying_iterator entt::basic_storage< Type, Entity, Allocator, typename >::try_emplace (const Entity entt, const Entity entt,
const bool force_back, const bool force_back,
const void * value )const void * value )
-inlineoverrideprotectedvirtual
@@ -2351,7 +2382,7 @@ template<entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 376 of file storage.hpp.

+

Definition at line 380 of file storage.hpp.

@@ -2362,25 +2393,25 @@ template<
+template<typename Type, typename Entity, typename Allocator, typename>
+staticconstexpr
- +
constexpr deletion_policy entt::basic_storage< Type, Entity, Allocator, typename >::storage_policy {traits_type::in_place_delete}deletion_policy entt::basic_storage< Type, Entity, Allocator, typename >::storage_policy {traits_type::in_place_delete}
-staticconstexpr

Storage deletion policy.

-

Definition at line 426 of file storage.hpp.

+

Definition at line 432 of file storage.hpp.

@@ -2391,7 +2422,8 @@ template< + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4-members.html b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4-members.html index d6ddac9f3..ed0239844 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4-members.html +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_storage< Entity, Entity, Allocator > Member List
@@ -82,106 +95,200 @@ $(function() {

This is the complete list of members for entt::basic_storage< Entity, Entity, Allocator >, including all inherited members.

- - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedefentt::basic_storage< Entity, Entity, Allocator >
base_type typedefentt::basic_storage< Entity, Entity, Allocator >
basic_iterator typedefentt::basic_sparse_set< Entity, Allocator >protected
basic_sparse_set()entt::basic_sparse_set< Entity, Allocator >inline
basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, Allocator >inlineexplicit
basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
basic_sparse_set(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, Allocator >
basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, Allocator >inline
basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, Allocator >inline
allocator_type typedefentt::basic_storage< Entity, Entity, Allocator >
base_type typedefentt::basic_storage< Entity, Entity, Allocator >
base_type typedefentt::basic_storage< Entity, Entity, Allocator >
entt::basic_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >protected
entt::basic_sparse_set::basic_iterator typedefentt::basic_sparse_set< Entity, Allocator >protected
entt::basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
entt::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
entt::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
entt::basic_sparse_set(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
entt::basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::basic_sparse_set()entt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, Allocator >inlineexplicit
entt::basic_sparse_set::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
entt::basic_sparse_set::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
entt::basic_sparse_set::basic_sparse_set(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, Allocator >
entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, Allocator >inline
basic_storage()entt::basic_storage< Entity, Entity, Allocator >inline
basic_storage(const allocator_type &allocator)entt::basic_storage< Entity, Entity, Allocator >inlineexplicit
basic_storage(const basic_storage &)=deleteentt::basic_storage< Entity, Entity, Allocator >
basic_storage(basic_storage &&other) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Entity, Entity, Allocator >inline
begin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline
bind_any(any) noexceptentt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
bump(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
capacity() const noexceptentt::basic_sparse_set< Entity, Allocator >inlinevirtual
cbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
cend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
clear()entt::basic_sparse_set< Entity, Allocator >inline
compact()entt::basic_sparse_set< Entity, Allocator >inline
basic_storage()entt::basic_storage< Entity, Entity, Allocator >inline
basic_storage(const allocator_type &allocator)entt::basic_storage< Entity, Entity, Allocator >inlineexplicit
basic_storage(const basic_storage &)=deleteentt::basic_storage< Entity, Entity, Allocator >
basic_storage(basic_storage &&other) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Entity, Entity, Allocator >inline
begin() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
begin() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::bind(Type &&value) noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::bind_any(any) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
entt::basic_sparse_set::bind_any(any) noexceptentt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
entt::bump(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::bump(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
capacity() const noexcept overrideentt::basic_storage< Entity, Entity, Allocator >inlinevirtual
cbegin() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
cend() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::clear()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::clear()entt::basic_sparse_set< Entity, Allocator >inline
entt::compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::compact()entt::basic_sparse_set< Entity, Allocator >inline
const_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
const_iterator typedefentt::basic_sparse_set< Entity, Allocator >
const_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
const_iterator typedefentt::basic_storage< Entity, Entity, Allocator >
const_pointer typedefentt::basic_storage< Entity, Entity, Allocator >
const_reverse_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
const_reverse_iterator typedefentt::basic_sparse_set< Entity, Allocator >
contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
contiguous() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
crbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
crend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
data() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
each() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
each() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
element_type typedefentt::basic_storage< Entity, Entity, Allocator >
const_reverse_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
const_reverse_iterator typedefentt::basic_storage< Entity, Entity, Allocator >
entt::contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::contiguous() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::contiguous() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
crbegin() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
crend() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::data() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::data() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
difference_type typedefentt::basic_storage< Entity, Entity, Allocator >
difference_type typedefentt::basic_storage< Entity, Entity, Allocator >
each() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
each() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
each() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
each() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
element_type typedefentt::basic_storage< Entity, Entity, Allocator >
element_type typedefentt::basic_storage< Entity, Entity, Allocator >
emplace()entt::basic_storage< Entity, Entity, Allocator >inline
emplace(const entity_type hint)entt::basic_storage< Entity, Entity, Allocator >inline
empty() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
end() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entity_type typedefentt::basic_storage< Entity, Entity, Allocator >
erase(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
erase(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
extent() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
find(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
free_list() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
free_list(const size_type value) noexceptentt::basic_sparse_set< Entity, Allocator >inline
get(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get_allocator() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
in_place_pop(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
index(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
insert(It first, It last)entt::basic_storage< Entity, Entity, Allocator >inline
iterable typedefentt::basic_storage< Entity, Entity, Allocator >
iterator typedefentt::basic_sparse_set< Entity, Allocator >
emplace(const entity_type entt, Args &&...args)entt::basic_storage< Entity, Entity, Allocator >inline
entt::empty() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::empty() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
end() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
end() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entity_type typedefentt::basic_storage< Entity, Entity, Allocator >
entity_type typedefentt::basic_storage< Entity, Entity, Allocator >
entt::erase(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::erase(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::erase(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::erase(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
entt::extent() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::extent() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::find(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::find(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::free_list() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::free_list(const size_type value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::free_list() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::free_list(const size_type value) noexceptentt::basic_sparse_set< Entity, Allocator >inline
generate()entt::basic_storage< Entity, Entity, Allocator >inline
generate(const entity_type hint)entt::basic_storage< Entity, Entity, Allocator >inline
generate(It first, It last)entt::basic_storage< Entity, Entity, Allocator >inline
get(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get(const entity_type entt) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get_allocator() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
get_as_tuple(const entity_type entt) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::in_place_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
entt::basic_sparse_set::in_place_pop(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
entt::index(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::index(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
insert(It first, It last)entt::basic_storage< Entity, Entity, Allocator >inline
insert(It first, It last, const value_type &value={})entt::basic_storage< Entity, Entity, Allocator >inline
insert(EIt first, EIt last, CIt from)entt::basic_storage< Entity, Entity, Allocator >inline
iterable typedefentt::basic_storage< Entity, Entity, Allocator >
iterable typedefentt::basic_storage< Entity, Entity, Allocator >
iterator typedefentt::basic_storage< Entity, Entity, Allocator >
operator=(const basic_storage &)=deleteentt::basic_storage< Entity, Entity, Allocator >
operator=(basic_storage &&other) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
operator=(const basic_storage &)=deleteentt::basic_storage< Entity, Entity, Allocator >
operator=(basic_storage &&other) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, Allocator >
entt::basic_sparse_set::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, Allocator >inline
operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Entity, Entity, Allocator >inline
pointer typedefentt::basic_sparse_set< Entity, Allocator >
policy() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
pop(basic_iterator first, basic_iterator last)entt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
pop_all() overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
push(const entity_type entt, const void *elem=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
push(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
rbegin() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
reach() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reach() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
remove(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
remove(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
rend() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
reserve(const size_type cap)entt::basic_sparse_set< Entity, Allocator >inlinevirtual
entt::operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Entity, Entity, Allocator >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Entity, Entity, Allocator >inline
pointer typedefentt::basic_storage< Entity, Entity, Allocator >
entt::policy() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::policy() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
pop(underlying_iterator first, underlying_iterator last) overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
pop_all() overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
pop_all() overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
entt::push(const entity_type entt, const void *elem=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::push(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::push(const entity_type entt, const void *elem=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::push(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
raw() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
raw() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
rbegin() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
rbegin() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reach() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reach() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reach() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reach() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::remove(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::remove(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::remove(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::remove(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
rend() const noexceptentt::basic_storage< Entity, Entity, Allocator >inline
rend() noexceptentt::basic_storage< Entity, Entity, Allocator >inline
reserve(const size_type cap) overrideentt::basic_storage< Entity, Entity, Allocator >inlinevirtual
reverse_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
reverse_iterator typedefentt::basic_sparse_set< Entity, Allocator >
shrink_to_fit()entt::basic_sparse_set< Entity, Allocator >inlinevirtual
size() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
reverse_iterable typedefentt::basic_storage< Entity, Entity, Allocator >
reverse_iterator typedefentt::basic_storage< Entity, Entity, Allocator >
shrink_to_fit() overrideentt::basic_storage< Entity, Entity, Allocator >inlinevirtual
entt::size() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::size() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
size_type typedefentt::basic_storage< Entity, Entity, Allocator >
sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, Allocator >inline
sort_as(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, Allocator >inline
storage_policyentt::basic_storage< Entity, Entity, Allocator >static
swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, Allocator >inline
swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, Allocator >inline
swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
try_emplace(const Entity hint, const bool, const void *) overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
type() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
value(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
value(const entity_type entt) noexceptentt::basic_sparse_set< Entity, Allocator >inline
value_type typedefentt::basic_storage< Entity, Entity, Allocator >
version_type typedefentt::basic_sparse_set< Entity, Allocator >
~basic_sparse_set()entt::basic_sparse_set< Entity, Allocator >inlinevirtual
size_type typedefentt::basic_storage< Entity, Entity, Allocator >
entt::sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, Allocator >inline
entt::sort_as(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::sort_as(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
entt::sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, Allocator >inline
start_from(const entity_type hint)entt::basic_storage< Entity, Entity, Allocator >inline
storage_policyentt::basic_storage< Entity, Entity, Allocator >static
storage_policyentt::basic_storage< Entity, Entity, Allocator >static
swap(basic_storage &other) noexceptentt::basic_storage< Entity, Entity, Allocator >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
entt::basic_sparse_set::swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
entt::swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, Allocator >inline
entt::swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
entt::basic_sparse_set::swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, Allocator >inlineprotected
try_emplace(const Entity hint, const bool, const void *) overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
try_emplace(const Entity entt, const bool force_back, const void *value) overrideentt::basic_storage< Entity, Entity, Allocator >inlineprotectedvirtual
entt::type() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::type() const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::value(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::value(const entity_type entt) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entt::basic_sparse_set::value(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, Allocator >inline
entt::basic_sparse_set::value(const entity_type entt) noexceptentt::basic_sparse_set< Entity, Allocator >inline
value_type typedefentt::basic_storage< Entity, Entity, Allocator >
value_type typedefentt::basic_storage< Entity, Entity, Allocator >
entt::version_type typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
entt::basic_sparse_set::version_type typedefentt::basic_sparse_set< Entity, Allocator >
entt::~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
entt::basic_sparse_set::~basic_sparse_set()entt::basic_sparse_set< Entity, Allocator >inlinevirtual
~basic_storage() override=defaultentt::basic_storage< Entity, Entity, Allocator >
~basic_storage() overrideentt::basic_storage< Entity, Entity, Allocator >inline
+ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html index 82b64d8e6..2e384e7c4 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_storage< Entity, Entity, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -94,9 +107,11 @@ Inheritance diagram for entt::basic_storage< Entity, Entity, Allocator >:<
Inheritance graph
- - - + + + + +
[legend]
@@ -104,70 +119,160 @@ Collaboration diagram for entt::basic_storage< Entity, Entity, Allocator >
Collaboration graph
- - - + + + + +
[legend]
- + - + - + - + - + - + - + + + + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using base_type = basic_sparse_set<Entity, Allocator>
using base_type = basic_sparse_set<Entity, Allocator>
 Base type.
 
using element_type = Entity
using element_type = Entity
 Element type.
 
using value_type = void
using value_type = void
 Type of the objects assigned to entities.
 
using entity_type = Entity
using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
 Extended iterable storage proxy.
 
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
 Constant extended iterable storage proxy.
 
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, Allocator >
using allocator_type = Allocator
using allocator_type
 Allocator type.
 
using base_type
 Base type.
 
using element_type
 Element type.
 
using value_type
 Type of the objects assigned to entities.
 
using entity_type
 Underlying entity identifier.
 
using size_type
 Unsigned integer type.
 
using difference_type
 Signed integer type.
 
using pointer
 Pointer type to contained elements.
 
using const_pointer
 Constant pointer type to contained elements.
 
using iterator
 Random access iterator type.
 
using const_iterator
 Constant random access iterator type.
 
using reverse_iterator
 Reverse iterator type.
 
using const_reverse_iterator
 Constant reverse iterator type.
 
using iterable
 Extended iterable storage proxy.
 
using const_iterable
 Constant extended iterable storage proxy.
 
using reverse_iterable
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using allocator_type
 Allocator type.
 
using entity_type = typename traits_type::value_type
using entity_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
using version_type
 Underlying version type.
 
using size_type = std::size_t
using size_type
 Unsigned integer type.
 
using pointer = typename packed_container_type::const_pointer
using difference_type
 Signed integer type.
 
using pointer
 Pointer type to contained entities.
 
using iterator = basic_iterator
using iterator
 Random access iterator type.
 
using const_iterator = iterator
using const_iterator
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
using reverse_iterator
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using const_reverse_iterator
 Constant reverse iterator type.
 
- Public Types inherited from entt::basic_sparse_set< Entity, Allocator >
using allocator_type = Allocator
 Allocator type.
 
using entity_type = typename traits_type::value_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
 Underlying version type.
 
using size_type = std::size_t
 Unsigned integer type.
 
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using pointer = typename packed_container_type::const_pointer
 Pointer type to contained entities.
 
using iterator = basic_iterator
 Random access iterator type.
 
using const_iterator = iterator
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 Constant reverse iterator type.
 
@@ -176,274 +281,565 @@ Public Member Functions - + +  - + - + +  - + - + - + - + + + + + + + + + + + - + - + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + +  - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - + - + - - - - - - - - + + + +
 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 basic_storage (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
basic_storage (const basic_storage &)=delete
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept
 basic_storage (basic_storage &&other) noexcept
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_storage () override=default
~basic_storage () override=default
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept
basic_storageoperator= (basic_storage &&other) noexcept
 Move assignment operator.
 
void get (const entity_type entt) const noexcept
void get (const entity_type entt) const noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple get_as_tuple (const entity_type entt) const noexcept
std::tuple get_as_tuple (const entity_type entt) const noexcept
 Returns an empty tuple.
 
entity_type generate ()
 Creates a new identifier or recycles a destroyed one.
 
entity_type generate (const entity_type hint)
 Creates a new identifier or recycles a destroyed one.
 
template<typename It>
void generate (It first, It last)
 Assigns each element in a range an identifier.
 
entity_type emplace ()
 Creates a new identifier or recycles a destroyed one.
 
entity_type emplace (const entity_type hint)
entity_type emplace (const entity_type hint)
 Creates a new identifier or recycles a destroyed one.
 
template<typename... Func>
void patch (const entity_type entt, Func &&...func)
void patch (const entity_type entt, Func &&...func)
 Updates a given identifier.
 
template<typename It >
void insert (It first, It last)
template<typename It>
void insert (It first, It last)
 Assigns each element in a range an identifier.
 
iterable each () noexcept
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
void start_from (const entity_type hint)
 Sets the starting identifier for generation.
 
 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
 ~basic_storage () override
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept
 Move assignment operator.
 
void swap (basic_storage &other) noexcept
 Exchanges the contents with those of a given storage.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void reserve (const size_type cap) override
 Increases the capacity of a storage.
 
size_type capacity () const noexcept override
 Returns the number of elements that a storage has currently allocated space for.
 
void shrink_to_fit () override
 Requests the removal of unused capacity.
 
const_pointer raw () const noexcept
 Direct access to the array of objects.
 
pointer raw () noexcept
 Direct access to the array of objects.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
 
const value_typeget (const entity_type entt) const noexcept
 Returns the object assigned to an entity.
 
value_typeget (const entity_type entt) noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple< const value_type & > get_as_tuple (const entity_type entt) const noexcept
 Returns the object assigned to an entity as a tuple.
 
std::tuple< value_type & > get_as_tuple (const entity_type entt) noexcept
 Returns an empty tuple.
 
value_typeemplace (const entity_type entt, Args &&...args)
 Assigns an entity to a storage and constructs its object.
 
value_typepatch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
iterator insert (It first, It last, const value_type &value={})
 Assigns one or more entities to a storage and constructs their objects from a given instance.
 
iterator insert (EIt first, EIt last, CIt from)
 Assigns one or more entities to a storage and constructs their objects from a given range.
 
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
basic_sparse_set (const basic_sparse_set &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (const basic_sparse_set &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other) noexcept
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
 Returns data on the free list whose meaning depends on the mode.
 
void free_list (const size_type value) noexcept
 Sets data on the free list whose meaning depends on the mode.
 
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location.
 
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
void * value (const entity_type entt) noexcept
 
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
iterator sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
 Returned value type, if any.
 
void bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, Allocator >
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
basic_sparse_set (const basic_sparse_set &)=delete
basic_sparse_set (const basic_sparse_set &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (const basic_sparse_set &)=delete
basic_sparse_setoperator= (const basic_sparse_set &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other) noexcept
void swap (basic_sparse_set &other) noexcept
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
size_type free_list () const noexcept
 Returns data on the free list whose meaning depends on the mode.
 
void free_list (const size_type value) noexcept
void free_list (const size_type value) noexcept
 Sets data on the free list whose meaning depends on the mode.
 
virtual void reserve (const size_type cap)
 Increases the capacity of a sparse set.
 
virtual size_type capacity () const noexcept
 Returns the number of elements that a sparse set has currently allocated space for.
 
virtual void shrink_to_fit ()
 Requests the removal of unused capacity.
 
size_type extent () const noexcept
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
reverse_iterator rbegin () const noexcept
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rend () const noexcept
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_iterator find (const entity_type entt) const noexcept
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type operator[] (const size_type pos) const noexcept
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location.
 
const voidvalue (const entity_type entt) const noexcept
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
voidvalue (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
void * value (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
 
iterator push (const entity_type entt, const void *elem=nullptr)
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
template<typename It >
iterator push (It first, It last)
template<typename It>
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
template<typename It >
void erase (It first, It last)
template<typename It>
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
template<typename It >
size_type remove (It first, It last)
template<typename It>
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
template<typename Compare , typename Sort = std_sort, typename... Args>
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Compare, typename Sort = std_sort, typename... Args>
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
template<typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
template<typename Compare, typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
template<typename It >
iterator sort_as (It first, It last)
template<typename It>
iterator sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void clear ()
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
const type_infotype () const noexcept
 Returned value type, if any.
 
template<typename Type >
std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
template<typename Type >
std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
template<typename Type>
void bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
- + + + +

Static Public Attributes

static constexpr deletion_policy storage_policy = deletion_policy::swap_only
static constexpr deletion_policy storage_policy = deletion_policy::swap_only
 Storage deletion policy.
 
static constexpr deletion_policy storage_policy
 Storage deletion policy.
 
- + - + - - + + + + + + + + + + + - + - + - - - - + + + + + + + + + + + + + +

Protected Member Functions

void pop_all () override
void pop_all () override
 Erases all entities of a storage.
 
underlying_iterator try_emplace (const Entity hint, const bool, const void *) override
underlying_iterator try_emplace (const Entity hint, const bool, const void *) override
 Assigns an entity to a storage.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, Allocator >
void swap_only (const basic_iterator it)
void pop (underlying_iterator first, underlying_iterator last) override
 Erases entities from a storage.
 
void pop_all () override
 Erases all entities of a storage.
 
underlying_iterator try_emplace (const Entity entt, const bool force_back, const void *value) override
 Assigns an entity to a storage.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void pop (basic_iterator first, basic_iterator last)
 Erases entities from a sparse set.
 
virtual void bind_any (any) noexcept
virtual void bind_any (any) noexcept
 Forwards variables to derived classes, if any.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, Allocator >
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void bind_any (any) noexcept
 Forwards variables to derived classes, if any.
 
+ + + + - +

Additional Inherited Members

- Protected Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using basic_iterator
 Random access iterator type.
 
- Protected Types inherited from entt::basic_sparse_set< Entity, Allocator >
using basic_iterator = internal::sparse_set_iterator<packed_container_type>
using basic_iterator = internal::sparse_set_iterator<packed_container_type>
 Random access iterator type.
 

Detailed Description

-
template<typename Entity, typename Allocator>
+
template<typename Entity, typename Allocator>
class entt::basic_storage< Entity, Entity, Allocator >

Swap-only entity storage specialization.

Template Parameters
@@ -453,261 +849,587 @@ class entt::basic_storage< Entity, Entity, Allocator >

Swap-only e -

Definition at line 974 of file storage.hpp.

+

Definition at line 987 of file storage.hpp.

Member Typedef Documentation

- -

◆ allocator_type

+ +

◆ allocator_type [1/2]

-
-template<typename Entity , typename Allocator >
- +
using entt::basic_storage< Entity, Entity, Allocator >::allocator_type = Allocatorusing entt::basic_storage< Entity, Entity, Allocator, typename >::allocator_type

Allocator type.

-

Definition at line 1010 of file storage.hpp.

+

Definition at line 398 of file storage.hpp.

- -

◆ base_type

+ +

◆ allocator_type [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::base_type = basic_sparse_set<Entity, Allocator>using entt::basic_storage< Entity, Entity, Allocator >::allocator_type = Allocator
+
+ +

Allocator type.

+ +

Definition at line 1029 of file storage.hpp.

+ +
+
+ +

◆ base_type [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::base_type

Base type.

-

Definition at line 1012 of file storage.hpp.

+

Definition at line 400 of file storage.hpp.

- -

◆ const_iterable

+ +

◆ base_type [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>using entt::basic_storage< Entity, Entity, Allocator >::base_type = basic_sparse_set<Entity, Allocator>
+
+ +

Base type.

+ +

Definition at line 1031 of file storage.hpp.

+ +
+
+ +

◆ const_iterable [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::const_iterable

Constant extended iterable storage proxy.

-

Definition at line 1024 of file storage.hpp.

+

Definition at line 426 of file storage.hpp.

- -

◆ const_reverse_iterable

+ +

◆ const_iterable [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>using entt::basic_storage< Entity, Entity, Allocator >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
+
+ +

Constant extended iterable storage proxy.

+ +

Definition at line 1045 of file storage.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::const_iterator
+
+ +

Constant random access iterator type.

+ +

Definition at line 418 of file storage.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::const_pointer
+
+ +

Constant pointer type to contained elements.

+ +

Definition at line 414 of file storage.hpp.

+ +
+
+ +

◆ const_reverse_iterable [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::const_reverse_iterable

Constant extended reverse iterable storage proxy.

-

Definition at line 1028 of file storage.hpp.

+

Definition at line 430 of file storage.hpp.

- -

◆ element_type

+ +

◆ const_reverse_iterable [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::element_type = Entityusing entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
+
+ +

Constant extended reverse iterable storage proxy.

+ +

Definition at line 1049 of file storage.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::const_reverse_iterator
+
+ +

Constant reverse iterator type.

+ +

Definition at line 422 of file storage.hpp.

+ +
+
+ +

◆ difference_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::difference_type
+
+ +

Signed integer type.

+ +

Definition at line 410 of file storage.hpp.

+ +
+
+ +

◆ difference_type [2/2]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 1041 of file storage.hpp.

+ +
+
+ +

◆ element_type [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::element_type

Element type.

-

Definition at line 1014 of file storage.hpp.

+

Definition at line 402 of file storage.hpp.

- -

◆ entity_type

+ +

◆ element_type [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::entity_type = Entityusing entt::basic_storage< Entity, Entity, Allocator >::element_type = Entity
+
+ +

Element type.

+ +

Definition at line 1033 of file storage.hpp.

+ +
+
+ +

◆ entity_type [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::entity_type

Underlying entity identifier.

-

Definition at line 1018 of file storage.hpp.

+

Definition at line 406 of file storage.hpp.

- -

◆ iterable

+ +

◆ entity_type [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>using entt::basic_storage< Entity, Entity, Allocator >::entity_type = Entity
+
+ +

Underlying entity identifier.

+ +

Definition at line 1037 of file storage.hpp.

+ +
+ + +

◆ iterable [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::iterable

Extended iterable storage proxy.

-

Definition at line 1022 of file storage.hpp.

+

Definition at line 424 of file storage.hpp.

- -

◆ reverse_iterable

+ +

◆ iterable [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>using entt::basic_storage< Entity, Entity, Allocator >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
+
+ +

Extended iterable storage proxy.

+ +

Definition at line 1043 of file storage.hpp.

+ +
+ + +

◆ iterator

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::iterator
+
+ +

Random access iterator type.

+ +

Definition at line 416 of file storage.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::pointer
+
+ +

Pointer type to contained elements.

+ +

Definition at line 412 of file storage.hpp.

+ +
+
+ +

◆ reverse_iterable [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::reverse_iterable

Extended reverse iterable storage proxy.

-

Definition at line 1026 of file storage.hpp.

+

Definition at line 428 of file storage.hpp.

- -

◆ size_type

+ +

◆ reverse_iterable [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::size_type = std::size_tusing entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
+
+ +

Extended reverse iterable storage proxy.

+ +

Definition at line 1047 of file storage.hpp.

+ +
+ + +

◆ reverse_iterator

+ +
+
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::reverse_iterator
+
+ +

Reverse iterator type.

+ +

Definition at line 420 of file storage.hpp.

+ +
+
+ +

◆ size_type [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::size_type

Unsigned integer type.

-

Definition at line 1020 of file storage.hpp.

+

Definition at line 408 of file storage.hpp.

- -

◆ value_type

+ +

◆ size_type [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- + + +
using entt::basic_storage< Entity, Entity, Allocator >::value_type = voidusing entt::basic_storage< Entity, Entity, Allocator >::size_type = std::size_t
+
+ +

Unsigned integer type.

+ +

Definition at line 1039 of file storage.hpp.

+ +
+ + +

◆ value_type [1/2]

+ +
+
+ + +
using entt::basic_storage< Entity, Entity, Allocator, typename >::value_type

Type of the objects assigned to entities.

-

Definition at line 1016 of file storage.hpp.

+

Definition at line 404 of file storage.hpp.

+ +
+
+ +

◆ value_type [2/2]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Entity, Entity, Allocator >::value_type = void
+
+ +

Type of the objects assigned to entities.

+ +

Definition at line 1035 of file storage.hpp.

Constructor & Destructor Documentation

-

◆ basic_storage() [1/4]

+

◆ basic_storage() [1/8]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inline
- + - +
entt::basic_storage< Entity, Entity, Allocator >::basic_storage entt::basic_storage< Entity, Entity, Allocator >::basic_storage ())
-inline

Default constructor.

-

Definition at line 1033 of file storage.hpp.

+

Definition at line 1054 of file storage.hpp.

-

◆ basic_storage() [2/4]

+

◆ basic_storage() [2/8]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlineexplicit
- + - +
entt::basic_storage< Entity, Entity, Allocator >::basic_storage entt::basic_storage< Entity, Entity, Allocator >::basic_storage (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -720,31 +1442,31 @@ template<Definition at line 1041 of file storage.hpp.

+

Definition at line 1062 of file storage.hpp.

-

◆ basic_storage() [3/4]

+

◆ basic_storage() [3/8]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenoexcept
- + - +
entt::basic_storage< Entity, Entity, Allocator >::basic_storage entt::basic_storage< Entity, Entity, Allocator >::basic_storage (basic_storage< Entity, Entity, Allocator > && other)basic_storage< Entity, Entity, Allocator > && other)
-inlinenoexcept
@@ -757,35 +1479,35 @@ template<Definition at line 1051 of file storage.hpp.

+

Definition at line 1073 of file storage.hpp.

-

◆ basic_storage() [4/4]

+

◆ basic_storage() [4/8]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inline
- + - + - +
entt::basic_storage< Entity, Entity, Allocator >::basic_storage entt::basic_storage< Entity, Entity, Allocator >::basic_storage (basic_storage< Entity, Entity, Allocator > && other, basic_storage< Entity, Entity, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -799,65 +1521,511 @@ template<Definition at line 1060 of file storage.hpp.

+

Definition at line 1084 of file storage.hpp.

-

Member Function Documentation

- -

◆ each() [1/2]

+ +

◆ basic_storage() [5/8]

-
-template<typename Entity , typename Allocator >
- - -
- + - - - -
const_iterable entt::basic_storage< Entity, Entity, Allocator >::each entt::basic_storage< Entity, Entity, Allocator, typename >::basic_storage () const
-
-inlinenoexcept
-
- -

Returns an iterable object to use to visit a storage.

-

The iterable object returns a tuple that contains the current entity.

-
Returns
An iterable object to use to visit the storage.
- -

Definition at line 1177 of file storage.hpp.

- -
-
- -

◆ each() [2/2]

- -
-
-
-template<typename Entity , typename Allocator >
- - - +inline + +
- - - - - +
iterable entt::basic_storage< Entity, Entity, Allocator >::each ())
-inlinenoexcept
+
+ +

Default constructor.

+ +

Definition at line 435 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [6/8]

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Entity, Entity, Allocator, typename >::basic_storage (const allocator_type & allocator)
+
+inlineexplicit
+
+ +

Constructs an empty storage with a given allocator.

+
Parameters
+ + +
allocatorThe allocator to use.
+
+
+ +

Definition at line 442 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [7/8]

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Entity, Entity, Allocator, typename >::basic_storage (basic_storage< Entity, Entity, Allocator > && other)
+
+inlinenoexcept
+
+ +

Move constructor.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+ +

Definition at line 454 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [8/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
entt::basic_storage< Entity, Entity, Allocator, typename >::basic_storage (basic_storage< Entity, Entity, Allocator > && other,
const allocator_type & allocator )
+
+inline
+
+ +

Allocator-extended move constructor.

+
Parameters
+ + + +
otherThe instance to move from.
allocatorThe allocator to use.
+
+
+ +

Definition at line 465 of file storage.hpp.

+ +
+
+ +

◆ ~basic_storage()

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Entity, Entity, Allocator, typename >::~basic_storage ()
+
+inlineoverride
+
+ +

Default destructor.

+ +

Definition at line 474 of file storage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::begin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 569 of file storage.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
iterator entt::basic_storage< Entity, Entity, Allocator, typename >::begin ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 574 of file storage.hpp.

+ +
+
+ +

◆ capacity()

+ +
+
+ + + + + +
+ + + + + + + +
size_type entt::basic_storage< Entity, Entity, Allocator, typename >::capacity () const
+
+inlinenodiscardoverridevirtualnoexcept
+
+ +

Returns the number of elements that a storage has currently allocated space for.

+
Returns
Capacity of the storage.
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 533 of file storage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::cbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 563 of file storage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::cend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
+ +

Definition at line 584 of file storage.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::crbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 605 of file storage.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::crend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 624 of file storage.hpp.

+ +
+
+ +

◆ each() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterable entt::basic_storage< Entity, Entity, Allocator, typename >::each () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 767 of file storage.hpp.

+ +
+
+ +

◆ each() [2/4]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
const_iterable entt::basic_storage< Entity, Entity, Allocator >::each () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 1234 of file storage.hpp.

+ +
+
+ +

◆ each() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
iterable entt::basic_storage< Entity, Entity, Allocator, typename >::each ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity and a reference to its element.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 762 of file storage.hpp.

+ +
+
+ +

◆ each() [4/4]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + +
+ + + + + + + +
iterable entt::basic_storage< Entity, Entity, Allocator >::each ()
+
+inlinenodiscardnoexcept
@@ -866,31 +2034,31 @@ template<
Returns
An iterable object to use to visit the storage.
-

Definition at line 1172 of file storage.hpp.

+

Definition at line 1229 of file storage.hpp.

-

◆ emplace() [1/2]

+

◆ emplace() [1/3]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inline
- + - +
entity_type entt::basic_storage< Entity, Entity, Allocator >::emplace entity_type entt::basic_storage< Entity, Entity, Allocator >::emplace ())
-inline
@@ -898,31 +2066,79 @@ template<
Returns
A valid identifier.
-

Definition at line 1111 of file storage.hpp.

+

Definition at line 1182 of file storage.hpp.

- -

◆ emplace() [2/2]

+ +

◆ emplace() [2/3]

-
-template<typename Entity , typename Allocator >
+ + +
- + - + + + + + + + +
entity_type entt::basic_storage< Entity, Entity, Allocator >::emplace value_type & entt::basic_storage< Entity, Entity, Allocator, typename >::emplace (const entity_type hint)const entity_type entt,
Args &&... args )
+
+inline
+
+ +

Assigns an entity to a storage and constructs its object.

+
Warning
Attempting to use an entity that already belongs to the storage results in undefined behavior.
+
Template Parameters
+ + +
ArgsTypes of arguments to use to construct the object.
+
+
+
Parameters
+ + + +
enttA valid identifier.
argsParameters to use to construct an object for the entity.
+
+
+
Returns
A reference to the newly created object.
+ +

Definition at line 684 of file storage.hpp.

+ +
+
+ +

◆ emplace() [3/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + +inline
+ + + + +
entity_type entt::basic_storage< Entity, Entity, Allocator >::emplace (const entity_type hint)
-inline
@@ -937,113 +2153,168 @@ template<
Returns
A valid identifier.
-

Definition at line 1126 of file storage.hpp.

+

Definition at line 1195 of file storage.hpp.

- -

◆ get()

+ +

◆ end() [1/2]

-
-template<typename Entity , typename Allocator >
+inlinenodiscardnoexcept
- + - +
void entt::basic_storage< Entity, Entity, Allocator >::get const_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::end (const entity_type entt)) const
-inlinenoexcept
-

Returns the object assigned to an entity, that is void.

-
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
-
Parameters
- - -
enttA valid identifier.
-
-
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 1093 of file storage.hpp.

+

Definition at line 589 of file storage.hpp.

- -

◆ get_as_tuple()

+ +

◆ end() [2/2]

-
-template<typename Entity , typename Allocator >
+inlinenodiscardnoexcept
- + - - + +
std::tuple entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple iterator entt::basic_storage< Entity, Entity, Allocator, typename >::end (const entity_type entt) const)
-inlinenoexcept
-

Returns an empty tuple.

-
Parameters
- - -
enttA valid identifier.
-
-
-
Returns
Returns an empty tuple.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 1102 of file storage.hpp.

+

Definition at line 594 of file storage.hpp.

- -

◆ insert()

+ +

◆ generate() [1/3]

-template<typename Entity , typename Allocator >
-
-template<typename It >
+template<typename Entity, typename Allocator>
+ + +
- + - + + + +
void entt::basic_storage< Entity, Entity, Allocator >::insert entity_type entt::basic_storage< Entity, Entity, Allocator >::generate (It first, )
+
+inline
+
+ +

Creates a new identifier or recycles a destroyed one.

+
Returns
A valid identifier.
+ +

Definition at line 1136 of file storage.hpp.

+ +
+ + +

◆ generate() [2/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
entity_type entt::basic_storage< Entity, Entity, Allocator >::generate (const entity_type hint)
+
+inline
+
+ +

Creates a new identifier or recycles a destroyed one.

+

If the requested identifier isn't in use, the suggested one is used. Otherwise, a new identifier is returned.

+
Parameters
+ + +
hintRequired identifier.
+
+
+
Returns
A valid identifier.
+ +

Definition at line 1151 of file storage.hpp.

+ +
+
+ +

◆ generate() [3/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+
+template<typename It>
+ + + +inline
+ + + + + - +
void entt::basic_storage< Entity, Entity, Allocator >::generate (It first,
It last )It last )
-inline
@@ -1063,31 +2334,439 @@ template<Definition at line 1155 of file storage.hpp.

+

Definition at line 1168 of file storage.hpp.

- -

◆ operator=() [1/2]

+ +

◆ get() [1/3]

-
-template<typename Entity , typename Allocator >
+ + +
- + - + + + +
basic_storage & entt::basic_storage< Entity, Entity, Allocator >::operator= const value_type & entt::basic_storage< Entity, Entity, Allocator, typename >::get (basic_storage< Entity, Entity, Allocator > && other)const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns the object assigned to an entity.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
The object assigned to the entity.
+ +

Definition at line 648 of file storage.hpp.

+ +
+
+ +

◆ get() [2/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator >::get (const entity_type entt) const
+
+inlinenoexcept
+
+ +

Returns the object assigned to an entity, that is void.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+ +

Definition at line 1118 of file storage.hpp.

+ +
+
+ +

◆ get() [3/3]

+ +
+
+ + + +inlinenodiscardnoexcept + +
+ + + + +
value_type & entt::basic_storage< Entity, Entity, Allocator, typename >::get (const entity_type entt)
-inlinenoexcept
+
+ +

Returns the object assigned to an entity, that is void.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+ +

Definition at line 653 of file storage.hpp.

+ +
+
+ +

◆ get_allocator()

+ +
+
+ + + + + +
+ + + + + + + +
allocator_type entt::basic_storage< Entity, Entity, Allocator, typename >::get_allocator () const
+
+inlinenodiscardconstexprnoexcept
+
+ +

Returns the associated allocator.

+
Returns
The associated allocator.
+ +

Definition at line 509 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
std::tuple< const value_type & > entt::basic_storage< Entity, Entity, Allocator, typename >::get_as_tuple (const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns the object assigned to an entity as a tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
The object assigned to the entity as a tuple.
+ +

Definition at line 662 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [2/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
std::tuple entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple (const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns an empty tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
Returns an empty tuple.
+ +

Definition at line 1127 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
std::tuple< value_type & > entt::basic_storage< Entity, Entity, Allocator, typename >::get_as_tuple (const entity_type entt)
+
+inlinenodiscardnoexcept
+
+ +

Returns an empty tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
Returns an empty tuple.
+ +

Definition at line 667 of file storage.hpp.

+ +
+
+ +

◆ insert() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
iterator entt::basic_storage< Entity, Entity, Allocator, typename >::insert (EIt first,
EIt last,
CIt from )
+
+inline
+
+ +

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

+
See also
construct
+
Template Parameters
+ + + +
EItType of input iterator.
CItType of input iterator.
+
+
+
Parameters
+ + + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
fromAn iterator to the first element of the range of objects.
+
+
+
Returns
Iterator pointing to the first element inserted, if any.
+ +

Definition at line 746 of file storage.hpp.

+ +
+
+ +

◆ insert() [2/3]

+ +
+
+
+template<typename Entity, typename Allocator>
+
+template<typename It>
+ + + + + +
+ + + + + + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator >::insert (It first,
It last )
+
+inline
+
+ +

Assigns each element in a range an identifier.

+
Template Parameters
+ + +
ItType of mutable forward iterator.
+
+
+
Parameters
+ + + +
firstAn iterator to the first element of the range to generate.
lastAn iterator past the last element of the range to generate.
+
+
+ +

Definition at line 1218 of file storage.hpp.

+ +
+
+ +

◆ insert() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
iterator entt::basic_storage< Entity, Entity, Allocator, typename >::insert (It first,
It last,
const value_type & value = {} )
+
+inline
+
+ +

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.
+
Template Parameters
+ + +
ItType of input iterator.
+
+
+
Parameters
+ + + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
valueAn instance of the object to construct.
+
+
+
Returns
Iterator pointing to the first element inserted, if any.
+ +

Definition at line 724 of file storage.hpp.

+ +
+
+ +

◆ operator=() [1/4]

+ +
+
+ + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Entity, Entity, Allocator, typename >::operator= (basic_storage< Entity, Entity, Allocator > && other)
+
+inlinenoexcept
@@ -1101,31 +2780,67 @@ template<
Returns
This storage.
-

Definition at line 1078 of file storage.hpp.

+

Definition at line 489 of file storage.hpp.

- -

◆ operator=() [2/2]

+ +

◆ operator=() [2/4]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenoexcept + +
- + - +
basic_storage & entt::basic_storage< Entity, Entity, Allocator >::operator= basic_storage & entt::basic_storage< Entity, Entity, Allocator >::operator= (const basic_storage< Entity, Entity, Allocator > & )basic_storage< Entity, Entity, Allocator > && other)
-delete
+
+ +

Move assignment operator.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+
Returns
This storage.
+ +

Definition at line 1103 of file storage.hpp.

+ +
+ + +

◆ operator=() [3/4]

+ +
+
+ + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Entity, Entity, Allocator, typename >::operator= (const basic_storage< Entity, Entity, Allocator > & )
+
+delete
@@ -1135,23 +2850,49 @@ template< -

◆ patch()

+ +

◆ operator=() [4/4]

-template<typename Entity , typename Allocator >
-
-template<typename... Func>
+template<typename Entity, typename Allocator>
+ + +
- + - + + + +
void entt::basic_storage< Entity, Entity, Allocator >::patch basic_storage & entt::basic_storage< Entity, Entity, Allocator >::operator= (const entity_type entt, const basic_storage< Entity, Entity, Allocator > & )
+
+delete
+
+ +

Default copy assignment operator, deleted on purpose.

+
Returns
This storage.
+ +
+
+ +

◆ patch() [1/2]

+ +
+
+ + + +inline + +
+ + + + + @@ -1161,7 +2902,58 @@ template<typename... Func>
value_type & entt::basic_storage< Entity, Entity, Allocator, typename >::patch (const entity_type entt,
-inline
+
+ +

Updates the instance assigned to a given entity in-place.

+
Template Parameters
+ + +
FuncTypes of the function objects to invoke.
+
+
+
Parameters
+ + + +
enttA valid identifier.
funcValid function objects.
+
+
+
Returns
A reference to the updated instance.
+ +

Definition at line 702 of file storage.hpp.

+ +
+
+ +

◆ patch() [2/2]

+ +
+
+
+template<typename Entity, typename Allocator>
+
+template<typename... Func>
+ + + +
+ + + + + + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator >::patch (const entity_type entt,
Func &&... func )
+
+inline
@@ -1181,97 +2973,321 @@ template<typename... Func>
-

Definition at line 1143 of file storage.hpp.

+

Definition at line 1206 of file storage.hpp.

- -

◆ pop_all()

+ +

◆ pop()

-
-template<typename Entity , typename Allocator >
+ + +
- + - + + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator >::pop_all void entt::basic_storage< Entity, Entity, Allocator, typename >::pop ()underlying_iterator first,
underlying_iterator last )
+
+inlineoverrideprotectedvirtual
+
+ +

Erases entities from a storage.

+
Parameters
+ + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
+
+
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 338 of file storage.hpp.

+ +
+
+ +

◆ pop_all() [1/2]

+ +
+
+ + + +inlineoverrideprotectedvirtual
+ + + + +
void entt::basic_storage< Entity, Entity, Allocator, typename >::pop_all ()
-inlineoverrideprotectedvirtual

Erases all entities of a storage.

-

Reimplemented from entt::basic_sparse_set< Entity, Allocator >.

+

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

-

Definition at line 994 of file storage.hpp.

+

Definition at line 357 of file storage.hpp.

- -

◆ reach() [1/2]

+ +

◆ pop_all() [2/2]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
- - -
- + - - - -
const_reverse_iterable entt::basic_storage< Entity, Entity, Allocator >::reach void entt::basic_storage< Entity, Entity, Allocator >::pop_all () const
-
-inlinenoexcept
-
- -

Returns a reverse iterable object to use to visit a storage.

-
See also
each
-
Returns
A reverse iterable object to use to visit the storage.
- -

Definition at line 1194 of file storage.hpp.

- -
- - -

◆ reach() [2/2]

- -
-
-
-template<typename Entity , typename Allocator >
- - - +inlineoverrideprotectedvirtual + +
- - - - - +
reverse_iterable entt::basic_storage< Entity, Entity, Allocator >::reach ())
-inlinenoexcept
+
+ +

Erases all entities of a storage.

+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 1013 of file storage.hpp.

+ +
+
+ +

◆ raw() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_pointer entt::basic_storage< Entity, Entity, Allocator, typename >::raw () const
+
+inlinenodiscardnoexcept
+
+ +

Direct access to the array of objects.

+
Returns
A pointer to the array of objects.
+ +

Definition at line 547 of file storage.hpp.

+ +
+
+ +

◆ raw() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
pointer entt::basic_storage< Entity, Entity, Allocator, typename >::raw ()
+
+inlinenodiscardnoexcept
+
+ +

Direct access to the array of objects.

+
Returns
A pointer to the array of objects.
+ +

Definition at line 552 of file storage.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::rbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 610 of file storage.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::rbegin ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 615 of file storage.hpp.

+ +
+
+ +

◆ reach() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterable entt::basic_storage< Entity, Entity, Allocator, typename >::reach () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 783 of file storage.hpp.

+ +
+
+ +

◆ reach() [2/4]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
const_reverse_iterable entt::basic_storage< Entity, Entity, Allocator >::reach () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 1252 of file storage.hpp.

+ +
+
+ +

◆ reach() [3/4]

+ +
+
+ + + +
+ + + + + + + +
reverse_iterable entt::basic_storage< Entity, Entity, Allocator, typename >::reach ()
+
+inlinenodiscardnoexcept
@@ -1280,40 +3296,324 @@ template<
See also
each
Returns
A reverse iterable object to use to visit the storage.
-

Definition at line 1189 of file storage.hpp.

+

Definition at line 778 of file storage.hpp.

- -

◆ try_emplace()

+ +

◆ reach() [4/4]

-template<typename Entity , typename Allocator >
+template<typename Entity, typename Allocator>
+inlinenodiscardnoexcept + +
- + - - - - + - - - - - -
underlying_iterator entt::basic_storage< Entity, Entity, Allocator >::try_emplace reverse_iterable entt::basic_storage< Entity, Entity, Allocator >::reach (const Entity hint,
) const bool ,
const void *  )
-inlineoverrideprotectedvirtual
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 1247 of file storage.hpp.

+ +
+ + +

◆ rend() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::rend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 629 of file storage.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::rend ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 634 of file storage.hpp.

+ +
+
+ +

◆ reserve()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator, typename >::reserve (const size_type cap)
+
+inlineoverridevirtual
+
+ +

Increases the capacity of a storage.

+

If the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.

+
Parameters
+ + +
capDesired capacity.
+
+
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 521 of file storage.hpp.

+ +
+
+ +

◆ shrink_to_fit()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator, typename >::shrink_to_fit ()
+
+inlineoverridevirtual
+
+ +

Requests the removal of unused capacity.

+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 538 of file storage.hpp.

+ +
+
+ +

◆ start_from()

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator >::start_from (const entity_type hint)
+
+inline
+
+ +

Sets the starting identifier for generation.

+

The version is ignored, regardless of the value.

+
Parameters
+ + +
hintA valid identifier.
+
+
+ +

Definition at line 1265 of file storage.hpp.

+ +
+
+ +

◆ swap()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Entity, Entity, Allocator, typename >::swap (basic_storage< Entity, Entity, Allocator > & other)
+
+inlinenoexcept
+
+ +

Exchanges the contents with those of a given storage.

+
Parameters
+ + +
otherStorage to exchange the content with.
+
+
+ +

Definition at line 499 of file storage.hpp.

+ +
+
+ +

◆ try_emplace() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
underlying_iterator entt::basic_storage< Entity, Entity, Allocator, typename >::try_emplace (const Entity entt,
const bool force_back,
const void * value )
+
+inlineoverrideprotectedvirtual
+
+ +

Assigns an entity to a storage.

+
Parameters
+ + + + +
enttA valid identifier.
valueOptional opaque value.
force_backForce back insertion.
+
+
+
Returns
Iterator pointing to the emplaced element.
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 380 of file storage.hpp.

+ +
+
+ +

◆ try_emplace() [2/2]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + +
+ + + + + + + + + + + + + + + + +
underlying_iterator entt::basic_storage< Entity, Entity, Allocator >::try_emplace (const Entity hint,
const bool ,
const void *  )
+
+inlineoverrideprotectedvirtual

Member Data Documentation

- -

◆ storage_policy

+ +

◆ storage_policy [1/2]

-
-template<typename Entity , typename Allocator >
+staticconstexpr
- +
constexpr deletion_policy entt::basic_storage< Entity, Entity, Allocator >::storage_policy = deletion_policy::swap_onlydeletion_policy entt::basic_storage< Entity, Entity, Allocator, typename >::storage_policy
-staticconstexpr

Storage deletion policy.

-

Definition at line 1030 of file storage.hpp.

+

Definition at line 432 of file storage.hpp.

+ +
+
+ +

◆ storage_policy [2/2]

+ +
+
+
+template<typename Entity, typename Allocator>
+ + + + + +
+ + + + +
deletion_policy entt::basic_storage< Entity, Entity, Allocator >::storage_policy = deletion_policy::swap_only
+
+staticconstexpr
+
+ +

Storage deletion policy.

+ +

Definition at line 1051 of file storage.hpp.

@@ -1368,7 +3694,8 @@ template< + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.map b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.map index c17112a58..3f9e1f22c 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.map +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.md5 index 80c5ed66e..7a79930ee 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.md5 +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.md5 @@ -1 +1 @@ -8e022ca9e81323ed105e354bf9b27c9b \ No newline at end of file +e1174931054b611a11924598894b80ab \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.png b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__coll__graph.png index ff2919c753057f5400d15357c2585a21f9bbc378..dafad0c1306ae3088cabc54490cf26bab43fcc9d 100644 GIT binary patch literal 4772 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 literal 2161 zcmciE_fwP08UWyrXaIAJQl-}$sv1QkC2tKcYry zM^RJ)1VWJ(MWsoQgBT!44{{2&ix1O?7aK#{;;#NGrP~bNqC$C9Ht5b z008cYLA#1GR~#wQlH%Un{`M1blJvnkpn;9emf!F=3jn0`9nrRK;rC}ASfvf3m0LC{ zA|;Fw$r^8xOr80u9u?b3v}Gn*7&l^%Pnk;!BC1AV1~ zE~1$0<(|lx8D?O|BX*%-Bf*In)P}`KCl@Zua&w};9o_~2R4TR1V~=Nr{1`(RoYZ?o zm>o9Rzsv486l#OEmyqek1L%WUN;FrTOT?c!j(?>$0HUnD32l!#I1ny$~YK@l4SNo;-<(YfY(OL`P*hH24XW20l)R6K1RI#3h}CNR>$_P{!1P+XWS z2n81UxF0XGi#@@oE!HZojo?vgZ^n4|YyGD{aNU->gEZp;;#O}~7FnZ~;Q-65wW<9S z9c4w~bn^e;6{%}otaBwzFkyH26EN-VH(h9laeBIyUjb z5w2*+H_txezu~6?cweY&+VbG)d5XIdf|&|jP0)7-1IV{0PZf2VvexZoG-7Q_<^6jMINT! zBvym%ME7Yo@jl$W0b!)iwE;A+`EfM-IoMi>^$5!&vo7$94Z@Yq)Y#A;>bAqU??+}C zx!E^b8HSLN5%$jDn@Aa1_R8A0CD z7=i#HJ1ZeKKe^r8@H|%HTaTHw3z+6+NDG-3ot|rH#08{yOhNQUn2`~YsAg|qav!dw zch`{B8rlkXIR{+>L7Yc5b42AI0bGz?#^J&OKrY{m8p@ed^jGb3CS{5jADa|Nt*k{b z9Ksvs7SE2aYgrT0#?I*}v4D&-d1Dp|ICu`O+JD*jh3%^XK=)7ozGJbb@z_f+2D2M3 zw*xAZ(IB<5r6j1JZQhN0^W4&6LQqL294eD#MghVKz z256EuhA~H4sD9t1le$V)S7yaQxnha1S4vEbhiHpWmPj%LbX8%r|HIU4HTG6RLqmmA zafi{ZjN|jeqmluUNpg)phjHb70p-==)@W# z@vS_Hah=P9s>?)y$-{NfoG!EI*xUgFCTeTR?BaU)(`nIi>?r;XUQkppmnnwr%bnZn zV%XwjgkhYvkD3d~+DJSlOwBv(9Qf@GDdwC8aq%7 zsi8ts@E0g51GC7HdW9l`A4^N6#*b$At49oeb?nlA)(boPg)Ai{r53Z3t8_s=mcmdQ zLcPo+F$0QcUxZv6%m>t4LxY7^PV+W_b7YHw)3F1W-}*du)&O1jh^%)|)dK)%V&5ng zwukE8al+~)fj^vZ9x0ROB%?*obr^!;;|F&%Z0UB`h?O#rI#z8~bFXOktrxlcr3FiUOXd(#F!@ZY&Qncw0W8#RTYfLsto#o*mXKU%KAU0&My&CWrKVpE6ajx2qtEAg|sT z%`r!wYTfzmaGl~Q&*=c{T%`KF_GFz(ysy%HDf#N?Z?p-sUJI_J1DC z<-x5-uP-2qH0X$elR!&Li^+`kX3hRr;nvalsr6Q2;L0b2&pq)U0&qNrL$mD8$Ndvl C#{>cZ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.map b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.map index c17112a58..3f9e1f22c 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.map +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.md5 index 80c5ed66e..7a79930ee 100644 --- a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.md5 +++ b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.md5 @@ -1 +1 @@ -8e022ca9e81323ed105e354bf9b27c9b \ No newline at end of file +e1174931054b611a11924598894b80ab \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.png b/classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4__inherit__graph.png index ff2919c753057f5400d15357c2585a21f9bbc378..dafad0c1306ae3088cabc54490cf26bab43fcc9d 100644 GIT binary patch literal 4772 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 literal 2161 zcmciE_fwP08UWyrXaIAJQl-}$sv1QkC2tKcYry zM^RJ)1VWJ(MWsoQgBT!44{{2&ix1O?7aK#{;;#NGrP~bNqC$C9Ht5b z008cYLA#1GR~#wQlH%Un{`M1blJvnkpn;9emf!F=3jn0`9nrRK;rC}ASfvf3m0LC{ zA|;Fw$r^8xOr80u9u?b3v}Gn*7&l^%Pnk;!BC1AV1~ zE~1$0<(|lx8D?O|BX*%-Bf*In)P}`KCl@Zua&w};9o_~2R4TR1V~=Nr{1`(RoYZ?o zm>o9Rzsv486l#OEmyqek1L%WUN;FrTOT?c!j(?>$0HUnD32l!#I1ny$~YK@l4SNo;-<(YfY(OL`P*hH24XW20l)R6K1RI#3h}CNR>$_P{!1P+XWS z2n81UxF0XGi#@@oE!HZojo?vgZ^n4|YyGD{aNU->gEZp;;#O}~7FnZ~;Q-65wW<9S z9c4w~bn^e;6{%}otaBwzFkyH26EN-VH(h9laeBIyUjb z5w2*+H_txezu~6?cweY&+VbG)d5XIdf|&|jP0)7-1IV{0PZf2VvexZoG-7Q_<^6jMINT! zBvym%ME7Yo@jl$W0b!)iwE;A+`EfM-IoMi>^$5!&vo7$94Z@Yq)Y#A;>bAqU??+}C zx!E^b8HSLN5%$jDn@Aa1_R8A0CD z7=i#HJ1ZeKKe^r8@H|%HTaTHw3z+6+NDG-3ot|rH#08{yOhNQUn2`~YsAg|qav!dw zch`{B8rlkXIR{+>L7Yc5b42AI0bGz?#^J&OKrY{m8p@ed^jGb3CS{5jADa|Nt*k{b z9Ksvs7SE2aYgrT0#?I*}v4D&-d1Dp|ICu`O+JD*jh3%^XK=)7ozGJbb@z_f+2D2M3 zw*xAZ(IB<5r6j1JZQhN0^W4&6LQqL294eD#MghVKz z256EuhA~H4sD9t1le$V)S7yaQxnha1S4vEbhiHpWmPj%LbX8%r|HIU4HTG6RLqmmA zafi{ZjN|jeqmluUNpg)phjHb70p-==)@W# z@vS_Hah=P9s>?)y$-{NfoG!EI*xUgFCTeTR?BaU)(`nIi>?r;XUQkppmnnwr%bnZn zV%XwjgkhYvkD3d~+DJSlOwBv(9Qf@GDdwC8aq%7 zsi8ts@E0g51GC7HdW9l`A4^N6#*b$At49oeb?nlA)(boPg)Ai{r53Z3t8_s=mcmdQ zLcPo+F$0QcUxZv6%m>t4LxY7^PV+W_b7YHw)3F1W-}*du)&O1jh^%)|)dK)%V&5ng zwukE8al+~)fj^vZ9x0ROB%?*obr^!;;|F&%Z0UB`h?O#rI#z8~bFXOktrxlcr3FiUOXd(#F!@ZY&Qncw0W8#RTYfLsto#o*mXKU%KAU0&My&CWrKVpE6ajx2qtEAg|sT z%`r!wYTfzmaGl~Q&*=c{T%`KF_GFz(ysy%HDf#N?Z?p-sUJI_J1DC z<-x5-uP-2qH0X$elR!&Li^+`kX3hRr;nvalsr6Q2;L0b2&pq)U0&qNrL$mD8$Ndvl C#{>cZ diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.map b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.map new file mode 100644 index 000000000..d6e328fb1 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.md5 b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.md5 new file mode 100644 index 000000000..7333c3618 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.md5 @@ -0,0 +1 @@ +001207809f23e0e7caf2c666b8f8ed2e \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.png b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co0dfa483505a4f40bc47add676480ab9c.png new file mode 100644 index 0000000000000000000000000000000000000000..5b246cac0f8258107193ed51061fe19fcbf8fa8f GIT binary patch literal 4349 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 literal 0 HcmV?d00001 diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html deleted file mode 100644 index 433063a94..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html +++ /dev/null @@ -1,1287 +0,0 @@ - - - - - - - -EnTT: entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > Class Template Reference
-
-
- -

Default constructor. - More...

- -

#include <storage.hpp>

-
-Inheritance diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

using allocator_type = Allocator
 Allocator type.
 
using base_type = basic_sparse_set<Entity, typename alloc_traits::template rebind_alloc<Entity>>
 Base type.
 
using element_type = Type
 Element type.
 
using value_type = void
 Type of the objects assigned to entities.
 
using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
 Extended iterable storage proxy.
 
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
 Constant extended iterable storage proxy.
 
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using allocator_type
 Allocator type.
 
using entity_type
 Underlying entity identifier.
 
using version_type
 Underlying version type.
 
using size_type
 Unsigned integer type.
 
using pointer
 Pointer type to contained entities.
 
using iterator
 Random access iterator type.
 
using const_iterator
 Constant random access iterator type.
 
using reverse_iterator
 Reverse iterator type.
 
using const_reverse_iterator
 Constant reverse iterator type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept=default
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_storage () override=default
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept=default
 Move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void get (const entity_type entt) const noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple get_as_tuple (const entity_type entt) const noexcept
 Returns an empty tuple.
 
template<typename... Args>
void emplace (const entity_type entt, Args &&...)
 Assigns an entity to a storage and constructs its object.
 
template<typename... Func>
void patch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
template<typename It , typename... Args>
void insert (It first, It last, Args &&...)
 Assigns entities to a storage.
 
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
basic_sparse_set (const basic_sparse_set &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (const basic_sparse_set &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other) noexcept
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
 Returns data on the free list whose meaning depends on the mode.
 
void free_list (const size_type value) noexcept
 Sets data on the free list whose meaning depends on the mode.
 
virtual void reserve (const size_type cap)
 Increases the capacity of a sparse set.
 
virtual size_type capacity () const noexcept
 Returns the number of elements that a sparse set has currently allocated space for.
 
virtual void shrink_to_fit ()
 Requests the removal of unused capacity.
 
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location.
 
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
void * value (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
 
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
iterator sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
 Returned value type, if any.
 
std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
- - - - -

-Static Public Attributes

static constexpr deletion_policy storage_policy {traits_type::in_place_delete}
 Storage deletion policy.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using basic_iterator
 Random access iterator type.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void pop (basic_iterator first, basic_iterator last)
 Erases entities from a sparse set.
 
virtual void pop_all ()
 Erases all entities of a sparse set.
 
virtual basic_iterator try_emplace (const Entity entt, const bool force_back, const void *=nullptr)
 Assigns an entity to a sparse set.
 
virtual void bind_any (any) noexcept
 Forwards variables to derived classes, if any.
 
-

Detailed Description

-
template<typename Type, typename Entity, typename Allocator>
-class entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >

Default constructor.

- -

Definition at line 784 of file storage.hpp.

-

Member Typedef Documentation

- -

◆ allocator_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::allocator_type = Allocator
-
- -

Allocator type.

- -

Definition at line 792 of file storage.hpp.

- -
-
- -

◆ base_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::base_type = basic_sparse_set<Entity, typename alloc_traits::template rebind_alloc<Entity>>
-
- -

Base type.

- -

Definition at line 794 of file storage.hpp.

- -
-
- -

◆ const_iterable

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
-
- -

Constant extended iterable storage proxy.

- -

Definition at line 806 of file storage.hpp.

- -
-
- -

◆ const_reverse_iterable

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
-
- -

Constant extended reverse iterable storage proxy.

- -

Definition at line 810 of file storage.hpp.

- -
-
- -

◆ element_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::element_type = Type
-
- -

Element type.

- -

Definition at line 796 of file storage.hpp.

- -
-
- -

◆ entity_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::entity_type = Entity
-
- -

Underlying entity identifier.

- -

Definition at line 800 of file storage.hpp.

- -
-
- -

◆ iterable

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
-
- -

Extended iterable storage proxy.

- -

Definition at line 804 of file storage.hpp.

- -
-
- -

◆ reverse_iterable

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
-
- -

Extended reverse iterable storage proxy.

- -

Definition at line 808 of file storage.hpp.

- -
-
- -

◆ size_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::size_type = std::size_t
-
- -

Unsigned integer type.

- -

Definition at line 802 of file storage.hpp.

- -
-
- -

◆ value_type

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - -
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::value_type = void
-
- -

Type of the objects assigned to entities.

- -

Definition at line 798 of file storage.hpp.

- -
-
-

Constructor & Destructor Documentation

- -

◆ basic_storage() [1/4]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage ()
-
-inline
-
- -

Default constructor.

- -

Definition at line 815 of file storage.hpp.

- -
-
- -

◆ basic_storage() [2/4]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage (const allocator_type & allocator)
-
-inlineexplicit
-
- -

Constructs an empty container with a given allocator.

-
Parameters
- - -
allocatorThe allocator to use.
-
-
- -

Definition at line 822 of file storage.hpp.

- -
-
- -

◆ basic_storage() [3/4]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > && other)
-
-defaultnoexcept
-
- -

Move constructor.

-
Parameters
- - -
otherThe instance to move from.
-
-
- -
-
- -

◆ basic_storage() [4/4]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - - - - - -
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > && other,
const allocator_type & allocator )
-
-inline
-
- -

Allocator-extended move constructor.

-
Parameters
- - - -
otherThe instance to move from.
allocatorThe allocator to use.
-
-
- -

Definition at line 839 of file storage.hpp.

- -
-
-

Member Function Documentation

- -

◆ each() [1/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
const_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each () const
-
-inlinenoexcept
-
- -

Returns an iterable object to use to visit a storage.

-

The iterable object returns a tuple that contains the current entity.

-
Returns
An iterable object to use to visit the storage.
- -

Definition at line 947 of file storage.hpp.

- -
-
- -

◆ each() [2/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each ()
-
-inlinenoexcept
-
- -

Returns an iterable object to use to visit a storage.

-

The iterable object returns a tuple that contains the current entity.

-
Returns
An iterable object to use to visit the storage.
- -

Definition at line 942 of file storage.hpp.

- -
-
- -

◆ emplace()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
-
-template<typename... Args>
- - - - - -
- - - - - - - - - - - -
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::emplace (const entity_type entt,
Args && ... )
-
-inline
-
- -

Assigns an entity to a storage and constructs its object.

-
Warning
Attempting to use an entity that already belongs to the storage results in undefined behavior.
-
Template Parameters
- - -
ArgsTypes of arguments to use to construct the object.
-
-
-
Parameters
- - -
enttA valid identifier.
-
-
- -

Definition at line 905 of file storage.hpp.

- -
-
- -

◆ get()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get (const entity_type entt) const
-
-inlinenoexcept
-
- -

Returns the object assigned to an entity, that is void.

-
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
-
Parameters
- - -
enttA valid identifier.
-
-
- -

Definition at line 880 of file storage.hpp.

- -
-
- -

◆ get_allocator()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
constexpr allocator_type entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_allocator () const
-
-inlineconstexprnoexcept
-
- -

Returns the associated allocator.

-
Returns
The associated allocator.
- -

Definition at line 862 of file storage.hpp.

- -
-
- -

◆ get_as_tuple()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
std::tuple entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_as_tuple (const entity_type entt) const
-
-inlinenoexcept
-
- -

Returns an empty tuple.

-
Parameters
- - -
enttA valid identifier.
-
-
-
Returns
Returns an empty tuple.
- -

Definition at line 889 of file storage.hpp.

- -
-
- -

◆ insert()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
-
-template<typename It , typename... Args>
- - - - - -
- - - - - - - - - - - - - - - - -
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::insert (It first,
It last,
Args && ... )
-
-inline
-
- -

Assigns entities to a storage.

-
Template Parameters
- - - -
ItType of input iterator.
ArgsTypes of optional arguments.
-
-
-
Parameters
- - - -
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
-
-
- -

Definition at line 929 of file storage.hpp.

- -
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
basic_storage & entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator= (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > && other)
-
-defaultnoexcept
-
- -

Move assignment operator.

-
Parameters
- - -
otherThe instance to move from.
-
-
-
Returns
This storage.
- -
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
basic_storage & entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator= (const basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > & )
-
-delete
-
- -

Default copy assignment operator, deleted on purpose.

-
Returns
This storage.
- -
-
- -

◆ patch()

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
-
-template<typename... Func>
- - - - - -
- - - - - - - - - - - -
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::patch (const entity_type entt,
Func &&... func )
-
-inline
-
- -

Updates the instance assigned to a given entity in-place.

-
Template Parameters
- - -
FuncTypes of the function objects to invoke.
-
-
-
Parameters
- - - -
enttA valid identifier.
funcValid function objects.
-
-
- -

Definition at line 916 of file storage.hpp.

- -
-
- -

◆ reach() [1/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach () const
-
-inlinenoexcept
-
- -

Returns a reverse iterable object to use to visit a storage.

-
See also
each
-
Returns
A reverse iterable object to use to visit the storage.
- -

Definition at line 963 of file storage.hpp.

- -
-
- -

◆ reach() [2/2]

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - - - - -
reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach ()
-
-inlinenoexcept
-
- -

Returns a reverse iterable object to use to visit a storage.

-
See also
each
-
Returns
A reverse iterable object to use to visit the storage.
- -

Definition at line 958 of file storage.hpp.

- -
-
-

Member Data Documentation

- -

◆ storage_policy

- -
-
-
-template<typename Type , typename Entity , typename Allocator >
- - - - - -
- - - - -
constexpr deletion_policy entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::storage_policy {traits_type::in_place_delete}
-
-staticconstexpr
-
- -

Storage deletion policy.

- -

Definition at line 812 of file storage.hpp.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.map b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.map deleted file mode 100644 index 092c2dd40..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.md5 b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.md5 deleted file mode 100644 index 9a6c5f4e1..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.md5 +++ /dev/null @@ -1 +0,0 @@ -eb3f02e8c27fd743c7f20fbb510f454d \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.png b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co6e06d0f32d2f7ddc7f7e5586c4948387.png deleted file mode 100644 index c256aa9f3436df9daa373c452e131c1cd08a8769..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3446 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 diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.map b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.map deleted file mode 100644 index 092c2dd40..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.md5 b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.md5 deleted file mode 100644 index 9a6c5f4e1..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.md5 +++ /dev/null @@ -1 +0,0 @@ -eb3f02e8c27fd743c7f20fbb510f454d \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.png b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co8e78b91b669a4eee7c78317e37130a8f.png deleted file mode 100644 index c256aa9f3436df9daa373c452e131c1cd08a8769..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3446 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 diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.map b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.map new file mode 100644 index 000000000..d6e328fb1 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.md5 b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.md5 new file mode 100644 index 000000000..7333c3618 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.md5 @@ -0,0 +1 @@ +001207809f23e0e7caf2c666b8f8ed2e \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.png b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coa6f776d12bbf847b675068da49e29c2b.png new file mode 100644 index 0000000000000000000000000000000000000000..5b246cac0f8258107193ed51061fe19fcbf8fa8f GIT binary patch literal 4349 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 literal 0 HcmV?d00001 diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coc4dceb6fd52292b10e94896edab95072.html b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coc4dceb6fd52292b10e94896edab95072.html deleted file mode 100644 index d5fa610fb..000000000 --- a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coc4dceb6fd52292b10e94896edab95072.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > Member List
-
-
- -

This is the complete list of members for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
allocator_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
base_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
basic_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >protected
basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_storage()entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
basic_storage(const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inlineexplicit
basic_storage(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
basic_storage(basic_storage &&other) noexcept=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
begin() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind_any(any) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
bump(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
capacity() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
cbegin() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
cend() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
clear()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
const_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
const_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
const_reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
const_reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
contiguous() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
crbegin() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
crend() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
data() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
each() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
each() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
element_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
emplace(const entity_type entt, Args &&...)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
empty() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
end() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
entity_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
erase(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
erase(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
extent() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
find(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
free_list() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
free_list(const size_type value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
get(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
get_allocator() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
in_place_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
index(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
insert(It first, It last, Args &&...)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
operator=(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
operator=(basic_storage &&other) noexcept=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
policy() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
pop(basic_iterator first, basic_iterator last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
pop_all()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
push(const entity_type entt, const void *elem=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
push(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
rbegin() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
reach() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
reach() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >inline
remove(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
remove(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
rend() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
size() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
size_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
sort_as(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
storage_policyentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >static
swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
try_emplace(const Entity entt, const bool force_back, const void *=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
type() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value(const entity_type entt) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
version_type typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
~basic_storage() override=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
- - - - diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html new file mode 100644 index 000000000..69a21facb --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html @@ -0,0 +1,3239 @@ + + + + + + + +EnTT: entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
EnTT 3.15.0 +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > Class Template Reference
+
+
+ +

Default constructor. + More...

+ +

#include <storage.hpp>

+
+Inheritance diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >:
+
+
Inheritance graph
+ + + + + + +
[legend]
+
+Collaboration diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >:
+
+
Collaboration graph
+ + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using allocator_type = Allocator
 Allocator type.
 
using base_type = basic_sparse_set<Entity, typename alloc_traits::template rebind_alloc<Entity>>
 Base type.
 
using element_type = Type
 Element type.
 
using value_type = void
 Type of the objects assigned to entities.
 
using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
 Extended iterable storage proxy.
 
using const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
 Constant extended iterable storage proxy.
 
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
 Constant extended reverse iterable storage proxy.
 
using allocator_type
 Allocator type.
 
using base_type
 Base type.
 
using element_type
 Element type.
 
using value_type
 Type of the objects assigned to entities.
 
using entity_type
 Underlying entity identifier.
 
using size_type
 Unsigned integer type.
 
using difference_type
 Signed integer type.
 
using pointer
 Pointer type to contained elements.
 
using const_pointer
 Constant pointer type to contained elements.
 
using iterator
 Random access iterator type.
 
using const_iterator
 Constant random access iterator type.
 
using reverse_iterator
 Reverse iterator type.
 
using const_reverse_iterator
 Constant reverse iterator type.
 
using iterable
 Extended iterable storage proxy.
 
using const_iterable
 Constant extended iterable storage proxy.
 
using reverse_iterable
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using allocator_type
 Allocator type.
 
using entity_type
 Underlying entity identifier.
 
using version_type
 Underlying version type.
 
using size_type
 Unsigned integer type.
 
using difference_type
 Signed integer type.
 
using pointer
 Pointer type to contained entities.
 
using iterator
 Random access iterator type.
 
using const_iterator
 Constant random access iterator type.
 
using reverse_iterator
 Reverse iterator type.
 
using const_reverse_iterator
 Constant reverse iterator type.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept=default
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~basic_storage () override=default
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept=default
 Move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void get (const entity_type entt) const noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple get_as_tuple (const entity_type entt) const noexcept
 Returns an empty tuple.
 
template<typename... Args>
void emplace (const entity_type entt, Args &&...)
 Assigns an entity to a storage and constructs its object.
 
template<typename... Func>
void patch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
template<typename It, typename... Args>
void insert (It first, It last, Args &&...)
 Assigns entities to a storage.
 
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 Constructs an empty storage with a given allocator.
 
basic_storage (const basic_storage &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_storage (basic_storage &&other) noexcept
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
 ~basic_storage () override
 Default destructor.
 
basic_storageoperator= (const basic_storage &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_storageoperator= (basic_storage &&other) noexcept
 Move assignment operator.
 
void swap (basic_storage &other) noexcept
 Exchanges the contents with those of a given storage.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void reserve (const size_type cap) override
 Increases the capacity of a storage.
 
size_type capacity () const noexcept override
 Returns the number of elements that a storage has currently allocated space for.
 
void shrink_to_fit () override
 Requests the removal of unused capacity.
 
const_pointer raw () const noexcept
 Direct access to the array of objects.
 
pointer raw () noexcept
 Direct access to the array of objects.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
 
const value_typeget (const entity_type entt) const noexcept
 Returns the object assigned to an entity.
 
value_typeget (const entity_type entt) noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple< const value_type & > get_as_tuple (const entity_type entt) const noexcept
 Returns the object assigned to an entity as a tuple.
 
std::tuple< value_type & > get_as_tuple (const entity_type entt) noexcept
 Returns an empty tuple.
 
value_typeemplace (const entity_type entt, Args &&...args)
 Assigns an entity to a storage and constructs its object.
 
value_typepatch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
iterator insert (It first, It last, const value_type &value={})
 Assigns one or more entities to a storage and constructs their objects from a given instance.
 
iterator insert (EIt first, EIt last, CIt from)
 Assigns one or more entities to a storage and constructs their objects from a given range.
 
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
basic_sparse_set (const basic_sparse_set &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (const basic_sparse_set &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other) noexcept
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
 Returns data on the free list whose meaning depends on the mode.
 
void free_list (const size_type value) noexcept
 Sets data on the free list whose meaning depends on the mode.
 
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin () const noexcept
 
iterator end () const noexcept
 Returns an iterator to the end.
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend () const noexcept
 
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location.
 
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
void * value (const entity_type entt) noexcept
 
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
iterator sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
 Returned value type, if any.
 
void bind (Type &&value) noexcept
 Forwards variables to derived classes, if any.
 
+ + + + + + + +

+Static Public Attributes

static constexpr deletion_policy storage_policy {traits_type::in_place_delete}
 Storage deletion policy.
 
static constexpr deletion_policy storage_policy
 Storage deletion policy.
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

void pop (underlying_iterator first, underlying_iterator last) override
 Erases entities from a storage.
 
void pop_all () override
 Erases all entities of a storage.
 
underlying_iterator try_emplace (const Entity entt, const bool force_back, const void *value) override
 Assigns an entity to a storage.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void bind_any (any) noexcept
 Forwards variables to derived classes, if any.
 
+ + + + + +

+Additional Inherited Members

- Protected Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using basic_iterator
 Random access iterator type.
 
+

Detailed Description

+
template<typename Type, typename Entity, typename Allocator>
+class entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >

Default constructor.

+ +

Definition at line 793 of file storage.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::allocator_type
+
+ +

Allocator type.

+ +

Definition at line 398 of file storage.hpp.

+ +
+
+ +

◆ allocator_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::allocator_type = Allocator
+
+ +

Allocator type.

+ +

Definition at line 801 of file storage.hpp.

+ +
+
+ +

◆ base_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::base_type
+
+ +

Base type.

+ +

Definition at line 400 of file storage.hpp.

+ +
+
+ +

◆ base_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::base_type = basic_sparse_set<Entity, typename alloc_traits::template rebind_alloc<Entity>>
+
+ +

Base type.

+ +

Definition at line 803 of file storage.hpp.

+ +
+
+ +

◆ const_iterable [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterable
+
+ +

Constant extended iterable storage proxy.

+ +

Definition at line 426 of file storage.hpp.

+ +
+
+ +

◆ const_iterable [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator>>
+
+ +

Constant extended iterable storage proxy.

+ +

Definition at line 817 of file storage.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_iterator
+
+ +

Constant random access iterator type.

+ +

Definition at line 418 of file storage.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_pointer
+
+ +

Constant pointer type to contained elements.

+ +

Definition at line 414 of file storage.hpp.

+ +
+
+ +

◆ const_reverse_iterable [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterable
+
+ +

Constant extended reverse iterable storage proxy.

+ +

Definition at line 430 of file storage.hpp.

+ +
+
+ +

◆ const_reverse_iterable [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>
+
+ +

Constant extended reverse iterable storage proxy.

+ +

Definition at line 821 of file storage.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::const_reverse_iterator
+
+ +

Constant reverse iterator type.

+ +

Definition at line 422 of file storage.hpp.

+ +
+
+ +

◆ difference_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::difference_type
+
+ +

Signed integer type.

+ +

Definition at line 410 of file storage.hpp.

+ +
+
+ +

◆ difference_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 813 of file storage.hpp.

+ +
+
+ +

◆ element_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::element_type
+
+ +

Element type.

+ +

Definition at line 402 of file storage.hpp.

+ +
+
+ +

◆ element_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::element_type = Type
+
+ +

Element type.

+ +

Definition at line 805 of file storage.hpp.

+ +
+
+ +

◆ entity_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::entity_type
+
+ +

Underlying entity identifier.

+ +

Definition at line 406 of file storage.hpp.

+ +
+
+ +

◆ entity_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::entity_type = Entity
+
+ +

Underlying entity identifier.

+ +

Definition at line 809 of file storage.hpp.

+ +
+
+ +

◆ iterable [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::iterable
+
+ +

Extended iterable storage proxy.

+ +

Definition at line 424 of file storage.hpp.

+ +
+
+ +

◆ iterable [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator>>
+
+ +

Extended iterable storage proxy.

+ +

Definition at line 815 of file storage.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::iterator
+
+ +

Random access iterator type.

+ +

Definition at line 416 of file storage.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::pointer
+
+ +

Pointer type to contained elements.

+ +

Definition at line 412 of file storage.hpp.

+ +
+
+ +

◆ reverse_iterable [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterable
+
+ +

Extended reverse iterable storage proxy.

+ +

Definition at line 428 of file storage.hpp.

+ +
+
+ +

◆ reverse_iterable [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>
+
+ +

Extended reverse iterable storage proxy.

+ +

Definition at line 819 of file storage.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::reverse_iterator
+
+ +

Reverse iterator type.

+ +

Definition at line 420 of file storage.hpp.

+ +
+
+ +

◆ size_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::size_type
+
+ +

Unsigned integer type.

+ +

Definition at line 408 of file storage.hpp.

+ +
+
+ +

◆ size_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::size_type = std::size_t
+
+ +

Unsigned integer type.

+ +

Definition at line 811 of file storage.hpp.

+ +
+
+ +

◆ value_type [1/2]

+ +
+
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, typename >::value_type
+
+ +

Type of the objects assigned to entities.

+ +

Definition at line 404 of file storage.hpp.

+ +
+
+ +

◆ value_type [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + +
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::value_type = void
+
+ +

Type of the objects assigned to entities.

+ +

Definition at line 807 of file storage.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ basic_storage() [1/8]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage ()
+
+inline
+
+ +

Default constructor.

+ +

Definition at line 826 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [2/8]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage (const allocator_type & allocator)
+
+inlineexplicit
+
+ +

Constructs an empty container with a given allocator.

+
Parameters
+ + +
allocatorThe allocator to use.
+
+
+ +

Definition at line 833 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [3/8]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other)
+
+defaultnoexcept
+
+ +

Move constructor.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+ +
+
+ +

◆ basic_storage() [4/8]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + + + + + +
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other,
const allocator_type & allocator )
+
+inline
+
+ +

Allocator-extended move constructor.

+
Parameters
+ + + +
otherThe instance to move from.
allocatorThe allocator to use.
+
+
+ +

Definition at line 850 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [5/8]

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage ()
+
+inline
+
+ +

Default constructor.

+ +

Definition at line 435 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [6/8]

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (const allocator_type & allocator)
+
+inlineexplicit
+
+ +

Constructs an empty storage with a given allocator.

+
Parameters
+ + +
allocatorThe allocator to use.
+
+
+ +

Definition at line 442 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [7/8]

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other)
+
+inlinenoexcept
+
+ +

Move constructor.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+ +

Definition at line 454 of file storage.hpp.

+ +
+
+ +

◆ basic_storage() [8/8]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
entt::basic_storage< Type, Entity, Allocator, typename >::basic_storage (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other,
const allocator_type & allocator )
+
+inline
+
+ +

Allocator-extended move constructor.

+
Parameters
+ + + +
otherThe instance to move from.
allocatorThe allocator to use.
+
+
+ +

Definition at line 465 of file storage.hpp.

+ +
+
+ +

◆ ~basic_storage()

+ +
+
+ + + + + +
+ + + + + + + +
entt::basic_storage< Type, Entity, Allocator, typename >::~basic_storage ()
+
+inlineoverride
+
+ +

Default destructor.

+ +

Definition at line 474 of file storage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 569 of file storage.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::begin ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 574 of file storage.hpp.

+ +
+
+ +

◆ capacity()

+ +
+
+ + + + + +
+ + + + + + + +
size_type entt::basic_storage< Type, Entity, Allocator, typename >::capacity () const
+
+inlinenodiscardoverridevirtualnoexcept
+
+ +

Returns the number of elements that a storage has currently allocated space for.

+
Returns
Capacity of the storage.
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 533 of file storage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first instance of the internal array.
+ +

Definition at line 563 of file storage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::cend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
+ +

Definition at line 584 of file storage.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 605 of file storage.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::crend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 624 of file storage.hpp.

+ +
+
+ +

◆ each() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterable entt::basic_storage< Type, Entity, Allocator, typename >::each () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 767 of file storage.hpp.

+ +
+
+ +

◆ each() [2/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
const_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 960 of file storage.hpp.

+ +
+
+ +

◆ each() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
iterable entt::basic_storage< Type, Entity, Allocator, typename >::each ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity and a reference to its element.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 762 of file storage.hpp.

+ +
+
+ +

◆ each() [4/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterable object to use to visit a storage.

+

The iterable object returns a tuple that contains the current entity.

+
Returns
An iterable object to use to visit the storage.
+ +

Definition at line 955 of file storage.hpp.

+ +
+
+ +

◆ emplace() [1/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::emplace (const entity_type entt,
Args && ... )
+
+inline
+
+ +

Assigns an entity to a storage and constructs its object.

+
Warning
Attempting to use an entity that already belongs to the storage results in undefined behavior.
+
Template Parameters
+ + +
ArgsTypes of arguments to use to construct the object.
+
+
+
Parameters
+ + +
enttA valid identifier.
+
+
+ +

Definition at line 917 of file storage.hpp.

+ +
+
+ +

◆ emplace() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::emplace (const entity_type entt,
Args &&... args )
+
+inline
+
+ +

Assigns an entity to a storage and constructs its object.

+
Warning
Attempting to use an entity that already belongs to the storage results in undefined behavior.
+
Template Parameters
+ + +
ArgsTypes of arguments to use to construct the object.
+
+
+
Parameters
+ + + +
enttA valid identifier.
argsParameters to use to construct an object for the entity.
+
+
+
Returns
A reference to the newly created object.
+ +

Definition at line 684 of file storage.hpp.

+ +
+
+ +

◆ end() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator entt::basic_storage< Type, Entity, Allocator, typename >::end () const
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
+ +

Definition at line 589 of file storage.hpp.

+ +
+
+ +

◆ end() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::end ()
+
+inlinenodiscardnoexcept
+
+ +

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
+ +

Definition at line 594 of file storage.hpp.

+ +
+
+ +

◆ get() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
const value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get (const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns the object assigned to an entity.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
The object assigned to the entity.
+ +

Definition at line 648 of file storage.hpp.

+ +
+
+ +

◆ get() [2/3]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get (const entity_type entt) const
+
+inlinenoexcept
+
+ +

Returns the object assigned to an entity, that is void.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+ +

Definition at line 891 of file storage.hpp.

+ +
+
+ +

◆ get() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::get (const entity_type entt)
+
+inlinenodiscardnoexcept
+
+ +

Returns the object assigned to an entity, that is void.

+
Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
+
Parameters
+ + +
enttA valid identifier.
+
+
+ +

Definition at line 653 of file storage.hpp.

+ +
+
+ +

◆ get_allocator() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
allocator_type entt::basic_storage< Type, Entity, Allocator, typename >::get_allocator () const
+
+inlinenodiscardconstexprnoexcept
+
+ +

Returns the associated allocator.

+
Returns
The associated allocator.
+ +

Definition at line 509 of file storage.hpp.

+ +
+
+ +

◆ get_allocator() [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
allocator_type entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_allocator () const
+
+inlinenodiscardconstexprnoexcept
+
+ +

Returns the associated allocator.

+
Returns
The associated allocator.
+ +

Definition at line 873 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
std::tuple< const value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple (const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns the object assigned to an entity as a tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
The object assigned to the entity as a tuple.
+ +

Definition at line 662 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [2/3]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
std::tuple entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple (const entity_type entt) const
+
+inlinenodiscardnoexcept
+
+ +

Returns an empty tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
Returns an empty tuple.
+ +

Definition at line 900 of file storage.hpp.

+ +
+
+ +

◆ get_as_tuple() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
std::tuple< value_type & > entt::basic_storage< Type, Entity, Allocator, typename >::get_as_tuple (const entity_type entt)
+
+inlinenodiscardnoexcept
+
+ +

Returns an empty tuple.

+
Parameters
+ + +
enttA valid identifier.
+
+
+
Returns
Returns an empty tuple.
+ +

Definition at line 667 of file storage.hpp.

+ +
+
+ +

◆ insert() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert (EIt first,
EIt last,
CIt from )
+
+inline
+
+ +

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

+
See also
construct
+
Template Parameters
+ + + +
EItType of input iterator.
CItType of input iterator.
+
+
+
Parameters
+ + + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
fromAn iterator to the first element of the range of objects.
+
+
+
Returns
Iterator pointing to the first element inserted, if any.
+ +

Definition at line 746 of file storage.hpp.

+ +
+
+ +

◆ insert() [2/3]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+
+template<typename It, typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert (It first,
It last,
Args && ... )
+
+inline
+
+ +

Assigns entities to a storage.

+
Template Parameters
+ + + +
ItType of input iterator.
ArgsTypes of optional arguments.
+
+
+
Parameters
+ + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
+
+
+ +

Definition at line 942 of file storage.hpp.

+ +
+
+ +

◆ insert() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
iterator entt::basic_storage< Type, Entity, Allocator, typename >::insert (It first,
It last,
const value_type & value = {} )
+
+inline
+
+ +

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.
+
Template Parameters
+ + +
ItType of input iterator.
+
+
+
Parameters
+ + + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
valueAn instance of the object to construct.
+
+
+
Returns
Iterator pointing to the first element inserted, if any.
+ +

Definition at line 724 of file storage.hpp.

+ +
+
+ +

◆ operator=() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other)
+
+inlinenoexcept
+
+ +

Move assignment operator.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+
Returns
This storage.
+ +

Definition at line 489 of file storage.hpp.

+ +
+
+ +

◆ operator=() [2/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator= (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > && other)
+
+defaultnoexcept
+
+ +

Move assignment operator.

+
Parameters
+ + +
otherThe instance to move from.
+
+
+
Returns
This storage.
+ +
+
+ +

◆ operator=() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Type, Entity, Allocator, typename >::operator= (const basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > & )
+
+delete
+
+ +

Default copy assignment operator, deleted on purpose.

+
Returns
This storage.
+ +
+
+ +

◆ operator=() [4/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
basic_storage & entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator= (const basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > & )
+
+delete
+
+ +

Default copy assignment operator, deleted on purpose.

+
Returns
This storage.
+ +
+
+ +

◆ patch() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
value_type & entt::basic_storage< Type, Entity, Allocator, typename >::patch (const entity_type entt,
Func &&... func )
+
+inline
+
+ +

Updates the instance assigned to a given entity in-place.

+
Template Parameters
+ + +
FuncTypes of the function objects to invoke.
+
+
+
Parameters
+ + + +
enttA valid identifier.
funcValid function objects.
+
+
+
Returns
A reference to the updated instance.
+ +

Definition at line 702 of file storage.hpp.

+ +
+
+ +

◆ patch() [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+
+template<typename... Func>
+ + + + + +
+ + + + + + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::patch (const entity_type entt,
Func &&... func )
+
+inline
+
+ +

Updates the instance assigned to a given entity in-place.

+
Template Parameters
+ + +
FuncTypes of the function objects to invoke.
+
+
+
Parameters
+ + + +
enttA valid identifier.
funcValid function objects.
+
+
+ +

Definition at line 928 of file storage.hpp.

+ +
+
+ +

◆ pop()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, typename >::pop (underlying_iterator first,
underlying_iterator last )
+
+inlineoverrideprotectedvirtual
+
+ +

Erases entities from a storage.

+
Parameters
+ + + +
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.
+
+
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 338 of file storage.hpp.

+ +
+
+ +

◆ pop_all()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, typename >::pop_all ()
+
+inlineoverrideprotectedvirtual
+
+ +

Erases all entities of a storage.

+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 357 of file storage.hpp.

+ +
+
+ +

◆ raw() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw () const
+
+inlinenodiscardnoexcept
+
+ +

Direct access to the array of objects.

+
Returns
A pointer to the array of objects.
+ +

Definition at line 547 of file storage.hpp.

+ +
+
+ +

◆ raw() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
pointer entt::basic_storage< Type, Entity, Allocator, typename >::raw ()
+
+inlinenodiscardnoexcept
+
+ +

Direct access to the array of objects.

+
Returns
A pointer to the array of objects.
+ +

Definition at line 552 of file storage.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 610 of file storage.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rbegin ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the beginning.

+

If the storage is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first instance of the reversed internal array.
+ +

Definition at line 615 of file storage.hpp.

+ +
+
+ +

◆ reach() [1/4]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 783 of file storage.hpp.

+ +
+
+ +

◆ reach() [2/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 976 of file storage.hpp.

+ +
+
+ +

◆ reach() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterable entt::basic_storage< Type, Entity, Allocator, typename >::reach ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 778 of file storage.hpp.

+ +
+
+ +

◆ reach() [4/4]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + + + + +
reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterable object to use to visit a storage.

+
See also
each
+
Returns
A reverse iterable object to use to visit the storage.
+ +

Definition at line 971 of file storage.hpp.

+ +
+
+ +

◆ rend() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
const_reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend () const
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 629 of file storage.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
reverse_iterator entt::basic_storage< Type, Entity, Allocator, typename >::rend ()
+
+inlinenodiscardnoexcept
+
+ +

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
+ +

Definition at line 634 of file storage.hpp.

+ +
+
+ +

◆ reserve()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, typename >::reserve (const size_type cap)
+
+inlineoverridevirtual
+
+ +

Increases the capacity of a storage.

+

If the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.

+
Parameters
+ + +
capDesired capacity.
+
+
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 521 of file storage.hpp.

+ +
+
+ +

◆ shrink_to_fit()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, typename >::shrink_to_fit ()
+
+inlineoverridevirtual
+
+ +

Requests the removal of unused capacity.

+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 538 of file storage.hpp.

+ +
+
+ +

◆ swap()

+ +
+
+ + + + + +
+ + + + + + + +
void entt::basic_storage< Type, Entity, Allocator, typename >::swap (basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > & other)
+
+inlinenoexcept
+
+ +

Exchanges the contents with those of a given storage.

+
Parameters
+ + +
otherStorage to exchange the content with.
+
+
+ +

Definition at line 499 of file storage.hpp.

+ +
+
+ +

◆ try_emplace()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
underlying_iterator entt::basic_storage< Type, Entity, Allocator, typename >::try_emplace (const Entity entt,
const bool force_back,
const void * value )
+
+inlineoverrideprotectedvirtual
+
+ +

Assigns an entity to a storage.

+
Parameters
+ + + + +
enttA valid identifier.
valueOptional opaque value.
force_backForce back insertion.
+
+
+
Returns
Iterator pointing to the emplaced element.
+ +

Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

+ +

Definition at line 380 of file storage.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ storage_policy [1/2]

+ +
+
+ + + + + +
+ + + + +
deletion_policy entt::basic_storage< Type, Entity, Allocator, typename >::storage_policy
+
+staticconstexpr
+
+ +

Storage deletion policy.

+ +

Definition at line 432 of file storage.hpp.

+ +
+
+ +

◆ storage_policy [2/2]

+ +
+
+
+template<typename Type, typename Entity, typename Allocator>
+ + + + + +
+ + + + +
deletion_policy entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::storage_policy {traits_type::in_place_delete}
+
+staticconstexpr
+
+ +

Storage deletion policy.

+ +

Definition at line 823 of file storage.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + +
+ + diff --git a/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coe2824a68765092eb0267404fe57a45fb.html b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coe2824a68765092eb0267404fe57a45fb.html new file mode 100644 index 000000000..07693ed06 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01coe2824a68765092eb0267404fe57a45fb.html @@ -0,0 +1,241 @@ + + + + + + + +EnTT: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
EnTT 3.15.0 +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > Member List
+
+
+ +

This is the complete list of members for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
allocator_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
base_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
base_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
basic_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >protected
basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
basic_sparse_set(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
basic_sparse_set(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
basic_storage()entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
basic_storage(const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlineexplicit
basic_storage(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
basic_storage(basic_storage &&other) noexcept=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
basic_storage()entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
basic_storage(const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlineexplicit
basic_storage(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
basic_storage(basic_storage &&other) noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
basic_storage(basic_storage &&other, const allocator_type &allocator)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
begin() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
begin() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
bind(Type &&value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
bind_any(any) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
bump(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
capacity() const noexcept overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlinevirtual
cbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
cend() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
clear()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
const_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_iterator typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_pointer typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
const_reverse_iterator typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
contains(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
contiguous() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
crbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
crend() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
current(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
data() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
difference_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
difference_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
each() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
each() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
each() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
each() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
element_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
element_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
emplace(const entity_type entt, Args &&...)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
emplace(const entity_type entt, Args &&...args)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
empty() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
end() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
end() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
entity_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
entity_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
erase(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
erase(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
extent() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
find(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
free_list() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
free_list(const size_type value) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
get(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get(const entity_type entt) noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get_allocator() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get_allocator() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get_as_tuple(const entity_type entt) const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
get_as_tuple(const entity_type entt) noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
in_place_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
index(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
insert(It first, It last, Args &&...)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
insert(It first, It last, const value_type &value={})entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
insert(EIt first, EIt last, CIt from)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
iterator typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
operator=(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
operator=(basic_storage &&other) noexcept=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
operator=(const basic_storage &)=deleteentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
operator=(basic_storage &&other) noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(const basic_sparse_set &)=deleteentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
operator[](const size_type pos) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
patch(const entity_type entt, Func &&...func)entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
pointer typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
policy() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
pop(underlying_iterator first, underlying_iterator last) overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlineprotectedvirtual
pop_all() overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlineprotectedvirtual
push(const entity_type entt, const void *elem=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
push(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
raw() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
raw() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
rbegin() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
rbegin() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
reach() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
reach() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
reach() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
reach() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
remove(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
remove(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
rend() const noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
rend() noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
reserve(const size_type cap) overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlinevirtual
reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
reverse_iterable typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
reverse_iterator typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
shrink_to_fit() overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlinevirtual
size() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
size_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
size_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
sort(Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
sort_as(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
storage_policyentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >static
storage_policyentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >static
swap(basic_storage &other) noexceptentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap(basic_sparse_set &other) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_and_pop(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
swap_elements(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
swap_only(const basic_iterator it)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotected
try_emplace(const Entity entt, const bool force_back, const void *value) overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inlineprotectedvirtual
type() const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value(const entity_type entt) const noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value(const entity_type entt) noexceptentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
value_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
value_type typedefentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
version_type typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
~basic_storage() override=defaultentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
~basic_storage() overrideentt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >inline
+ + +
+ + diff --git a/classentt_1_1basic__storage__view-members.html b/classentt_1_1basic__storage__view-members.html index f90fcc085..7ff867293 100644 --- a/classentt_1_1basic__storage__view-members.html +++ b/classentt_1_1basic__storage__view-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_storage_view< Type, Policy > Member List
@@ -85,24 +98,26 @@ $(function() { begin() const noexceptentt::basic_storage_view< Type, Policy >inline common_type typedefentt::basic_storage_view< Type, Policy > contains(const entity_type entt) const noexceptentt::basic_storage_view< Type, Policy >inline - empty() const noexceptentt::basic_storage_view< Type, Policy >inline - end() const noexceptentt::basic_storage_view< Type, Policy >inline - entity_type typedefentt::basic_storage_view< Type, Policy > - find(const entity_type entt) const noexceptentt::basic_storage_view< Type, Policy >inline - front() const noexceptentt::basic_storage_view< Type, Policy >inline - handle() const noexceptentt::basic_storage_view< Type, Policy >inline - iterator typedefentt::basic_storage_view< Type, Policy > - operator bool() const noexceptentt::basic_storage_view< Type, Policy >inlineexplicit - rbegin() const noexceptentt::basic_storage_view< Type, Policy >inline - rend() const noexceptentt::basic_storage_view< Type, Policy >inline - reverse_iterator typedefentt::basic_storage_view< Type, Policy > - size() const noexceptentt::basic_storage_view< Type, Policy >inline - size_hint() const noexceptentt::basic_storage_view< Type, Policy >inline - size_type typedefentt::basic_storage_view< Type, Policy > + difference_type typedefentt::basic_storage_view< Type, Policy > + empty() const noexceptentt::basic_storage_view< Type, Policy >inline + end() const noexceptentt::basic_storage_view< Type, Policy >inline + entity_type typedefentt::basic_storage_view< Type, Policy > + find(const entity_type entt) const noexceptentt::basic_storage_view< Type, Policy >inline + front() const noexceptentt::basic_storage_view< Type, Policy >inline + handle() const noexceptentt::basic_storage_view< Type, Policy >inline + iterator typedefentt::basic_storage_view< Type, Policy > + operator bool() const noexceptentt::basic_storage_view< Type, Policy >inlineexplicit + rbegin() const noexceptentt::basic_storage_view< Type, Policy >inline + rend() const noexceptentt::basic_storage_view< Type, Policy >inline + reverse_iterator typedefentt::basic_storage_view< Type, Policy > + size() const noexceptentt::basic_storage_view< Type, Policy >inline + size_hint() const noexceptentt::basic_storage_view< Type, Policy >inline + size_type typedefentt::basic_storage_view< Type, Policy >
+ diff --git a/classentt_1_1basic__storage__view.html b/classentt_1_1basic__storage__view.html index 5d8ee9b9f..8fced31f3 100644 --- a/classentt_1_1basic__storage__view.html +++ b/classentt_1_1basic__storage__view.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_storage_view< Type, Policy > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,71 +103,74 @@ $(function() { - + - + - + - - - - + + + + + + +

Public Types

using common_type = Type
using common_type = Type
 Common type among all storage types.
 
using entity_type = typename common_type::entity_type
using entity_type = typename common_type::entity_type
 Underlying entity identifier.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, 1u, 0u>, typename common_type::iterator>
 Random access iterator type.
 
using reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, true, 1u, 0u>, typename common_type::iterator>
 Random access iterator type.
 
using reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>
 Reverse iterator type.
 
- + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - +

Public Member Functions

const common_typehandle () const noexcept
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
template<typename... , deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, size_typesize () const noexcept
template<typename..., deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, size_typesize () const noexcept
 Returns the number of entities that have the given element.
 
template<typename... , deletion_policy Pol = Policy>
std::enable_if_t< Pol==deletion_policy::in_place, size_typesize_hint () const noexcept
template<typename..., deletion_policy Pol = Policy>
std::enable_if_t< Pol==deletion_policy::in_place, size_typesize_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
template<typename... , deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, boolempty () const noexcept
template<typename..., deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, bool > empty () const noexcept
 Checks whether a view is empty.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
template<typename... , deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrbegin () const noexcept
template<typename..., deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrbegin () const noexcept
 Returns an iterator to the first entity of the reversed view.
 
template<typename... , deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrend () const noexcept
template<typename..., deletion_policy Pol = Policy>
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrend () const noexcept
 Returns an iterator that is past the last entity of the reversed view.
 
entity_type front () const noexcept
entity_type front () const noexcept
 Returns the first entity of the view, if any.
 
entity_type back () const noexcept
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Checks if a view is fully initialized.
 
bool contains (const entity_type entt) const noexcept
bool contains (const entity_type entt) const noexcept
 Checks if a view contains an entity.
 

Detailed Description

-
template<typename Type, deletion_policy Policy>
+
template<typename Type, deletion_policy Policy>
class entt::basic_storage_view< Type, Policy >

Basic storage view implementation.

Warning
For internal use only, backward compatibility not guaranteed.
Template Parameters
@@ -165,7 +181,7 @@ class entt::basic_storage_view< Type, Policy >

Basic storage view -

Definition at line 659 of file view.hpp.

+

Definition at line 683 of file view.hpp.

Member Typedef Documentation

◆ common_type

@@ -173,17 +189,37 @@ class entt::basic_storage_view< Type, Policy >

Basic storage view

-template<typename Type , deletion_policy Policy>
+template<typename Type, deletion_policy Policy>
- +
using entt::basic_storage_view< Type, Policy >::common_type = Typeusing entt::basic_storage_view< Type, Policy >::common_type = Type

Common type among all storage types.

-

Definition at line 674 of file view.hpp.

+

Definition at line 698 of file view.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename Type, deletion_policy Policy>
+ + + + +
using entt::basic_storage_view< Type, Policy >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 704 of file view.hpp.

@@ -193,37 +229,37 @@ template<
+template<typename Type, deletion_policy Policy>
- +
using entt::basic_storage_view< Type, Policy >::entity_type = typename common_type::entity_typeusing entt::basic_storage_view< Type, Policy >::entity_type = typename common_type::entity_type

Underlying entity identifier.

-

Definition at line 676 of file view.hpp.

+

Definition at line 700 of file view.hpp.

- -

◆ iterator

+ +

◆ iterator

-template<typename Type , deletion_policy Policy>
+template<typename Type, deletion_policy Policy>
- +
using entt::basic_storage_view< Type, Policy >::iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, 1u, 0u>, typename common_type::iterator>using entt::basic_storage_view< Type, Policy >::iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, true, 1u, 0u>, typename common_type::iterator>

Random access iterator type.

-

Definition at line 680 of file view.hpp.

+

Definition at line 706 of file view.hpp.

@@ -233,17 +269,17 @@ template<
+template<typename Type, deletion_policy Policy>
- +
using entt::basic_storage_view< Type, Policy >::reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>using entt::basic_storage_view< Type, Policy >::reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>

Reverse iterator type.

-

Definition at line 682 of file view.hpp.

+

Definition at line 708 of file view.hpp.

@@ -253,17 +289,17 @@ template<
+template<typename Type, deletion_policy Policy>
- +
using entt::basic_storage_view< Type, Policy >::size_type = std::size_tusing entt::basic_storage_view< Type, Policy >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 678 of file view.hpp.

+

Definition at line 702 of file view.hpp.

@@ -274,21 +310,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_storage_view< Type, Policy >::back entity_type entt::basic_storage_view< Type, Policy >::back ()) const
-inlinenoexcept
@@ -306,21 +342,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_storage_view< Type, Policy >::begin iterator entt::basic_storage_view< Type, Policy >::begin ()) const
-inlinenoexcept
@@ -329,7 +365,7 @@ template<end().

Returns
An iterator to the first entity of the view.
-

Definition at line 739 of file view.hpp.

+

Definition at line 765 of file view.hpp.

@@ -339,21 +375,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
bool entt::basic_storage_view< Type, Policy >::contains bool entt::basic_storage_view< Type, Policy >::contains (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -377,23 +413,23 @@ template<
+template<typename Type, deletion_policy Policy>
-template<typename... , deletion_policy Pol = Policy>
+template<typename..., deletion_policy Pol = Policy> +inlinenodiscardnoexcept
- + - +
std::enable_if_t< Pol !=deletion_policy::in_place, bool > entt::basic_storage_view< Type, Policy >::empty std::enable_if_t< Pol !=deletion_policy::in_place, bool > entt::basic_storage_view< Type, Policy >::empty ()) const
-inlinenoexcept
@@ -407,7 +443,7 @@ template<typename... ,
Returns
True if the view is empty, false otherwise.
-

Definition at line 723 of file view.hpp.

+

Definition at line 749 of file view.hpp.

@@ -417,21 +453,21 @@ template<typename... ,
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_storage_view< Type, Policy >::end iterator entt::basic_storage_view< Type, Policy >::end ()) const
-inlinenoexcept
@@ -449,21 +485,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
iterator entt::basic_storage_view< Type, Policy >::find iterator entt::basic_storage_view< Type, Policy >::find (const entity_type entt)const entity_type entt) const
-inlinenoexcept
@@ -487,21 +523,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
entity_type entt::basic_storage_view< Type, Policy >::front entity_type entt::basic_storage_view< Type, Policy >::front ()) const
-inlinenoexcept
@@ -519,21 +555,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlinenodiscardnoexcept
- + - +
const common_type * entt::basic_storage_view< Type, Policy >::handle const common_type * entt::basic_storage_view< Type, Policy >::handle ()) const
-inlinenoexcept
@@ -541,7 +577,7 @@ template<
Returns
The leading storage of the view.
-

Definition at line 688 of file view.hpp.

+

Definition at line 714 of file view.hpp.

@@ -551,21 +587,21 @@ template<
+template<typename Type, deletion_policy Policy>
+inlineexplicitnodiscardnoexcept
- + - +
entt::basic_storage_view< Type, Policy >::operator bool entt::basic_storage_view< Type, Policy >::operator bool ()) const
-inlineexplicitnoexcept
@@ -573,7 +609,7 @@ template<
Returns
True if the view is fully initialized, false otherwise.
-

Definition at line 854 of file view.hpp.

+

Definition at line 879 of file view.hpp.

@@ -583,23 +619,23 @@ template<
+template<typename Type, deletion_policy Policy>
-template<typename... , deletion_policy Pol = Policy>
+template<typename..., deletion_policy Pol = Policy> +inlinenodiscardnoexcept
- + - +
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > entt::basic_storage_view< Type, Policy >::rbegin std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > entt::basic_storage_view< Type, Policy >::rbegin ()) const
-inlinenoexcept
@@ -614,7 +650,7 @@ template<typename... ,
Returns
An iterator to the first entity of the reversed view.
-

Definition at line 772 of file view.hpp.

+

Definition at line 798 of file view.hpp.

@@ -624,23 +660,23 @@ template<typename... ,
+template<typename Type, deletion_policy Policy>
-template<typename... , deletion_policy Pol = Policy>
+template<typename..., deletion_policy Pol = Policy> +inlinenodiscardnoexcept
- + - +
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > entt::basic_storage_view< Type, Policy >::rend std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > entt::basic_storage_view< Type, Policy >::rend ()) const
-inlinenoexcept
@@ -654,7 +690,7 @@ template<typename... ,
Returns
An iterator to the entity following the last entity of the reversed view.
-

Definition at line 784 of file view.hpp.

+

Definition at line 810 of file view.hpp.

@@ -664,23 +700,23 @@ template<typename... ,
+template<typename Type, deletion_policy Policy>
-template<typename... , deletion_policy Pol = Policy>
+template<typename..., deletion_policy Pol = Policy> +inlinenodiscardnoexcept
- + - +
std::enable_if_t< Pol !=deletion_policy::in_place, size_type > entt::basic_storage_view< Type, Policy >::size std::enable_if_t< Pol !=deletion_policy::in_place, size_type > entt::basic_storage_view< Type, Policy >::size ()) const
-inlinenoexcept
@@ -694,7 +730,7 @@ template<typename... ,
Returns
Number of entities that have the given element.
-

Definition at line 698 of file view.hpp.

+

Definition at line 724 of file view.hpp.

@@ -704,23 +740,23 @@ template<typename... ,
+template<typename Type, deletion_policy Policy>
-template<typename... , deletion_policy Pol = Policy>
+template<typename..., deletion_policy Pol = Policy> +inlinenodiscardnoexcept
- + - +
std::enable_if_t< Pol==deletion_policy::in_place, size_type > entt::basic_storage_view< Type, Policy >::size_hint std::enable_if_t< Pol==deletion_policy::in_place, size_type > entt::basic_storage_view< Type, Policy >::size_hint ()) const
-inlinenoexcept
@@ -734,7 +770,7 @@ template<typename... ,
Returns
Estimated number of entities iterated by the view.
-

Definition at line 713 of file view.hpp.

+

Definition at line 739 of file view.hpp.

@@ -744,7 +780,8 @@ template<typename... , + diff --git a/classentt_1_1basic__table-members.html b/classentt_1_1basic__table-members.html index 49c59965c..f49c8a8b8 100644 --- a/classentt_1_1basic__table-members.html +++ b/classentt_1_1basic__table-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_table< Container > Member List
@@ -100,32 +113,34 @@ $(function() { const_reverse_iterator typedefentt::basic_table< Container > crbegin() const noexceptentt::basic_table< Container >inline crend() const noexceptentt::basic_table< Container >inline - emplace(Args &&...args)entt::basic_table< Container >inline - empty() const noexceptentt::basic_table< Container >inline - end() const noexceptentt::basic_table< Container >inline - end() noexceptentt::basic_table< Container >inline - erase(const_iterator pos)entt::basic_table< Container >inline - erase(const size_type pos)entt::basic_table< Container >inline - iterator typedefentt::basic_table< Container > - operator=(const basic_table &)=deleteentt::basic_table< Container > - operator=(basic_table &&other) noexceptentt::basic_table< Container >inline - operator[](const size_type pos) constentt::basic_table< Container >inline - operator[](const size_type pos)entt::basic_table< Container >inline - rbegin() const noexceptentt::basic_table< Container >inline - rbegin() noexceptentt::basic_table< Container >inline - rend() const noexceptentt::basic_table< Container >inline - rend() noexceptentt::basic_table< Container >inline - reserve(const size_type cap)entt::basic_table< Container >inline - reverse_iterator typedefentt::basic_table< Container > - shrink_to_fit()entt::basic_table< Container >inline - size() const noexceptentt::basic_table< Container >inline - size_type typedefentt::basic_table< Container > - swap(basic_table &other) noexceptentt::basic_table< Container >inline - ~basic_table()=defaultentt::basic_table< Container > + difference_type typedefentt::basic_table< Container > + emplace(Args &&...args)entt::basic_table< Container >inline + empty() const noexceptentt::basic_table< Container >inline + end() const noexceptentt::basic_table< Container >inline + end() noexceptentt::basic_table< Container >inline + erase(const_iterator pos)entt::basic_table< Container >inline + erase(const size_type pos)entt::basic_table< Container >inline + iterator typedefentt::basic_table< Container > + operator=(const basic_table &)=deleteentt::basic_table< Container > + operator=(basic_table &&other) noexceptentt::basic_table< Container >inline + operator[](const size_type pos) constentt::basic_table< Container >inline + operator[](const size_type pos)entt::basic_table< Container >inline + rbegin() const noexceptentt::basic_table< Container >inline + rbegin() noexceptentt::basic_table< Container >inline + rend() const noexceptentt::basic_table< Container >inline + rend() noexceptentt::basic_table< Container >inline + reserve(const size_type cap)entt::basic_table< Container >inline + reverse_iterator typedefentt::basic_table< Container > + shrink_to_fit()entt::basic_table< Container >inline + size() const noexceptentt::basic_table< Container >inline + size_type typedefentt::basic_table< Container > + swap(basic_table &other) noexceptentt::basic_table< Container >inline + ~basic_table()=defaultentt::basic_table< Container >
+ diff --git a/classentt_1_1basic__table.html b/classentt_1_1basic__table.html index 3efa14b72..7c4153e21 100644 --- a/classentt_1_1basic__table.html +++ b/classentt_1_1basic__table.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_table< Container > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,19 +103,22 @@ $(function() { - + - + + + + - + - + - +

Public Types

using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = internal::table_iterator<typename Container::iterator...>
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterator = internal::table_iterator<typename Container::iterator...>
 Input iterator type.
 
using const_iterator = internal::table_iterator<typename Container::const_iterator...>
using const_iterator = internal::table_iterator<typename Container::const_iterator...>
 Constant input iterator type.
 
using reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>
using reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>
 Reverse iterator type.
 
using const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>
using const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>
 Constant reverse iterator type.
 
@@ -111,116 +127,116 @@ Public Member Functions - + - + +  - + - - + + - - + + - - + + - - + + +  - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - - + + - +
 basic_table ()
 Default constructor.
 
 basic_table (const Container &...container) noexcept
 basic_table (const Container &...container) noexcept
 Copy constructs the underlying containers.
 
 basic_table (Container &&...container) noexcept
 basic_table (Container &&...container) noexcept
 Move constructs the underlying containers.
 
basic_table (const basic_table &)=delete
basic_table (const basic_table &)=delete
 Default copy constructor, deleted on purpose.
 
 basic_table (basic_table &&other) noexcept
 basic_table (basic_table &&other) noexcept
 Move constructor.
 
template<typename Allocator >
 basic_table (const Allocator &allocator)
template<typename Allocator>
 basic_table (const Allocator &allocator)
 Constructs the underlying containers using a given allocator.
 
template<class Allocator >
 basic_table (const Container &...container, const Allocator &allocator) noexcept
template<class Allocator>
 basic_table (const Container &...container, const Allocator &allocator) noexcept
 Copy constructs the underlying containers using a given allocator.
 
template<class Allocator >
 basic_table (Container &&...container, const Allocator &allocator) noexcept
template<class Allocator>
 basic_table (Container &&...container, const Allocator &allocator) noexcept
 Move constructs the underlying containers using a given allocator.
 
template<class Allocator >
 basic_table (basic_table &&other, const Allocator &allocator)
template<class Allocator>
 basic_table (basic_table &&other, const Allocator &allocator)
 Allocator-extended move constructor.
 
~basic_table ()=default
~basic_table ()=default
 Default destructor.
 
basic_tableoperator= (const basic_table &)=delete
basic_tableoperator= (const basic_table &)=delete
 Default copy assignment operator, deleted on purpose.
 
basic_tableoperator= (basic_table &&other) noexcept
basic_tableoperator= (basic_table &&other) noexcept
 Move assignment operator.
 
void swap (basic_table &other) noexcept
void swap (basic_table &other) noexcept
 Exchanges the contents with those of a given table.
 
void reserve (const size_type cap)
void reserve (const size_type cap)
 Increases the capacity of a table.
 
size_type capacity () const noexcept
size_type capacity () const noexcept
 Returns the number of rows that a table has currently allocated space for.
 
void shrink_to_fit ()
void shrink_to_fit ()
 Requests the removal of unused capacity.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of rows in a table.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a table is empty.
 
const_iterator cbegin () const noexcept
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
iterator end () noexcept
 Returns an iterator to the end.
 
const_reverse_iterator crbegin () const noexcept
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crend () const noexcept
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
 
template<typename... Args>
std::tuple< typename Container::value_type &... > emplace (Args &&...args)
std::tuple< typename Container::value_type &... > emplace (Args &&...args)
 Appends a row to the end of a table.
 
iterator erase (const_iterator pos)
iterator erase (const_iterator pos)
 Removes a row from a table.
 
void erase (const size_type pos)
void erase (const size_type pos)
 Removes a row from a table.
 
std::tuple< const typename Container::value_type &... > operator[] (const size_type pos) const
std::tuple< const typename Container::value_type &... > operator[] (const size_type pos) const
 Returns the row data at specified location.
 
std::tuple< typename Container::value_type &... > operator[] (const size_type pos)
 Returns the row data at specified location.
std::tuple< typename Container::value_type &... > operator[] (const size_type pos)
 Returns the row data at specified location.
 
void clear ()
void clear ()
 Clears a table.
 
@@ -246,14 +262,14 @@ class entt::basic_table< Container >

Basic table implementation. < template<typename... Container>

- +
using entt::basic_table< Container >::const_iterator = internal::table_iterator<typename Container::const_iterator...>using entt::basic_table< Container >::const_iterator = internal::table_iterator<typename Container::const_iterator...>

Constant input iterator type.

-

Definition at line 158 of file table.hpp.

+

Definition at line 160 of file table.hpp.

@@ -266,14 +282,34 @@ template<typename... Container> template<typename... Container> - +
using entt::basic_table< Container >::const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>using entt::basic_table< Container >::const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>

Constant reverse iterator type.

-

Definition at line 162 of file table.hpp.

+

Definition at line 164 of file table.hpp.

+ +
+ + +

◆ difference_type

+ +
+
+
+template<typename... Container>
+ + + + +
using entt::basic_table< Container >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 156 of file table.hpp.

@@ -286,14 +322,14 @@ template<typename... Container> template<typename... Container> - +
using entt::basic_table< Container >::iterator = internal::table_iterator<typename Container::iterator...>using entt::basic_table< Container >::iterator = internal::table_iterator<typename Container::iterator...>

Input iterator type.

-

Definition at line 156 of file table.hpp.

+

Definition at line 158 of file table.hpp.

@@ -306,14 +342,14 @@ template<typename... Container> template<typename... Container> - +
using entt::basic_table< Container >::reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>using entt::basic_table< Container >::reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>

Reverse iterator type.

-

Definition at line 160 of file table.hpp.

+

Definition at line 162 of file table.hpp.

@@ -326,7 +362,7 @@ template<typename... Container> template<typename... Container> - +
using entt::basic_table< Container >::size_type = std::size_tusing entt::basic_table< Container >::size_type = std::size_t
@@ -350,22 +386,22 @@ template<typename... Container>
- + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table ())
-inline +inline

Default constructor.

-

Definition at line 165 of file table.hpp.

+

Definition at line 167 of file table.hpp.

@@ -381,15 +417,15 @@ template<typename... Container> - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (const Container &... container)const Container &... container)
-inlineexplicitnoexcept +inlineexplicitnoexcept
@@ -402,7 +438,7 @@ template<typename... Container>
-

Definition at line 173 of file table.hpp.

+

Definition at line 175 of file table.hpp.

@@ -418,15 +454,15 @@ template<typename... Container> - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (Container &&... container)Container &&... container)
-inlineexplicitnoexcept +inlineexplicitnoexcept
@@ -439,7 +475,7 @@ template<typename... Container>
-

Definition at line 182 of file table.hpp.

+

Definition at line 184 of file table.hpp.

@@ -455,15 +491,15 @@ template<typename... Container> - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (basic_table< Container > && other)basic_table< Container > && other)
-inlinenoexcept +inlinenoexcept
@@ -476,7 +512,7 @@ template<typename... Container>
-

Definition at line 194 of file table.hpp.

+

Definition at line 196 of file table.hpp.

@@ -488,21 +524,21 @@ template<typename... Container>
template<typename... Container>
-template<typename Allocator >
+template<typename Allocator> +inlineexplicit
- + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (const Allocator & allocator)const Allocator & allocator)
-inlineexplicit
@@ -521,7 +557,7 @@ template<Definition at line 203 of file table.hpp.

+

Definition at line 205 of file table.hpp.

@@ -533,25 +569,25 @@ template< template<typename... Container>
-template<class Allocator >
+template<class Allocator> +inlinenoexcept
- + - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (const Container &... container, const Container &... container,
const Allocator & allocator )const Allocator & allocator )
-inlinenoexcept
@@ -571,7 +607,7 @@ template<Definition at line 213 of file table.hpp.

+

Definition at line 215 of file table.hpp.

@@ -583,25 +619,25 @@ template< template<typename... Container>
-template<class Allocator >
+template<class Allocator> +inlinenoexcept
- + - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (Container &&... container, Container &&... container,
const Allocator & allocator )const Allocator & allocator )
-inlinenoexcept
@@ -621,7 +657,7 @@ template<Definition at line 225 of file table.hpp.

+

Definition at line 227 of file table.hpp.

@@ -633,25 +669,25 @@ template< template<typename... Container>
-template<class Allocator >
+template<class Allocator> +inline
- + - + - +
entt::basic_table< Container >::basic_table entt::basic_table< Container >::basic_table (basic_table< Container > && other, basic_table< Container > && other,
const Allocator & allocator )const Allocator & allocator )
-inline
@@ -671,7 +707,7 @@ template<Definition at line 237 of file table.hpp.

+

Definition at line 239 of file table.hpp.

@@ -688,24 +724,24 @@ template<typename... Container> - + - +
const_iterator entt::basic_table< Container >::begin const_iterator entt::basic_table< Container >::begin ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the table is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first row of the table.
+
Returns
An iterator to the first row of the table.
-

Definition at line 322 of file table.hpp.

+

Definition at line 324 of file table.hpp.

@@ -721,24 +757,24 @@ template<typename... Container> - + - +
iterator entt::basic_table< Container >::begin iterator entt::basic_table< Container >::begin ())
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the table is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first row of the table.
+
Returns
An iterator to the first row of the table.
-

Definition at line 327 of file table.hpp.

+

Definition at line 329 of file table.hpp.

@@ -754,15 +790,15 @@ template<typename... Container> - + - +
size_type entt::basic_table< Container >::capacity size_type entt::basic_table< Container >::capacity ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -770,7 +806,7 @@ template<typename... Container>

Returns the number of rows that a table has currently allocated space for.

Returns
Capacity of the table.
-

Definition at line 285 of file table.hpp.

+

Definition at line 287 of file table.hpp.

@@ -786,15 +822,15 @@ template<typename... Container> - + - +
const_iterator entt::basic_table< Container >::cbegin const_iterator entt::basic_table< Container >::cbegin ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -803,7 +839,7 @@ template<typename... Container>

If the table is empty, the returned iterator will be equal to end().

Returns
An iterator to the first row of the table.
-

Definition at line 317 of file table.hpp.

+

Definition at line 319 of file table.hpp.

@@ -819,15 +855,15 @@ template<typename... Container> - + - +
const_iterator entt::basic_table< Container >::cend const_iterator entt::basic_table< Container >::cend ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -835,7 +871,7 @@ template<typename... Container>

Returns an iterator to the end.

Returns
An iterator to the element following the last row of the table.
-

Definition at line 335 of file table.hpp.

+

Definition at line 337 of file table.hpp.

@@ -851,22 +887,22 @@ template<typename... Container> - + - +
void entt::basic_table< Container >::clear void entt::basic_table< Container >::clear ())
-inline +inline

Clears a table.

-

Definition at line 440 of file table.hpp.

+

Definition at line 442 of file table.hpp.

@@ -882,15 +918,15 @@ template<typename... Container> - + - +
const_reverse_iterator entt::basic_table< Container >::crbegin const_reverse_iterator entt::basic_table< Container >::crbegin ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -899,7 +935,7 @@ template<typename... Container>

If the table is empty, the returned iterator will be equal to rend().

Returns
An iterator to the first row of the reversed table.
-

Definition at line 356 of file table.hpp.

+

Definition at line 358 of file table.hpp.

@@ -915,15 +951,15 @@ template<typename... Container> - + - +
const_reverse_iterator entt::basic_table< Container >::crend const_reverse_iterator entt::basic_table< Container >::crend ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -931,7 +967,7 @@ template<typename... Container>

Returns a reverse iterator to the end.

Returns
An iterator to the element following the last row of the reversed table.
-

Definition at line 375 of file table.hpp.

+

Definition at line 377 of file table.hpp.

@@ -949,15 +985,15 @@ template<typename... Args> - + - +
std::tuple< typename Container::value_type &... > entt::basic_table< Container >::emplace std::tuple< typename Container::value_type &... > entt::basic_table< Container >::emplace (Args &&... args)Args &&... args)
-inline +inline
@@ -977,7 +1013,7 @@ template<typename... Args>
Returns
A reference to the newly created row data.
-

Definition at line 396 of file table.hpp.

+

Definition at line 398 of file table.hpp.

@@ -993,15 +1029,15 @@ template<typename... Container> - + - +
bool entt::basic_table< Container >::empty bool entt::basic_table< Container >::empty ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1009,7 +1045,7 @@ template<typename... Container>

Checks whether a table is empty.

Returns
True if the table is empty, false otherwise.
-

Definition at line 306 of file table.hpp.

+

Definition at line 308 of file table.hpp.

@@ -1025,23 +1061,23 @@ template<typename... Container> - + - +
const_iterator entt::basic_table< Container >::end const_iterator entt::basic_table< Container >::end ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last row of the table.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last row of the table.
-

Definition at line 340 of file table.hpp.

+

Definition at line 342 of file table.hpp.

@@ -1057,23 +1093,23 @@ template<typename... Container> - + - +
iterator entt::basic_table< Container >::end iterator entt::basic_table< Container >::end ())
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last row of the table.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last row of the table.
-

Definition at line 345 of file table.hpp.

+

Definition at line 347 of file table.hpp.

@@ -1089,15 +1125,15 @@ template<typename... Container> - + - +
void entt::basic_table< Container >::erase void entt::basic_table< Container >::erase (const size_type pos)const size_type pos)
-inline +inline
@@ -1110,7 +1146,7 @@ template<typename... Container>
-

Definition at line 418 of file table.hpp.

+

Definition at line 420 of file table.hpp.

@@ -1126,7 +1162,7 @@ template<typename... Container> - + @@ -1134,7 +1170,7 @@ template<typename... Container>
iterator entt::basic_table< Container >::erase iterator entt::basic_table< Container >::erase ( const_iterator pos)
-inline +inline
@@ -1148,7 +1184,7 @@ template<typename... Container>
Returns
An iterator following the removed row.
-

Definition at line 409 of file table.hpp.

+

Definition at line 411 of file table.hpp.

@@ -1164,15 +1200,15 @@ template<typename... Container> - + - +
basic_table & entt::basic_table< Container >::operator= basic_table & entt::basic_table< Container >::operator= (basic_table< Container > && other)basic_table< Container > && other)
-inlinenoexcept +inlinenoexcept
@@ -1186,7 +1222,7 @@ template<typename... Container>
Returns
This container.
-

Definition at line 254 of file table.hpp.

+

Definition at line 256 of file table.hpp.

@@ -1202,15 +1238,15 @@ template<typename... Container> - + - +
basic_table & entt::basic_table< Container >::operator= basic_table & entt::basic_table< Container >::operator= (const basic_table< Container > & )const basic_table< Container > & )
-delete +delete
@@ -1232,29 +1268,29 @@ template<typename... Container>
- + - +
std::tuple< typename Container::value_type &... > entt::basic_table< Container >::operator[] std::tuple< typename Container::value_type &... > entt::basic_table< Container >::operator[] (const size_type pos)const size_type pos)
-inline +inlinenodiscard
-

Returns the row data at specified location.

+

Returns the row data at specified location.

Parameters
posThe row for which to return the data.
-
Returns
The row data at specified location.
+
Returns
The row data at specified location.
-

Definition at line 434 of file table.hpp.

+

Definition at line 436 of file table.hpp.

@@ -1270,15 +1306,15 @@ template<typename... Container> - + - +
std::tuple< const typename Container::value_type &... > entt::basic_table< Container >::operator[] std::tuple< const typename Container::value_type &... > entt::basic_table< Container >::operator[] (const size_type pos)const size_type pos) const
-inline +inlinenodiscard
@@ -1292,7 +1328,7 @@ template<typename... Container>
Returns
The row data at specified location.
-

Definition at line 428 of file table.hpp.

+

Definition at line 430 of file table.hpp.

@@ -1308,24 +1344,24 @@ template<typename... Container> - + - +
const_reverse_iterator entt::basic_table< Container >::rbegin const_reverse_iterator entt::basic_table< Container >::rbegin ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the table is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first row of the reversed table.
+
Returns
An iterator to the first row of the reversed table.
-

Definition at line 361 of file table.hpp.

+

Definition at line 363 of file table.hpp.

@@ -1341,24 +1377,24 @@ template<typename... Container> - + - +
reverse_iterator entt::basic_table< Container >::rbegin reverse_iterator entt::basic_table< Container >::rbegin ())
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the table is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first row of the reversed table.
+
Returns
An iterator to the first row of the reversed table.
-

Definition at line 366 of file table.hpp.

+

Definition at line 368 of file table.hpp.

@@ -1374,23 +1410,23 @@ template<typename... Container> - + - +
const_reverse_iterator entt::basic_table< Container >::rend const_reverse_iterator entt::basic_table< Container >::rend ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last row of the reversed table.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last row of the reversed table.
-

Definition at line 380 of file table.hpp.

+

Definition at line 382 of file table.hpp.

@@ -1406,23 +1442,23 @@ template<typename... Container> - + - +
reverse_iterator entt::basic_table< Container >::rend reverse_iterator entt::basic_table< Container >::rend ())
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last row of the reversed table.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last row of the reversed table.
-

Definition at line 385 of file table.hpp.

+

Definition at line 387 of file table.hpp.

@@ -1438,15 +1474,15 @@ template<typename... Container> - + - +
void entt::basic_table< Container >::reserve void entt::basic_table< Container >::reserve (const size_type cap)const size_type cap)
-inline +inline
@@ -1460,7 +1496,7 @@ template<typename... Container>
-

Definition at line 276 of file table.hpp.

+

Definition at line 278 of file table.hpp.

@@ -1476,22 +1512,22 @@ template<typename... Container> - + - +
void entt::basic_table< Container >::shrink_to_fit void entt::basic_table< Container >::shrink_to_fit ())
-inline +inline

Requests the removal of unused capacity.

-

Definition at line 290 of file table.hpp.

+

Definition at line 292 of file table.hpp.

@@ -1507,15 +1543,15 @@ template<typename... Container> - + - +
size_type entt::basic_table< Container >::size size_type entt::basic_table< Container >::size ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1523,7 +1559,7 @@ template<typename... Container>

Returns the number of rows in a table.

Returns
Number of rows.
-

Definition at line 298 of file table.hpp.

+

Definition at line 300 of file table.hpp.

@@ -1539,15 +1575,15 @@ template<typename... Container> - + - +
void entt::basic_table< Container >::swap void entt::basic_table< Container >::swap (basic_table< Container > & other)basic_table< Container > & other)
-inlinenoexcept +inlinenoexcept
@@ -1560,7 +1596,7 @@ template<typename... Container>
-

Definition at line 263 of file table.hpp.

+

Definition at line 265 of file table.hpp.

@@ -1571,7 +1607,8 @@ template<typename... Container> + diff --git a/classentt_1_1basic__view.html b/classentt_1_1basic__view.html index 3d58059d6..b5dcfd34a 100644 --- a/classentt_1_1basic__view.html +++ b/classentt_1_1basic__view.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_view< typename, typename, typename > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_view< typename, typename, typename > Class Template Reference
@@ -82,7 +95,7 @@ $(function() {

View implementation. More...

Detailed Description

-
template<typename, typename, typename = void>
+
template<typename, typename, typename = void>
class entt::basic_view< typename, typename, typename >

View implementation.

Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

Important

@@ -94,14 +107,15 @@ class entt::basic_view< typename, typename, typename >

View implem

In all other cases, modifying the storage iterated by a view in any way can invalidate all iterators.

-

Definition at line 42 of file fwd.hpp.

+

Definition at line 47 of file fwd.hpp.


The documentation for this class was generated from the following file:
+
diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4-members.html b/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4-members.html index cd28b00a2..819acb384 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4-members.html +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::basic_view< get_t< Get >, exclude_t<> > Member List
@@ -88,21 +101,23 @@ $(function() { begin() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline common_type typedefentt::basic_view< get_t< Get >, exclude_t<> > contains(const entity_type entt) const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - each(Func func) constentt::basic_view< get_t< Get >, exclude_t<> >inline - each() const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline - empty() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - end() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - entity_type typedefentt::basic_view< get_t< Get >, exclude_t<> > - find(const entity_type entt) const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - front() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - get(const entity_type entt) constentt::basic_view< get_t< Get >, exclude_t<> >inline + difference_type typedefentt::basic_view< get_t< Get >, exclude_t<> > + each(Func func) constentt::basic_view< get_t< Get >, exclude_t<> >inline + each() const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline + empty() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline + end() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline + entity_type typedefentt::basic_view< get_t< Get >, exclude_t<> > + find(const entity_type entt) const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline + front() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline get(const entity_type entt) constentt::basic_view< get_t< Get >, exclude_t<> >inline - handle() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline - iterable typedefentt::basic_view< get_t< Get >, exclude_t<> > - iterator typedefentt::basic_view< get_t< Get >, exclude_t<> > - operator bool() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inlineexplicit - operator->() const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline - operator[](const entity_type entt) constentt::basic_view< get_t< Get >, exclude_t<> >inline + get(const entity_type entt) constentt::basic_view< get_t< Get >, exclude_t<> >inline + handle() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline + iterable typedefentt::basic_view< get_t< Get >, exclude_t<> > + iterator typedefentt::basic_view< get_t< Get >, exclude_t<> > + operator bool() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inlineexplicit + operator->() const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline + operator[](const entity_type entt) constentt::basic_view< get_t< Get >, exclude_t<> >inline + operator|(OGet &other) const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexceptentt::basic_view< get_t< Get >, exclude_t<> >inline rbegin() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline rend() const noexceptentt::basic_storage_view< Get::base_type, Get::storage_policy >inline @@ -117,7 +132,8 @@ $(function() {
+ diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html b/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html index 98ca4a4fd..c679978c8 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_view< get_t< Get >, exclude_t<> > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -110,22 +123,25 @@ Collaboration diagram for entt::basic_view< get_t< Get >, exclude_t< - + - + - + - + + + + - + - + @@ -138,87 +154,94 @@ Public Types - - - + + + + + +

Public Types

using common_type = typename base_type::common_type
using common_type = typename base_type::common_type
 Common type among all storage types.
 
using entity_type = typename base_type::entity_type
using entity_type = typename base_type::entity_type
 Underlying entity identifier.
 
using size_type = typename base_type::size_type
using size_type = typename base_type::size_type
 Unsigned integer type.
 
using iterator = typename base_type::iterator
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterator = typename base_type::iterator
 Random access iterator type.
 
using reverse_iterator = typename base_type::reverse_iterator
using reverse_iterator = typename base_type::reverse_iterator
 Reverse iterator type.
 
using iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>
using iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>
 Iterable view type.
 
- Public Types inherited from entt::basic_storage_view< Get::base_type, Get::storage_policy >
using size_type
 Unsigned integer type.
 
using iterator
 Random access iterator type.
 
using difference_type
 Signed integer type.
 
using iterator
 Random access iterator type.
 
using reverse_iterator
 Reverse iterator type.
 
- + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - + + + + + - + - + - + - + - + - + - + - + @@ -227,7 +250,7 @@ Public Member Functions - + @@ -238,7 +261,7 @@ Public Member Functions

Public Member Functions

 basic_view () noexcept
 basic_view () noexcept
 Default constructor to use to create empty, invalid views.
 
 basic_view (Get &value) noexcept
 basic_view (Get &value) noexcept
 Constructs a view from a storage class.
 
 basic_view (std::tuple< Get & > value, std::tuple<>={}) noexcept
 basic_view (std::tuple< Get & > value, std::tuple<>={}) noexcept
 Constructs a view from a storage class.
 
template<typename Type = typename Get::element_type>
autostorage () const noexcept
template<typename Type = typename Get::element_type>
auto * storage () const noexcept
 Returns the storage for a given element type, if any.
 
template<std::size_t Index>
autostorage () const noexcept
auto * storage () const noexcept
 Returns the storage for a given index, if any.
 
void storage (Get &elem) noexcept
void storage (Get &elem) noexcept
 Assigns a storage to a view.
 
template<std::size_t Index>
void storage (Get &elem) noexcept
void storage (Get &elem) noexcept
 Assigns a storage to a view.
 
Getoperator-> () const noexcept
Get * operator-> () const noexcept
 Returns a pointer to the underlying storage.
 
decltype(autooperator[] (const entity_type entt) const
decltype(auto) operator[] (const entity_type entt) const
 Returns the element assigned to the given entity.
 
template<typename Elem >
decltype(autoget (const entity_type entt) const
template<typename Elem>
decltype(auto) get (const entity_type entt) const
 Returns the element assigned to the given entity.
 
template<std::size_t... Index>
decltype(autoget (const entity_type entt) const
decltype(auto) get (const entity_type entt) const
 Returns the element assigned to the given entity.
 
template<typename Func >
void each (Func func) const
template<typename Func>
void each (Func func) const
 Iterates entities and elements and applies the given function object to them.
 
iterable each () const noexcept
iterable each () const noexcept
 Returns an iterable object to use to visit a view.
 
template<typename OGet>
std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get, OGet >, exclude_t<> > > operator| (OGet &other) const noexcept
 Combines a view and a storage in more specific view.
 
template<typename... OGet, typename... OExclude>
auto operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
auto operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
 Combines two views in a more specific one.
 
- Public Member Functions inherited from entt::basic_storage_view< Get::base_type, Get::storage_policy >
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
std::enable_if_t< Pol !=deletion_policy::in_place, size_typesize () const noexcept
std::enable_if_t< Pol !=deletion_policy::in_place, size_typesize () const noexcept
 Returns the number of entities that have the given element.
 
std::enable_if_t< Pol==deletion_policy::in_place, size_typesize_hint () const noexcept
std::enable_if_t< Pol==deletion_policy::in_place, size_typesize_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
std::enable_if_t< Pol !=deletion_policy::in_place, bool > empty () const noexcept
std::enable_if_t< Pol !=deletion_policy::in_place, bool > empty () const noexcept
 Checks whether a view is empty.
 
iterator begin () const noexcept
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrbegin () const noexcept
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrbegin () const noexcept
 Returns an iterator to the first entity of the reversed view.
 
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrend () const noexcept
std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iteratorrend () const noexcept
 Returns an iterator that is past the last entity of the reversed view.
 
entity_type front () const noexcept
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 

Detailed Description

-
template<typename Get>
+
template<typename Get>
class entt::basic_view< get_t< Get >, exclude_t<> >

Storage view specialization.

This specialization offers a boost in terms of performance. It can access the underlying data structure directly and avoid superfluous checks.

See also
basic_view
@@ -249,7 +272,7 @@ class entt::basic_view< get_t< Get >, exclude_t<> >

St -

Definition at line 887 of file view.hpp.

+

Definition at line 912 of file view.hpp.

Member Typedef Documentation

◆ common_type

@@ -257,17 +280,37 @@ class entt::basic_view< get_t< Get >, exclude_t<> >

St

-template<typename Get >
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::common_type = typename base_type::common_typeusing entt::basic_view< get_t< Get >, exclude_t<> >::common_type = typename base_type::common_type

Common type among all storage types.

-

Definition at line 893 of file view.hpp.

+

Definition at line 918 of file view.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename Get>
+ + + + +
using entt::basic_view< get_t< Get >, exclude_t<> >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 924 of file view.hpp.

@@ -277,17 +320,17 @@ template<
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::entity_type = typename base_type::entity_typeusing entt::basic_view< get_t< Get >, exclude_t<> >::entity_type = typename base_type::entity_type

Underlying entity identifier.

-

Definition at line 895 of file view.hpp.

+

Definition at line 920 of file view.hpp.

@@ -297,17 +340,17 @@ template<
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>using entt::basic_view< get_t< Get >, exclude_t<> >::iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>

Iterable view type.

-

Definition at line 903 of file view.hpp.

+

Definition at line 930 of file view.hpp.

@@ -317,17 +360,17 @@ template<
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::iterator = typename base_type::iteratorusing entt::basic_view< get_t< Get >, exclude_t<> >::iterator = typename base_type::iterator

Random access iterator type.

-

Definition at line 899 of file view.hpp.

+

Definition at line 926 of file view.hpp.

@@ -337,17 +380,17 @@ template<
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator = typename base_type::reverse_iteratorusing entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator = typename base_type::reverse_iterator

Reverse iterator type.

-

Definition at line 901 of file view.hpp.

+

Definition at line 928 of file view.hpp.

@@ -357,17 +400,17 @@ template<
+template<typename Get>
- +
using entt::basic_view< get_t< Get >, exclude_t<> >::size_type = typename base_type::size_typeusing entt::basic_view< get_t< Get >, exclude_t<> >::size_type = typename base_type::size_type

Unsigned integer type.

-

Definition at line 897 of file view.hpp.

+

Definition at line 922 of file view.hpp.

@@ -378,28 +421,28 @@ template<
+template<typename Get>
+inlinenoexcept
- + - +
entt::basic_view< get_t< Get >, exclude_t<> >::basic_view entt::basic_view< get_t< Get >, exclude_t<> >::basic_view ())
-inlinenoexcept

Default constructor to use to create empty, invalid views.

-

Definition at line 906 of file view.hpp.

+

Definition at line 933 of file view.hpp.

@@ -409,21 +452,21 @@ template<
+template<typename Get>
+inlinenoexcept
- + - +
entt::basic_view< get_t< Get >, exclude_t<> >::basic_view entt::basic_view< get_t< Get >, exclude_t<> >::basic_view (Get & value)Get & value)
-inlinenoexcept
@@ -436,7 +479,7 @@ template<Definition at line 913 of file view.hpp.

+

Definition at line 940 of file view.hpp.

@@ -446,25 +489,25 @@ template<
+template<typename Get>
+inlinenoexcept
- + - + - +
entt::basic_view< get_t< Get >, exclude_t<> >::basic_view entt::basic_view< get_t< Get >, exclude_t<> >::basic_view (std::tuple< Get & > value, std::tuple< Get & > value,
std::tuple<> = {} )std::tuple<> = {} )
-inlinenoexcept
@@ -477,7 +520,7 @@ template<Definition at line 921 of file view.hpp.

+

Definition at line 948 of file view.hpp.

@@ -488,21 +531,21 @@ template<
+template<typename Get>
+inlinenodiscardnoexcept
- + - +
iterable entt::basic_view< get_t< Get >, exclude_t<> >::each iterable entt::basic_view< get_t< Get >, exclude_t<> >::each ()) const
-inlinenoexcept
@@ -511,7 +554,7 @@ template<
Returns
An iterable object to use to visit the view.
-

Definition at line 1060 of file view.hpp.

+

Definition at line 1087 of file view.hpp.

@@ -521,15 +564,15 @@ template<
+template<typename Get>
-template<typename Func >
+template<typename Func> @@ -31,23 +33,33 @@
- + @@ -537,17 +580,16 @@ template< -inline +inline
void entt::basic_view< get_t< Get >, exclude_t<> >::each void entt::basic_view< get_t< Get >, exclude_t<> >::each ( Func func) const

Iterates entities and elements and applies the given function object to them.

The signature of the function must be equivalent to one of the following (non-empty types only, constness as requested):

-
void(const entity_type, Type &);
-
void(typename Type &);
-
typename base_type::entity_type entity_type
Underlying entity identifier.
Definition view.hpp:895
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
void(const entity_type, Type &);
+
void(typename Type &);
+
typename base_type::entity_type entity_type
Underlying entity identifier.
Definition view.hpp:920
Template Parameters
@@ -561,7 +603,7 @@ template<Definition at line 1025 of file view.hpp.

+

Definition at line 1052 of file view.hpp.

@@ -571,23 +613,23 @@ template<
+template<typename Get>
-template<typename Elem >
+template<typename Elem>
FuncType of the function object to invoke.
+inlinenodiscard
- + - +
decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::get decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -607,7 +649,7 @@ template<
Returns
The element assigned to the entity.
-

Definition at line 989 of file view.hpp.

+

Definition at line 1016 of file view.hpp.

@@ -617,7 +659,7 @@ template<
+template<typename Get>
template<std::size_t... Index>
@@ -625,15 +667,15 @@ template<std::size_t... Index> +inlinenodiscard
- + - +
decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::get decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -653,7 +695,7 @@ template<std::size_t... Index>
Returns
The element assigned to the entity.
-

Definition at line 1001 of file view.hpp.

+

Definition at line 1028 of file view.hpp.

@@ -663,21 +705,21 @@ template<std::size_t... Index>
-template<typename Get >
+template<typename Get>
+inlinenodiscardnoexcept
- + - +
Get * entt::basic_view< get_t< Get >, exclude_t<> >::operator-> Get * entt::basic_view< get_t< Get >, exclude_t<> >::operator-> ()) const
-inlinenoexcept
@@ -685,7 +727,7 @@ template<
Returns
A pointer to the underlying storage.
-

Definition at line 969 of file view.hpp.

+

Definition at line 996 of file view.hpp.

@@ -695,21 +737,21 @@ template<
+template<typename Get>
+inlinenodiscard
- + - +
decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::operator[] decltype(auto) entt::basic_view< get_t< Get >, exclude_t<> >::operator[] (const entity_type entt)const entity_type entt) const
-inline
@@ -723,17 +765,17 @@ template<
Returns
The element assigned to the given entity.
-

Definition at line 978 of file view.hpp.

+

Definition at line 1005 of file view.hpp.

-

◆ operator|()

+

◆ operator|() [1/2]

-template<typename Get >
+template<typename Get>
template<typename... OGet, typename... OExclude>
@@ -741,15 +783,15 @@ template<typename... OGet, typename... OExclude> +inlinenodiscardnoexcept
- + - +
auto entt::basic_view< get_t< Get >, exclude_t<> >::operator| auto entt::basic_view< get_t< Get >, exclude_t<> >::operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > & other)const basic_view< get_t< OGet... >, exclude_t< OExclude... > > & other) const
-inlinenoexcept
@@ -770,7 +812,53 @@ template<typename... OGet, typename... OExclude>
Returns
A more specific view.
-

Definition at line 1077 of file view.hpp.

+

Definition at line 1115 of file view.hpp.

+ + + + +

◆ operator|() [2/2]

+ +
+
+
+template<typename Get>
+
+template<typename OGet>
+ + + + + +
+ + + + + + + +
std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get, OGet >, exclude_t<> > > entt::basic_view< get_t< Get >, exclude_t<> >::operator| (OGet & other) const
+
+inlinenodiscardnoexcept
+
+ +

Combines a view and a storage in more specific view.

+
Template Parameters
+ + +
OGetType of storage to combine the view with.
+
+
+
Parameters
+ + +
otherThe storage for the type to combine the view with.
+
+
+
Returns
A more specific view.
+ +

Definition at line 1103 of file view.hpp.

@@ -780,23 +868,23 @@ template<typename... OGet, typename... OExclude>
-template<typename Get >
+template<typename Get>
-template<typename Type = typename Get::element_type>
+template<typename Type = typename Get::element_type>
+inlinenodiscardnoexcept
- + - +
auto * entt::basic_view< get_t< Get >, exclude_t<> >::storage auto * entt::basic_view< get_t< Get >, exclude_t<> >::storage ()) const
-inlinenoexcept
@@ -810,7 +898,7 @@ template<
Returns
The storage for the given element type.
-

Definition at line 930 of file view.hpp.

+

Definition at line 957 of file view.hpp.

@@ -820,7 +908,7 @@ template<
+template<typename Get>
template<std::size_t Index>
@@ -828,15 +916,15 @@ template<std::size_t Index> +inlinenodiscardnoexcept
- + - +
auto * entt::basic_view< get_t< Get >, exclude_t<> >::storage auto * entt::basic_view< get_t< Get >, exclude_t<> >::storage ()) const
-inlinenoexcept
@@ -850,7 +938,7 @@ template<std::size_t Index>
Returns
The storage for the given index.
-

Definition at line 941 of file view.hpp.

+

Definition at line 968 of file view.hpp.

@@ -860,21 +948,21 @@ template<std::size_t Index>
-template<typename Get >
+template<typename Get>
+inlinenoexcept
- + - +
void entt::basic_view< get_t< Get >, exclude_t<> >::storage void entt::basic_view< get_t< Get >, exclude_t<> >::storage (Get & elem)Get & elem)
-inlinenoexcept
@@ -887,7 +975,7 @@ template<Definition at line 950 of file view.hpp.

+

Definition at line 977 of file view.hpp.

@@ -897,7 +985,7 @@ template<
+template<typename Get>
template<std::size_t Index>
@@ -905,15 +993,15 @@ template<std::size_t Index> +inlinenoexcept
- + - +
void entt::basic_view< get_t< Get >, exclude_t<> >::storage void entt::basic_view< get_t< Get >, exclude_t<> >::storage (Get & elem)Get & elem)
-inlinenoexcept
@@ -932,7 +1020,7 @@ template<std::size_t Index>
-

Definition at line 960 of file view.hpp.

+

Definition at line 987 of file view.hpp.

@@ -942,7 +1030,8 @@ template<std::size_t Index> + diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_003e8ad63e7464796b4d5f45fee854cd9b.html b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_003e8ad63e7464796b4d5f45fee854cd9b.html index b8b1496ec..86a8dc289 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_003e8ad63e7464796b4d5f45fee854cd9b.html +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_003e8ad63e7464796b4d5f45fee854cd9b.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> > Member List
@@ -81,29 +94,31 @@ $(function() {

This is the complete list of members for entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, including all inherited members.

- + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -114,7 +129,8 @@ $(function() {
back() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
back() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
basic_view() noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
basic_view(Get &...value, Exclude &...excl) noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
begin() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
begin() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
common_type typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
contains(const entity_type entt) const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
each(Func func) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
each() const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
end() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
entity_type typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
find(const entity_type entt) const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
front() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
get(const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
get(const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
handle() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
iterable typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
iterator typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
operator bool() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inlineexplicit
operator[](const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
contains(const entity_type entt) const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
difference_type typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
each(Func func) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
each() const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
end() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
entity_type typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
find(const entity_type entt) const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
front() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
get(const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
get(const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
handle() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
iterable typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
iterator typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
operator bool() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inlineexplicit
operator[](const entity_type entt) constentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
operator|(OGet &other) const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
refresh() noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
size_hint() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>inline
refresh() noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
size_hint() const noexceptentt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>inline
size_type typedefentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
storage() const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
storage() const noexceptentt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >inline
+ diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.map b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.map index afc31d564..aadacc8e9 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.map +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.md5 b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.md5 index e77246d6f..bc13daf57 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.md5 +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.md5 @@ -1 +1 @@ -6c77ef2b44d0be7bb78c2fe9ec59d530 \ No newline at end of file +c4b1afb8dbdbda3a7f42d9727365dce6 \ No newline at end of file diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.png b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_004357f89b3d52b8160564b8777d3550a9.png index bf8b45f10ad54088c632c068aaf0abd3fcec4420..ca6ff6089f78f254322f62291ece95e2d999794a 100644 GIT binary patch literal 4042 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 literal 3785 zcmV;)4mR}6tQ99$RNZ5D>fUF z$d5b9f)9};Y$AmP8qb)0oa{h}A(mi6#KvEM1rrn=l7$QiISb=VvBO-@&zI`wZN000000000000000007K@(7(8T{rVS$5YM-827nZ#l<)8F z@BgK>9{`NNN&O2U#PdRkH(NLZKq6O&=yq!-02qN|!GB?Qcekb=03@-qv(wrI0ES|# zwF3YE0P2I_4*&ow1i>Ew09FWsKL7x%kfDRW5XUN2yR-=a0KH+Y_Njpof~1tz?H07| zAFPwjW`qCmKrwFKym@R?+cfwC0G@L0+&S9b-fry%n23iDAJYB%_l^6q1%EYNVj9ga z`ScCBKMjp-BAXM1~_&YnHn+6}N0vIKu$kTwPM zCEzUI>)XqBDz?CHx><01u=&e9FB>U+>&L3+9eZrd?*jmsn<^8&C4-60c1WMxV`I-F z#TQrGkYhvo1OUuWk+e@Q*nCpc9LqKU0IZ2@!N0cv>dM^{x%2!005Cg6(muUC1?c|7 z`d7Oh0KHK{K(CZ2AH@FLWC{LD8fE#!R>kPsoS<#%SM|x18|U~NdtR<~Dc35N7JY&~ z(F0-+0kV{W@QBL9HGhw6Bmbp>$2SS72SVSr&z7xU-JYv0w~r7weuZ2seLJRYOrHP% zGd)XqBDy9Huvd#6u<}dfWV##553Cf&y z`nhv_G5sDT!N@-XJ>3+W8UmmcB?E}fc1WMxV>!nyL6ayvsGHiFY^eb{lwRi^F!Bdr zPaty%lcQ#ZJQdDLeHJsHrEQ>9BDG&?~PO(h{Y95dzd`c z>7lyGM;AH&)Sw!YuF!)x0#YAfv=3bL7(9LS?sFHxKQ#dRa^0@}Fge@@_zn8QRjLW% z^Z2du|2oBU{-G%!eN?Wt_1WU&j9ZN`*D|to{YKntu$F68iX8c7bwz7vX=5%QKv|kk z_^K0?xkll>9J#AM)6Hl3*p4%8yZR|{&OS=@84{@VN$JwQ0XweXY#W(|-T-ofn@N6} zyu;VDZL8ENF==S)&-Io`ylnk(w`1DI^l8I(ZZU0K*9!3QDMNAMr(xE8Oe{)VWf#`Miq_^d&4 z@Q1wdyoCO?AyrqP9;pGPw~1fdYUG-Ir?l@Sg_Ruq@jv>!#H4g`*#h}URit!@wY3Oj zvFGAjE6}P62iiUWfMVoSq%_&BL8|YrcDA%n4O%@(HLv#JqE>^HE(JuXA($0T*`{s3 zFEExI!KS=S#b&Q&yI$<86d(ELDBZJ_WQMFA7&YxMvhScBzCi5@qNW>w-X=tyGIb)A z6ZCyD%r;+La?Y`8q_O*IJ_Qt2^(5j2FV``#`(loZJ-#G8`O-5`^#r}Fob8Ebs-8>w z#Fj=$UDRWG8qm{1CLeqYv~+v6?{n_6^&jH9dVG%l0RZz-P1RGSL`k6Dk1ih^x~j!8zL1TOucR2wO%Hw4HguM-40kb~;M zUlm@92~_&%Ri#!s!`6>3D(BJ-YC-G%0Ra8bq|RSWMX1}k?3TooKC$`WOE=Y~b^l-t zN~V=Ymq9K`?Q?9p$jg?G){luP^{kQ8Ha&UNC_i=01(d3QnvKnS^2?7O(-k4;o3}2C zORfFMNsb^gd!TJWZ#S?ii@bd42JXbCOZL|%3mjVQ!;xbS@xkYxi_)^mzUyJTKBKYu zrTpCWU&~jo-I4Ds&q+zANzi|Z5&TKge@N2H&9?=CNdPNX@UlIvPL}CT`|5S-&--K_kGRQqkN9%1{ztXXYq;rgnv#a(zRxC}O z9F4K>+O|!+a^)RD_L(pp&k>f3@jI0olhi&*=U0Cv&pbLwmjuyEhl0K(Bt4cyCk4@8 zZ(S5$D&`myNIH+hNTYj~q;s*6zf1pS`D+s>%b`H22R_?AeVbF`4#m$f^xvUHs_N(8 z6aOTleInYw`WyLqBDx}oULvB?)tv#L1BS@?r`l3Syg6_!GE23Qg6oD_s?QK?H=El0 z;sx8ILvYB(Wgr0xyJ zZmor6(`ozoCVcftR@1iL#$=0|W^wHcoou$X)vIar<2dc~eLg~-nrziRDc8f-KY~8s z60KKG&wYKjfTz`)tIFs6+b?-3FjH z)+Ey$0v34zFd&@8OTL9rHW>ro0xgdGL5#kQ?w4<5>^sinXUuidkFgzV`rfvWdyXYR z@b8#W6+c0F^nl@7N$T6S{X3*xNZ*`uZWo zK}@?|NDZjHpI=T8`~jGh*j#ss%AHz-%2$UJc-FHKi$P^_`1Q`D$*8$|vYH8qMqcYXqy5I&)iTqxy-h;jbk-kqgx9k4sDt&o!ED z`4r$&&Me{EC{F>+NB$#W8(FuMsQ~N5H|ZGrMkzgQVp@3RvswFXRw**gTwm4d9Q|0A zjS%}OQq(aNk#sh8#FS{(v87u$3$IdTic{1sL;Q(R=k(d>?OK+`C+XZfkaVs`>nfX? zG?8>x;Reyzm8GuKOp6hDNq^RMEdc;!Xp;7sC4l6b_)TG!YYFBjMvA(Ge02{s_B~J~ z_`9@YOr#2v)xuQ)RLa*`uO*nDm|$BfK(9UU6IC4fb93CTeIt!>OZvLDYYE!nEB%ZO zqMVU;$ml%AueFcBcFSdw2$q3-{><& zyT)aovuz9RKDglu)s( z9aLlGAx66iWDEYYj`T{_w{vRr0qBuj6Tdy2(fkBxaj%j`6NnM(^|0wiZqlfIZL)`qREX}?M9$L9wC0IV|jo6uM7 z+E&Fb$J%6%eRBw|{%!3;?W@P(CIDh7xq7#U5qA$hv;=9NBXXunQf>6$E0L zSyi(KA6kOoA3)0q*4U>BqA@440RUw|@DD&O4Q-()$^}6m0N?{T{{ocGv->8Mmz+NU z0NB9D{|H+^HRa9q(LeX?TCQAv$i5gwP5=Nt*7utE_00RUiySSNhfE_wt205fwe_-}1(eRz0y`1ZYf_geS^ zKr~xhTOYRe0RR91000000000000000fSUXdfi~;$vAyTk00000NkvXXu0mjfk$7G( diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.map b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.map index afc31d564..aadacc8e9 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.map +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.md5 b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.md5 index e77246d6f..bc13daf57 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.md5 +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.md5 @@ -1 +1 @@ -6c77ef2b44d0be7bb78c2fe9ec59d530 \ No newline at end of file +c4b1afb8dbdbda3a7f42d9727365dce6 \ No newline at end of file diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.png b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bd76ad63ca9ce3d511765fffbcf62c24.png index bf8b45f10ad54088c632c068aaf0abd3fcec4420..ca6ff6089f78f254322f62291ece95e2d999794a 100644 GIT binary patch literal 4042 zcmV;*4>jq003_ptzMHUJQ8booC4-LhF zx%c%hx)4M+m9BNA;O^x%2;E4VfGgXpb*C68z6%vB2zrqq2x1L&W!k*sA~`yl%*Qj| zGw1w&kT&OIo_WqW?K3ma%=}*>000000000000000004me2>ryt!ND^^i1RI+0iZOi z)#~Mo8$yUnt^EM=L`wOUqobqO)pJc72mnABr%s)svuDq?b_2|e zlamwU`D_h@nwl|<3a0DRwdq*Du8tzOBMjZP&nJ$*92+iD>bAYB*n4B@1bwo%w?}8r zoN4U_m>ESI2wxyK1^p=~P3QIF>70tKaWFL~93O1{a-YjaO5OUs>T}258}oet0HDew zb;*EZvmH_=_ukm&Nb$v0Hss!rIspKHs8EWj7i>PMDV6CM006+lWNRRL3$m`c1S0pm z0{{SkLMf)+MiaU}vHsOA2f(Nt9v%*1v!vZQkfni`Qa00{*wsGzF(Q#L*9 z#y*#;T*|wOrA3`!Z1kYnLl7;cFg>Djb*=A_Z3Ho`O!7^f>cP@??6YO7SGVUX%dH~> zj$a|~Nk9FuM#F=h)DgJm6wm_)J)s9E*YWiC&1Un^dHr}gr(z0%Cfi&e zZ2oeeE0!E~r@+lAr$0N#7t{AB1x64N=&7yPG!y`>DH&vJwnOUV-pjdf3amuof!|ct zWJ?X=q4YQxf)NA&GpENKxXmXu@J`3INqJwY|G7pqEoss~jJlF$RKLNp>8)pKN}Z^b zNF9ZcTA!XWO0n1a+cils^%`WcUm*;x? z)2A<;J9nU3#x72gIk*K_%v zS+CdS2lw94I(^tSAi9Y44S>1QTgp$TXo^Ygb%&;XOl3{BQqxJ?vZ;Y9^x3&(bM1uA z(QEg8Z>0S|X~j|lL~4-s z<=$QOVM4nP@D0YrwM-Sn&nvW=k5DN-2N9ZH(tG!6S)VOV4!c!Pbtye$*Eiz6gQdKy z*5t^4t2>87mv!dy0hFWpB(*xZnyWYO%h|i?Gc{1tAKQJVV^=*Tp4msKIzxiFK9OG9 zH;|4ifZKYwp^ZdN(BR~y$!}7dj%_QDN=$Ux>T{jbuW|hHJ(sOM?r}`nm^y9Po-L+~ z>s^8T_!L38N~AVSYxZlXl1`0Nip>x;Sx&ha8zFv`q>DKS06<-AyMS}*2&pz}s*-iG;Z9`U*f&NGhI=xL++jf1|tUINA59zYx1_Hrg zzQm-Da@hj)NmU|s3GlTDcCpXm+e^`EbrH0f002$NsYGhBTZ2^JUFB>krW&+pl$x(% z;-ao{DZLC5%Phgt;VfCTUH1jgl0D&+AMCN&t68oW`xC`S5IL4D+Loh+?5!9z#WAw) zpnrV9+!ts~jf7q%M3ppk@|V*v_$0b*zPhBoV^wHluhkk&6jgI2;srR@J+aqf?u)&@ zBt7|JV+0?Gpymqh)58ws-e{ucI;CoCDVx-dQKnIao`N#@;M?S;+q0d|dCgXTi0|tC zIqK)4Zgc|x%!g`ft|}##L+bVD($b-u+-!=mwt7;o*$9;>iS;`Np?X-LJfkU_)?&%e z9!m99OsRp%Bxz9sm)=vVjTF>Iqen??TZ07ZgFpyUsop@SVtO$FMDGQw)Jk#K>d}P) zT{=%Ks8K&g5CF`FCi@^tr6XztB~z-#=7TS_RhyFaqhVMcB~w@_h8(D zo*KC-8|8ed4en&EOA=bY$CcjUq^4}P)OtdE@cHK=BsFC7&sD$geWZTB(KvWhe&X7j z@_Prrpxd;gUkjoag`}rj`_+OT^niL~DetAq4+iB3AgUa+YqVjLvkqCsdw7YQdB|-FM5+sQp{L_P!BuLOp`^WO7 z;*Prfc<*ojpx^$enEh0_Z=c<{N@T~pvsT(lp;SpR^}NcZ2j6<|AvYzSDaGbfPY^x( z&tK8I@BMx&KYsCFMD*FoEP3YQgdiy-{ZtbDB&zaEhssJ_euQe=YM_WJC`o+AIme6=!+{!*QB6Nk)RKVXpiKh z0+vKXBSyM#-;Yj-`nbN7O0WI+3*wJN^fD2>ynig86GT^~py#t!1i%0^)ndwR$F+g31tA;G zxIU&lOX>GeVuM}H#zE)$1@Sf!y?yz0`Rym4q_f2<%nand+cJlD-2EIxh|EL{JGD{M zG}CbjYQLY@`dWO)8&||VBKmvviW8YbfC6plzJbUQ5PjN1y_1r6kEx>uvGv(fQ2>Da zR1xdTMUKEeTI0~d-`c%A^CH*pQmnJ)~Sn-JECR zl*u7&&h<5Rw|0p9cTF&Y09Mcl0GCumOu1f24Z6KQUoOx<0I+akbMGZqB-J8R+B{UA z+n3H7g`pY@ai9&U}*IjKK9pE<&Zvx#=*UNZ&{dvkyYm zAe#P!tdSpSJ$;SFA!fyrUfyIc_1lD&1$l`H^tpP)Ek_eR#nckMjWC+%W(48tIl9F4 zTJ<>5)4flR-v<02-$ZHbFPrHp8q?-ApUv98s+J<*&Gl7Xb)?_xvJqlGMW#HIqH^Ed zjb}veUUNvG36aK5B}bZO!uFm_y=hx&$M$a3YpL%dMRGe-wmf&^!jb##8OVLtWhA-o zRJxM;CQ1*kHk-E8M~Q%=2e}aYF%sml^4jWgtDb#t{r~{{6m1~X|M^|PE0o?Qt8+Y8 z>u1PCZ{G%tM~qB)32F1zdk}h{+3!K5j38XAXIhHeg*=Ns8S5+S`r(|O=DW;V4499K_Qhn#<++Ej3>Y@){dtIlcFg9)65p7(o=qmt*Fn zXKXfnDV>tJ?Hp;c+`hHQ<@fk)Ks~rxPoX+XM0ry@v3@N*&D7042w$+60+IU1r0(gu zuBJGA=?`BzgcIC+T1GBkbsOrv92=qbxyPJmN&PlpOkDazBdq!768bD7KYNuFQ_b`d zHx(0lTmp`-oQ5-}ea^A10r0{7HW*!uK}gR!R=JehgHN5Lc8!E|A5vsGMjMHAvr!HJ zunbBlm(~uvu`(T_H5ADW1SFyD%=P(8?p?s>VLs%VtnL|~qt!&DjmoKpoBBb8Xl~f}%4n#;X0RS41J3!VBxN~n9Cc0V0l$#o>V)Ru-G38Y| zraw7+EL9FGkARA8wG#IyL1XKzjXGyi;{KkP?FgcDsv`G3h!ImO&`|<9rba>!j6UVk z*nJZzeuXT>4Gr`oHVhN9Z6H7!&|oYF+p43G$y(p}6p8N8dt-h8XzmQ(K(v(1jtzz} zNx}UK&e40*9AR>OIpj$A;~i$xe=Eam_)f^}D3A zUGKqHzpZ?zef2)fQ_P!^yQF*Qx%c2hONJjosEpiW&FOopt=LA!<_FSF^JdOUsy+D7 zlA#+2J&^f=&?u7GHd;;!$Bs&f#%{O)STaL55Jbz8%$}a1m1-*&Gz4fWsZy)GLe_I;~^IO#7FraZoD<&euy-$Xw5T8x4$ z0AM`2Zy#qp@18ez4o^ZnX9T%o8c)Z}fBBHxP4X^x!(W|D&z>%07*qoM6N<$g1C6zq5uE@ literal 3785 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 diff --git a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html index 81402f857..cea750beb 100644 --- a/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html +++ b/classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -92,9 +105,9 @@ Inheritance diagram for entt::basic_view< get_t< Get... >, exclude_t<
Inheritance graph
- - - + + +
[legend]
@@ -102,131 +115,141 @@ Collaboration diagram for entt::basic_view< get_t< Get... >, exclude_t&
Collaboration graph
- - - + + +
[legend]
- + - + - + - + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + +

Public Types

using common_type = typename base_type::common_type
using common_type = typename base_type::common_type
 Common type among all storage types.
 
using entity_type = typename base_type::entity_type
using entity_type = typename base_type::entity_type
 Underlying entity identifier.
 
using size_type = typename base_type::size_type
using size_type = typename base_type::size_type
 Unsigned integer type.
 
using iterator = typename base_type::iterator
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using iterator = typename base_type::iterator
 Forward iterator type.
 
using iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>
using iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>
 Iterable view type.
 
- Public Types inherited from entt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>
using common_type
 Common type among all storage types.
 
using entity_type
 Underlying entity identifier.
 
using size_type
 Unsigned integer type.
 
using iterator
 Forward iterator type.
 
- Public Types inherited from entt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>
using common_type
 Common type among all storage types.
 
using entity_type
 Underlying entity identifier.
 
using size_type
 Unsigned integer type.
 
using difference_type
 Signed integer type.
 
using iterator
 Forward iterator type.
 
- + - + - + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 basic_view () noexcept
 basic_view () noexcept
 Default constructor to use to create empty, invalid views.
 
 basic_view (Get &...value, Exclude &...excl) noexcept
 basic_view (Get &...value, Exclude &...excl) noexcept
 Constructs a view from a set of storage classes.
 
 basic_view (std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept
 basic_view (std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept
 Constructs a view from a set of storage classes.
 
template<typename Type >
void use () noexcept
template<typename Type>
void use () noexcept
 Forces a view to use a given element to drive iterations.
 
template<std::size_t Index>
void use () noexcept
void use () noexcept
 Forces a view to use a given element to drive iterations.
 
template<typename Type >
autostorage () const noexcept
template<typename Type>
auto * storage () const noexcept
 Returns the storage for a given element type, if any.
 
template<std::size_t Index>
autostorage () const noexcept
auto * storage () const noexcept
 Returns the storage for a given index, if any.
 
template<typename Type >
void storage (Type &elem) noexcept
template<typename Type>
void storage (Type &elem) noexcept
 Assigns a storage to a view.
 
template<std::size_t Index, typename Type >
void storage (Type &elem) noexcept
template<std::size_t Index, typename Type>
void storage (Type &elem) noexcept
 Assigns a storage to a view.
 
decltype(autooperator[] (const entity_type entt) const
decltype(auto) operator[] (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<typename Type , typename... Other>
decltype(autoget (const entity_type entt) const
template<typename Type, typename... Other>
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<std::size_t... Index>
decltype(autoget (const entity_type entt) const
decltype(auto) get (const entity_type entt) const
 Returns the elements assigned to the given entity.
 
template<typename Func >
void each (Func func) const
template<typename Func>
void each (Func func) const
 Iterates entities and elements and applies the given function object to them.
 
iterable each () const noexcept
iterable each () const noexcept
 Returns an iterable object to use to visit a view.
 
template<typename OGet>
std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get..., OGet >, exclude_t< Exclude... > > > operator| (OGet &other) const noexcept
 Combines a view and a storage in more specific view.
 
template<typename... OGet, typename... OExclude>
auto operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
auto operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
 Combines two views in a more specific one.
 
- Public Member Functions inherited from entt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>
void refresh () noexcept
 Updates the internal leading view if required.
 
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
size_type size_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
entity_type front () const noexcept
 Returns the first entity of the view, if any.
 
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 Checks if a view is fully initialized.
 
bool contains (const entity_type entt) const noexcept
 Checks if a view contains an entity.
 
- Public Member Functions inherited from entt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>
void refresh () noexcept
 Updates the internal leading view if required.
 
const common_typehandle () const noexcept
 Returns the leading storage of a view, if any.
 
size_type size_hint () const noexcept
 Estimates the number of entities iterated by the view.
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the view.
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the view.
 
entity_type front () const noexcept
 Returns the first entity of the view, if any.
 
entity_type back () const noexcept
 Returns the last entity of the view, if any.
 
iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
 operator bool () const noexcept
 Checks if a view is fully initialized.
 
bool contains (const entity_type entt) const noexcept
 Checks if a view contains an entity.
 

Detailed Description

template<typename... Get, typename... Exclude>
@@ -241,7 +264,7 @@ class entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, -

Definition at line 430 of file view.hpp.

+

Definition at line 432 of file view.hpp.

Member Typedef Documentation

◆ common_type

@@ -252,14 +275,34 @@ class entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, template<typename... Get, typename... Exclude>
- +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type = typename base_type::common_typeusing entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type = typename base_type::common_type

Common type among all storage types.

-

Definition at line 475 of file view.hpp.

+

Definition at line 478 of file view.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename... Get, typename... Exclude>
+ + + + +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 484 of file view.hpp.

@@ -272,14 +315,14 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude>
- +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type = typename base_type::entity_typeusing entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type = typename base_type::entity_type

Underlying entity identifier.

-

Definition at line 477 of file view.hpp.

+

Definition at line 480 of file view.hpp.

@@ -292,14 +335,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>

Iterable view type.

-

Definition at line 483 of file view.hpp.

+

Definition at line 488 of file view.hpp.

@@ -312,14 +355,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator = typename base_type::iteratorusing entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator = typename base_type::iterator

Forward iterator type.

-

Definition at line 481 of file view.hpp.

+

Definition at line 486 of file view.hpp.

@@ -332,14 +375,14 @@ template<typename... Get, typename... Exclude> template<typename... Get, typename... Exclude> - +
using entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type = typename base_type::size_typeusing entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type = typename base_type::size_type

Unsigned integer type.

-

Definition at line 479 of file view.hpp.

+

Definition at line 482 of file view.hpp.

@@ -356,22 +399,22 @@ template<typename... Get, typename... Exclude> - + - +
entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view ())
-inlinenoexcept +inlinenoexcept

Default constructor to use to create empty, invalid views.

-

Definition at line 486 of file view.hpp.

+

Definition at line 491 of file view.hpp.

@@ -387,19 +430,19 @@ template<typename... Get, typename... Exclude> - + - + - +
entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view (Get &... value, Get &... value,
Exclude &... excl )Exclude &... excl )
-inlinenoexcept +inlinenoexcept
@@ -413,7 +456,7 @@ template<typename... Get, typename... Exclude>
-

Definition at line 494 of file view.hpp.

+

Definition at line 499 of file view.hpp.

@@ -429,19 +472,19 @@ template<typename... Get, typename... Exclude> - + - + - +
entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view (std::tuple< Get &... > value, std::tuple< Get &... > value,
std::tuple< Exclude &... > excl = {} )std::tuple< Exclude &... > excl = {} )
-inlinenoexcept +inlinenoexcept
@@ -455,7 +498,7 @@ template<typename... Get, typename... Exclude>
-

Definition at line 503 of file view.hpp.

+

Definition at line 508 of file view.hpp.

@@ -472,15 +515,15 @@ template<typename... Get, typename... Exclude> - + - +
iterable entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each iterable entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -489,7 +532,7 @@ template<typename... Get, typename... Exclude>

The iterable object returns a tuple that contains the current entity and a set of references to its non-empty elements. The constness of the elements is as requested.

Returns
An iterable object to use to visit the view.
-

Definition at line 634 of file view.hpp.

+

Definition at line 647 of file view.hpp.

@@ -501,13 +544,13 @@ template<typename... Get, typename... Exclude>
template<typename... Get, typename... Exclude>
-template<typename Func >
+template<typename Func> +inlinenodiscard
- + @@ -515,17 +558,16 @@ template< -inline +inline
void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each ( Func func) const

Iterates entities and elements and applies the given function object to them.

The signature of the function must be equivalent to one of the following (non-empty types only, constness as requested):

-
void(const entity_type, Type &...);
-
void(Type &...);
- -
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
void(const entity_type, Type &...);
+
void(Type &...);
+
Template Parameters
@@ -539,7 +581,7 @@ template<Definition at line 621 of file view.hpp.

+

Definition at line 634 of file view.hpp.

@@ -551,21 +593,21 @@ template< template<typename... Get, typename... Exclude>
-template<typename Type , typename... Other>
+template<typename Type, typename... Other>
FuncType of the function object to invoke.
+inlinenodiscard
- + - +
decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -586,7 +628,7 @@ template<
Returns
The elements assigned to the entity.
-

Definition at line 584 of file view.hpp.

+

Definition at line 597 of file view.hpp.

@@ -604,15 +646,15 @@ template<std::size_t... Index>
- + - +
decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get (const entity_type entt)const entity_type entt) const
-inline
@@ -632,7 +674,7 @@ template<std::size_t... Index>
Returns
The elements assigned to the entity.
-

Definition at line 595 of file view.hpp.

+

Definition at line 608 of file view.hpp.

@@ -648,15 +690,15 @@ template<typename... Get, typename... Exclude> - + - +
decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator[] decltype(auto) entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator[] (const entity_type entt)const entity_type entt) const
-inline +inlinenodiscard
@@ -670,12 +712,12 @@ template<typename... Get, typename... Exclude>
Returns
The elements assigned to the given entity.
-

Definition at line 572 of file view.hpp.

+

Definition at line 585 of file view.hpp.

-

◆ operator|()

+

◆ operator|() [1/2]

@@ -688,15 +730,15 @@ template<typename... OGet, typename... OExclude>
- + - +
auto entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator| auto entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator| (const basic_view< get_t< OGet... >, exclude_t< OExclude... > > & other)const basic_view< get_t< OGet... >, exclude_t< OExclude... > > & other) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -717,7 +759,53 @@ template<typename... OGet, typename... OExclude>
Returns
A more specific view.
-

Definition at line 646 of file view.hpp.

+

Definition at line 670 of file view.hpp.

+ + + + +

◆ operator|() [2/2]

+ +
+
+
+template<typename... Get, typename... Exclude>
+
+template<typename OGet>
+ + + + + +
+ + + + + + + +
std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get..., OGet >, exclude_t< Exclude... > > > entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator| (OGet & other) const
+
+inlinenodiscardnoexcept
+
+ +

Combines a view and a storage in more specific view.

+
Template Parameters
+ + +
OGetType of storage to combine the view with.
+
+
+
Parameters
+ + +
otherThe storage for the type to combine the view with.
+
+
+
Returns
A more specific view.
+ +

Definition at line 658 of file view.hpp.

@@ -729,21 +817,21 @@ template<typename... OGet, typename... OExclude>
template<typename... Get, typename... Exclude>
-template<typename Type >
+template<typename Type> +inlinenodiscardnoexcept
- + - +
auto * entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage auto * entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage ()) const
-inlinenoexcept
@@ -757,7 +845,7 @@ template<
Returns
The storage for the given element type.
-

Definition at line 530 of file view.hpp.

+

Definition at line 535 of file view.hpp.

@@ -775,15 +863,15 @@ template<std::size_t Index> - + - +
auto * entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage auto * entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -797,7 +885,7 @@ template<std::size_t Index>
Returns
The storage for the given index.
-

Definition at line 540 of file view.hpp.

+

Definition at line 545 of file view.hpp.

@@ -809,13 +897,13 @@ template<std::size_t Index>
template<typename... Get, typename... Exclude>
-template<typename Type >
+template<typename Type> @@ -31,23 +33,33 @@
- + @@ -823,7 +911,7 @@ template< -inlinenoexcept +inlinenoexcept
void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage ( Type & elem)
@@ -854,13 +942,13 @@ template< template<typename... Get, typename... Exclude> +template<std::size_t Index, typename Type> +inlinenoexcept
- + @@ -868,7 +956,7 @@ template<std::size_t Index, -inlinenoexcept +inlinenoexcept
void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage ( Type & elem)
@@ -900,21 +988,21 @@ template<std::size_t Index, template<typename... Get, typename... Exclude> +template<typename Type> +inlinenoexcept
- + - +
void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use ())
-inlinenoexcept
@@ -927,7 +1015,7 @@ template<Definition at line 511 of file view.hpp.

+

Definition at line 516 of file view.hpp.

@@ -945,15 +1033,15 @@ template<std::size_t Index>
- + - +
void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use void entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use ())
-inlinenoexcept
@@ -966,7 +1054,7 @@ template<std::size_t Index>
-

Definition at line 520 of file view.hpp.

+

Definition at line 525 of file view.hpp.

@@ -976,7 +1064,8 @@ template<std::size_t Index> + diff --git a/classentt_1_1compressed__pair-members.html b/classentt_1_1compressed__pair-members.html index 9e985fdf5..7cf795821 100644 --- a/classentt_1_1compressed__pair-members.html +++ b/classentt_1_1compressed__pair-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::compressed_pair< First, Second > Member List
@@ -101,7 +114,8 @@ $(function() {
+ diff --git a/classentt_1_1compressed__pair.html b/classentt_1_1compressed__pair.html index 40f265e61..538ca1674 100644 --- a/classentt_1_1compressed__pair.html +++ b/classentt_1_1compressed__pair.html @@ -3,13 +3,15 @@ - + EnTT: entt::compressed_pair< First, Second > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
-
entt::compressed_pair< First, Second > Class Template Referencefinal
+
entt::compressed_pair< First, Second > Class Template Referencefinal
@@ -114,69 +127,69 @@ Collaboration diagram for entt::compressed_pair< First, Second >:
- + - +

Public Types

using first_type = First
using first_type = First
 The type of the first element that the pair stores.
 
using second_type = Second
using second_type = Second
 The type of the second element that the pair stores.
 
- - + + - + - + - - + + - + +  - + - + - + - - + + - + - - + + - + - + - - + +

Public Member Functions

template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<first_type> && std::is_default_constructible_v<second_type>>>
constexpr compressed_pair () noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)
template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<first_type> && std::is_default_constructible_v<second_type>>>
constexpr compressed_pair () noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)
 Default constructor, conditionally enabled.
 
constexpr compressed_pair (const compressed_pair &other)=default
constexpr compressed_pair (const compressed_pair &other)=default
 Copy constructor.
 
constexpr compressed_pair (compressed_pair &&other) noexcept=default
constexpr compressed_pair (compressed_pair &&other) noexcept=default
 Move constructor.
 
template<typename Arg , typename Other >
constexpr compressed_pair (Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)
template<typename Arg, typename Other>
constexpr compressed_pair (Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)
 Constructs a pair from its values.
 
template<typename... Args, typename... Other>
constexpr compressed_pair (std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)
constexpr compressed_pair (std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)
 Constructs a pair by forwarding the arguments to its parts.
 
~compressed_pair ()=default
~compressed_pair ()=default
 Default destructor.
 
constexpr compressed_pairoperator= (const compressed_pair &other)=default
constexpr compressed_pairoperator= (const compressed_pair &other)=default
 Copy assignment operator.
 
constexpr compressed_pairoperator= (compressed_pair &&other) noexcept=default
constexpr compressed_pairoperator= (compressed_pair &&other) noexcept=default
 Move assignment operator.
 
constexpr first_typefirst () noexcept
constexpr first_typefirst () noexcept
 Returns the first element that a pair stores.
 
constexpr const first_typefirst () const noexcept
 Returns the first element that a pair stores.
constexpr const first_typefirst () const noexcept
 Returns the first element that a pair stores.
 
constexpr second_typesecond () noexcept
constexpr second_typesecond () noexcept
 Returns the second element that a pair stores.
 
constexpr const second_typesecond () const noexcept
 Returns the second element that a pair stores.
constexpr const second_typesecond () const noexcept
 Returns the second element that a pair stores.
 
constexpr void swap (compressed_pair &other) noexcept
constexpr void swap (compressed_pair &other) noexcept
 Swaps two compressed pair objects.
 
template<std::size_t Index>
constexpr decltype(autoget () noexcept
constexpr decltype(auto) get () noexcept
 Extracts an element from the compressed pair.
 
template<std::size_t Index>
constexpr decltype(autoget () const noexcept
 Extracts an element from the compressed pair.
constexpr decltype(auto) get () const noexcept
 Extracts an element from the compressed pair.
 

Detailed Description

-
template<typename First, typename Second>
+
template<typename First, typename Second>
class entt::compressed_pair< First, Second >

A compressed pair.

A pair that exploits the Empty Base Class Optimization (or EBCO) to reduce its final size to a minimum.

Template Parameters
@@ -195,10 +208,10 @@ class entt::compressed_pair< First, Second >

A compressed pair.

-template<typename First , typename Second >
+template<typename First, typename Second>
- +
using entt::compressed_pair< First, Second >::first_type = Firstusing entt::compressed_pair< First, Second >::first_type = First
@@ -215,10 +228,10 @@ template<
+template<typename First, typename Second>
- +
using entt::compressed_pair< First, Second >::second_type = Secondusing entt::compressed_pair< First, Second >::second_type = Second
@@ -236,23 +249,23 @@ template<
+template<typename First, typename Second>
-template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<first_type> && std::is_default_constructible_v<second_type>>>
+template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<first_type> && std::is_default_constructible_v<second_type>>>
+inlineconstexprnoexcept
- + - +
constexpr entt::compressed_pair< First, Second >::compressed_pair entt::compressed_pair< First, Second >::compressed_pair ())
-inlineconstexprnoexcept
@@ -276,21 +289,21 @@ template<
+template<typename First, typename Second>
+constexprdefault
- + - +
constexpr entt::compressed_pair< First, Second >::compressed_pair entt::compressed_pair< First, Second >::compressed_pair (const compressed_pair< First, Second > & other)const compressed_pair< First, Second > & other)
-constexprdefault
@@ -311,21 +324,21 @@ template<
+template<typename First, typename Second>
+constexprdefaultnoexcept
- + - +
constexpr entt::compressed_pair< First, Second >::compressed_pair entt::compressed_pair< First, Second >::compressed_pair (compressed_pair< First, Second > && other)compressed_pair< First, Second > && other)
-constexprdefaultnoexcept
@@ -346,27 +359,27 @@ template<
+template<typename First, typename Second>
-template<typename Arg , typename Other >
+template<typename Arg, typename Other>
+inlineconstexprnoexcept
- + - + - +
constexpr entt::compressed_pair< First, Second >::compressed_pair entt::compressed_pair< First, Second >::compressed_pair (Arg && arg, Arg && arg,
Other && other )Other && other )
-inlineconstexprnoexcept
@@ -397,7 +410,7 @@ template<
+template<typename First, typename Second>
template<typename... Args, typename... Other>
@@ -405,14 +418,14 @@ template<typename... Args, typename... Other> +inlineconstexprnoexcept
- + - + - + @@ -422,7 +435,7 @@ template<typename... Args, typename... Other>
constexpr entt::compressed_pair< First, Second >::compressed_pair entt::compressed_pair< First, Second >::compressed_pair (std::piecewise_construct_t , std::piecewise_construct_t ,
std::tuple< Args... > args, std::tuple< Args... > args,
-inlineconstexprnoexcept
@@ -454,27 +467,27 @@ template<typename... Args, typename... Other>
-template<typename First , typename Second >
+template<typename First, typename Second>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr const first_type & entt::compressed_pair< First, Second >::first const first_type & entt::compressed_pair< First, Second >::first ()) const
-inlineconstexprnoexcept
-

Returns the first element that a pair stores.

-
Returns
The first element that a pair stores.
+

Returns the first element that a pair stores.

+
Returns
The first element that a pair stores.

Definition at line 172 of file compressed_pair.hpp.

@@ -486,21 +499,21 @@ template<
+template<typename First, typename Second>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr first_type & entt::compressed_pair< First, Second >::first first_type & entt::compressed_pair< First, Second >::first ())
-inlineconstexprnoexcept
@@ -518,7 +531,7 @@ template<
+template<typename First, typename Second>
template<std::size_t Index>
@@ -526,27 +539,27 @@ template<std::size_t Index> +inlinenodiscardconstexprnoexcept
- + - +
constexpr decltype(auto) entt::compressed_pair< First, Second >::get decltype(auto) entt::compressed_pair< First, Second >::get ()) const
-inlineconstexprnoexcept
-

Extracts an element from the compressed pair.

+

Extracts an element from the compressed pair.

Template Parameters
IndexAn integer value that is either 0 or 1.
-
Returns
Returns a reference to the first element if Index is 0 and a reference to the second element if Index is 1.
+
Returns
Returns a reference to the first element if Index is 0 and a reference to the second element if Index is 1.

Definition at line 217 of file compressed_pair.hpp.

@@ -558,7 +571,7 @@ template<std::size_t Index>
-template<typename First , typename Second >
+template<typename First, typename Second>
template<std::size_t Index>
@@ -566,15 +579,15 @@ template<std::size_t Index> +inlinenodiscardconstexprnoexcept
- + - +
constexpr decltype(auto) entt::compressed_pair< First, Second >::get decltype(auto) entt::compressed_pair< First, Second >::get ())
-inlineconstexprnoexcept
@@ -598,21 +611,21 @@ template<std::size_t Index>
-template<typename First , typename Second >
+template<typename First, typename Second>
+constexprdefaultnoexcept
- + - +
constexpr compressed_pair & entt::compressed_pair< First, Second >::operator= compressed_pair & entt::compressed_pair< First, Second >::operator= (compressed_pair< First, Second > && other)compressed_pair< First, Second > && other)
-constexprdefaultnoexcept
@@ -634,21 +647,21 @@ template<
+template<typename First, typename Second>
+constexprdefault
- + - +
constexpr compressed_pair & entt::compressed_pair< First, Second >::operator= compressed_pair & entt::compressed_pair< First, Second >::operator= (const compressed_pair< First, Second > & other)const compressed_pair< First, Second > & other)
-constexprdefault
@@ -670,27 +683,27 @@ template<
+template<typename First, typename Second>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr const second_type & entt::compressed_pair< First, Second >::second const second_type & entt::compressed_pair< First, Second >::second ()) const
-inlineconstexprnoexcept
-

Returns the second element that a pair stores.

-
Returns
The second element that a pair stores.
+

Returns the second element that a pair stores.

+
Returns
The second element that a pair stores.

Definition at line 185 of file compressed_pair.hpp.

@@ -702,21 +715,21 @@ template<
+template<typename First, typename Second>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr second_type & entt::compressed_pair< First, Second >::second second_type & entt::compressed_pair< First, Second >::second ())
-inlineconstexprnoexcept
@@ -734,21 +747,21 @@ template<
+template<typename First, typename Second>
+inlineconstexprnoexcept
- + - +
constexpr void entt::compressed_pair< First, Second >::swap void entt::compressed_pair< First, Second >::swap (compressed_pair< First, Second > & other)compressed_pair< First, Second > & other)
-inlineconstexprnoexcept
@@ -771,7 +784,8 @@ template< +
diff --git a/classentt_1_1connection-members.html b/classentt_1_1connection-members.html index f4d787c51..b968ee75d 100644 --- a/classentt_1_1connection-members.html +++ b/classentt_1_1connection-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::connection Member List
@@ -88,7 +101,8 @@ $(function() {
+ diff --git a/classentt_1_1connection.html b/classentt_1_1connection.html index de0c0da91..c4d075840 100644 --- a/classentt_1_1connection.html +++ b/classentt_1_1connection.html @@ -3,13 +3,15 @@ - + EnTT: entt::connection Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Member Functions | @@ -93,17 +106,17 @@ Public Member Functions  connection ()  Default constructor.
  - operator bool () const noexceptoperator bool () const noexcept  Checks whether a connection is properly initialized.
  -void release () +void release ()  Breaks the connection.
  - - + +

Friends

template<typename >
class sink
template<typename>
class sink
 

Detailed Description

@@ -124,13 +137,13 @@ Friends entt::connection::connection ( - ) + ) -inline +inline
@@ -152,15 +165,15 @@ Friends - + - +
entt::connection::operator bool entt::connection::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -182,15 +195,15 @@ Friends - + - +
void entt::connection::release void entt::connection::release ())
-inline +inline
@@ -208,18 +221,18 @@ Friends
-template<typename >
+template<typename>
+friend
- +
friend class sinkfriend class sink
-friend
@@ -234,7 +247,8 @@ template< +
diff --git a/classentt_1_1delegate.html b/classentt_1_1delegate.html index 2210ff9a9..a9fee7738 100644 --- a/classentt_1_1delegate.html +++ b/classentt_1_1delegate.html @@ -3,13 +3,15 @@ - + EnTT: entt::delegate< typename > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::delegate< typename > Class Template Reference
@@ -82,7 +95,7 @@ $(function() {

Basic delegate implementation. More...

Detailed Description

-
template<typename>
+
template<typename>
class entt::delegate< typename >

Basic delegate implementation.

Primary template isn't defined on purpose. All the specializations give a compile-time error unless the template parameter is a function type.

@@ -93,7 +106,8 @@ class entt::delegate< typename >

Basic delegate implementation.

+
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 deleted file mode 100644 index 8d8e682d9..000000000 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
entt::delegate< Ret(Args...)> Member List
-
-
- -

This is the complete list of members for entt::delegate< Ret(Args...)>, including all inherited members.

- - - - - - - - - - - - - - - - - -
connect() noexceptentt::delegate< Ret(Args...)>inline
connect(Type &value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
connect(Type *value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
connect(function_type *function, const void *payload=nullptr) noexceptentt::delegate< Ret(Args...)>inline
data() const noexceptentt::delegate< Ret(Args...)>inline
delegate() noexcept=defaultentt::delegate< Ret(Args...)>
delegate(connect_arg_t< Candidate >, Type &&...value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
delegate(function_type *function, const void *payload=nullptr) noexceptentt::delegate< Ret(Args...)>inline
function_type typedefentt::delegate< Ret(Args...)>
operator bool() const noexceptentt::delegate< Ret(Args...)>inlineexplicit
operator()(Args... args) constentt::delegate< Ret(Args...)>inline
operator==(const delegate< Ret(Args...)> &other) const noexceptentt::delegate< Ret(Args...)>inline
reset() noexceptentt::delegate< Ret(Args...)>inline
result_type typedefentt::delegate< Ret(Args...)>
target() const noexceptentt::delegate< Ret(Args...)>inline
type typedefentt::delegate< Ret(Args...)>
- - - - 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 deleted file mode 100644 index 8ccac4264..000000000 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html +++ /dev/null @@ -1,712 +0,0 @@ - - - - - - - -EnTT: entt::delegate< Ret(Args...)> Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
entt::delegate< Ret(Args...)> Class Template Reference
-
-
- -

Utility class to use to send around functions and members. - More...

- -

#include <delegate.hpp>

- - - - - - - - - - - -

-Public Types

using function_type = Ret(const void *, Args...)
 Function type of the contained target.
 
using type = Ret(Args...)
 Function type of the delegate.
 
using result_type = Ret
 Return type of the delegate.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

delegate () noexcept=default
 Default constructor.
 
template<auto Candidate, typename... Type>
 delegate (connect_arg_t< Candidate >, Type &&...value_or_instance) noexcept
 Constructs a delegate with a given object or payload, if any.
 
 delegate (function_type *function, const void *payload=nullptr) noexcept
 Constructs a delegate and connects an user defined function with optional payload.
 
template<auto Candidate>
void connect () noexcept
 Connects a free function or an unbound member to a delegate.
 
template<auto Candidate, typename Type >
void connect (Type &value_or_instance) noexcept
 Connects a free function with payload or a bound member to a delegate.
 
template<auto Candidate, typename Type >
void connect (Type *value_or_instance) noexcept
 Connects a free function with payload or a bound member to a delegate.
 
void connect (function_type *function, const void *payload=nullptr) noexcept
 Connects an user defined function with optional payload to a delegate.
 
void reset () noexcept
 Resets a delegate.
 
function_typetarget () const noexcept
 Returns a pointer to the stored callable function target, if any.
 
const voiddata () const noexcept
 Returns the instance or the payload linked to a delegate, if any.
 
Ret operator() (Args... args) const
 Triggers a delegate.
 
 operator bool () const noexcept
 Checks whether a delegate actually stores a listener.
 
bool operator== (const delegate< Ret(Args...)> &other) const noexcept
 Compares the contents of two delegates.
 
-

Detailed Description

-
template<typename Ret, typename... Args>
-class entt::delegate< Ret(Args...)>

Utility class to use to send around functions and members.

-

Unmanaged delegate for function pointers and members. Users of this class are in charge of disconnecting instances before deleting them.

-

A delegate can be used as a general purpose invoker without memory overhead for free functions possibly with payloads and bound or unbound members.

-
Template Parameters
- - - -
RetReturn type of a function type.
ArgsTypes of arguments of a function type.
-
-
- -

Definition at line 66 of file delegate.hpp.

-

Member Typedef Documentation

- -

◆ function_type

- -
-
-
-template<typename Ret , typename... Args>
- - - - -
using entt::delegate< Ret(Args...)>::function_type = Ret(const void *, Args...)
-
- -

Function type of the contained target.

- -

Definition at line 101 of file delegate.hpp.

- -
-
- -

◆ result_type

- -
-
-
-template<typename Ret , typename... Args>
- - - - -
using entt::delegate< Ret(Args...)>::result_type = Ret
-
- -

Return type of the delegate.

- -

Definition at line 105 of file delegate.hpp.

- -
-
- -

◆ type

- -
-
-
-template<typename Ret , typename... Args>
- - - - -
using entt::delegate< Ret(Args...)>::type = Ret(Args...)
-
- -

Function type of the delegate.

- -

Definition at line 103 of file delegate.hpp.

- -
-
-

Constructor & Destructor Documentation

- -

◆ delegate() [1/2]

- -
-
-
-template<typename Ret , typename... Args>
-
-template<auto Candidate, typename... Type>
- - - - - -
- - - - - - - - - - - -
entt::delegate< Ret(Args...)>::delegate (connect_arg_t< Candidate > ,
Type &&... value_or_instance )
-
-inlinenoexcept
-
- -

Constructs a delegate with a given object or payload, if any.

-
Template Parameters
- - - -
CandidateFunction or member to connect to the delegate.
TypeType of class or type of payload, if any.
-
-
-
Parameters
- - -
value_or_instanceOptional valid object that fits the purpose.
-
-
- -

Definition at line 117 of file delegate.hpp.

- -
-
- -

◆ delegate() [2/2]

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - - - - - -
entt::delegate< Ret(Args...)>::delegate (function_type * function,
const void * payload = nullptr )
-
-inlinenoexcept
-
- -

Constructs a delegate and connects an user defined function with optional payload.

-
Parameters
- - - -
functionFunction to connect to the delegate.
payloadUser defined arbitrary data.
-
-
- -

Definition at line 127 of file delegate.hpp.

- -
-
-

Member Function Documentation

- -

◆ connect() [1/4]

- -
-
-
-template<typename Ret , typename... Args>
-
-template<auto Candidate>
- - - - - -
- - - - - - - -
void entt::delegate< Ret(Args...)>::connect ()
-
-inlinenoexcept
-
- -

Connects a free function or an unbound member to a delegate.

-
Template Parameters
- - -
CandidateFunction or member to connect to the delegate.
-
-
- -

Definition at line 136 of file delegate.hpp.

- -
-
- -

◆ connect() [2/4]

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - - - - - -
void entt::delegate< Ret(Args...)>::connect (function_type * function,
const void * payload = nullptr )
-
-inlinenoexcept
-
- -

Connects an user defined function with optional payload to a delegate.

-

The delegate isn't responsible for the connected object or the payload. Users must always guarantee that the lifetime of an instance overcomes the one of the delegate.
- The payload is returned as the first argument to the target function in all cases.

-
Parameters
- - - -
functionFunction to connect to the delegate.
payloadUser defined arbitrary data.
-
-
- -

Definition at line 216 of file delegate.hpp.

- -
-
- -

◆ connect() [3/4]

- -
-
-
-template<typename Ret , typename... Args>
-
-template<auto Candidate, typename Type >
- - - - - -
- - - - - - - -
void entt::delegate< Ret(Args...)>::connect (Type & value_or_instance)
-
-inlinenoexcept
-
- -

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

-

The delegate 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.
- 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.

-
Template Parameters
- - - -
CandidateFunction or member to connect to the delegate.
TypeType of class or type of payload.
-
-
-
Parameters
- - -
value_or_instanceA valid reference that fits the purpose.
-
-
- -

Definition at line 166 of file delegate.hpp.

- -
-
- -

◆ connect() [4/4]

- -
-
-
-template<typename Ret , typename... Args>
-
-template<auto Candidate, typename Type >
- - - - - -
- - - - - - - -
void entt::delegate< Ret(Args...)>::connect (Type * value_or_instance)
-
-inlinenoexcept
-
- -

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

-
See also
connect(Type &)
-
Template Parameters
- - - -
CandidateFunction or member to connect to the delegate.
TypeType of class or type of payload.
-
-
-
Parameters
- - -
value_or_instanceA valid pointer that fits the purpose.
-
-
- -

Definition at line 190 of file delegate.hpp.

- -
-
- -

◆ data()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
const void * entt::delegate< Ret(Args...)>::data () const
-
-inlinenoexcept
-
- -

Returns the instance or the payload linked to a delegate, if any.

-
Returns
An opaque pointer to the underlying data.
- -

Definition at line 244 of file delegate.hpp.

- -
-
- -

◆ operator bool()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
entt::delegate< Ret(Args...)>::operator bool () const
-
-inlineexplicitnoexcept
-
- -

Checks whether a delegate actually stores a listener.

-
Returns
False if the delegate is empty, true otherwise.
- -

Definition at line 269 of file delegate.hpp.

- -
-
- -

◆ operator()()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
Ret entt::delegate< Ret(Args...)>::operator() (Args... args) const
-
-inline
-
- -

Triggers a delegate.

-

The delegate invokes the underlying function and returns the result.

-
Warning
Attempting to trigger an invalid delegate results in undefined behavior.
-
Parameters
- - -
argsArguments to use to invoke the underlying function.
-
-
-
Returns
The value returned by the underlying function.
- -

Definition at line 260 of file delegate.hpp.

- -
-
- -

◆ operator==()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
bool entt::delegate< Ret(Args...)>::operator== (const delegate< Ret(Args...)> & other) const
-
-inlinenoexcept
-
- -

Compares the contents of two delegates.

-
Parameters
- - -
otherDelegate with which to compare.
-
-
-
Returns
False if the two contents differ, true otherwise.
- -

Definition at line 279 of file delegate.hpp.

- -
-
- -

◆ reset()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
void entt::delegate< Ret(Args...)>::reset ()
-
-inlinenoexcept
-
- -

Resets a delegate.

-

After a reset, a delegate cannot be invoked anymore.

- -

Definition at line 227 of file delegate.hpp.

- -
-
- -

◆ target()

- -
-
-
-template<typename Ret , typename... Args>
- - - - - -
- - - - - - - -
function_type * entt::delegate< Ret(Args...)>::target () const
-
-inlinenoexcept
-
- -

Returns a pointer to the stored callable function target, if any.

-
Returns
An opaque pointer to the stored callable function target.
- -

Definition at line 236 of file delegate.hpp.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classentt_1_1dense__map-members.html b/classentt_1_1dense__map-members.html index a92771e6f..7c87879db 100644 --- a/classentt_1_1dense__map-members.html +++ b/classentt_1_1dense__map-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator > Member List
@@ -111,60 +124,62 @@ $(function() { dense_map(const dense_map &other, const allocator_type &allocator)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline dense_map(dense_map &&) noexcept=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > dense_map(dense_map &&other, const allocator_type &allocator)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - emplace(Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - empty() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - end() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - end() noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - end(const size_type index) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - end(const size_type index)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - equal_range(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - equal_range(const key_type &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - equal_range(const Other &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - equal_range(const Other &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - erase(const_iterator pos)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - erase(const_iterator first, const_iterator last)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - erase(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - find(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - find(const key_type &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - find(const Other &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - find(const Other &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - get_allocator() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - hash_function() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - hasher typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - insert(const value_type &value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - insert(value_type &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - insert(Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - insert(It first, It last)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - insert_or_assign(const key_type &key, Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - insert_or_assign(key_type &&key, Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - iterator typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - key_eq() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - key_equal typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - key_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - load_factor() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - local_iterator typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - mapped_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - max_bucket_count() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - max_load_factor() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - max_load_factor(const float value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - max_size() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - operator=(const dense_map &)=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - operator=(dense_map &&) noexcept=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - operator[](const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - operator[](key_type &&key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - rehash(const size_type cnt)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - reserve(const size_type cnt)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - size() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - size_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - swap(dense_map &other) noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - try_emplace(const key_type &key, Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - try_emplace(key_type &&key, Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline - value_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > - ~dense_map()=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + difference_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + emplace(Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + empty() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + end() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + end() noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + end(const size_type index) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + end(const size_type index)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + equal_range(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + equal_range(const key_type &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + equal_range(const Other &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + equal_range(const Other &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + erase(const_iterator pos)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + erase(const_iterator first, const_iterator last)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + erase(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + find(const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + find(const key_type &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + find(const Other &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + find(const Other &key) constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + get_allocator() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + hash_function() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + hasher typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + insert(const value_type &value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + insert(value_type &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + insert(Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + insert(It first, It last)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + insert_or_assign(const key_type &key, Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + insert_or_assign(key_type &&key, Arg &&value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + iterator typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + key_eq() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + key_equal typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + key_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + load_factor() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + local_iterator typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + mapped_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + max_bucket_count() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + max_load_factor() constentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + max_load_factor(const float value)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + max_size() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + operator=(const dense_map &)=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + operator=(dense_map &&) noexcept=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + operator[](const key_type &key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + operator[](key_type &&key)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + rehash(const size_type cnt)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + reserve(const size_type cnt)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + size() const noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + size_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + swap(dense_map &other) noexceptentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + try_emplace(const key_type &key, Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + try_emplace(key_type &&key, Args &&...args)entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >inline + value_type typedefentt::dense_map< Key, Type, Hash, KeyEqual, Allocator > + ~dense_map()=defaultentt::dense_map< Key, Type, Hash, KeyEqual, Allocator >
+
diff --git a/classentt_1_1dense__map.html b/classentt_1_1dense__map.html index 9c98701a2..9dbe92d14 100644 --- a/classentt_1_1dense__map.html +++ b/classentt_1_1dense__map.html @@ -3,13 +3,15 @@ - + EnTT: entt::dense_map< Key, Type, Hash, KeyEqual, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,37 +103,40 @@ $(function() { - + - + - + - + - + - + + + + - + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using key_type = Key
using key_type = Key
 Key type of the container.
 
using mapped_type = Type
using mapped_type = Type
 Mapped type of the container.
 
using value_type = std::pair<const Key, Type>
using value_type = std::pair<const Key, Type>
 Key-value type of the container.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using hasher = Hash
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using hasher = Hash
 Type of function to use to hash the keys.
 
using key_equal = KeyEqual
using key_equal = KeyEqual
 Type of function to use to compare the keys for equality.
 
using iterator = internal::dense_map_iterator<typename packed_container_type::iterator>
using iterator = internal::dense_map_iterator<typename packed_container_type::iterator>
 Input iterator type.
 
using const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>
using const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>
 Constant input iterator type.
 
using local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>
using local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>
 Input iterator type.
 
using const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>
using const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>
 Constant input iterator type.
 
@@ -129,229 +145,229 @@ Public Member Functions - + - + - + - + +  - + +  - + +  - + - + - + + + + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - - + + + - + - + - - + + - + - + - - - - + - - + + - + - + - + - - + + - + - - + + - - + + - - - + + + - + - - + + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
 dense_map ()
 Default constructor.
 
 dense_map (const allocator_type &allocator)
 dense_map (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 dense_map (const size_type cnt, const allocator_type &allocator)
 dense_map (const size_type cnt, const allocator_type &allocator)
 Constructs an empty container with a given allocator and user supplied minimal number of buckets.
 
 dense_map (const size_type cnt, const hasher &hash, const allocator_type &allocator)
 dense_map (const size_type cnt, const hasher &hash, const allocator_type &allocator)
 Constructs an empty container with a given allocator, hash function and user supplied minimal number of buckets.
 
 dense_map (const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
 dense_map (const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
 Constructs an empty container with a given allocator, hash function, compare function and user supplied minimal number of buckets.
 
dense_map (const dense_map &)=default
dense_map (const dense_map &)=default
 Default copy constructor.
 
 dense_map (const dense_map &other, const allocator_type &allocator)
 dense_map (const dense_map &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
dense_map (dense_map &&) noexcept=default
dense_map (dense_map &&) noexcept=default
 Default move constructor.
 
 dense_map (dense_map &&other, const allocator_type &allocator)
 dense_map (dense_map &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~dense_map ()=default
~dense_map ()=default
 Default destructor.
 
dense_mapoperator= (const dense_map &)=default
dense_mapoperator= (const dense_map &)=default
 Default copy assignment operator.
 
dense_mapoperator= (dense_map &&) noexcept=default
dense_mapoperator= (dense_map &&) noexcept=default
 Default move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
void swap (dense_map &other) noexcept
 Exchanges the contents with those of a given container.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
const_iterator cbegin () const noexcept
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
iterator end () noexcept
 Returns an iterator to the end.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a container is empty.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of elements in a container.
 
size_type max_size () const noexcept
size_type max_size () const noexcept
 Returns the maximum possible number of elements.
 
void clear () noexcept
void clear () noexcept
 Clears the container.
 
std::pair< iterator, boolinsert (const value_type &value)
std::pair< iterator, bool > insert (const value_type &value)
 Inserts an element into the container, if the key does not exist.
 
std::pair< iterator, boolinsert (value_type &&value)
 Inserts an element into the container, if the key does not exist.
std::pair< iterator, bool > insert (value_type &&value)
 Inserts an element into the container, if the key does not exist.
 
template<typename Arg >
std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > insert (Arg &&value)
 Inserts an element into the container, if the key does not exist.
template<typename Arg>
std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > insert (Arg &&value)
 Inserts an element into the container, if the key does not exist.
 
template<typename It >
void insert (It first, It last)
template<typename It>
void insert (It first, It last)
 Inserts elements into the container, if their keys do not exist.
 
template<typename Arg >
std::pair< iterator, boolinsert_or_assign (const key_type &key, Arg &&value)
template<typename Arg>
std::pair< iterator, bool > insert_or_assign (const key_type &key, Arg &&value)
 Inserts an element into the container or assigns to the current element if the key already exists.
 
template<typename Arg >
std::pair< iterator, boolinsert_or_assign (key_type &&key, Arg &&value)
 Inserts an element into the container or assigns to the current element if the key already exists.
template<typename Arg>
std::pair< iterator, bool > insert_or_assign (key_type &&key, Arg &&value)
 Inserts an element into the container or assigns to the current element if the key already exists.
 
template<typename... Args>
std::pair< iterator, boolemplace (Args &&...args)
std::pair< iterator, bool > emplace (Args &&...args)
 Constructs an element in-place, if the key does not exist.
 
template<typename... Args>
std::pair< iterator, booltry_emplace (const key_type &key, Args &&...args)
std::pair< iterator, bool > try_emplace (const key_type &key, Args &&...args)
 Inserts in-place if the key does not exist, does nothing if the key exists.
 
template<typename... Args>
std::pair< iterator, booltry_emplace (key_type &&key, Args &&...args)
 Inserts in-place if the key does not exist, does nothing if the key exists.
std::pair< iterator, bool > try_emplace (key_type &&key, Args &&...args)
 Inserts in-place if the key does not exist, does nothing if the key exists.
 
iterator erase (const_iterator pos)
iterator erase (const_iterator pos)
 Removes an element from a given position.
 
iterator erase (const_iterator first, const_iterator last)
 Removes the given elements from a container.
 
size_type erase (const key_type &key)
size_type erase (const key_type &key)
 Removes the element associated with a given key.
 
void swap (dense_map &other) noexcept
 Exchanges the contents with those of a given container.
 
mapped_typeat (const key_type &key)
mapped_typeat (const key_type &key)
 Accesses a given element with bounds checking.
 
const mapped_typeat (const key_type &key) const
 Accesses a given element with bounds checking.
const mapped_typeat (const key_type &key) const
 Accesses a given element with bounds checking.
 
mapped_typeoperator[] (const key_type &key)
mapped_typeoperator[] (const key_type &key)
 Accesses or inserts a given element.
 
mapped_typeoperator[] (key_type &&key)
mapped_typeoperator[] (key_type &&key)
 Accesses or inserts a given element.
 
size_type count (const key_type &key) const
size_type count (const key_type &key) const
 Returns the number of elements matching a key (either 1 or 0).
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count (const Other &key) const
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count (const Other &key) const
 Returns the number of elements matching a key (either 1 or 0).
 
iterator find (const key_type &key)
iterator find (const key_type &key)
 Finds an element with a given key.
 
const_iterator find (const key_type &key) const
 Finds an element with a given key.
const_iterator find (const key_type &key) const
 Finds an element with a given key.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find (const Other &key)
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find (const Other &key)
 Finds an element with a key that compares equivalent to a given key.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find (const Other &key) const
 Finds an element with a given key.
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find (const Other &key) const
 Finds an element with a given key.
 
std::pair< iterator, iteratorequal_range (const key_type &key)
std::pair< iterator, iteratorequal_range (const key_type &key)
 Returns a range containing all elements with a given key.
 
std::pair< const_iterator, const_iteratorequal_range (const key_type &key) const
 Returns a range containing all elements with a given key.
std::pair< const_iterator, const_iteratorequal_range (const key_type &key) const
 Returns a range containing all elements with a given key.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range (const Other &key)
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range (const Other &key)
 Returns a range containing all elements that compare equivalent to a given key.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range (const Other &key) const
 Returns a range containing all elements with a given key.
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range (const Other &key) const
 Returns a range containing all elements with a given key.
 
bool contains (const key_type &key) const
bool contains (const key_type &key) const
 Checks if the container contains an element with a given key.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains (const Other &key) const
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains (const Other &key) const
 Checks if the container contains an element with a key that compares equivalent to a given value.
 
const_local_iterator cbegin (const size_type index) const
const_local_iterator cbegin (const size_type index) const
 Returns an iterator to the beginning of a given bucket.
 
const_local_iterator begin (const size_type index) const
const_local_iterator begin (const size_type index) const
 Returns an iterator to the beginning of a given bucket.
 
local_iterator begin (const size_type index)
local_iterator begin (const size_type index)
 Returns an iterator to the beginning of a given bucket.
 
const_local_iterator cend (const size_type index) const
const_local_iterator cend (const size_type index) const
 Returns an iterator to the end of a given bucket.
 
const_local_iterator end (const size_type index) const
const_local_iterator end (const size_type index) const
 Returns an iterator to the end of a given bucket.
 
local_iterator end (const size_type index)
local_iterator end (const size_type index)
 Returns an iterator to the end of a given bucket.
 
size_type bucket_count () const
size_type bucket_count () const
 Returns the number of buckets.
 
size_type max_bucket_count () const
size_type max_bucket_count () const
 Returns the maximum number of buckets.
 
size_type bucket_size (const size_type index) const
size_type bucket_size (const size_type index) const
 Returns the number of elements in a given bucket.
 
size_type bucket (const key_type &key) const
size_type bucket (const key_type &key) const
 Returns the bucket for a given key.
 
float load_factor () const
float load_factor () const
 Returns the average number of elements per bucket.
 
float max_load_factor () const
float max_load_factor () const
 Returns the maximum average number of elements per bucket.
 
void max_load_factor (const float value)
void max_load_factor (const float value)
 Sets the desired maximum average number of elements per bucket.
 
void rehash (const size_type cnt)
void rehash (const size_type cnt)
 Reserves at least the specified number of buckets and regenerates the hash table.
 
void reserve (const size_type cnt)
void reserve (const size_type cnt)
 Reserves space for at least the specified number of elements and regenerates the hash table.
 
hasher hash_function () const
hasher hash_function () const
 Returns the function used to hash the keys.
 
key_equal key_eq () const
key_equal key_eq () const
 Returns the function used to compare keys for equality.
 

Detailed Description

-
template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+
template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
class entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >

Associative container for key-value pairs with unique keys.

Internally, elements are organized into buckets. Which bucket an element is placed into depends entirely on the hash of its key. Keys with the same hash code appear in the same bucket.

Template Parameters
@@ -365,7 +381,7 @@ class entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >

Asso -

Definition at line 259 of file dense_map.hpp.

+

Definition at line 260 of file dense_map.hpp.

Member Typedef Documentation

◆ allocator_type

@@ -373,17 +389,17 @@ class entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >

Asso

-template<typename Key , typename Type , typename Hash , typename KeyEqual , typename Allocator >
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::allocator_type = Allocatorusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::allocator_type = Allocator

Allocator type.

-

Definition at line 347 of file dense_map.hpp.

+

Definition at line 348 of file dense_map.hpp.

@@ -393,17 +409,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>

Constant input iterator type.

-

Definition at line 363 of file dense_map.hpp.

+

Definition at line 366 of file dense_map.hpp.

@@ -413,17 +429,37 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>

Constant input iterator type.

-

Definition at line 367 of file dense_map.hpp.

+

Definition at line 370 of file dense_map.hpp.

+ +
+ + +

◆ difference_type

+ +
+
+
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+ + + + +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 358 of file dense_map.hpp.

@@ -433,17 +469,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::hasher = Hashusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::hasher = Hash

Type of function to use to hash the keys.

-

Definition at line 357 of file dense_map.hpp.

+

Definition at line 360 of file dense_map.hpp.

@@ -453,17 +489,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::iterator = internal::dense_map_iterator<typename packed_container_type::iterator>using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::iterator = internal::dense_map_iterator<typename packed_container_type::iterator>

Input iterator type.

-

Definition at line 361 of file dense_map.hpp.

+

Definition at line 364 of file dense_map.hpp.

@@ -473,17 +509,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_equal = KeyEqualusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_equal = KeyEqual

Type of function to use to compare the keys for equality.

-

Definition at line 359 of file dense_map.hpp.

+

Definition at line 362 of file dense_map.hpp.

@@ -493,17 +529,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_type = Keyusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_type = Key

Key type of the container.

-

Definition at line 349 of file dense_map.hpp.

+

Definition at line 350 of file dense_map.hpp.

@@ -513,17 +549,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>

Input iterator type.

-

Definition at line 365 of file dense_map.hpp.

+

Definition at line 368 of file dense_map.hpp.

@@ -533,17 +569,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::mapped_type = Typeusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::mapped_type = Type

Mapped type of the container.

-

Definition at line 351 of file dense_map.hpp.

+

Definition at line 352 of file dense_map.hpp.

@@ -553,17 +589,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::size_type = std::size_tusing entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::size_type = std::size_t

Unsigned integer type.

-

Definition at line 355 of file dense_map.hpp.

+

Definition at line 356 of file dense_map.hpp.

@@ -573,17 +609,17 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::value_type = std::pair<const Key, Type>using entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::value_type = std::pair<const Key, Type>

Key-value type of the container.

-

Definition at line 353 of file dense_map.hpp.

+

Definition at line 354 of file dense_map.hpp.

@@ -594,28 +630,28 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map ())
-inline

Default constructor.

-

Definition at line 370 of file dense_map.hpp.

+

Definition at line 373 of file dense_map.hpp.

@@ -625,21 +661,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlineexplicit
- + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -652,7 +688,7 @@ template<Definition at line 377 of file dense_map.hpp.

+

Definition at line 380 of file dense_map.hpp.

@@ -662,25 +698,25 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (const size_type cnt, const size_type cnt,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -694,7 +730,7 @@ template<Definition at line 386 of file dense_map.hpp.

+

Definition at line 389 of file dense_map.hpp.

@@ -704,30 +740,30 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (const size_type cnt, const size_type cnt,
const hasher & hash, const hasher & hash,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -742,7 +778,7 @@ template<Definition at line 396 of file dense_map.hpp.

+

Definition at line 399 of file dense_map.hpp.

@@ -752,35 +788,35 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlineexplicit
- + - + - + - + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (const size_type cnt, const size_type cnt,
const hasher & hash = hasher{}, const hasher & hash = hasher{},
const key_equal & equal = key_equal{}, const key_equal & equal = key_equal{},
const allocator_type & allocator = allocator_type{} )const allocator_type & allocator = allocator_type{} )
-inlineexplicit
@@ -796,7 +832,7 @@ template<Definition at line 407 of file dense_map.hpp.

+

Definition at line 410 of file dense_map.hpp.

@@ -806,25 +842,25 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (const dense_map< Key, Type, Hash, KeyEqual, Allocator > & other, const dense_map< Key, Type, Hash, KeyEqual, Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -838,7 +874,7 @@ template<Definition at line 421 of file dense_map.hpp.

+

Definition at line 424 of file dense_map.hpp.

@@ -848,25 +884,25 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::dense_map (dense_map< Key, Type, Hash, KeyEqual, Allocator > && other, dense_map< Key, Type, Hash, KeyEqual, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -880,7 +916,7 @@ template<Definition at line 434 of file dense_map.hpp.

+

Definition at line 437 of file dense_map.hpp.

@@ -891,21 +927,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::at mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::at (const key_type & key)const key_type & key)
-inline
@@ -929,35 +965,35 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::at const mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::at (const key_type & key)const key_type & key) const
-inline
-

Accesses a given element with bounds checking.

+

Accesses a given element with bounds checking.

Parameters
keyA key of an element to find.
-
Returns
A reference to the mapped value of the requested element.
+
Returns
A reference to the mapped value of the requested element.
-

Definition at line 719 of file dense_map.hpp.

+

Definition at line 722 of file dense_map.hpp.

@@ -967,30 +1003,30 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin ()) const
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the array is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 474 of file dense_map.hpp.

+

Definition at line 488 of file dense_map.hpp.

@@ -1000,30 +1036,30 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin ())
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the array is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 479 of file dense_map.hpp.

+

Definition at line 493 of file dense_map.hpp.

@@ -1033,21 +1069,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin (const size_type index)const size_type index)
-inline
@@ -1061,7 +1097,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 885 of file dense_map.hpp.

+

Definition at line 888 of file dense_map.hpp.

@@ -1071,21 +1107,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::begin (const size_type index)const size_type index) const
-inline
@@ -1099,7 +1135,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 876 of file dense_map.hpp.

+

Definition at line 879 of file dense_map.hpp.

@@ -1109,21 +1145,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket (const key_type & key)const key_type & key) const
-inline
@@ -1137,7 +1173,7 @@ template<
Returns
The bucket for the given key.
-

Definition at line 946 of file dense_map.hpp.

+

Definition at line 949 of file dense_map.hpp.

@@ -1147,21 +1183,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket_count size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket_count ()) const
-inline
@@ -1169,7 +1205,7 @@ template<
Returns
The number of buckets.
-

Definition at line 920 of file dense_map.hpp.

+

Definition at line 923 of file dense_map.hpp.

@@ -1179,21 +1215,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket_size size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::bucket_size (const size_type index)const size_type index) const
-inline
@@ -1207,7 +1243,7 @@ template<
Returns
The number of elements in the given bucket.
-

Definition at line 937 of file dense_map.hpp.

+

Definition at line 940 of file dense_map.hpp.

@@ -1217,21 +1253,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cbegin const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cbegin ()) const
-inlinenoexcept
@@ -1240,7 +1276,7 @@ template<end().

Returns
An iterator to the first instance of the internal array.
-

Definition at line 469 of file dense_map.hpp.

+

Definition at line 483 of file dense_map.hpp.

@@ -1250,21 +1286,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cbegin const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cbegin (const size_type index)const size_type index) const
-inline
@@ -1278,7 +1314,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 867 of file dense_map.hpp.

+

Definition at line 870 of file dense_map.hpp.

@@ -1288,21 +1324,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cend const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cend ()) const
-inlinenoexcept
@@ -1320,21 +1356,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cend const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::cend (const size_type index)const size_type index) const
-inline
@@ -1348,7 +1384,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 894 of file dense_map.hpp.

+

Definition at line 897 of file dense_map.hpp.

@@ -1358,28 +1394,28 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenoexcept
- + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::clear void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::clear ())
-inlinenoexcept

Clears the container.

-

Definition at line 527 of file dense_map.hpp.

+

Definition at line 541 of file dense_map.hpp.

@@ -1389,21 +1425,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
bool entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::contains bool entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::contains (const key_type & key)const key_type & key) const
-inline
@@ -1417,7 +1453,7 @@ template<
Returns
True if there is such an element, false otherwise.
-

Definition at line 845 of file dense_map.hpp.

+

Definition at line 848 of file dense_map.hpp.

@@ -1427,23 +1463,23 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::contains std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::contains (const Other & key)const Other & key) const
-inline
@@ -1463,7 +1499,7 @@ template<
Returns
True if there is such an element, false otherwise.
-

Definition at line 858 of file dense_map.hpp.

+

Definition at line 861 of file dense_map.hpp.

@@ -1473,21 +1509,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::count size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::count (const key_type & key)const key_type & key) const
-inline
@@ -1511,23 +1547,23 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::count std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::count (const Other & key)const Other & key) const
-inline
@@ -1557,7 +1593,7 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
template<typename... Args>
@@ -1565,15 +1601,15 @@ template<typename... Args> +inline
- + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::emplace std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::emplace (Args &&... args)Args &&... args)
-inline
@@ -1594,7 +1630,7 @@ template<typename... Args>
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
-

Definition at line 606 of file dense_map.hpp.

+

Definition at line 620 of file dense_map.hpp.

@@ -1604,21 +1640,21 @@ template<typename... Args>
-template<typename Key , typename Type , typename Hash , typename KeyEqual , typename Allocator >
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::empty bool entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::empty ()) const
-inlinenoexcept
@@ -1626,7 +1662,7 @@ template<
Returns
True if the container is empty, false otherwise.
-

Definition at line 506 of file dense_map.hpp.

+

Definition at line 520 of file dense_map.hpp.

@@ -1636,29 +1672,29 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end ()) const
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 493 of file dense_map.hpp.

+

Definition at line 507 of file dense_map.hpp.

@@ -1668,29 +1704,29 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end ())
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 498 of file dense_map.hpp.

+

Definition at line 512 of file dense_map.hpp.

@@ -1700,21 +1736,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end (const size_type index)const size_type index)
-inline
@@ -1728,7 +1764,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 912 of file dense_map.hpp.

+

Definition at line 915 of file dense_map.hpp.

@@ -1738,21 +1774,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end const_local_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::end (const size_type index)const size_type index) const
-inline
@@ -1766,7 +1802,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 903 of file dense_map.hpp.

+

Definition at line 906 of file dense_map.hpp.

@@ -1776,21 +1812,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
std::pair< iterator, iterator > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range std::pair< iterator, iterator > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range (const key_type & key)const key_type & key)
-inline
@@ -1814,35 +1850,35 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
std::pair< const_iterator, const_iterator > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range std::pair< const_iterator, const_iterator > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range (const key_type & key)const key_type & key) const
-inline
-

Returns a range containing all elements with a given key.

+

Returns a range containing all elements with a given key.

Parameters
keyKey value of an element to search for.
-
Returns
A pair of iterators pointing to the first element and past the last element of the range.
+
Returns
A pair of iterators pointing to the first element and past the last element of the range.
-

Definition at line 812 of file dense_map.hpp.

+

Definition at line 815 of file dense_map.hpp.

@@ -1852,23 +1888,23 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range (const Other & key)const Other & key)
-inline
@@ -1898,37 +1934,37 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::equal_range (const Other & key)const Other & key) const
-inline
-

Returns a range containing all elements with a given key.

+

Returns a range containing all elements with a given key.

Parameters
keyKey value of an element to search for.
-
Returns
A pair of iterators pointing to the first element and past the last element of the range.
+
Returns
A pair of iterators pointing to the first element and past the last element of the range.
-

Definition at line 835 of file dense_map.hpp.

+

Definition at line 838 of file dense_map.hpp.

@@ -1938,21 +1974,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase (const key_type & key)const key_type & key)
-inline
@@ -1966,7 +2002,7 @@ template<
Returns
Number of elements removed (either 0 or 1).
-

Definition at line 683 of file dense_map.hpp.

+

Definition at line 697 of file dense_map.hpp.

@@ -1976,15 +2012,15 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
@@ -31,23 +33,33 @@
- + - + @@ -1994,7 +2030,7 @@ template< -inline +inline
iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase (const_iterator first, const_iterator first,
@@ -2019,13 +2055,13 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
@@ -31,23 +33,33 @@
- + @@ -2033,7 +2069,7 @@ template< -inline +inline
iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::erase ( const_iterator pos)
@@ -2057,21 +2093,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find (const key_type & key)const key_type & key)
-inline
@@ -2095,35 +2131,35 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find const_iterator entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find (const key_type & key)const key_type & key) const
-inline
-

Finds an element with a given key.

+

Finds an element with a given key.

Parameters
keyKey value of an element to search for.
-
Returns
An iterator to an element with the given key. If no such element is found, a past-the-end iterator is returned.
+
Returns
An iterator to an element with the given key. If no such element is found, a past-the-end iterator is returned.
-

Definition at line 775 of file dense_map.hpp.

+

Definition at line 778 of file dense_map.hpp.

@@ -2133,23 +2169,23 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find (const Other & key)const Other & key)
-inline
@@ -2179,37 +2215,37 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::find (const Other & key)const Other & key) const
-inline
-

Finds an element with a given key.

+

Finds an element with a given key.

Parameters
keyKey value of an element to search for.
-
Returns
An iterator to an element with the given key. If no such element is found, a past-the-end iterator is returned.
+
Returns
An iterator to an element with the given key. If no such element is found, a past-the-end iterator is returned.
-

Definition at line 796 of file dense_map.hpp.

+

Definition at line 799 of file dense_map.hpp.

@@ -2219,21 +2255,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::get_allocator allocator_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -2241,7 +2277,7 @@ template<
Returns
The associated allocator.
-

Definition at line 458 of file dense_map.hpp.

+

Definition at line 472 of file dense_map.hpp.

@@ -2251,21 +2287,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
hasher entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::hash_function hasher entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::hash_function ()) const
-inline
@@ -2273,7 +2309,7 @@ template<
Returns
The function used to hash the keys.
-

Definition at line 1014 of file dense_map.hpp.

+

Definition at line 1017 of file dense_map.hpp.

@@ -2283,35 +2319,35 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Arg >
+template<typename Arg> +inline
- + - +
std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert (Arg && value)Arg && value)
-inline
-

Inserts an element into the container, if the key does not exist.

+

Inserts an element into the container, if the key does not exist.

Parameters
valueA key-value pair eventually convertible to the value type.
-
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
+
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
Template Parameters
@@ -2319,7 +2355,7 @@ template<Definition at line 555 of file dense_map.hpp.

+

Definition at line 569 of file dense_map.hpp.

@@ -2329,21 +2365,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
ArgType of the key-value pair to insert into the container.
+inline
- + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert (const value_type & value)const value_type & value)
-inline
@@ -2367,27 +2403,27 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert (It first, It first,
It last )It last )
-inline
@@ -2407,7 +2443,7 @@ template<Definition at line 566 of file dense_map.hpp.

+

Definition at line 580 of file dense_map.hpp.

@@ -2417,13 +2453,13 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + @@ -2431,21 +2467,21 @@ template< -inline +inline
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert ( value_type && value)
@@ -2455,27 +2491,27 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Arg >
+template<typename Arg> +inline
- + - + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert_or_assign std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert_or_assign (const key_type & key, const key_type & key,
Arg && value )Arg && value )
-inline
@@ -2506,32 +2542,32 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Arg >
+template<typename Arg> +inline
- + - + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert_or_assign std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::insert_or_assign (key_type && key, key_type && key,
Arg && value )Arg && value )
-inline
-

Inserts an element into the container or assigns to the current element if the key already exists.

+

Inserts an element into the container or assigns to the current element if the key already exists.

Template Parameters
@@ -2545,9 +2581,9 @@ template<
Returns
A pair consisting of an iterator to the element and a bool denoting whether the insertion took place.
+
Returns
A pair consisting of an iterator to the element and a bool denoting whether the insertion took place.
-

Definition at line 588 of file dense_map.hpp.

+

Definition at line 602 of file dense_map.hpp.

@@ -2557,21 +2593,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
ArgType of the value to insert or assign.
+inlinenodiscard
- + - +
key_equal entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_eq key_equal entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::key_eq ()) const
-inline
@@ -2579,7 +2615,7 @@ template<
Returns
The function used to compare keys for equality.
-

Definition at line 1022 of file dense_map.hpp.

+

Definition at line 1025 of file dense_map.hpp.

@@ -2589,21 +2625,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
float entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::load_factor float entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::load_factor ()) const
-inline
@@ -2611,7 +2647,7 @@ template<
Returns
The average number of elements per bucket.
-

Definition at line 954 of file dense_map.hpp.

+

Definition at line 957 of file dense_map.hpp.

@@ -2621,21 +2657,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_bucket_count size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_bucket_count ()) const
-inline
@@ -2643,7 +2679,7 @@ template<
Returns
The maximum number of buckets.
-

Definition at line 928 of file dense_map.hpp.

+

Definition at line 931 of file dense_map.hpp.

@@ -2653,21 +2689,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
float entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_load_factor float entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_load_factor ()) const
-inline
@@ -2675,7 +2711,7 @@ template<
Returns
The maximum average number of elements per bucket.
-

Definition at line 962 of file dense_map.hpp.

+

Definition at line 965 of file dense_map.hpp.

@@ -2685,21 +2721,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_load_factor void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_load_factor (const float value)const float value)
-inline
@@ -2712,7 +2748,7 @@ template<Definition at line 970 of file dense_map.hpp.

+

Definition at line 973 of file dense_map.hpp.

@@ -2722,21 +2758,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_size size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::max_size ()) const
-inlinenoexcept
@@ -2744,7 +2780,7 @@ template<
Returns
Maximum possible number of elements.
-

Definition at line 522 of file dense_map.hpp.

+

Definition at line 536 of file dense_map.hpp.

@@ -2754,21 +2790,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+default
- + - +
dense_map & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator= dense_map & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator= (const dense_map< Key, Type, Hash, KeyEqual, Allocator > & )const dense_map< Key, Type, Hash, KeyEqual, Allocator > & )
-default
@@ -2784,21 +2820,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+defaultnoexcept
- + - +
dense_map & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator= dense_map & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator= (dense_map< Key, Type, Hash, KeyEqual, Allocator > && )dense_map< Key, Type, Hash, KeyEqual, Allocator > && )
-defaultnoexcept
@@ -2814,21 +2850,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator[] mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator[] (const key_type & key)const key_type & key)
-inline
@@ -2852,13 +2888,13 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
@@ -31,23 +33,33 @@
- + @@ -2866,7 +2902,7 @@ template< -inline +inlinenodiscard
mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator[] mapped_type & entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::operator[] ( key_type && key)
@@ -2890,21 +2926,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::rehash void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::rehash (const size_type cnt)const size_type cnt)
-inline
@@ -2917,7 +2953,7 @@ template<Definition at line 981 of file dense_map.hpp.

+

Definition at line 984 of file dense_map.hpp.

@@ -2927,21 +2963,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::reserve void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::reserve (const size_type cnt)const size_type cnt)
-inline
@@ -2954,7 +2990,7 @@ template<Definition at line 1005 of file dense_map.hpp.

+

Definition at line 1008 of file dense_map.hpp.

@@ -2964,21 +3000,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::size size_type entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::size ()) const
-inlinenoexcept
@@ -2986,7 +3022,7 @@ template<
Returns
Number of elements in a container.
-

Definition at line 514 of file dense_map.hpp.

+

Definition at line 528 of file dense_map.hpp.

@@ -2996,21 +3032,21 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenoexcept
- + - +
void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::swap void entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::swap (dense_map< Key, Type, Hash, KeyEqual, Allocator > & other)dense_map< Key, Type, Hash, KeyEqual, Allocator > & other)
-inlinenoexcept
@@ -3023,7 +3059,7 @@ template<Definition at line 700 of file dense_map.hpp.

+

Definition at line 461 of file dense_map.hpp.

@@ -3033,7 +3069,7 @@ template<
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
template<typename... Args>
@@ -3041,19 +3077,19 @@ template<typename... Args> +inline
- + - + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::try_emplace std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::try_emplace (const key_type & key, const key_type & key,
Args &&... args )Args &&... args )
-inline
@@ -3074,7 +3110,7 @@ template<typename... Args>
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
-

Definition at line 641 of file dense_map.hpp.

+

Definition at line 655 of file dense_map.hpp.

@@ -3084,7 +3120,7 @@ template<typename... Args>
-template<typename Key , typename Type , typename Hash , typename KeyEqual , typename Allocator >
+template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
template<typename... Args>
@@ -3092,24 +3128,24 @@ template<typename... Args> +inline
- + - + - +
std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::try_emplace std::pair< iterator, bool > entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >::try_emplace (key_type && key, key_type && key,
Args &&... args )Args &&... args )
-inline
-

Inserts in-place if the key does not exist, does nothing if the key exists.

+

Inserts in-place if the key does not exist, does nothing if the key exists.

Template Parameters
@@ -3123,9 +3159,9 @@ template<typename... Args>
ArgsTypes of arguments to forward to the constructor of the element.
-
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
+
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
-

Definition at line 647 of file dense_map.hpp.

+

Definition at line 661 of file dense_map.hpp.

@@ -3135,7 +3171,8 @@ template<typename... Args> + diff --git a/classentt_1_1dense__set-members.html b/classentt_1_1dense__set-members.html index 4d8cbfaca..41f19e81b 100644 --- a/classentt_1_1dense__set-members.html +++ b/classentt_1_1dense__set-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::dense_set< Type, Hash, KeyEqual, Allocator > Member List
@@ -112,57 +125,59 @@ $(function() {
dense_set(const dense_set &other, const allocator_type &allocator)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
dense_set(dense_set &&) noexcept=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
dense_set(dense_set &&other, const allocator_type &allocator)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
emplace(Args &&...args)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
empty() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end(const size_type index) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end(const size_type index)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const value_type &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const Other &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const Other &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const_iterator pos)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const_iterator first, const_iterator last)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const value_type &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const Other &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const Other &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
get_allocator() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
hash_function() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
hasher typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
insert(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
insert(value_type &&value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
insert(It first, It last)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
key_eq() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
key_equal typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
key_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
load_factor() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
local_iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
max_bucket_count() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_load_factor() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_load_factor(const float value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_size() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
operator=(const dense_set &)=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
operator=(dense_set &&) noexcept=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
rbegin() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rbegin() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rehash(const size_type cnt)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rend() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rend() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
reserve(const size_type cnt)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
reverse_iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
size() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
size_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
swap(dense_set &other) noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
value_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
~dense_set()=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
difference_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
emplace(Args &&...args)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
empty() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end(const size_type index) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
end(const size_type index)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const value_type &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const Other &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
equal_range(const Other &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const_iterator pos)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const_iterator first, const_iterator last)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
erase(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const value_type &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const Other &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
find(const Other &value) constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
get_allocator() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
hash_function() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
hasher typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
insert(const value_type &value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
insert(value_type &&value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
insert(It first, It last)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
key_eq() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
key_equal typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
key_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
load_factor() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
local_iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
max_bucket_count() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_load_factor() constentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_load_factor(const float value)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
max_size() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
operator=(const dense_set &)=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
operator=(dense_set &&) noexcept=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
rbegin() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rbegin() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rehash(const size_type cnt)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rend() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
rend() noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
reserve(const size_type cnt)entt::dense_set< Type, Hash, KeyEqual, Allocator >inline
reverse_iterator typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
size() const noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
size_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
swap(dense_set &other) noexceptentt::dense_set< Type, Hash, KeyEqual, Allocator >inline
value_type typedefentt::dense_set< Type, Hash, KeyEqual, Allocator >
~dense_set()=defaultentt::dense_set< Type, Hash, KeyEqual, Allocator >
+ diff --git a/classentt_1_1dense__set.html b/classentt_1_1dense__set.html index 2259e5f56..24fccbdec 100644 --- a/classentt_1_1dense__set.html +++ b/classentt_1_1dense__set.html @@ -3,13 +3,15 @@ - + EnTT: entt::dense_set< Type, Hash, KeyEqual, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
Public Types | @@ -90,40 +103,43 @@ $(function() { - + - + - + - + - + + + + - + - + - + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using key_type = Type
using key_type = Type
 Key type of the container.
 
using value_type = Type
using value_type = Type
 Value type of the container.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using hasher = Hash
using difference_type = std::ptrdiff_t
 Signed integer type.
 
using hasher = Hash
 Type of function to use to hash the elements.
 
using key_equal = KeyEqual
using key_equal = KeyEqual
 Type of function to use to compare the elements for equality.
 
using iterator = internal::dense_set_iterator<typename packed_container_type::iterator>
using iterator = internal::dense_set_iterator<typename packed_container_type::iterator>
 Random access iterator type.
 
using const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>
using const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator<iterator>
using reverse_iterator = std::reverse_iterator<iterator>
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 Constant reverse iterator type.
 
using local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>
using local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>
 Forward iterator type.
 
using const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>
using const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>
 Constant forward iterator type.
 
@@ -132,215 +148,215 @@ Public Member Functions - + - + - + - + +  - + +  - + +  - + - + - + + + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - - - - + - - + + - + - - + + - - + + - - - + + + - + - - + + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
 dense_set ()
 Default constructor.
 
 dense_set (const allocator_type &allocator)
 dense_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 dense_set (const size_type cnt, const allocator_type &allocator)
 dense_set (const size_type cnt, const allocator_type &allocator)
 Constructs an empty container with a given allocator and user supplied minimal number of buckets.
 
 dense_set (const size_type cnt, const hasher &hash, const allocator_type &allocator)
 dense_set (const size_type cnt, const hasher &hash, const allocator_type &allocator)
 Constructs an empty container with a given allocator, hash function and user supplied minimal number of buckets.
 
 dense_set (const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
 dense_set (const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
 Constructs an empty container with a given allocator, hash function, compare function and user supplied minimal number of buckets.
 
dense_set (const dense_set &)=default
dense_set (const dense_set &)=default
 Default copy constructor.
 
 dense_set (const dense_set &other, const allocator_type &allocator)
 dense_set (const dense_set &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
dense_set (dense_set &&) noexcept=default
dense_set (dense_set &&) noexcept=default
 Default move constructor.
 
 dense_set (dense_set &&other, const allocator_type &allocator)
 dense_set (dense_set &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~dense_set ()=default
~dense_set ()=default
 Default destructor.
 
dense_setoperator= (const dense_set &)=default
dense_setoperator= (const dense_set &)=default
 Default copy assignment operator.
 
dense_setoperator= (dense_set &&) noexcept=default
dense_setoperator= (dense_set &&) noexcept=default
 Default move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
void swap (dense_set &other) noexcept
 Exchanges the contents with those of a given container.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
const_iterator cbegin () const noexcept
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
iterator end () noexcept
 Returns an iterator to the end.
 
const_reverse_iterator crbegin () const noexcept
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
const_reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
reverse_iterator rbegin () noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crend () const noexcept
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
const_reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
reverse_iterator rend () noexcept
 Returns a reverse iterator to the end.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks whether a container is empty.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the number of elements in a container.
 
size_type max_size () const noexcept
size_type max_size () const noexcept
 Returns the maximum possible number of elements.
 
void clear () noexcept
void clear () noexcept
 Clears the container.
 
std::pair< iterator, boolinsert (const value_type &value)
std::pair< iterator, bool > insert (const value_type &value)
 Inserts an element into the container, if it does not exist.
 
std::pair< iterator, boolinsert (value_type &&value)
 Inserts an element into the container, if it does not exist.
std::pair< iterator, bool > insert (value_type &&value)
 Inserts an element into the container, if it does not exist.
 
template<typename It >
void insert (It first, It last)
template<typename It>
void insert (It first, It last)
 Inserts elements into the container, if they do not exist.
 
template<typename... Args>
std::pair< iterator, boolemplace (Args &&...args)
std::pair< iterator, bool > emplace (Args &&...args)
 Constructs an element in-place, if it does not exist.
 
iterator erase (const_iterator pos)
iterator erase (const_iterator pos)
 Removes an element from a given position.
 
iterator erase (const_iterator first, const_iterator last)
 Removes the given elements from a container.
 
size_type erase (const value_type &value)
size_type erase (const value_type &value)
 Removes the element associated with a given value.
 
void swap (dense_set &other) noexcept
 Exchanges the contents with those of a given container.
 
size_type count (const value_type &key) const
size_type count (const value_type &key) const
 Returns the number of elements matching a value (either 1 or 0).
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count (const Other &key) const
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count (const Other &key) const
 Returns the number of elements matching a key (either 1 or 0).
 
iterator find (const value_type &value)
iterator find (const value_type &value)
 Finds an element with a given value.
 
const_iterator find (const value_type &value) const
 Finds an element with a given value.
const_iterator find (const value_type &value) const
 Finds an element with a given value.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find (const Other &value)
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find (const Other &value)
 Finds an element that compares equivalent to a given value.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find (const Other &value) const
 Finds an element with a given value.
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find (const Other &value) const
 Finds an element with a given value.
 
std::pair< iterator, iteratorequal_range (const value_type &value)
std::pair< iterator, iteratorequal_range (const value_type &value)
 Returns a range containing all elements with a given value.
 
std::pair< const_iterator, const_iteratorequal_range (const value_type &value) const
 Returns a range containing all elements with a given value.
std::pair< const_iterator, const_iteratorequal_range (const value_type &value) const
 Returns a range containing all elements with a given value.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range (const Other &value)
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range (const Other &value)
 Returns a range containing all elements that compare equivalent to a given value.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range (const Other &value) const
 Returns a range containing all elements with a given value.
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range (const Other &value) const
 Returns a range containing all elements with a given value.
 
bool contains (const value_type &value) const
bool contains (const value_type &value) const
 Checks if the container contains an element with a given value.
 
template<typename Other >
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains (const Other &value) const
template<typename Other>
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains (const Other &value) const
 Checks if the container contains an element that compares equivalent to a given value.
 
const_local_iterator cbegin (const size_type index) const
const_local_iterator cbegin (const size_type index) const
 Returns an iterator to the beginning of a given bucket.
 
const_local_iterator begin (const size_type index) const
const_local_iterator begin (const size_type index) const
 Returns an iterator to the beginning of a given bucket.
 
local_iterator begin (const size_type index)
local_iterator begin (const size_type index)
 Returns an iterator to the beginning of a given bucket.
 
const_local_iterator cend (const size_type index) const
const_local_iterator cend (const size_type index) const
 Returns an iterator to the end of a given bucket.
 
const_local_iterator end (const size_type index) const
const_local_iterator end (const size_type index) const
 Returns an iterator to the end of a given bucket.
 
local_iterator end (const size_type index)
local_iterator end (const size_type index)
 Returns an iterator to the end of a given bucket.
 
size_type bucket_count () const
size_type bucket_count () const
 Returns the number of buckets.
 
size_type max_bucket_count () const
size_type max_bucket_count () const
 Returns the maximum number of buckets.
 
size_type bucket_size (const size_type index) const
size_type bucket_size (const size_type index) const
 Returns the number of elements in a given bucket.
 
size_type bucket (const value_type &value) const
size_type bucket (const value_type &value) const
 Returns the bucket for a given element.
 
float load_factor () const
float load_factor () const
 Returns the average number of elements per bucket.
 
float max_load_factor () const
float max_load_factor () const
 Returns the maximum average number of elements per bucket.
 
void max_load_factor (const float value)
void max_load_factor (const float value)
 Sets the desired maximum average number of elements per bucket.
 
void rehash (const size_type cnt)
void rehash (const size_type cnt)
 Reserves at least the specified number of buckets and regenerates the hash table.
 
void reserve (const size_type cnt)
void reserve (const size_type cnt)
 Reserves space for at least the specified number of elements and regenerates the hash table.
 
hasher hash_function () const
hasher hash_function () const
 Returns the function used to hash the elements.
 
key_equal key_eq () const
key_equal key_eq () const
 Returns the function used to compare elements for equality.
 

Detailed Description

-
template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+
template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
class entt::dense_set< Type, Hash, KeyEqual, Allocator >

Associative container for unique objects of a given type.

Internally, elements are organized into buckets. Which bucket an element is placed into depends entirely on its hash. Elements with the same hash code appear in the same bucket.

Template Parameters
@@ -361,10 +377,10 @@ class entt::dense_set< Type, Hash, KeyEqual, Allocator >

Associati

-template<typename Type , typename Hash , typename KeyEqual , typename Allocator >
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::allocator_type = Allocatorusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::allocator_type = Allocator
@@ -381,17 +397,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>

Constant random access iterator type.

-

Definition at line 305 of file dense_set.hpp.

+

Definition at line 307 of file dense_set.hpp.

@@ -401,17 +417,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>

Constant forward iterator type.

-

Definition at line 313 of file dense_set.hpp.

+

Definition at line 315 of file dense_set.hpp.

@@ -421,17 +437,37 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_reverse_iterator = std::reverse_iterator<const_iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Constant reverse iterator type.

-

Definition at line 309 of file dense_set.hpp.

+

Definition at line 311 of file dense_set.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+ + + + +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::difference_type = std::ptrdiff_t
+
+ +

Signed integer type.

+ +

Definition at line 299 of file dense_set.hpp.

@@ -441,17 +477,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::hasher = Hashusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::hasher = Hash

Type of function to use to hash the elements.

-

Definition at line 299 of file dense_set.hpp.

+

Definition at line 301 of file dense_set.hpp.

@@ -461,17 +497,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::iterator = internal::dense_set_iterator<typename packed_container_type::iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::iterator = internal::dense_set_iterator<typename packed_container_type::iterator>

Random access iterator type.

-

Definition at line 303 of file dense_set.hpp.

+

Definition at line 305 of file dense_set.hpp.

@@ -481,17 +517,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_equal = KeyEqualusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_equal = KeyEqual

Type of function to use to compare the elements for equality.

-

Definition at line 301 of file dense_set.hpp.

+

Definition at line 303 of file dense_set.hpp.

@@ -501,10 +537,10 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_type = Typeusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_type = Type
@@ -521,17 +557,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>

Forward iterator type.

-

Definition at line 311 of file dense_set.hpp.

+

Definition at line 313 of file dense_set.hpp.

@@ -541,17 +577,17 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::reverse_iterator = std::reverse_iterator<iterator>using entt::dense_set< Type, Hash, KeyEqual, Allocator >::reverse_iterator = std::reverse_iterator<iterator>

Reverse iterator type.

-

Definition at line 307 of file dense_set.hpp.

+

Definition at line 309 of file dense_set.hpp.

@@ -561,10 +597,10 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::size_type = std::size_tusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::size_type = std::size_t
@@ -581,10 +617,10 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
using entt::dense_set< Type, Hash, KeyEqual, Allocator >::value_type = Typeusing entt::dense_set< Type, Hash, KeyEqual, Allocator >::value_type = Type
@@ -602,28 +638,28 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set ())
-inline

Default constructor.

-

Definition at line 316 of file dense_set.hpp.

+

Definition at line 318 of file dense_set.hpp.

@@ -633,21 +669,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlineexplicit
- + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -660,7 +696,7 @@ template<Definition at line 323 of file dense_set.hpp.

+

Definition at line 325 of file dense_set.hpp.

@@ -670,25 +706,25 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (const size_type cnt, const size_type cnt,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -702,7 +738,7 @@ template<Definition at line 332 of file dense_set.hpp.

+

Definition at line 334 of file dense_set.hpp.

@@ -712,30 +748,30 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (const size_type cnt, const size_type cnt,
const hasher & hash, const hasher & hash,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -750,7 +786,7 @@ template<Definition at line 342 of file dense_set.hpp.

+

Definition at line 344 of file dense_set.hpp.

@@ -760,35 +796,35 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlineexplicit
- + - + - + - + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (const size_type cnt, const size_type cnt,
const hasher & hash = hasher{}, const hasher & hash = hasher{},
const key_equal & equal = key_equal{}, const key_equal & equal = key_equal{},
const allocator_type & allocator = allocator_type{} )const allocator_type & allocator = allocator_type{} )
-inlineexplicit
@@ -804,7 +840,7 @@ template<Definition at line 353 of file dense_set.hpp.

+

Definition at line 355 of file dense_set.hpp.

@@ -814,25 +850,25 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (const dense_set< Type, Hash, KeyEqual, Allocator > & other, const dense_set< Type, Hash, KeyEqual, Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -846,7 +882,7 @@ template<Definition at line 367 of file dense_set.hpp.

+

Definition at line 369 of file dense_set.hpp.

@@ -856,25 +892,25 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - + - +
entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set entt::dense_set< Type, Hash, KeyEqual, Allocator >::dense_set (dense_set< Type, Hash, KeyEqual, Allocator > && other, dense_set< Type, Hash, KeyEqual, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -888,7 +924,7 @@ template<Definition at line 380 of file dense_set.hpp.

+

Definition at line 382 of file dense_set.hpp.

@@ -899,30 +935,30 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin ()) const
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the array is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 420 of file dense_set.hpp.

+

Definition at line 433 of file dense_set.hpp.

@@ -932,30 +968,30 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin ())
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the array is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal array.
+
Returns
An iterator to the first instance of the internal array.
-

Definition at line 425 of file dense_set.hpp.

+

Definition at line 438 of file dense_set.hpp.

@@ -965,21 +1001,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin (const size_type index)const size_type index)
-inline
@@ -993,7 +1029,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 778 of file dense_set.hpp.

+

Definition at line 780 of file dense_set.hpp.

@@ -1003,21 +1039,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::begin (const size_type index)const size_type index) const
-inline
@@ -1031,7 +1067,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 769 of file dense_set.hpp.

+

Definition at line 771 of file dense_set.hpp.

@@ -1041,21 +1077,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket (const value_type & value)const value_type & value) const
-inline
@@ -1069,7 +1105,7 @@ template<
Returns
The bucket for the given element.
-

Definition at line 839 of file dense_set.hpp.

+

Definition at line 841 of file dense_set.hpp.

@@ -1079,21 +1115,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket_count size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket_count ()) const
-inline
@@ -1101,7 +1137,7 @@ template<
Returns
The number of buckets.
-

Definition at line 813 of file dense_set.hpp.

+

Definition at line 815 of file dense_set.hpp.

@@ -1111,21 +1147,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket_size size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::bucket_size (const size_type index)const size_type index) const
-inline
@@ -1139,7 +1175,7 @@ template<
Returns
The number of elements in the given bucket.
-

Definition at line 830 of file dense_set.hpp.

+

Definition at line 832 of file dense_set.hpp.

@@ -1149,21 +1185,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cbegin const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cbegin ()) const
-inlinenoexcept
@@ -1172,7 +1208,7 @@ template<end().

Returns
An iterator to the first instance of the internal array.
-

Definition at line 415 of file dense_set.hpp.

+

Definition at line 428 of file dense_set.hpp.

@@ -1182,21 +1218,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cbegin const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cbegin (const size_type index)const size_type index) const
-inline
@@ -1210,7 +1246,7 @@ template<
Returns
An iterator to the beginning of the given bucket.
-

Definition at line 760 of file dense_set.hpp.

+

Definition at line 762 of file dense_set.hpp.

@@ -1220,21 +1256,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cend const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cend ()) const
-inlinenoexcept
@@ -1252,21 +1288,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cend const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::cend (const size_type index)const size_type index) const
-inline
@@ -1280,7 +1316,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 787 of file dense_set.hpp.

+

Definition at line 789 of file dense_set.hpp.

@@ -1290,28 +1326,28 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenoexcept
- + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::clear void entt::dense_set< Type, Hash, KeyEqual, Allocator >::clear ())
-inlinenoexcept

Clears the container.

-

Definition at line 513 of file dense_set.hpp.

+

Definition at line 526 of file dense_set.hpp.

@@ -1321,23 +1357,23 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::contains std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::contains (const Other & value)const Other & value) const
-inline
@@ -1357,7 +1393,7 @@ template<
Returns
True if there is such an element, false otherwise.
-

Definition at line 751 of file dense_set.hpp.

+

Definition at line 753 of file dense_set.hpp.

@@ -1367,21 +1403,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
bool entt::dense_set< Type, Hash, KeyEqual, Allocator >::contains bool entt::dense_set< Type, Hash, KeyEqual, Allocator >::contains (const value_type & value)const value_type & value) const
-inline
@@ -1395,7 +1431,7 @@ template<
Returns
True if there is such an element, false otherwise.
-

Definition at line 738 of file dense_set.hpp.

+

Definition at line 740 of file dense_set.hpp.

@@ -1405,23 +1441,23 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::count std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::count (const Other & key)const Other & key) const
-inline
@@ -1451,21 +1487,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::count size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::count (const value_type & key)const value_type & key) const
-inline
@@ -1489,21 +1525,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::crbegin const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::crbegin ()) const
-inlinenoexcept
@@ -1512,7 +1548,7 @@ template<rend().

Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 455 of file dense_set.hpp.

+

Definition at line 468 of file dense_set.hpp.

@@ -1522,21 +1558,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::crend const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::crend ()) const
-inlinenoexcept
@@ -1554,7 +1590,7 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
template<typename... Args>
@@ -1562,15 +1598,15 @@ template<typename... Args> +inline
- + - +
std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::emplace std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::emplace (Args &&... args)Args &&... args)
-inline
@@ -1591,7 +1627,7 @@ template<typename... Args>
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
-

Definition at line 562 of file dense_set.hpp.

+

Definition at line 575 of file dense_set.hpp.

@@ -1601,21 +1637,21 @@ template<typename... Args>
-template<typename Type , typename Hash , typename KeyEqual , typename Allocator >
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::dense_set< Type, Hash, KeyEqual, Allocator >::empty bool entt::dense_set< Type, Hash, KeyEqual, Allocator >::empty ()) const
-inlinenoexcept
@@ -1623,7 +1659,7 @@ template<
Returns
True if the container is empty, false otherwise.
-

Definition at line 492 of file dense_set.hpp.

+

Definition at line 505 of file dense_set.hpp.

@@ -1633,29 +1669,29 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end ()) const
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 439 of file dense_set.hpp.

+

Definition at line 452 of file dense_set.hpp.

@@ -1665,29 +1701,29 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end ())
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal array.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal array.
-

Definition at line 444 of file dense_set.hpp.

+

Definition at line 457 of file dense_set.hpp.

@@ -1697,21 +1733,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end (const size_type index)const size_type index)
-inline
@@ -1725,7 +1761,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 805 of file dense_set.hpp.

+

Definition at line 807 of file dense_set.hpp.

@@ -1735,21 +1771,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end const_local_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::end (const size_type index)const size_type index) const
-inline
@@ -1763,7 +1799,7 @@ template<
Returns
An iterator to the end of the given bucket.
-

Definition at line 796 of file dense_set.hpp.

+

Definition at line 798 of file dense_set.hpp.

@@ -1773,23 +1809,23 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range (const Other & value)const Other & value)
-inline
@@ -1819,37 +1855,37 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range (const Other & value)const Other & value) const
-inline
-

Returns a range containing all elements with a given value.

+

Returns a range containing all elements with a given value.

Parameters
valueValue of an element to search for.
-
Returns
A pair of iterators pointing to the first element and past the last element of the range.
+
Returns
A pair of iterators pointing to the first element and past the last element of the range.
-

Definition at line 728 of file dense_set.hpp.

+

Definition at line 730 of file dense_set.hpp.

@@ -1859,21 +1895,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
std::pair< iterator, iterator > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range std::pair< iterator, iterator > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range (const value_type & value)const value_type & value)
-inline
@@ -1897,35 +1933,35 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
std::pair< const_iterator, const_iterator > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range std::pair< const_iterator, const_iterator > entt::dense_set< Type, Hash, KeyEqual, Allocator >::equal_range (const value_type & value)const value_type & value) const
-inline
-

Returns a range containing all elements with a given value.

+

Returns a range containing all elements with a given value.

Parameters
valueValue of an element to search for.
-
Returns
A pair of iterators pointing to the first element and past the last element of the range.
+
Returns
A pair of iterators pointing to the first element and past the last element of the range.
-

Definition at line 705 of file dense_set.hpp.

+

Definition at line 707 of file dense_set.hpp.

@@ -1935,21 +1971,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase (const value_type & value)const value_type & value)
-inline
@@ -1963,7 +1999,7 @@ template<
Returns
Number of elements removed (either 0 or 1).
-

Definition at line 613 of file dense_set.hpp.

+

Definition at line 626 of file dense_set.hpp.

@@ -1973,15 +2009,15 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
@@ -31,23 +33,33 @@
- + - + @@ -1991,7 +2027,7 @@ template< -inline +inline
iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase (const_iterator first, const_iterator first,
@@ -2016,13 +2052,13 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
- + @@ -2030,7 +2066,7 @@ template< -inline +inline
iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::erase ( const_iterator pos)
@@ -2054,23 +2090,23 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::find std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::find (const Other & value)const Other & value)
-inline
@@ -2100,37 +2136,37 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename Other >
+template<typename Other> +inlinenodiscard
- + - +
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::find std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > entt::dense_set< Type, Hash, KeyEqual, Allocator >::find (const Other & value)const Other & value) const
-inline
-

Finds an element with a given value.

+

Finds an element with a given value.

Parameters
valueValue of an element to search for.
-
Returns
An iterator to an element with the given value. If no such element is found, a past-the-end iterator is returned.
+
Returns
An iterator to an element with the given value. If no such element is found, a past-the-end iterator is returned.
-

Definition at line 689 of file dense_set.hpp.

+

Definition at line 691 of file dense_set.hpp.

@@ -2140,21 +2176,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::find iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::find (const value_type & value)const value_type & value)
-inline
@@ -2178,35 +2214,35 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::find const_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::find (const value_type & value)const value_type & value) const
-inline
-

Finds an element with a given value.

+

Finds an element with a given value.

Parameters
valueValue of an element to search for.
-
Returns
An iterator to an element with the given value. If no such element is found, a past-the-end iterator is returned.
+
Returns
An iterator to an element with the given value. If no such element is found, a past-the-end iterator is returned.
-

Definition at line 669 of file dense_set.hpp.

+

Definition at line 671 of file dense_set.hpp.

@@ -2216,21 +2252,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::get_allocator allocator_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -2238,7 +2274,7 @@ template<
Returns
The associated allocator.
-

Definition at line 404 of file dense_set.hpp.

+

Definition at line 417 of file dense_set.hpp.

@@ -2248,21 +2284,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
hasher entt::dense_set< Type, Hash, KeyEqual, Allocator >::hash_function hasher entt::dense_set< Type, Hash, KeyEqual, Allocator >::hash_function ()) const
-inline
@@ -2270,7 +2306,7 @@ template<
Returns
The function used to hash the elements.
-

Definition at line 907 of file dense_set.hpp.

+

Definition at line 909 of file dense_set.hpp.

@@ -2280,21 +2316,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert (const value_type & value)const value_type & value)
-inline
@@ -2318,27 +2354,27 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
-template<typename It >
+template<typename It> +inline
- + - + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert void entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert (It first, It first,
It last )It last )
-inline
@@ -2358,7 +2394,7 @@ template<Definition at line 542 of file dense_set.hpp.

+

Definition at line 555 of file dense_set.hpp.

@@ -2368,13 +2404,13 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
@@ -31,23 +33,33 @@
- + @@ -2382,21 +2418,21 @@ template< -inline +inline
std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert std::pair< iterator, bool > entt::dense_set< Type, Hash, KeyEqual, Allocator >::insert ( value_type && value)
@@ -2406,21 +2442,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
key_equal entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_eq key_equal entt::dense_set< Type, Hash, KeyEqual, Allocator >::key_eq ()) const
-inline
@@ -2428,7 +2464,7 @@ template<
Returns
The function used to compare elements for equality.
-

Definition at line 915 of file dense_set.hpp.

+

Definition at line 917 of file dense_set.hpp.

@@ -2438,21 +2474,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
float entt::dense_set< Type, Hash, KeyEqual, Allocator >::load_factor float entt::dense_set< Type, Hash, KeyEqual, Allocator >::load_factor ()) const
-inline
@@ -2460,7 +2496,7 @@ template<
Returns
The average number of elements per bucket.
-

Definition at line 847 of file dense_set.hpp.

+

Definition at line 849 of file dense_set.hpp.

@@ -2470,21 +2506,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_bucket_count size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_bucket_count ()) const
-inline
@@ -2492,7 +2528,7 @@ template<
Returns
The maximum number of buckets.
-

Definition at line 821 of file dense_set.hpp.

+

Definition at line 823 of file dense_set.hpp.

@@ -2502,21 +2538,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscard
- + - +
float entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_load_factor float entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_load_factor ()) const
-inline
@@ -2524,7 +2560,7 @@ template<
Returns
The maximum average number of elements per bucket.
-

Definition at line 855 of file dense_set.hpp.

+

Definition at line 857 of file dense_set.hpp.

@@ -2534,21 +2570,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_load_factor void entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_load_factor (const float value)const float value)
-inline
@@ -2561,7 +2597,7 @@ template<Definition at line 863 of file dense_set.hpp.

+

Definition at line 865 of file dense_set.hpp.

@@ -2571,21 +2607,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_size size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::max_size ()) const
-inlinenoexcept
@@ -2593,7 +2629,7 @@ template<
Returns
Maximum possible number of elements.
-

Definition at line 508 of file dense_set.hpp.

+

Definition at line 521 of file dense_set.hpp.

@@ -2603,21 +2639,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+default
- + - +
dense_set & entt::dense_set< Type, Hash, KeyEqual, Allocator >::operator= dense_set & entt::dense_set< Type, Hash, KeyEqual, Allocator >::operator= (const dense_set< Type, Hash, KeyEqual, Allocator > & )const dense_set< Type, Hash, KeyEqual, Allocator > & )
-default
@@ -2633,21 +2669,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+defaultnoexcept
- + - +
dense_set & entt::dense_set< Type, Hash, KeyEqual, Allocator >::operator= dense_set & entt::dense_set< Type, Hash, KeyEqual, Allocator >::operator= (dense_set< Type, Hash, KeyEqual, Allocator > && )dense_set< Type, Hash, KeyEqual, Allocator > && )
-defaultnoexcept
@@ -2663,30 +2699,30 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rbegin const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rbegin ()) const
-inlinenoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the array is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first instance of the reversed internal array.
+
Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 460 of file dense_set.hpp.

+

Definition at line 473 of file dense_set.hpp.

@@ -2696,30 +2732,30 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rbegin reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rbegin ())
-inlinenoexcept
-

Returns a reverse iterator to the beginning.

+

Returns a reverse iterator to the beginning.

If the array is empty, the returned iterator will be equal to rend().

-
Returns
An iterator to the first instance of the reversed internal array.
+
Returns
An iterator to the first instance of the reversed internal array.
-

Definition at line 465 of file dense_set.hpp.

+

Definition at line 478 of file dense_set.hpp.

@@ -2729,21 +2765,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::rehash void entt::dense_set< Type, Hash, KeyEqual, Allocator >::rehash (const size_type cnt)const size_type cnt)
-inline
@@ -2756,7 +2792,7 @@ template<Definition at line 874 of file dense_set.hpp.

+

Definition at line 876 of file dense_set.hpp.

@@ -2766,29 +2802,29 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rend const_reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rend ()) const
-inlinenoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last instance of the reversed internal array.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
-

Definition at line 479 of file dense_set.hpp.

+

Definition at line 492 of file dense_set.hpp.

@@ -2798,29 +2834,29 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rend reverse_iterator entt::dense_set< Type, Hash, KeyEqual, Allocator >::rend ())
-inlinenoexcept
-

Returns a reverse iterator to the end.

-
Returns
An iterator to the element following the last instance of the reversed internal array.
+

Returns a reverse iterator to the end.

+
Returns
An iterator to the element following the last instance of the reversed internal array.
-

Definition at line 484 of file dense_set.hpp.

+

Definition at line 497 of file dense_set.hpp.

@@ -2830,21 +2866,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inline
- + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::reserve void entt::dense_set< Type, Hash, KeyEqual, Allocator >::reserve (const size_type cnt)const size_type cnt)
-inline
@@ -2857,7 +2893,7 @@ template<Definition at line 898 of file dense_set.hpp.

+

Definition at line 900 of file dense_set.hpp.

@@ -2867,21 +2903,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::size size_type entt::dense_set< Type, Hash, KeyEqual, Allocator >::size ()) const
-inlinenoexcept
@@ -2889,7 +2925,7 @@ template<
Returns
Number of elements in a container.
-

Definition at line 500 of file dense_set.hpp.

+

Definition at line 513 of file dense_set.hpp.

@@ -2899,21 +2935,21 @@ template<
+template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
+inlinenoexcept
- + - +
void entt::dense_set< Type, Hash, KeyEqual, Allocator >::swap void entt::dense_set< Type, Hash, KeyEqual, Allocator >::swap (dense_set< Type, Hash, KeyEqual, Allocator > & other)dense_set< Type, Hash, KeyEqual, Allocator > & other)
-inlinenoexcept
@@ -2926,7 +2962,7 @@ template<Definition at line 630 of file dense_set.hpp.

+

Definition at line 406 of file dense_set.hpp.

@@ -2936,7 +2972,8 @@ template< + diff --git a/classentt_1_1emitter-members.html b/classentt_1_1emitter-members.html index 77a1b8a7c..94a65e856 100644 --- a/classentt_1_1emitter-members.html +++ b/classentt_1_1emitter-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::emitter< Derived, Allocator > Member List
@@ -95,14 +108,15 @@ $(function() {
on(std::function< void(Type &, Derived &)> func)entt::emitter< Derived, Allocator >inline
operator=(const emitter &)=deleteentt::emitter< Derived, Allocator >
operator=(emitter &&other) noexceptentt::emitter< Derived, Allocator >inline
publish(Type &&value)entt::emitter< Derived, Allocator >inline
publish(Type value)entt::emitter< Derived, Allocator >inline
size_type typedefentt::emitter< Derived, Allocator >
swap(emitter &other) noexceptentt::emitter< Derived, Allocator >inline
~emitter()entt::emitter< Derived, Allocator >inlinevirtual
+ diff --git a/classentt_1_1emitter.html b/classentt_1_1emitter.html index a56406db8..82b26ad59 100644 --- a/classentt_1_1emitter.html +++ b/classentt_1_1emitter.html @@ -3,13 +3,15 @@ - + EnTT: entt::emitter< Derived, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
Public Types | @@ -90,10 +103,10 @@ $(function() { - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
@@ -102,66 +115,65 @@ Public Member Functions - + +  - + - + - + - + - + - + - + - - - - - - + + + + + + - - + + - + - - + + - +
 emitter ()
 Default constructor.
 
 emitter (const allocator_type &allocator)
 emitter (const allocator_type &allocator)
 Constructs an emitter with a given allocator.
 
emitter (const emitter &)=delete
emitter (const emitter &)=delete
 Default copy constructor, deleted on purpose.
 
 emitter (emitter &&other) noexcept
 emitter (emitter &&other) noexcept
 Move constructor.
 
 emitter (emitter &&other, const allocator_type &allocator)
 emitter (emitter &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
virtual ~emitter ()
virtual ~emitter ()
 Default destructor.
 
emitteroperator= (const emitter &)=delete
emitteroperator= (const emitter &)=delete
 Default copy assignment operator, deleted on purpose.
 
emitteroperator= (emitter &&other) noexcept
emitteroperator= (emitter &&other) noexcept
 Move assignment operator.
 
void swap (emitter &other) noexcept
void swap (emitter &other) noexcept
 Exchanges the contents with those of a given emitter.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
template<typename Type >
void publish (Type &&value)
 Publishes a given event.
 
template<typename Type >
void on (std::function< void(Type &, Derived &)> func)
template<typename Type>
void publish (Type value)
 Publishes a given event.
 
template<typename Type>
void on (std::function< void(Type &, Derived &)> func)
 Registers a listener with the event emitter.
 
template<typename Type >
void erase ()
template<typename Type>
void erase ()
 Disconnects a listener from the event emitter.
 
void clear () noexcept
void clear () noexcept
 Disconnects all the listeners.
 
template<typename Type >
bool contains () const
template<typename Type>
bool contains () const
 Checks if there are listeners registered for the specific event.
 
bool empty () const noexcept
bool empty () const noexcept
 Checks if there are listeners registered with the event emitter.
 

Detailed Description

-
template<typename Derived, typename Allocator>
+
template<typename Derived, typename Allocator>
class entt::emitter< Derived, Allocator >

General purpose event emitter.

To create an emitter type, derived classes must inherit from the base as:

-
struct my_emitter: emitter<my_emitter> {
+
struct my_emitter: emitter<my_emitter> {
// ...
}
-
General purpose event emitter.
Definition emitter.hpp:36
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
emitter()
Default constructor.
Definition emitter.hpp:51

Handlers for the different events are created internally on the fly. It's not required to specify in advance the full list of accepted events.
Moreover, whenever an event is published, an emitter also passes a reference to itself to its listeners.

Template Parameters
@@ -180,10 +192,10 @@ class entt::emitter< Derived, Allocator >

General purpose event em

-template<typename Derived , typename Allocator >
+template<typename Derived, typename Allocator>
- +
using entt::emitter< Derived, Allocator >::allocator_type = Allocatorusing entt::emitter< Derived, Allocator >::allocator_type = Allocator
@@ -200,10 +212,10 @@ template<
+template<typename Derived, typename Allocator>
- +
using entt::emitter< Derived, Allocator >::size_type = std::size_tusing entt::emitter< Derived, Allocator >::size_type = std::size_t
@@ -221,21 +233,21 @@ template<
+template<typename Derived, typename Allocator>
+inline
- + - +
entt::emitter< Derived, Allocator >::emitter entt::emitter< Derived, Allocator >::emitter ())
-inline
@@ -252,21 +264,21 @@ template<
+template<typename Derived, typename Allocator>
+inlineexplicit
- + - +
entt::emitter< Derived, Allocator >::emitter entt::emitter< Derived, Allocator >::emitter (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -289,21 +301,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenoexcept
- + - +
entt::emitter< Derived, Allocator >::emitter entt::emitter< Derived, Allocator >::emitter (emitter< Derived, Allocator > && other)emitter< Derived, Allocator > && other)
-inlinenoexcept
@@ -326,25 +338,25 @@ template<
+template<typename Derived, typename Allocator>
+inline
- + - + - +
entt::emitter< Derived, Allocator >::emitter entt::emitter< Derived, Allocator >::emitter (emitter< Derived, Allocator > && other, emitter< Derived, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -368,21 +380,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinevirtual
- + - +
virtual entt::emitter< Derived, Allocator >::~emitter virtual entt::emitter< Derived, Allocator >::~emitter ())
-inlinevirtual
@@ -400,21 +412,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenoexcept
- + - +
void entt::emitter< Derived, Allocator >::clear void entt::emitter< Derived, Allocator >::clear ())
-inlinenoexcept
@@ -431,23 +443,23 @@ template<
+template<typename Derived, typename Allocator>
-template<typename Type >
+template<typename Type>
+inlinenodiscard
- + - +
bool entt::emitter< Derived, Allocator >::contains bool entt::emitter< Derived, Allocator >::contains ()) const
-inline
@@ -471,21 +483,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::emitter< Derived, Allocator >::empty bool entt::emitter< Derived, Allocator >::empty ()) const
-inlinenoexcept
@@ -503,23 +515,23 @@ template<
+template<typename Derived, typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::emitter< Derived, Allocator >::erase void entt::emitter< Derived, Allocator >::erase ())
-inline
@@ -542,21 +554,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::emitter< Derived, Allocator >::get_allocator allocator_type entt::emitter< Derived, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -574,23 +586,23 @@ template<
+template<typename Derived, typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::emitter< Derived, Allocator >::on void entt::emitter< Derived, Allocator >::on (std::function< void(Type &, Derived &)> func)std::function< void(Type &, Derived &)> func)
-inline
@@ -619,21 +631,21 @@ template<
+template<typename Derived, typename Allocator>
+delete
- + - +
emitter & entt::emitter< Derived, Allocator >::operator= emitter & entt::emitter< Derived, Allocator >::operator= (const emitter< Derived, Allocator > & )const emitter< Derived, Allocator > & )
-delete
@@ -649,21 +661,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenoexcept
- + - +
emitter & entt::emitter< Derived, Allocator >::operator= emitter & entt::emitter< Derived, Allocator >::operator= (emitter< Derived, Allocator > && other)emitter< Derived, Allocator > && other)
-inlinenoexcept
@@ -681,29 +693,29 @@ template< -

◆ publish()

+ +

◆ publish()

-template<typename Derived , typename Allocator >
+template<typename Derived, typename Allocator>
-template<typename Type >
+template<typename Type>
+inline
- + - +
void entt::emitter< Derived, Allocator >::publish void entt::emitter< Derived, Allocator >::publish (Type && value)Type value)
-inline
@@ -732,21 +744,21 @@ template<
+template<typename Derived, typename Allocator>
+inlinenoexcept
- + - +
void entt::emitter< Derived, Allocator >::swap void entt::emitter< Derived, Allocator >::swap (emitter< Derived, Allocator > & other)emitter< Derived, Allocator > & other)
-inlinenoexcept
@@ -769,7 +781,8 @@ template< +
diff --git a/classentt_1_1family-members.html b/classentt_1_1family-members.html index 11e696b11..245fc674a 100644 --- a/classentt_1_1family-members.html +++ b/classentt_1_1family-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::family<... > Member List
@@ -86,7 +99,8 @@ $(function() {
+ diff --git a/classentt_1_1family.html b/classentt_1_1family.html index 01c5d1823..ca65736ee 100644 --- a/classentt_1_1family.html +++ b/classentt_1_1family.html @@ -3,13 +3,15 @@ - + EnTT: entt::family<... > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,14 +103,14 @@ $(function() { - +

Public Types

using value_type = id_type
using value_type = id_type
 Unsigned integer type.
 
- +

Static Public Attributes

template<typename... Type>
static const value_type value = identifier++
static const value_type value = identifier++
 Statically generated unique identifier for the given type.
 
@@ -114,10 +127,10 @@ class entt::family<... >

Dynamic identifier generator.

-template<typename... >
+template<typename...>
- +
using entt::family<... >::value_type = id_typeusing entt::family<... >::value_type = id_type
@@ -135,7 +148,7 @@ template<typename... >
-template<typename... >
+template<typename...>
template<typename... Type>
@@ -143,12 +156,12 @@ template<typename... Type> +inlinestatic
- +
const value_type entt::family<... >::value = identifier++const value_type entt::family<... >::value = identifier++
-inlinestatic
@@ -165,7 +178,8 @@ template<typename... Type>
+
diff --git a/classentt_1_1ident-members.html b/classentt_1_1ident-members.html index 347a41bb2..94d659c37 100644 --- a/classentt_1_1ident-members.html +++ b/classentt_1_1ident-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::ident< Type > Member List
@@ -86,7 +99,8 @@ $(function() {
+ diff --git a/classentt_1_1ident.html b/classentt_1_1ident.html index 962d1c50a..2df9b5628 100644 --- a/classentt_1_1ident.html +++ b/classentt_1_1ident.html @@ -3,13 +3,15 @@ - + EnTT: entt::ident< Type > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,14 +103,14 @@ $(function() { - +

Public Types

using value_type = id_type
using value_type = id_type
 Unsigned integer type.
 
- - + +

Static Public Attributes

template<typename Curr >
static constexpr value_type value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{})
template<typename Curr>
static constexpr value_type value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{})
 Statically generated unique identifier for the given type.
 
@@ -122,7 +135,7 @@ class entt::ident< Type >

Type integral identifiers.

template<typename... Type>
- +
using entt::ident< Type >::value_type = id_typeusing entt::ident< Type >::value_type = id_type
@@ -142,18 +155,18 @@ template<typename... Type>
template<typename... Type>
-template<typename Curr >
+template<typename Curr> +staticconstexpr
- +
constexpr value_type entt::ident< Type >::value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{})value_type entt::ident< Type >::value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{})
-staticconstexpr
@@ -170,7 +183,8 @@ template< +
diff --git a/classentt_1_1iota__iterator-members.html b/classentt_1_1iota__iterator-members.html index 3f82e8713..efa114aac 100644 --- a/classentt_1_1iota__iterator-members.html +++ b/classentt_1_1iota__iterator-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::iota_iterator< Type > Member List
@@ -94,7 +107,8 @@ $(function() {
+ diff --git a/classentt_1_1iota__iterator.html b/classentt_1_1iota__iterator.html index 1bf4b6f9f..56248049f 100644 --- a/classentt_1_1iota__iterator.html +++ b/classentt_1_1iota__iterator.html @@ -3,13 +3,15 @@ - + EnTT: entt::iota_iterator< Type > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
-
entt::iota_iterator< Type > Class Template Referencefinal
+
entt::iota_iterator< Type > Class Template Referencefinal
@@ -90,42 +103,42 @@ $(function() { - + - + - + - + - +

Public Types

using value_type = Type
using value_type = Type
 Value type, likely an integral one.
 
using pointer = void
using pointer = void
 Invalid pointer type.
 
using reference = value_type
using reference = value_type
 Non-reference type, same as value type.
 
using difference_type = std::ptrdiff_t
using difference_type = std::ptrdiff_t
 Difference type.
 
using iterator_category = std::input_iterator_tag
using iterator_category = std::input_iterator_tag
 Iterator category.
 
- + - + - + - + - +

Public Member Functions

constexpr iota_iterator () noexcept
constexpr iota_iterator () noexcept
 Default constructor.
 
constexpr iota_iterator (const value_type init) noexcept
constexpr iota_iterator (const value_type init) noexcept
 Constructs an iota iterator from a given value.
 
constexpr iota_iteratoroperator++ () noexcept
constexpr iota_iteratoroperator++ () noexcept
 Pre-increment operator.
 
constexpr iota_iterator operator++ (int) noexcept
constexpr iota_iterator operator++ (int) noexcept
 Post-increment operator.
 
constexpr reference operator* () const noexcept
constexpr reference operator* () const noexcept
 Dereference operator.
 

Detailed Description

-
template<typename Type>
+
template<typename Type>
class entt::iota_iterator< Type >

Plain iota iterator (waiting for C++20).

Template Parameters
@@ -142,10 +155,10 @@ class entt::iota_iterator< Type >

Plain iota iterator (waiting for

-template<typename Type >
+template<typename Type>
- +
using entt::iota_iterator< Type >::difference_type = std::ptrdiff_tusing entt::iota_iterator< Type >::difference_type = std::ptrdiff_t
@@ -162,10 +175,10 @@ template<
+template<typename Type>
- +
using entt::iota_iterator< Type >::iterator_category = std::input_iterator_tagusing entt::iota_iterator< Type >::iterator_category = std::input_iterator_tag
@@ -182,10 +195,10 @@ template<
+template<typename Type>
- +
using entt::iota_iterator< Type >::pointer = voidusing entt::iota_iterator< Type >::pointer = void
@@ -202,10 +215,10 @@ template<
+template<typename Type>
- +
using entt::iota_iterator< Type >::reference = value_typeusing entt::iota_iterator< Type >::reference = value_type
@@ -222,10 +235,10 @@ template<
+template<typename Type>
- +
using entt::iota_iterator< Type >::value_type = Typeusing entt::iota_iterator< Type >::value_type = Type
@@ -243,21 +256,21 @@ template<
+template<typename Type>
+inlineconstexprnoexcept
- + - +
constexpr entt::iota_iterator< Type >::iota_iterator entt::iota_iterator< Type >::iota_iterator ())
-inlineconstexprnoexcept
@@ -274,21 +287,21 @@ template<
+template<typename Type>
+inlineconstexprnoexcept
- + - +
constexpr entt::iota_iterator< Type >::iota_iterator entt::iota_iterator< Type >::iota_iterator (const value_type init)const value_type init)
-inlineconstexprnoexcept
@@ -312,21 +325,21 @@ template<
+template<typename Type>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr reference entt::iota_iterator< Type >::operator* reference entt::iota_iterator< Type >::operator* ()) const
-inlineconstexprnoexcept
@@ -344,21 +357,21 @@ template<
+template<typename Type>
+inlineconstexprnoexcept
- + - +
constexpr iota_iterator & entt::iota_iterator< Type >::operator++ iota_iterator & entt::iota_iterator< Type >::operator++ ())
-inlineconstexprnoexcept
@@ -376,21 +389,21 @@ template<
+template<typename Type>
+inlineconstexprnoexcept
- + - +
constexpr iota_iterator entt::iota_iterator< Type >::operator++ iota_iterator entt::iota_iterator< Type >::operator++ (int )int )
-inlineconstexprnoexcept
@@ -408,7 +421,8 @@ template< +
diff --git a/classentt_1_1locator-members.html b/classentt_1_1locator-members.html index 7970bbb46..cd587675c 100644 --- a/classentt_1_1locator-members.html +++ b/classentt_1_1locator-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::locator< Service > Member List
@@ -98,7 +111,8 @@ $(function() {
+
diff --git a/classentt_1_1locator.html b/classentt_1_1locator.html index 4b4b39919..a67469041 100644 --- a/classentt_1_1locator.html +++ b/classentt_1_1locator.html @@ -3,13 +3,15 @@ - + EnTT: entt::locator< Service > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
-
entt::locator< Service > Class Template Referencefinal
+
entt::locator< Service > Class Template Referencefinal
@@ -91,64 +104,64 @@ $(function() { - + - +

Public Types

using type = Service
using type = Service
 Service type.
 
using node_type = service_handle
using node_type = service_handle
 Service node type.
 
+  +  +  - +

Public Member Functions

locator ()=delete
locator ()=delete
 Default constructor, deleted on purpose.
 
locator (const locator &)=delete
locator (const locator &)=delete
 Default copy constructor, deleted on purpose.
 
~locator ()=delete
~locator ()=delete
 Default destructor, deleted on purpose.
 
locatoroperator= (const locator &)=delete
locatoroperator= (const locator &)=delete
 Default copy assignment operator, deleted on purpose.
 
- + - + - - + + - - + + - - + + - + - + - - + +

Static Public Member Functions

static bool has_value () noexcept
static bool has_value () noexcept
 Checks whether a service locator contains a value.
 
static Servicevalue () noexcept
static Service & value () noexcept
 Returns a reference to a valid service, if any.
 
template<typename Type = Service, typename... Args>
static Servicevalue_or (Args &&...args)
template<typename Type = Service, typename... Args>
static Service & value_or (Args &&...args)
 Returns a service if available or sets it from a fallback type.
 
template<typename Type = Service, typename... Args>
static Serviceemplace (Args &&...args)
template<typename Type = Service, typename... Args>
static Service & emplace (Args &&...args)
 Sets or replaces a service.
 
template<typename Type = Service, typename Allocator , typename... Args>
static Serviceemplace (std::allocator_arg_t, Allocator alloc, Args &&...args)
template<typename Type = Service, typename Allocator, typename... Args>
static Service & emplace (std::allocator_arg_t, Allocator alloc, Args &&...args)
 Sets or replaces a service using a given allocator.
 
static node_type handle () noexcept
static node_type handle () noexcept
 Returns a handle to the underlying service.
 
static void reset (const node_type &other={}) noexcept
static void reset (const node_type &other={}) noexcept
 Resets or replaces a service.
 
template<typename Type , typename Deleter = std::default_delete<Type>>
static void reset (Type *elem, Deleter deleter={})
template<typename Type, typename Deleter = std::default_delete<Type>>
static void reset (Type *elem, Deleter deleter={})
 Resets or replaces a service.
 

Detailed Description

-
template<typename Service>
+
template<typename Service>
class entt::locator< Service >

Service locator, nothing more.

A service locator is used to do what it promises: locate services.
Usually service locators are tightly bound to the services they expose and thus it's hard to define a general purpose class to do that. This tiny class tries to fill the gap and to get rid of the burden of defining a different specific locator for each application.

@@ -168,10 +181,10 @@ class entt::locator< Service >

Service locator, nothing more.

-template<typename Service >
+template<typename Service>
- +
using entt::locator< Service >::node_type = service_handleusing entt::locator< Service >::node_type = service_handle
@@ -188,10 +201,10 @@ template<
+template<typename Service>
- +
using entt::locator< Service >::type = Serviceusing entt::locator< Service >::type = Service
@@ -209,23 +222,23 @@ template<
+template<typename Service>
-template<typename Type = Service, typename... Args>
+template<typename Type = Service, typename... Args>
+inlinestatic
- + - +
static Service & entt::locator< Service >::emplace static Service & entt::locator< Service >::emplace (Args &&... args)Args &&... args)
-inlinestatic
@@ -256,32 +269,32 @@ template<
+template<typename Service>
-template<typename Type = Service, typename Allocator , typename... Args>
+template<typename Type = Service, typename Allocator, typename... Args>
+inlinestatic
- + - + - + - +
static Service & entt::locator< Service >::emplace static Service & entt::locator< Service >::emplace (std::allocator_arg_t , std::allocator_arg_t ,
Allocator< Service > alloc, Allocator< Service > alloc,
Args &&... args )Args &&... args )
-inlinestatic
@@ -314,21 +327,21 @@ template<
+template<typename Service>
+inlinestaticnoexcept
- + - +
static node_type entt::locator< Service >::handle static node_type entt::locator< Service >::handle ())
-inlinestaticnoexcept
@@ -346,21 +359,21 @@ template<
+template<typename Service>
+inlinestaticnodiscardnoexcept
- + - +
static bool entt::locator< Service >::has_value static bool entt::locator< Service >::has_value ())
-inlinestaticnoexcept
@@ -378,21 +391,21 @@ template<
+template<typename Service>
+delete
- + - +
locator & entt::locator< Service >::operator= locator & entt::locator< Service >::operator= (const locator< Service > & )const locator< Service > & )
-delete
@@ -408,21 +421,21 @@ template<
+template<typename Service>
+inlinestaticnoexcept
- + - +
static void entt::locator< Service >::reset static void entt::locator< Service >::reset (const node_type & other = {})const node_type & other = {})
-inlinestaticnoexcept
@@ -445,27 +458,27 @@ template<
+template<typename Service>
-template<typename Type , typename Deleter = std::default_delete<Type>>
+template<typename Type, typename Deleter = std::default_delete<Type>>
+inlinestatic
- + - + - +
static void entt::locator< Service >::reset static void entt::locator< Service >::reset (Type * elem, Type * elem,
Deleter deleter = {} )Deleter deleter = {} )
-inlinestatic
@@ -496,21 +509,21 @@ template<
+template<typename Service>
+inlinestaticnodiscardnoexcept
- + - +
static Service & entt::locator< Service >::value static Service & entt::locator< Service >::value ())
-inlinestaticnoexcept
@@ -529,23 +542,23 @@ template<
+template<typename Service>
-template<typename Type = Service, typename... Args>
+template<typename Type = Service, typename... Args>
+inlinestaticnodiscard
- + - +
static Service & entt::locator< Service >::value_or static Service & entt::locator< Service >::value_or (Args &&... args)Args &&... args)
-inlinestatic
@@ -577,7 +590,8 @@ template< +
diff --git a/classentt_1_1member__class-members.html b/classentt_1_1member__class-members.html index d7a4aa3d1..df3efd494 100644 --- a/classentt_1_1member__class-members.html +++ b/classentt_1_1member__class-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::member_class< Member > Member List
@@ -85,7 +98,8 @@ $(function() {
+ diff --git a/classentt_1_1member__class.html b/classentt_1_1member__class.html index d308f8cb1..979b37fae 100644 --- a/classentt_1_1member__class.html +++ b/classentt_1_1member__class.html @@ -3,13 +3,15 @@ - + EnTT: entt::member_class< Member > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -89,12 +102,12 @@ $(function() { - +

Public Types

using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>
using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>
 The class of the given non-static member object or function.
 

Detailed Description

-
template<typename Member>
+
template<typename Member>
class entt::member_class< Member >

Extracts the class of a non-static member object or function.

Template Parameters
@@ -103,7 +116,7 @@ class entt::member_class< Member >

Extracts the class of a non-sta -

Definition at line 846 of file type_traits.hpp.

+

Definition at line 848 of file type_traits.hpp.

Member Typedef Documentation

◆ type

@@ -111,17 +124,17 @@ class entt::member_class< Member >

Extracts the class of a non-sta

-template<typename Member >
+template<typename Member>
- +
using entt::member_class< Member >::type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>using entt::member_class< Member >::type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>

The class of the given non-static member object or function.

-

Definition at line 860 of file type_traits.hpp.

+

Definition at line 862 of file type_traits.hpp.

@@ -131,7 +144,8 @@ template< +
diff --git a/classentt_1_1meta__any-members.html b/classentt_1_1meta__any-members.html index 35ccffe94..d6f3203a0 100644 --- a/classentt_1_1meta__any-members.html +++ b/classentt_1_1meta__any-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::meta_any Member List
@@ -93,8 +106,10 @@ $(function() { as_sequence_container() const noexceptentt::meta_anyinline assign(const meta_any &other)entt::meta_anyinline assign(meta_any &&other)entt::meta_anyinline - cast() constentt::meta_anyinline - cast()entt::meta_anyinline + base() const noexceptentt::meta_anyinline + cast() constentt::meta_anyinline + cast()entt::meta_anyinline + context() const noexceptentt::meta_anyinline data() const noexceptentt::meta_anyinline data() noexceptentt::meta_anyinline emplace(Args &&...args)entt::meta_anyinline @@ -106,6 +121,8 @@ $(function() { meta_any(meta_ctx_arg_t, const meta_ctx &area)entt::meta_anyinline meta_any(std::in_place_type_t< Type >, Args &&...args)entt::meta_anyinlineexplicit meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)entt::meta_anyinlineexplicit + meta_any(std::in_place_t, Type *value)entt::meta_anyinlineexplicit + meta_any(const meta_ctx &area, std::in_place_t, Type *value)entt::meta_anyinlineexplicit meta_any(Type &&value)entt::meta_anyinline meta_any(const meta_ctx &area, Type &&value)entt::meta_anyinline meta_any(const meta_ctx &area, const meta_any &other)entt::meta_anyinline @@ -119,7 +136,7 @@ $(function() { operator=(meta_any &&other) noexceptentt::meta_anyinline operator=(Type &&value)entt::meta_anyinline operator==(const meta_any &other) const noexceptentt::meta_anyinline - policy() const noexceptentt::meta_anyinline + policy() const noexceptentt::meta_anyinline reset()entt::meta_anyinline set(id_type id, Type &&value)entt::meta_any try_cast() constentt::meta_anyinline @@ -129,7 +146,8 @@ $(function() {
+
diff --git a/classentt_1_1meta__any.html b/classentt_1_1meta__any.html index ff0828a5a..cebbddcf0 100644 --- a/classentt_1_1meta__any.html +++ b/classentt_1_1meta__any.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_any Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Member Functions | @@ -89,163 +102,177 @@ $(function() { - + - + - - + + - - + + - + + + + + + + + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - - - + + + + + + + + +

Public Member Functions

 meta_any ()=default
 meta_any ()=default
 
 meta_any (meta_ctx_arg_t, const meta_ctx &area)
 meta_any (meta_ctx_arg_t, const meta_ctx &area)
 Context aware constructor.
 
template<typename Type , typename... Args>
 meta_any (std::in_place_type_t< Type >, Args &&...args)
template<typename Type, typename... Args>
 meta_any (std::in_place_type_t< Type >, Args &&...args)
 Constructs a wrapper by directly initializing the new object.
 
template<typename Type , typename... Args>
 meta_any (const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)
template<typename Type, typename... Args>
 meta_any (const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)
 Constructs a wrapper by directly initializing the new object.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
template<typename Type>
 meta_any (std::in_place_t, Type *value)
 Constructs a wrapper taking ownership of the passed object.
 
template<typename Type>
 meta_any (const meta_ctx &area, std::in_place_t, Type *value)
 Constructs a wrapper taking ownership of the passed object.
 
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
 meta_any (Type &&value)
 Constructs a wrapper from a given value.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
 meta_any (const meta_ctx &area, Type &&value)
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
 meta_any (const meta_ctx &area, Type &&value)
 Constructs a wrapper from a given value.
 
 meta_any (const meta_ctx &area, const meta_any &other)
 meta_any (const meta_ctx &area, const meta_any &other)
 Context aware copy constructor.
 
 meta_any (const meta_ctx &area, meta_any &&other)
 meta_any (const meta_ctx &area, meta_any &&other)
 Context aware move constructor.
 
 meta_any (const meta_any &other)=default
 meta_any (const meta_any &other)=default
 Copy constructor.
 
 meta_any (meta_any &&other) noexcept
 meta_any (meta_any &&other) noexcept
 Move constructor.
 
 ~meta_any ()
 Frees the internal storage, whatever it means.
 
meta_anyoperator= (const meta_any &other)
meta_anyoperator= (const meta_any &other)
 Copy assignment operator.
 
meta_anyoperator= (meta_any &&other) noexcept
meta_anyoperator= (meta_any &&other) noexcept
 Move assignment operator.
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
meta_anyoperator= (Type &&value)
 Value assignment operator.
 
meta_type type () const noexcept
 Returns the object type if any, type_id<void>() otherwise.
meta_type type () const noexcept
 Returns the object type if any, type_id<void>() otherwise.
 
const voiddata () const noexcept
 Returns an opaque pointer to the contained instance.
const void * data () const noexcept
 Returns an opaque pointer to the contained instance.
 
voiddata () noexcept
 Returns an opaque pointer to the contained instance.
void * data () noexcept
 Returns an opaque pointer to the contained instance.
 
template<typename... Args>
meta_any invoke (id_type id, Args &&...args) const
meta_any invoke (id_type id, Args &&...args) const
 Invokes the underlying function, if possible.
 
template<typename... Args>
meta_any invoke (id_type id, Args &&...args)
 Invokes the underlying function, if possible.
meta_any invoke (id_type id, Args &&...args)
 Invokes the underlying function, if possible.
 
template<typename Type >
bool set (id_type id, Type &&value)
template<typename Type>
bool set (id_type id, Type &&value)
 Sets the value of a given variable.
 
meta_any get (id_type id) const
meta_any get (id_type id) const
 Gets the value of a given variable.
 
meta_any get (id_type id)
 Gets the value of a given variable.
meta_any get (id_type id)
 Gets the value of a given variable.
 
template<typename Type >
const Type * try_cast () const
template<typename Type>
const Type * try_cast () const
 Tries to cast an instance to a given type.
 
template<typename Type >
template<typename Type>
Type * try_cast ()
 Tries to cast an instance to a given type.
 Tries to cast an instance to a given type.
 
template<typename Type >
std::remove_const_t< Type > cast () const
template<typename Type>
std::remove_const_t< Type > cast () const
 Tries to cast an instance to a given type.
 
template<typename Type >
template<typename Type>
std::remove_const_t< Type > cast ()
 Tries to cast an instance to a given type.
 Tries to cast an instance to a given type.
 
meta_any allow_cast (const meta_type &type) const
meta_any allow_cast (const meta_type &type) const
 Converts an object in such a way that a given cast becomes viable.
 
bool allow_cast (const meta_type &type)
bool allow_cast (const meta_type &type)
 Converts an object in such a way that a given cast becomes viable.
 
template<typename Type >
meta_any allow_cast () const
template<typename Type>
meta_any allow_cast () const
 Converts an object in such a way that a given cast becomes viable.
 
template<typename Type >
bool allow_cast ()
template<typename Type>
bool allow_cast ()
 Converts an object in such a way that a given cast becomes viable.
 
template<typename Type , typename... Args>
void emplace (Args &&...args)
 Replaces the contained object by creating a new instance directly.
template<typename Type, typename... Args>
void emplace (Args &&...args)
 Replaces the contained object by creating a new instance directly.
 
bool assign (const meta_any &other)
 Assigns a value to the contained object without replacing it.
bool assign (const meta_any &other)
 Assigns a value to the contained object without replacing it.
 
bool assign (meta_any &&other)
 Assigns a value to the contained object without replacing it.
bool assign (meta_any &&other)
 Assigns a value to the contained object without replacing it.
 
void reset ()
 Destroys contained object.
void reset ()
 Destroys contained object.
 
meta_sequence_container as_sequence_container () noexcept
meta_sequence_container as_sequence_container () noexcept
 Returns a sequence container proxy.
 
meta_sequence_container as_sequence_container () const noexcept
 Returns a sequence container proxy.
meta_sequence_container as_sequence_container () const noexcept
 Returns a sequence container proxy.
 
meta_associative_container as_associative_container () noexcept
meta_associative_container as_associative_container () noexcept
 Returns an associative container proxy.
 
meta_associative_container as_associative_container () const noexcept
 Returns an associative container proxy.
meta_associative_container as_associative_container () const noexcept
 Returns an associative container proxy.
 
meta_any operator* () const noexcept
meta_any operator* () const noexcept
 Indirection operator for dereferencing opaque objects.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns false if a wrapper is invalid, true otherwise.
 
bool operator== (const meta_any &other) const noexcept
 Checks if two wrappers differ in their content.
bool operator== (const meta_any &other) const noexcept
 Checks if two wrappers differ in their content.
 
bool operator!= (const meta_any &other) const noexcept
 Checks if two wrappers differ in their content.
bool operator!= (const meta_any &other) const noexcept
 Checks if two wrappers differ in their content.
 
meta_any as_ref () noexcept
 Aliasing constructor.
meta_any as_ref () noexcept
 Aliasing constructor.
 
meta_any as_ref () const noexcept
 Aliasing constructor.
meta_any as_ref () const noexcept
 Aliasing constructor.
 
meta_any_policy policy () const noexcept
 Returns the current mode of a meta any object.
 
any_policy policy () const noexcept
 Returns the current mode of a meta any object.
 
const anybase () const noexcept
 Returns the underlying storage.
 
const meta_ctxcontext () const noexcept
 Returns the underlying meta context.
 

Detailed Description

Opaque wrapper for values of any type.

-

Definition at line 179 of file meta.hpp.

+

Definition at line 166 of file meta.hpp.

Constructor & Destructor Documentation

-

◆ meta_any() [1/10]

+

◆ meta_any() [1/12]

@@ -256,13 +283,13 @@ Public Member Functions entt::meta_any::meta_any ( - ) + ) -default +default
@@ -271,7 +298,7 @@ Public Member Functions
-

◆ meta_any() [2/10]

+

◆ meta_any() [2/12]

@@ -282,17 +309,17 @@ Public Member Functions entt::meta_any::meta_any ( - meta_ctx_arg_t , + meta_ctx_arg_t , - const meta_ctx & area ) + const meta_ctx & area ) -inline +inline
@@ -305,17 +332,17 @@ Public Member Functions -

Definition at line 235 of file meta.hpp.

+

Definition at line 229 of file meta.hpp.

-

◆ meta_any() [3/10]

+

◆ meta_any() [3/12]

-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
- + - +
@@ -323,17 +350,17 @@ template<entt::meta_any::meta_any (std::in_place_type_t< Type > , std::in_place_type_t< Type > ,
Args &&... args )Args &&... args )
-inlineexplicit +inlineexplicit
@@ -353,17 +380,17 @@ template<Definition at line 245 of file meta.hpp.

+

Definition at line 239 of file meta.hpp.

-

◆ meta_any() [4/10]

+

◆ meta_any() [4/12]

-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
- + - + - +
@@ -371,22 +398,22 @@ template<entt::meta_any::meta_any (const meta_ctx & area, const meta_ctx & area,
std::in_place_type_t< Type > , std::in_place_type_t< Type > ,
Args &&... args )Args &&... args )
-inlineexplicit +inlineexplicit
@@ -407,17 +434,117 @@ template<Definition at line 256 of file meta.hpp.

+

Definition at line 250 of file meta.hpp.

- -

◆ meta_any() [5/10]

+ +

◆ meta_any() [5/12]

-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + +
entt::meta_any::meta_any (std::in_place_t ,
Type * value )
+
+inlineexplicit
+
+ +

Constructs a wrapper taking ownership of the passed object.

+
Template Parameters
+ + +
TypeType of object to use to initialize the wrapper.
+
+
+
Parameters
+ + +
valueA pointer to an object to take ownership of.
+
+
+ +

Definition at line 262 of file meta.hpp.

+ +
+
+ +

◆ meta_any() [6/12]

+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + +
entt::meta_any::meta_any (const meta_ctx & area,
std::in_place_t ,
Type * value )
+
+inlineexplicit
+
+ +

Constructs a wrapper taking ownership of the passed object.

+
Template Parameters
+ + +
TypeType of object to use to initialize the wrapper.
+
+
+
Parameters
+ + + +
areaThe context from which to search for meta types.
valueA pointer to an object to take ownership of.
+
+
+ +

Definition at line 272 of file meta.hpp.

+ +
+
+ +

◆ meta_any() [7/12]

+ +
+
+
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
+inline
@@ -431,7 +558,7 @@ template< -inline
@@ -450,17 +577,17 @@ template<Definition at line 268 of file meta.hpp.

+

Definition at line 287 of file meta.hpp.

-

◆ meta_any() [6/10]

+

◆ meta_any() [8/12]

-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
- + @@ -478,7 +605,7 @@ template< -inline +inline
@@ -468,7 +595,7 @@ template<entt::meta_any::meta_any (const meta_ctx & area, const meta_ctx & area,
-

◆ meta_any() [7/10]

+

◆ meta_any() [9/12]

@@ -514,17 +641,17 @@ template<entt::meta_any::meta_any ( - const meta_ctx & area, + const meta_ctx & area, - const meta_any & other ) + const meta_any & other ) -inline +inline
@@ -538,12 +665,12 @@ template<Definition at line 286 of file meta.hpp.

+

Definition at line 305 of file meta.hpp.

-

◆ meta_any() [8/10]

+

◆ meta_any() [10/12]

@@ -554,7 +681,7 @@ template<entt::meta_any::meta_any ( - const meta_ctx & area, + const meta_ctx & area, @@ -564,7 +691,7 @@ template< -inline +inline
-

◆ meta_any() [9/10]

+

◆ meta_any() [11/12]

@@ -594,13 +721,13 @@ template<entt::meta_any::meta_any ( - const meta_any & other) + const meta_any & other) -default +default
@@ -616,7 +743,7 @@ template< -

◆ meta_any() [10/10]

+

◆ meta_any() [12/12]

@@ -633,7 +760,7 @@ template< -inlinenoexcept +inlinenoexcept
@@ -662,20 +789,20 @@ template<entt::meta_any::~meta_any ( - ) + ) -inline +inline
@@ -686,21 +813,21 @@ template<
+template<typename Type>
+inlinenodiscard
- + - +
bool entt::meta_any::allow_cast bool entt::meta_any::allow_cast ())
-inline
@@ -714,7 +841,7 @@ template<
Returns
True if there exists a viable conversion, false otherwise.
-

Definition at line 506 of file meta.hpp.

+

Definition at line 528 of file meta.hpp.

@@ -724,7 +851,7 @@ template<
+template<typename Type>
- +
@@ -732,13 +859,13 @@ template<meta_any entt::meta_any::allow_cast ()) const
-inline +inlinenodiscard @@ -766,15 +893,15 @@ template< - + - +
bool entt::meta_any::allow_cast bool entt::meta_any::allow_cast (const meta_type & type)const meta_type & type)
-inline +inlinenodiscard
@@ -804,13 +931,13 @@ template<meta_any entt::meta_any::allow_cast ( - const meta_type & type) + const meta_type & type) const -inline +inlinenodiscard @@ -840,21 +967,21 @@ template<meta_associative_container entt::meta_any::as_associative_container ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns an associative container proxy.

-
Returns
An associative container proxy for the underlying object.
+

Returns an associative container proxy.

+
Returns
An associative container proxy for the underlying object.
-

Definition at line 562 of file meta.hpp.

+

Definition at line 588 of file meta.hpp.

@@ -870,13 +997,13 @@ template<meta_associative_container entt::meta_any::as_associative_container ( - ) + ) -inlinenoexcept +inlinenodiscardnoexcept
@@ -884,7 +1011,7 @@ template<
Returns
An associative container proxy for the underlying object.
-

Definition at line 555 of file meta.hpp.

+

Definition at line 581 of file meta.hpp.

@@ -900,21 +1027,21 @@ template<meta_any entt::meta_any::as_ref ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Aliasing constructor.

-
Returns
A wrapper that shares a reference to an unmanaged object.
+

Aliasing constructor.

+
Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 603 of file meta.hpp.

+

Definition at line 629 of file meta.hpp.

@@ -930,21 +1057,21 @@ template<meta_any entt::meta_any::as_ref ( - ) + ) -inlinenoexcept +inlinenodiscardnoexcept
-

Aliasing constructor.

-
Returns
A wrapper that shares a reference to an unmanaged object.
+

Aliasing constructor.

+
Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 598 of file meta.hpp.

+

Definition at line 624 of file meta.hpp.

@@ -960,21 +1087,21 @@ template<meta_sequence_container entt::meta_any::as_sequence_container ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns a sequence container proxy.

-
Returns
A sequence container proxy for the underlying object.
+

Returns a sequence container proxy.

+
Returns
A sequence container proxy for the underlying object.
-

Definition at line 545 of file meta.hpp.

+

Definition at line 571 of file meta.hpp.

@@ -990,13 +1117,13 @@ template<meta_sequence_container entt::meta_any::as_sequence_container ( - ) + ) -inlinenoexcept +inlinenodiscardnoexcept
@@ -1004,7 +1131,7 @@ template<
Returns
A sequence container proxy for the underlying object.
-

Definition at line 538 of file meta.hpp.

+

Definition at line 564 of file meta.hpp.

@@ -1018,29 +1145,29 @@ template< - + - +
bool entt::meta_any::assign bool entt::meta_any::assign (const meta_any & other)const meta_any & other)
-inline +inline
@@ -1054,7 +1181,7 @@ template< - + @@ -1062,21 +1189,51 @@ template< -inline +inline
bool entt::meta_any::assign bool entt::meta_any::assign ( meta_any && other)
+ + +

◆ base()

+ +
+
+ + + + + +
+ + + + + + + +
const any & entt::meta_any::base () const
+
+inlinenodiscardnoexcept
+
+ +

Returns the underlying storage.

+
Returns
The underlyig storage.
+ +

Definition at line 645 of file meta.hpp.

@@ -1086,7 +1243,7 @@ template<
+template<typename Type>
- +
@@ -1094,27 +1251,27 @@ template<std::remove_const_t< Type > entt::meta_any::cast ())
-inline +inlinenodiscard
-

Tries to cast an instance to a given type.

+

Tries to cast an instance to a given type.

Template Parameters
TypeType to which to cast the instance.
-
Returns
A reference to the contained instance.
+
Returns
A reference to the contained instance.
-

Definition at line 452 of file meta.hpp.

+

Definition at line 474 of file meta.hpp.

@@ -1124,7 +1281,7 @@ template<
+template<typename Type>
- +
@@ -1132,13 +1289,13 @@ template<std::remove_const_t< Type > entt::meta_any::cast ()) const
-inline +inlinenodiscard
@@ -1152,7 +1309,37 @@ template<
Returns
A reference to the contained instance.
-

Definition at line 444 of file meta.hpp.

+

Definition at line 466 of file meta.hpp.

+ +
+ + +

◆ context()

+ +
+
+ + + + + +
+ + + + + + + +
const meta_ctx & entt::meta_any::context () const
+
+inlinenodiscardnoexcept
+
+ +

Returns the underlying meta context.

+
Returns
The underlying meta context.
+ +

Definition at line 653 of file meta.hpp.

@@ -1166,23 +1353,23 @@ template< - + - +
const void * entt::meta_any::data const void * entt::meta_any::data ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1196,23 +1383,23 @@ template< - + - +
void * entt::meta_any::data void * entt::meta_any::data ())
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1222,26 +1409,26 @@ template<
-template<typename Type , typename... Args>
+template<typename Type, typename... Args>
+inline
- + - +
void entt::meta_any::emplace void entt::meta_any::emplace (Args &&... args)Args &&... args)
-inline
-

Replaces the contained object by creating a new instance directly.

+

Replaces the contained object by creating a new instance directly.

Template Parameters
@@ -1251,12 +1438,12 @@ template<
Parameters
TypeType of object to use to initialize the wrapper.
- +
argsParameters to use to construct the instance.
argsParameters to use to construct the instance.
-

Definition at line 513 of file meta.hpp.

+

Definition at line 539 of file meta.hpp.

@@ -1272,27 +1459,27 @@ template<meta_any entt::meta_any::get ( - id_type id) + id_type id) -inline +inlinenodiscard
-

Gets the value of a given variable.

+

Gets the value of a given variable.

Parameters
idUnique identifier.
-
Returns
A wrapper containing the value of the underlying variable.
+
Returns
A wrapper containing the value of the underlying variable.
-

Definition at line 1643 of file meta.hpp.

+

Definition at line 1563 of file meta.hpp.

@@ -1308,13 +1495,13 @@ template<meta_any entt::meta_any::get ( - id_type id) + id_type id) const -inline +inlinenodiscard
@@ -1328,7 +1515,7 @@ template<
Returns
A wrapper containing the value of the underlying variable.
-

Definition at line 1639 of file meta.hpp.

+

Definition at line 1559 of file meta.hpp.

@@ -1343,17 +1530,17 @@ template<typename... Args> meta_any entt::meta_any::invoke ( - id_type id, + id_type id, - Args &&... args ) + Args &&... args )
-

Invokes the underlying function, if possible.

+

Invokes the underlying function, if possible.

Template Parameters
@@ -1367,9 +1554,9 @@ template<typename... Args>
ArgsTypes of arguments to use to invoke the function.
-
Returns
A wrapper containing the returned value, if any.
+
Returns
A wrapper containing the returned value, if any.
-

Definition at line 1630 of file meta.hpp.

+

Definition at line 1550 of file meta.hpp.

@@ -1384,12 +1571,12 @@ template<typename... Args> meta_any entt::meta_any::invoke ( - id_type id, + id_type id, - Args &&... args ) const + Args &&... args ) const
@@ -1410,7 +1597,7 @@ template<typename... Args>
Returns
A wrapper containing the returned value, if any.
-

Definition at line 1625 of file meta.hpp.

+

Definition at line 1545 of file meta.hpp.

@@ -1424,15 +1611,15 @@ template<typename... Args> - + - +
entt::meta_any::operator bool entt::meta_any::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -1440,7 +1627,7 @@ template<typename... Args>

Returns false if a wrapper is invalid, true otherwise.

Returns
False if the wrapper is invalid, true otherwise.
-

Definition at line 583 of file meta.hpp.

+

Definition at line 609 of file meta.hpp.

@@ -1454,29 +1641,29 @@ template<typename... Args> - + - +
bool entt::meta_any::operator!= bool entt::meta_any::operator!= (const meta_any & other)const meta_any & other) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Checks if two wrappers differ in their content.

+

Checks if two wrappers differ in their content.

Parameters
otherWrapper with which to compare.
-
Returns
True if the two objects differ in their content, false otherwise.
+
Returns
True if the two objects differ in their content, false otherwise.
-

Definition at line 593 of file meta.hpp.

+

Definition at line 619 of file meta.hpp.

@@ -1492,13 +1679,13 @@ template<typename... Args> meta_any entt::meta_any::operator* ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1506,7 +1693,7 @@ template<typename... Args>

Indirection operator for dereferencing opaque objects.

Returns
A wrapper that shares a reference to an unmanaged object if the wrapped element is dereferenceable, an invalid meta any otherwise.
-

Definition at line 573 of file meta.hpp.

+

Definition at line 599 of file meta.hpp.

@@ -1522,13 +1709,13 @@ template<typename... Args> meta_any & entt::meta_any::operator= ( - const meta_any & other) + const meta_any & other) -inline +inline
@@ -1542,7 +1729,7 @@ template<typename... Args>
Returns
This meta any object.
-

Definition at line 329 of file meta.hpp.

+

Definition at line 348 of file meta.hpp.

@@ -1564,12 +1751,13 @@ template<typename... Args> -inlinenoexcept +inlinenoexcept

Move assignment operator.

+
Warning
Self-moving puts objects in a safe but unspecified state.
Parameters
@@ -1578,7 +1766,7 @@ template<typename... Args>
Returns
This meta any object.
-

Definition at line 346 of file meta.hpp.

+

Definition at line 369 of file meta.hpp.

@@ -1588,7 +1776,7 @@ template<typename... Args>
-template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
+template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
otherThe instance to move from.
+inline
@@ -1602,7 +1790,7 @@ template< -inline
@@ -1622,7 +1810,7 @@ template<
Returns
This meta any object.
-

Definition at line 364 of file meta.hpp.

+

Definition at line 385 of file meta.hpp.

@@ -1636,34 +1824,34 @@ template< - + - +
bool entt::meta_any::operator== bool entt::meta_any::operator== (const meta_any & other)const meta_any & other) const
-inlinenoexcept +inlinenodiscardnoexcept
- -

◆ policy()

+ +

◆ policy()

@@ -1702,22 +1890,22 @@ template< - + - +
void entt::meta_any::reset void entt::meta_any::reset ())
-inline +inline
@@ -1727,12 +1915,12 @@ template<
+template<typename Type>
- + - + @@ -1758,7 +1946,7 @@ template<
Returns
True in case of success, false otherwise.
-

Definition at line 1635 of file meta.hpp.

+

Definition at line 1555 of file meta.hpp.

@@ -1768,7 +1956,7 @@ template<
+template<typename Type>
bool entt::meta_any::set bool entt::meta_any::set (id_type id, id_type id,
- +
@@ -1776,27 +1964,27 @@ template<Type * entt::meta_any::try_cast ())
-inline +inlinenodiscard
-

Tries to cast an instance to a given type.

+

Tries to cast an instance to a given type.

Template Parameters
TypeType to which to cast the instance.
-
Returns
A (possibly null) pointer to the contained instance.
+
Returns
A (possibly null) pointer to the contained instance.
-

Definition at line 429 of file meta.hpp.

+

Definition at line 450 of file meta.hpp.

@@ -1806,21 +1994,21 @@ template<
+template<typename Type>
+inlinenodiscard
- + - +
const Type * entt::meta_any::try_cast const Type * entt::meta_any::try_cast ()) const
-inline
@@ -1834,7 +2022,7 @@ template<
Returns
A (possibly null) pointer to the contained instance.
-

Definition at line 422 of file meta.hpp.

+

Definition at line 443 of file meta.hpp.

@@ -1850,21 +2038,21 @@ template<meta_type entt::meta_any::type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns the object type if any, type_id<void>() otherwise.

-
Returns
The object type if any, type_id<void>() otherwise.
+

Returns the object type if any, type_id<void>() otherwise.

+
Returns
The object type if any, type_id<void>() otherwise.
-

Definition at line 1619 of file meta.hpp.

+

Definition at line 1539 of file meta.hpp.

@@ -1874,7 +2062,8 @@ template< + diff --git a/classentt_1_1meta__associative__container-members.html b/classentt_1_1meta__associative__container-members.html index ab2ec956b..dd27d2d3e 100644 --- a/classentt_1_1meta__associative__container-members.html +++ b/classentt_1_1meta__associative__container-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::meta_associative_container Member List
@@ -91,17 +104,17 @@ $(function() { key_type() const noexceptentt::meta_associative_containerinline mapped_type() const noexceptentt::meta_associative_containerinline meta_associative_container()=defaultentt::meta_associative_container - meta_associative_container(const meta_ctx &area) noexceptentt::meta_associative_containerinline + meta_associative_container(const meta_ctx &area, Type &instance) noexceptentt::meta_associative_containerinline operator bool() const noexceptentt::meta_associative_containerinlineexplicit - rebind(Type &instance) noexceptentt::meta_associative_containerinline - reserve(size_type)entt::meta_associative_containerinline - size() const noexceptentt::meta_associative_containerinline - size_type typedefentt::meta_associative_container - value_type() const noexceptentt::meta_associative_containerinline + reserve(size_type)entt::meta_associative_containerinline + size() const noexceptentt::meta_associative_containerinline + size_type typedefentt::meta_associative_container + value_type() const noexceptentt::meta_associative_containerinline
+ diff --git a/classentt_1_1meta__associative__container.html b/classentt_1_1meta__associative__container.html index 764028526..effd7cf5b 100644 --- a/classentt_1_1meta__associative__container.html +++ b/classentt_1_1meta__associative__container.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,51 +103,48 @@ $(function() { - + - +

Public Types

using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = meta_iterator
using iterator = meta_iterator
 Meta iterator type.
 
+  - - - - - - - - + + + + + - + - - + + - - + + - - + + - - + + - + - + - + @@ -143,14 +153,14 @@ Public Member Functions - +

Public Member Functions

meta_associative_container ()=default
meta_associative_container ()=default
 Default constructor.
 
 meta_associative_container (const meta_ctx &area) noexcept
 Context aware constructor.
 
template<typename Type >
void rebind (Type &instance) noexcept
 Rebinds a proxy object to an associative container type.
 
meta_type key_type () const noexcept
template<typename Type>
 meta_associative_container (const meta_ctx &area, Type &instance) noexcept
 Context aware constructor.
 
meta_type key_type () const noexcept
 Returns the meta key type of a container.
 
meta_type mapped_type () const noexcept
meta_type mapped_type () const noexcept
 Returns the meta mapped type of a container.
 
meta_type value_type () const noexcept
 Returns the meta value type of a container.
meta_type value_type () const noexcept
 Returns the meta value type of a container.
 
size_type size () const noexcept
 Returns the size of a container.
size_type size () const noexcept
 Returns the size of a container.
 
bool clear ()
 Clears the content of a container.
bool clear ()
 Clears the content of a container.
 
bool reserve (size_type)
 Reserves storage for at least the given number of elements.
bool reserve (size_type)
 Reserves storage for at least the given number of elements.
 
iterator begin ()
 Returns an iterator to the first element of a container.
 Returns an iterator to the first element of a container.
 
iterator end ()
 Returns an iterator that is past the last element of a container.
 Returns an iterator that is past the last element of a container.
 
bool insert (meta_any, meta_any)
bool insert (meta_any, meta_any)
 Inserts a key-only or key/value element into a container.
 
size_type erase (meta_any)
iterator find (meta_any)
 Returns an iterator to the element with a given key, if any.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns false if a proxy is invalid, true otherwise.
 

Detailed Description

Proxy object for associative containers.

-

Definition at line 100 of file meta.hpp.

+

Definition at line 94 of file meta.hpp.

Member Typedef Documentation

◆ iterator

@@ -159,14 +169,14 @@ Public Member Functions

Meta iterator type.

-

Definition at line 107 of file meta.hpp.

+

Definition at line 101 of file meta.hpp.

@@ -177,23 +187,25 @@ Public Member Functions

Unsigned integer type.

-

Definition at line 105 of file meta.hpp.

+

Definition at line 99 of file meta.hpp.

Constructor & Destructor Documentation

- -

◆ meta_associative_container()

+ +

◆ meta_associative_container()

+
+template<typename Type>
- + + + + +
@@ -201,26 +213,37 @@ Public Member Functions
entt::meta_associative_container::meta_associative_container (const meta_ctx & area)const meta_ctx & area,
Type & instance )
-inlinenoexcept +inlinenoexcept

Context aware constructor.

+
Template Parameters
+ + +
TypeType of container to wrap.
+
+
Parameters
+
areaThe context from which to search for meta types.
instanceThe container to wrap.
-

Definition at line 116 of file meta.hpp.

+

Definition at line 113 of file meta.hpp.

@@ -237,21 +260,21 @@ Public Member Functions meta_associative_container::iterator entt::meta_associative_container::begin ( - ) + ) -inline +inlinenodiscard
-

Returns an iterator to the first element of a container.

-
Returns
An iterator to the first element of the container.
+

Returns an iterator to the first element of a container.

+
Returns
An iterator to the first element of the container.
-

Definition at line 1987 of file meta.hpp.

+

Definition at line 1907 of file meta.hpp.

@@ -265,23 +288,23 @@ Public Member Functions - + - +
bool entt::meta_associative_container::clear bool entt::meta_associative_container::clear ())
-inline +inline
-

Clears the content of a container.

-
Returns
True in case of success, false otherwise.
+

Clears the content of a container.

+
Returns
True in case of success, false otherwise.
-

Definition at line 1977 of file meta.hpp.

+

Definition at line 1897 of file meta.hpp.

@@ -297,21 +320,21 @@ Public Member Functions meta_associative_container::iterator entt::meta_associative_container::end ( - ) + ) -inline +inlinenodiscard
-

Returns an iterator that is past the last element of a container.

-
Returns
An iterator that is past the last element of the container.
+

Returns an iterator that is past the last element of a container.

+
Returns
An iterator that is past the last element of the container.
-

Definition at line 1992 of file meta.hpp.

+

Definition at line 1912 of file meta.hpp.

@@ -333,7 +356,7 @@ Public Member Functions -inline +inline
@@ -347,7 +370,7 @@ Public Member Functions
Returns
A bool denoting whether the removal took place.
-

Definition at line 2013 of file meta.hpp.

+

Definition at line 1933 of file meta.hpp.

@@ -369,7 +392,7 @@ Public Member Functions -inline +inlinenodiscard
@@ -383,7 +406,7 @@ Public Member Functions
Returns
An iterator to the element with the given key, if any.
-

Definition at line 2022 of file meta.hpp.

+

Definition at line 1942 of file meta.hpp.

@@ -397,19 +420,19 @@ Public Member Functions - + - + - +
bool entt::meta_associative_container::insert bool entt::meta_associative_container::insert (meta_any key, meta_any key,
meta_any value = {} )meta_any value = {} )
-inline +inline
@@ -424,7 +447,7 @@ Public Member Functions
Returns
A bool denoting whether the insertion took place.
-

Definition at line 2002 of file meta.hpp.

+

Definition at line 1922 of file meta.hpp.

@@ -440,13 +463,13 @@ Public Member Functions meta_type entt::meta_associative_container::key_type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -454,7 +477,7 @@ Public Member Functions

Returns the meta key type of a container.

Returns
The meta key type of the a container.
-

Definition at line 1954 of file meta.hpp.

+

Definition at line 1874 of file meta.hpp.

@@ -470,13 +493,13 @@ Public Member Functions meta_type entt::meta_associative_container::mapped_type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -484,7 +507,7 @@ Public Member Functions

Returns the meta mapped type of a container.

Returns
The meta mapped type of the a container.
-

Definition at line 1962 of file meta.hpp.

+

Definition at line 1882 of file meta.hpp.

@@ -498,15 +521,15 @@ Public Member Functions - + - +
entt::meta_associative_container::operator bool entt::meta_associative_container::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -514,50 +537,7 @@ Public Member Functions

Returns false if a proxy is invalid, true otherwise.

Returns
False if the proxy is invalid, true otherwise.
-

Definition at line 2030 of file meta.hpp.

- -
- - -

◆ rebind()

- -
-
-
-template<typename Type >
- - - - - -
- - - - - - - -
void entt::meta_associative_container::rebind (Type & instance)
-
-inlinenoexcept
-
- -

Rebinds a proxy object to an associative container type.

-
Template Parameters
- - -
TypeType of container to wrap.
-
-
-
Parameters
- - -
instanceThe container to wrap.
-
-
- -

Definition at line 125 of file meta.hpp.

+

Definition at line 1950 of file meta.hpp.

@@ -571,7 +551,7 @@ template< - + @@ -579,21 +559,21 @@ template< -inline +inline
bool entt::meta_associative_container::reserve bool entt::meta_associative_container::reserve ( size_type sz)
@@ -609,21 +589,21 @@ template<meta_associative_container::size_type entt::meta_associative_container::size ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns the size of a container.

-
Returns
The size of the container.
+

Returns the size of a container.

+
Returns
The size of the container.
-

Definition at line 1972 of file meta.hpp.

+

Definition at line 1892 of file meta.hpp.

@@ -639,21 +619,21 @@ template<meta_type entt::meta_associative_container::value_type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns the meta value type of a container.

-
Returns
The meta value type of the container.
+

Returns the meta value type of a container.

+
Returns
The meta value type of the container.
-

Definition at line 1967 of file meta.hpp.

+

Definition at line 1887 of file meta.hpp.

@@ -663,7 +643,8 @@ template< + diff --git a/classentt_1_1meta__ctx-members.html b/classentt_1_1meta__ctx-members.html index 704fb86e7..330c67fc0 100644 --- a/classentt_1_1meta__ctx-members.html +++ b/classentt_1_1meta__ctx-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::meta_ctx Member List
@@ -85,7 +98,8 @@ $(function() {
+ diff --git a/classentt_1_1meta__ctx.html b/classentt_1_1meta__ctx.html index 3e63972fe..54940c986 100644 --- a/classentt_1_1meta__ctx.html +++ b/classentt_1_1meta__ctx.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_ctx Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Friends | @@ -109,7 +122,7 @@ Collaboration diagram for entt::meta_ctx:
- +

Friends

struct internal::meta_context
struct internal::meta_context
 

Detailed Description

@@ -127,12 +140,12 @@ Friends - +
friend struct internal::meta_contextfriend struct internal::meta_context
-friend +friend
@@ -147,7 +160,8 @@ Friends
+
diff --git a/classentt_1_1meta__ctx__arg__t.html b/classentt_1_1meta__ctx__arg__t.html index 56d575c81..b8d8364d0 100644 --- a/classentt_1_1meta__ctx__arg__t.html +++ b/classentt_1_1meta__ctx__arg__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_ctx_arg_t Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
-
entt::meta_ctx_arg_t Class Referencefinal
+
entt::meta_ctx_arg_t Class Referencefinal
@@ -93,7 +106,8 @@ $(function() {
+
diff --git a/classentt_1_1meta__factory-members.html b/classentt_1_1meta__factory-members.html index 60b59a1ce..77a402bfb 100644 --- a/classentt_1_1meta__factory-members.html +++ b/classentt_1_1meta__factory-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::meta_factory< Type > Member List
@@ -94,13 +107,13 @@ $(function() { func(const id_type id) noexceptentt::meta_factory< Type >inline meta_factory() noexceptentt::meta_factory< Type >inline meta_factory(meta_ctx &area) noexceptentt::meta_factory< Type >inline - prop(id_type id, Value &&...value)entt::meta_factory< Type >inline - traits(const Value value)entt::meta_factory< Type >inline - type(const id_type id) noexceptentt::meta_factory< Type >inline + traits(const Value value)entt::meta_factory< Type >inline + type(const id_type id) noexceptentt::meta_factory< Type >inline
+ diff --git a/classentt_1_1meta__factory.html b/classentt_1_1meta__factory.html index cfc79c0e5..23986ff0e 100644 --- a/classentt_1_1meta__factory.html +++ b/classentt_1_1meta__factory.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_factory< Type > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Member Functions | @@ -109,70 +122,66 @@ Collaboration diagram for entt::meta_factory< Type >:
- + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + - - + +

Public Member Functions

 meta_factory () noexcept
 meta_factory () noexcept
 Default constructor.
 
 meta_factory (meta_ctx &area) noexcept
 meta_factory (meta_ctx &area) noexcept
 Context aware constructor.
 
meta_factory type (const id_type id) noexcept
meta_factory type (const id_type id) noexcept
 Assigns a custom unique identifier to a meta type.
 
template<typename Base >
meta_factory base () noexcept
template<typename Base>
meta_factory base () noexcept
 Assigns a meta base to a meta type.
 
template<auto Candidate>
auto conv () noexcept
template<auto Candidate>
auto conv () noexcept
 Assigns a meta conversion function to a meta type.
 
template<typename To >
meta_factory conv () noexcept
template<typename To>
meta_factory conv () noexcept
 Assigns a meta conversion function to a meta type.
 
template<auto Candidate, typename Policy = as_is_t>
meta_factory ctor () noexcept
template<auto Candidate, typename Policy = as_is_t>
meta_factory ctor () noexcept
 Assigns a meta constructor to a meta type.
 
template<typename... Args>
meta_factory ctor () noexcept
meta_factory ctor () noexcept
 Assigns a meta constructor to a meta type.
 
template<auto Func>
meta_factory dtor () noexcept
template<auto Func>
meta_factory dtor () noexcept
 Assigns a meta destructor to a meta type.
 
template<auto Data, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
template<auto Data, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
 Assigns a meta data to a meta type.
 
template<auto Setter, auto Getter, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
template<auto Setter, auto Getter, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
 Assigns a meta data to a meta type by means of its setter and getter.
 
template<typename Setter , auto Getter, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
template<typename Setter, auto Getter, typename Policy = as_is_t>
meta_factory data (const id_type id) noexcept
 Assigns a meta data to a meta type by means of its setters and getter.
 
template<auto Candidate, typename Policy = as_is_t>
meta_factory func (const id_type id) noexcept
template<auto Candidate, typename Policy = as_is_t>
meta_factory func (const id_type id) noexcept
 Assigns a meta function to a meta type.
 
template<typename... Value>
meta_factory prop (id_type id, Value &&...value)
 Assigns a property to the last created meta object.
 
template<typename Value >
meta_factory traits (const Value value)
template<typename Value>
meta_factory traits (const Value value)
 Sets traits on the last created meta object.
 
template<typename Value , typename... Args>
meta_factory custom (Args &&...args)
template<typename Value, typename... Args>
meta_factory custom (Args &&...args)
 Sets user defined data that will never be used by the library.
 

Detailed Description

-
template<typename Type>
+
template<typename Type>
class entt::meta_factory< Type >

Meta factory to be used for reflection purposes.

Template Parameters
@@ -181,7 +190,7 @@ class entt::meta_factory< Type >

Meta factory to be used for refle -

Definition at line 166 of file factory.hpp.

+

Definition at line 150 of file factory.hpp.

Constructor & Destructor Documentation

◆ meta_factory() [1/2]

@@ -189,7 +198,7 @@ class entt::meta_factory< Type >

Meta factory to be used for refle

-template<typename Type >
+template<typename Type>
- +
@@ -197,20 +206,20 @@ template<entt::meta_factory< Type >::meta_factory ())
-inlinenoexcept +inlinenoexcept

Default constructor.

-

Definition at line 189 of file factory.hpp.

+

Definition at line 174 of file factory.hpp.

@@ -220,7 +229,7 @@ template<
+template<typename Type>
+inlinenoexcept
@@ -234,7 +243,7 @@ template< -inlinenoexcept
@@ -247,7 +256,7 @@ template<Definition at line 196 of file factory.hpp.

+

Definition at line 181 of file factory.hpp.

@@ -258,9 +267,9 @@ template<
+template<typename Type>
-template<typename Base >
+template<typename Base>
- +
@@ -268,13 +277,13 @@ template<meta_factory entt::meta_factory< Type >::base ())
-inlinenoexcept +inlinenoexcept
@@ -289,7 +298,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 218 of file factory.hpp.

+

Definition at line 203 of file factory.hpp.

@@ -299,23 +308,23 @@ template<
+template<typename Type>
-template<auto Candidate>
+template<auto Candidate> +inlinenoexcept
- + - +
auto entt::meta_factory< Type >::conv auto entt::meta_factory< Type >::conv ())
-inlinenoexcept
@@ -331,7 +340,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 238 of file factory.hpp.

+

Definition at line 223 of file factory.hpp.

@@ -341,9 +350,9 @@ template<
+template<typename Type>
-template<typename To >
+template<typename To> - +
@@ -351,13 +360,13 @@ template<meta_factory entt::meta_factory< Type >::conv ())
-inlinenoexcept +inlinenoexcept
@@ -372,7 +381,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 255 of file factory.hpp.

+

Definition at line 240 of file factory.hpp.

@@ -382,9 +391,9 @@ template<
+template<typename Type>
-template<auto Candidate, typename Policy = as_is_t>
+template<auto Candidate, typename Policy = as_is_t> - +
@@ -392,13 +401,13 @@ template<meta_factory entt::meta_factory< Type >::ctor ())
-inlinenoexcept +inlinenoexcept
@@ -415,7 +424,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 276 of file factory.hpp.

+

Definition at line 261 of file factory.hpp.

@@ -425,7 +434,7 @@ template<
+template<typename Type>
template<typename... Args>
@@ -435,13 +444,13 @@ template<typename... Args> - +
meta_factory entt::meta_factory< Type >::ctor ())
-inlinenoexcept +inlinenoexcept
@@ -456,7 +465,7 @@ template<typename... Args>
Returns
A meta factory for the parent type.
-

Definition at line 295 of file factory.hpp.

+

Definition at line 280 of file factory.hpp.

@@ -466,9 +475,9 @@ template<typename... Args>
-template<typename Type >
+template<typename Type>
-template<typename Value , typename... Args>
+template<typename Value, typename... Args>
- +
@@ -476,13 +485,13 @@ template<meta_factory entt::meta_factory< Type >::custom (Args &&... args)Args &&... args)
-inline +inline
@@ -503,7 +512,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 535 of file factory.hpp.

+

Definition at line 500 of file factory.hpp.

@@ -513,9 +522,9 @@ template<
+template<typename Type>
-template<auto Data, typename Policy = as_is_t>
+template<auto Data, typename Policy = as_is_t> - +
@@ -523,13 +532,13 @@ template<meta_factory entt::meta_factory< Type >::data (const id_type id)const id_type id)
-inlinenoexcept +inlinenoexcept
@@ -552,7 +561,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 345 of file factory.hpp.

+

Definition at line 330 of file factory.hpp.

@@ -562,9 +571,9 @@ template<
+template<typename Type>
-template<auto Setter, auto Getter, typename Policy = as_is_t>
+template<auto Setter, auto Getter, typename Policy = as_is_t> - +
@@ -572,13 +581,13 @@ template<meta_factory entt::meta_factory< Type >::data (const id_type id)const id_type id)
-inlinenoexcept +inlinenoexcept
@@ -603,7 +612,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 404 of file factory.hpp.

+

Definition at line 389 of file factory.hpp.

@@ -613,9 +622,9 @@ template<
+template<typename Type>
-template<typename Setter , auto Getter, typename Policy = as_is_t>
+template<typename Setter, auto Getter, typename Policy = as_is_t> - +
@@ -623,13 +632,13 @@ template<meta_factory entt::meta_factory< Type >::data (const id_type id)const id_type id)
-inlinenoexcept +inlinenoexcept
@@ -654,7 +663,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 455 of file factory.hpp.

+

Definition at line 441 of file factory.hpp.

@@ -664,9 +673,9 @@ template<
+template<typename Type>
-template<auto Func>
+template<auto Func> - +
@@ -674,13 +683,13 @@ template<meta_factory entt::meta_factory< Type >::dtor ())
-inlinenoexcept +inlinenoexcept
@@ -688,8 +697,7 @@ template<
void(Type &);
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
void(Type &);

Member functions should not take arguments instead.
The purpose is to give users the ability to free up resources that require special treatment before an object is actually destroyed.

Template Parameters
@@ -700,7 +708,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 324 of file factory.hpp.

+

Definition at line 309 of file factory.hpp.

@@ -710,9 +718,9 @@ template<
+template<typename Type>
-template<auto Candidate, typename Policy = as_is_t>
+template<auto Candidate, typename Policy = as_is_t> - +
@@ -720,13 +728,13 @@ template<meta_factory entt::meta_factory< Type >::func (const id_type id)const id_type id)
-inlinenoexcept +inlinenoexcept - - -

◆ prop()

- -
-
-
-template<typename Type >
-
-template<typename... Value>
- - - - - -
- - - - - - - - - - - -
meta_factory entt::meta_factory< Type >::prop (id_type id,
Value &&... value )
-
-inline
-
- -

Assigns a property to the last created meta object.

-

Both the key and the value (if any) must be at least copy constructible.

-
Template Parameters
- - -
ValueOptional type of the property value.
-
-
-
Parameters
- - - -
idProperty key.
valueOptional property value.
-
-
-
Returns
A meta factory for the parent type.
- -

Definition at line 501 of file factory.hpp.

+

Definition at line 460 of file factory.hpp.

@@ -811,9 +767,9 @@ template<typename... Value>
-template<typename Type >
+template<typename Type>
-template<typename Value >
+template<typename Value>
- +
@@ -821,13 +777,13 @@ template<meta_factory entt::meta_factory< Type >::traits (const Value value)const Value value)
-inline +inline
@@ -848,7 +804,7 @@ template<
Returns
A meta factory for the parent type.
-

Definition at line 521 of file factory.hpp.

+

Definition at line 486 of file factory.hpp.

@@ -858,7 +814,7 @@ template<
+template<typename Type>
- +
@@ -866,13 +822,13 @@ template<meta_factory entt::meta_factory< Type >::type (const id_type id)const id_type id)
-inlinenoexcept +inlinenoexcept
@@ -886,7 +842,7 @@ template<
Returns
A meta factory for the given type.
-

Definition at line 204 of file factory.hpp.

+

Definition at line 189 of file factory.hpp.

@@ -896,7 +852,8 @@ template< + diff --git a/classentt_1_1meta__function__helper-members.html b/classentt_1_1meta__function__helper-members.html index 675efa71c..b75f41eae 100644 --- a/classentt_1_1meta__function__helper-members.html +++ b/classentt_1_1meta__function__helper-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::meta_function_helper< Type, Candidate > Member List
@@ -85,7 +98,8 @@ $(function() {
+ diff --git a/classentt_1_1meta__function__helper.html b/classentt_1_1meta__function__helper.html index 8ecedbca6..93c12502c 100644 --- a/classentt_1_1meta__function__helper.html +++ b/classentt_1_1meta__function__helper.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_helper< Type, Candidate > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -89,12 +102,12 @@ $(function() { - +

Public Types

using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()))
using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()))
 The meta function descriptor of the given function.
 

Detailed Description

-
template<typename Type, typename Candidate>
+
template<typename Type, typename Candidate>
class entt::meta_function_helper< Type, Candidate >

Meta function helper.

Converts a function type to be associated with a reflected type into its meta function descriptor.

Template Parameters
@@ -113,10 +126,10 @@ class entt::meta_function_helper< Type, Candidate >

Meta function

-template<typename Type , typename Candidate >
+template<typename Type, typename Candidate>
- +
using entt::meta_function_helper< Type, Candidate >::type = decltype(get_rid_of_noexcept(std::declval<Candidate>()))using entt::meta_function_helper< Type, Candidate >::type = decltype(get_rid_of_noexcept(std::declval<Candidate>()))
@@ -133,7 +146,8 @@ template< +
diff --git a/classentt_1_1meta__sequence__container-members.html b/classentt_1_1meta__sequence__container-members.html index 08a7a6f2a..763cbad5f 100644 --- a/classentt_1_1meta__sequence__container-members.html +++ b/classentt_1_1meta__sequence__container-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::meta_sequence_container Member List
@@ -88,19 +101,19 @@ $(function() { insert(const iterator &, meta_any)entt::meta_sequence_containerinline iterator typedefentt::meta_sequence_container meta_sequence_container()=defaultentt::meta_sequence_container - meta_sequence_container(const meta_ctx &area) noexceptentt::meta_sequence_containerinline + meta_sequence_container(const meta_ctx &area, Type &instance) noexceptentt::meta_sequence_containerinline operator bool() const noexceptentt::meta_sequence_containerinlineexplicit operator[](size_type)entt::meta_sequence_containerinline - rebind(Type &instance) noexceptentt::meta_sequence_containerinline - reserve(size_type)entt::meta_sequence_containerinline - resize(size_type)entt::meta_sequence_containerinline - size() const noexceptentt::meta_sequence_containerinline - size_type typedefentt::meta_sequence_container - value_type() const noexceptentt::meta_sequence_containerinline + reserve(size_type)entt::meta_sequence_containerinline + resize(size_type)entt::meta_sequence_containerinline + size() const noexceptentt::meta_sequence_containerinline + size_type typedefentt::meta_sequence_container + value_type() const noexceptentt::meta_sequence_containerinline
+
diff --git a/classentt_1_1meta__sequence__container.html b/classentt_1_1meta__sequence__container.html index ab310395f..9324a7513 100644 --- a/classentt_1_1meta__sequence__container.html +++ b/classentt_1_1meta__sequence__container.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,39 +103,36 @@ $(function() { - + - +

Public Types

using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using iterator = meta_iterator
using iterator = meta_iterator
 Meta iterator type.
 
+  - - - - - - - - + + + + + - + - + - + - + @@ -131,16 +141,16 @@ Public Member Functions - + - + - +

Public Member Functions

meta_sequence_container ()=default
meta_sequence_container ()=default
 Default constructor.
 
 meta_sequence_container (const meta_ctx &area) noexcept
 Context aware constructor.
 
template<typename Type >
void rebind (Type &instance) noexcept
 Rebinds a proxy object to a sequence container type.
 
meta_type value_type () const noexcept
template<typename Type>
 meta_sequence_container (const meta_ctx &area, Type &instance) noexcept
 Context aware constructor.
 
meta_type value_type () const noexcept
 Returns the meta value type of a container.
 
size_type size () const noexcept
size_type size () const noexcept
 Returns the size of a container.
 
bool resize (size_type)
bool resize (size_type)
 Resizes a container to contain a given number of elements.
 
bool clear ()
bool clear ()
 Clears the content of a container.
 
bool reserve (size_type)
bool reserve (size_type)
 Reserves storage for at least the given number of elements.
 
iterator begin ()
iterator end ()
 Returns an iterator that is past the last element of a container.
 
iterator insert (const iterator &, meta_any)
iterator insert (const iterator &, meta_any)
 Inserts an element at a specified location of a container.
 
iterator erase (const iterator &)
iterator erase (const iterator &)
 Removes a given element from a container.
 
meta_any operator[] (size_type)
 Returns a reference to the element at a given location of a container.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns false if a proxy is invalid, true otherwise.
 
@@ -156,7 +166,7 @@ Public Member Functions
@@ -174,7 +184,7 @@ Public Member Functions
@@ -186,11 +196,13 @@ Public Member Functions

Constructor & Destructor Documentation

- -

◆ meta_sequence_container()

+ +

◆ meta_sequence_container()

+
+template<typename Type>
- + + + + +
@@ -198,26 +210,37 @@ Public Member Functions
entt::meta_sequence_container::meta_sequence_container (const meta_ctx & area)const meta_ctx & area,
Type & instance )
-inlinenoexcept +inlinenoexcept

Context aware constructor.

+
Template Parameters
+ + +
TypeType of container to wrap.
+
+
Parameters
+
areaThe context from which to search for meta types.
instanceThe container to wrap.
-

Definition at line 47 of file meta.hpp.

+

Definition at line 50 of file meta.hpp.

@@ -234,13 +257,13 @@ Public Member Functions meta_sequence_container::iterator entt::meta_sequence_container::begin ( - ) + ) -inline +inlinenodiscard
@@ -248,7 +271,7 @@ Public Member Functions

Returns an iterator to the first element of a container.

Returns
An iterator to the first element of the container.
-

Definition at line 1894 of file meta.hpp.

+

Definition at line 1814 of file meta.hpp.

@@ -262,15 +285,15 @@ Public Member Functions - + - +
bool entt::meta_sequence_container::clear bool entt::meta_sequence_container::clear ())
-inline +inline
@@ -278,7 +301,7 @@ Public Member Functions

Clears the content of a container.

Returns
True in case of success, false otherwise.
-

Definition at line 1877 of file meta.hpp.

+

Definition at line 1797 of file meta.hpp.

@@ -294,13 +317,13 @@ Public Member Functions meta_sequence_container::iterator entt::meta_sequence_container::end ( - ) + ) -inline +inlinenodiscard
@@ -308,7 +331,7 @@ Public Member Functions

Returns an iterator that is past the last element of a container.

Returns
An iterator that is past the last element of the container.
-

Definition at line 1902 of file meta.hpp.

+

Definition at line 1822 of file meta.hpp.

@@ -324,13 +347,13 @@ Public Member Functions meta_sequence_container::iterator entt::meta_sequence_container::erase ( - const iterator & it) + const iterator & it) -inline +inline
@@ -344,7 +367,7 @@ Public Member Functions
Returns
A possibly invalid iterator following the last removed element.
-

Definition at line 1927 of file meta.hpp.

+

Definition at line 1847 of file meta.hpp.

@@ -360,7 +383,7 @@ Public Member Functions meta_sequence_container::iterator entt::meta_sequence_container::insert ( - const iterator & it, + const iterator & it, @@ -370,7 +393,7 @@ Public Member Functions -inline +inline
@@ -385,7 +408,7 @@ Public Member Functions
Returns
A possibly invalid iterator to the inserted element.
-

Definition at line 1912 of file meta.hpp.

+

Definition at line 1832 of file meta.hpp.

@@ -399,15 +422,15 @@ Public Member Functions - + - +
entt::meta_sequence_container::operator bool entt::meta_sequence_container::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -415,7 +438,7 @@ Public Member Functions

Returns false if a proxy is invalid, true otherwise.

Returns
False if the proxy is invalid, true otherwise.
-

Definition at line 1946 of file meta.hpp.

+

Definition at line 1866 of file meta.hpp.

@@ -437,7 +460,7 @@ Public Member Functions -inline +inlinenodiscard
@@ -451,50 +474,7 @@ Public Member Functions
Returns
A reference to the requested element properly wrapped.
-

Definition at line 1936 of file meta.hpp.

- -
- - -

◆ rebind()

- -
-
-
-template<typename Type >
- - - - - -
- - - - - - - -
void entt::meta_sequence_container::rebind (Type & instance)
-
-inlinenoexcept
-
- -

Rebinds a proxy object to a sequence container type.

-
Template Parameters
- - -
TypeType of container to wrap.
-
-
-
Parameters
- - -
instanceThe container to wrap.
-
-
- -

Definition at line 56 of file meta.hpp.

+

Definition at line 1856 of file meta.hpp.

@@ -508,7 +488,7 @@ template< - + @@ -516,7 +496,7 @@ template< -inline +inline
bool entt::meta_sequence_container::reserve bool entt::meta_sequence_container::reserve ( size_type sz)
@@ -544,7 +524,7 @@ template< - + @@ -552,7 +532,7 @@ template< -inline +inline
bool entt::meta_sequence_container::resize bool entt::meta_sequence_container::resize ( size_type sz)
@@ -582,13 +562,13 @@ template<meta_sequence_container::size_type entt::meta_sequence_container::size ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -596,7 +576,7 @@ template<
Returns
The size of the container.
-

Definition at line 1860 of file meta.hpp.

+

Definition at line 1780 of file meta.hpp.

@@ -612,13 +592,13 @@ template<meta_type entt::meta_sequence_container::value_type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -626,7 +606,7 @@ template<
Returns
The meta value type of the container.
-

Definition at line 1852 of file meta.hpp.

+

Definition at line 1772 of file meta.hpp.

@@ -636,7 +616,8 @@ template< + diff --git a/classentt_1_1meta__type-members.html b/classentt_1_1meta__type-members.html index b3672cab1..19b542ae1 100644 --- a/classentt_1_1meta__type-members.html +++ b/classentt_1_1meta__type-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::meta_type Member List
@@ -89,7 +102,7 @@ $(function() { custom() const noexceptentt::meta_typeinline data() const noexceptentt::meta_typeinline data(const id_type id) constentt::meta_typeinline - from_void(void *elem) constentt::meta_typeinline + from_void(void *elem, bool transfer_ownership=false) constentt::meta_typeinline from_void(const void *elem) constentt::meta_typeinline func() const noexceptentt::meta_typeinline func(const id_type id) constentt::meta_typeinline @@ -114,8 +127,6 @@ $(function() { meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexceptentt::meta_typeinline operator bool() const noexceptentt::meta_typeinlineexplicit operator==(const meta_type &other) const noexceptentt::meta_typeinline - prop() const noexceptentt::meta_typeinline - prop(const id_type key) constentt::meta_typeinline remove_pointer() const noexceptentt::meta_typeinline set(const id_type id, meta_handle instance, Type &&value) constentt::meta_typeinline size_of() const noexceptentt::meta_typeinline @@ -127,7 +138,8 @@ $(function() {
+ diff --git a/classentt_1_1meta__type.html b/classentt_1_1meta__type.html index 1f71b7cee..e36b6aada 100644 --- a/classentt_1_1meta__type.html +++ b/classentt_1_1meta__type.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_type Class Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -90,148 +103,142 @@ $(function() { - +

Public Types

using size_type = typename internal::meta_type_node::size_type
using size_type = typename internal::meta_type_node::size_type
 Unsigned integer type.
 
+  - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - + + + + + - + - - + + - - + + - + - - - - - - - - - + + + - - + + - + - - + +

Public Member Functions

meta_type () noexcept=default
meta_type () noexcept=default
 Default constructor.
 
 meta_type (const meta_ctx &area, internal::meta_type_node curr) noexcept
 meta_type (const meta_ctx &area, internal::meta_type_node curr) noexcept
 Context aware constructor for meta objects.
 
 meta_type (const meta_ctx &area, const internal::meta_base_node &curr) noexcept
 meta_type (const meta_ctx &area, const internal::meta_base_node &curr) noexcept
 Context aware constructor for meta objects.
 
const type_infoinfo () const noexcept
const type_infoinfo () const noexcept
 Returns the type info object of the underlying type.
 
id_type id () const noexcept
id_type id () const noexcept
 Returns the identifier assigned to a type.
 
size_type size_of () const noexcept
size_type size_of () const noexcept
 Returns the size of the underlying type if known.
 
bool is_arithmetic () const noexcept
bool is_arithmetic () const noexcept
 Checks whether a type refers to an arithmetic type or not.
 
bool is_integral () const noexcept
bool is_integral () const noexcept
 Checks whether a type refers to an integral type or not.
 
bool is_signed () const noexcept
bool is_signed () const noexcept
 Checks whether a type refers to a signed type or not.
 
bool is_array () const noexcept
bool is_array () const noexcept
 Checks whether a type refers to an array type or not.
 
bool is_enum () const noexcept
bool is_enum () const noexcept
 Checks whether a type refers to an enum or not.
 
bool is_class () const noexcept
bool is_class () const noexcept
 Checks whether a type refers to a class or not.
 
bool is_pointer () const noexcept
bool is_pointer () const noexcept
 Checks whether a type refers to a pointer or not.
 
meta_type remove_pointer () const noexcept
meta_type remove_pointer () const noexcept
 Provides the type for which the pointer is defined.
 
bool is_pointer_like () const noexcept
bool is_pointer_like () const noexcept
 Checks whether a type is a pointer-like type or not.
 
bool is_sequence_container () const noexcept
bool is_sequence_container () const noexcept
 Checks whether a type refers to a sequence container or not.
 
bool is_associative_container () const noexcept
bool is_associative_container () const noexcept
 Checks whether a type refers to an associative container or not.
 
bool is_template_specialization () const noexcept
bool is_template_specialization () const noexcept
 Checks whether a type refers to a recognized class template specialization or not.
 
size_type template_arity () const noexcept
size_type template_arity () const noexcept
 Returns the number of template arguments.
 
meta_type template_type () const noexcept
meta_type template_type () const noexcept
 Returns a tag for the class template of the underlying type.
 
meta_type template_arg (const size_type index) const noexcept
meta_type template_arg (const size_type index) const noexcept
 Returns the type of the i-th template argument of a type.
 
bool can_cast (const meta_type &other) const noexcept
bool can_cast (const meta_type &other) const noexcept
 Checks if a type supports direct casting to another type.
 
bool can_convert (const meta_type &other) const noexcept
bool can_convert (const meta_type &other) const noexcept
 Checks if a type supports conversion it to another type.
 
meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > base () const noexcept
meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > base () const noexcept
 Returns a range to visit registered top-level base meta types.
 
meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > data () const noexcept
meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > data () const noexcept
 Returns a range to visit registered top-level meta data.
 
meta_data data (const id_type id) const
meta_data data (const id_type id) const
 Lookup utility for meta data (bases are also visited).
 
meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > func () const noexcept
meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > func () const noexcept
 Returns a range to visit registered top-level functions.
 
meta_func func (const id_type id) const
meta_func func (const id_type id) const
 Lookup utility for meta functions (bases are also visited).
 
meta_any construct (meta_any *const args, const size_type sz) const
meta_any construct (meta_any *const args, const size_type sz) const
 Creates an instance of the underlying type, if possible.
 
template<typename... Args>
meta_any construct (Args &&...args) const
 Creates an instance of the underlying type, if possible.
meta_any construct (Args &&...args) const
 Creates an instance of the underlying type, if possible.
 
meta_any from_void (void *elem) const
 Wraps an opaque element of the underlying type.
 
meta_any from_void (const void *elem) const
 Wraps an opaque element of the underlying type.
meta_any from_void (void *elem, bool transfer_ownership=false) const
 Wraps an opaque element of the underlying type.
 
meta_any from_void (const void *elem) const
 Wraps an opaque element of the underlying type.
 
meta_any invoke (const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
meta_any invoke (const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
 Invokes a function given an identifier, if possible.
 
template<typename... Args>
meta_any invoke (const id_type id, meta_handle instance, Args &&...args) const
 Invokes a function given an identifier, if possible.
meta_any invoke (const id_type id, meta_handle instance, Args &&...args) const
 Invokes a function given an identifier, if possible.
 
template<typename Type >
bool set (const id_type id, meta_handle instance, Type &&value) const
template<typename Type>
bool set (const id_type id, meta_handle instance, Type &&value) const
 Sets the value of a given variable.
 
meta_any get (const id_type id, meta_handle instance) const
meta_any get (const id_type id, meta_handle instance) const
 Gets the value of a given variable.
 
meta_range< meta_prop, typename decltype(internal::meta_type_descriptor::prop)::const_iterator > prop () const noexcept
 Returns a range to visit registered top-level meta properties.
 
meta_prop prop (const id_type key) const
 Lookup utility for meta properties (bases are also visited).
 
template<typename Type >
Type traits () const noexcept
 Returns all meta traits for a given meta object.
template<typename Type>
Type traits () const noexcept
 Returns all meta traits for a given meta object.
 
meta_custom custom () const noexcept
 Returns user defined data for a given meta object.
meta_custom custom () const noexcept
 Returns user defined data for a given meta object.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns true if an object is valid, false otherwise.
 
bool operator== (const meta_type &other) const noexcept
 Checks if two objects refer to the same type.
bool operator== (const meta_type &other) const noexcept
 Checks if two objects refer to the same type.
 

Detailed Description

Opaque wrapper for types.

-

Definition at line 1153 of file meta.hpp.

+

Definition at line 1088 of file meta.hpp.

Member Typedef Documentation

◆ size_type

@@ -240,14 +247,14 @@ Public Member Functions
- +
using entt::meta_type::size_type = typename internal::meta_type_node::size_typeusing entt::meta_type::size_type = typename internal::meta_type_node::size_type

Unsigned integer type.

-

Definition at line 1209 of file meta.hpp.

+

Definition at line 1144 of file meta.hpp.

@@ -264,7 +271,7 @@ Public Member Functions entt::meta_type::meta_type ( - const meta_ctx & area, + const meta_ctx & area, @@ -274,7 +281,7 @@ Public Member Functions -inlinenoexcept +inlinenoexcept
@@ -288,7 +295,7 @@ Public Member Functions -

Definition at line 1219 of file meta.hpp.

+

Definition at line 1154 of file meta.hpp.

@@ -304,17 +311,17 @@ Public Member Functions entt::meta_type::meta_type ( - const meta_ctx & area, + const meta_ctx & area, - const internal::meta_base_node & curr ) + const internal::meta_base_node & curr ) -inlinenoexcept +inlinenoexcept
@@ -328,7 +335,7 @@ Public Member Functions -

Definition at line 1228 of file meta.hpp.

+

Definition at line 1163 of file meta.hpp.

@@ -343,15 +350,15 @@ Public Member Functions - + - +
meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > entt::meta_type::base meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > entt::meta_type::base ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -359,7 +366,7 @@ Public Member Functions

Returns a range to visit registered top-level base meta types.

Returns
An iterable range to visit registered top-level base meta types.
-

Definition at line 1403 of file meta.hpp.

+

Definition at line 1338 of file meta.hpp.

@@ -373,15 +380,15 @@ Public Member Functions - + - +
bool entt::meta_type::can_cast bool entt::meta_type::can_cast (const meta_type & other)const meta_type & other) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -395,7 +402,7 @@ Public Member Functions
Returns
True if direct casting is allowed, false otherwise.
-

Definition at line 1385 of file meta.hpp.

+

Definition at line 1320 of file meta.hpp.

@@ -409,15 +416,15 @@ Public Member Functions - + - +
bool entt::meta_type::can_convert bool entt::meta_type::can_convert (const meta_type & other)const meta_type & other) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -431,7 +438,7 @@ Public Member Functions
Returns
True if the conversion is allowed, false otherwise.
-

Definition at line 1395 of file meta.hpp.

+

Definition at line 1330 of file meta.hpp.

@@ -449,18 +456,18 @@ template<typename... Args> meta_any entt::meta_type::construct ( - Args &&... args) + Args &&... args) const -inline +inlinenodiscard
-

Creates an instance of the underlying type, if possible.

+

Creates an instance of the underlying type, if possible.

Template Parameters
@@ -475,7 +482,7 @@ template<typename... Args>
Returns
A wrapper containing the new instance, if any.
-

Definition at line 1476 of file meta.hpp.

+

Definition at line 1408 of file meta.hpp.

@@ -491,17 +498,17 @@ template<typename... Args> - + - +
ArgsTypes of arguments to use to construct the instance.
meta_any entt::meta_type::construct (meta_any *const args, meta_any *const args,
const size_type sz ) constconst size_type sz ) const
-inline +inlinenodiscard
@@ -516,7 +523,7 @@ template<typename... Args>
Returns
A wrapper containing the new instance, if any.
-

Definition at line 1455 of file meta.hpp.

+

Definition at line 1387 of file meta.hpp.

@@ -532,21 +539,21 @@ template<typename... Args> meta_custom entt::meta_type::custom ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
-

Returns user defined data for a given meta object.

-
Returns
User defined arbitrary data.
+

Returns user defined data for a given meta object.

+
Returns
User defined arbitrary data.
-

Definition at line 1587 of file meta.hpp.

+

Definition at line 1506 of file meta.hpp.

@@ -560,15 +567,15 @@ template<typename... Args> - + - +
meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > entt::meta_type::data meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > entt::meta_type::data ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -576,7 +583,7 @@ template<typename... Args>

Returns a range to visit registered top-level meta data.

Returns
An iterable range to visit registered top-level meta data.
-

Definition at line 1412 of file meta.hpp.

+

Definition at line 1347 of file meta.hpp.

@@ -592,13 +599,13 @@ template<typename... Args> meta_data entt::meta_type::data ( - const id_type id) + const id_type id) const -inline +inlinenodiscard
@@ -612,7 +619,7 @@ template<typename... Args>
Returns
The registered meta data for the given identifier, if any.
-

Definition at line 1422 of file meta.hpp.

+

Definition at line 1357 of file meta.hpp.

@@ -628,49 +635,13 @@ template<typename... Args> meta_any entt::meta_type::from_void ( - const void * elem) + const void * elem) const -inline - - -
- -

Wraps an opaque element of the underlying type.

-
Parameters
- - -
elemA valid pointer to an element of the underlying type.
-
-
-
Returns
A wrapper that references the given instance.
- -

Definition at line 1491 of file meta.hpp.

- -
- - -

◆ from_void() [2/2]

- -
-
- - - - +inlinenodiscard
- - - - - - - -
meta_any entt::meta_type::from_void (void * elem) const
-
-inline
@@ -684,7 +655,48 @@ template<typename... Args>
Returns
A wrapper that references the given instance.
-

Definition at line 1486 of file meta.hpp.

+

Definition at line 1428 of file meta.hpp.

+ +
+ + +

◆ from_void() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
meta_any entt::meta_type::from_void (void * elem,
bool transfer_ownership = false ) const
+
+inlinenodiscard
+
+ +

Wraps an opaque element of the underlying type.

+
Parameters
+ + + +
elemA valid pointer to an element of the underlying type.
transfer_ownershipTrue to transfer ownership, false otherwise.
+
+
+
Returns
A wrapper that references the given instance.
+ +

Definition at line 1419 of file meta.hpp.

@@ -698,15 +710,15 @@ template<typename... Args> - + - +
meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > entt::meta_type::func meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > entt::meta_type::func ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -714,7 +726,7 @@ template<typename... Args>

Returns a range to visit registered top-level functions.

Returns
An iterable range to visit registered top-level functions.
-

Definition at line 1431 of file meta.hpp.

+

Definition at line 1366 of file meta.hpp.

@@ -730,19 +742,18 @@ template<typename... Args> meta_func entt::meta_type::func ( - const id_type id) + const id_type id) const -inline +inlinenodiscard

Lookup utility for meta functions (bases are also visited).

-

In case of overloaded functions, a random one is returned.

Parameters
@@ -751,7 +762,7 @@ template<typename... Args>
Returns
The registered meta function for the given identifier, if any.
-

Definition at line 1444 of file meta.hpp.

+

Definition at line 1376 of file meta.hpp.

@@ -767,7 +778,7 @@ template<typename... Args> - + @@ -777,7 +788,7 @@ template<typename... Args>
idUnique identifier.
meta_any entt::meta_type::get (const id_type id, const id_type id,
-inline +inlinenodiscard
@@ -792,7 +803,7 @@ template<typename... Args>
Returns
A wrapper containing the value of the underlying variable.
-

Definition at line 1556 of file meta.hpp.

+

Definition at line 1494 of file meta.hpp.

@@ -806,15 +817,15 @@ template<typename... Args> - + - +
id_type entt::meta_type::id id_type entt::meta_type::id ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -822,7 +833,7 @@ template<typename... Args>

Returns the identifier assigned to a type.

Returns
The identifier assigned to the type.
-

Definition at line 1243 of file meta.hpp.

+

Definition at line 1178 of file meta.hpp.

@@ -836,15 +847,15 @@ template<typename... Args> - + - +
const type_info & entt::meta_type::info const type_info & entt::meta_type::info ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -852,7 +863,7 @@ template<typename... Args>

Returns the type info object of the underlying type.

Returns
The type info object of the underlying type.
-

Definition at line 1235 of file meta.hpp.

+

Definition at line 1170 of file meta.hpp.

@@ -870,27 +881,27 @@ template<typename... Args> meta_any entt::meta_type::invoke ( - const id_type id, + const id_type id, - meta_handle instance, + meta_handle instance, - Args &&... args ) const + Args &&... args ) const -inline +inline
-

Invokes a function given an identifier, if possible.

+

Invokes a function given an identifier, if possible.

Parameters
@@ -912,7 +923,7 @@ template<typename... Args>
Returns
A wrapper containing the returned value, if any.
-

Definition at line 1531 of file meta.hpp.

+

Definition at line 1469 of file meta.hpp.

@@ -928,27 +939,27 @@ template<typename... Args> - + - + - + - +
idUnique identifier.
meta_any entt::meta_type::invoke (const id_type id, const id_type id,
meta_handle instance, meta_handle instance,
meta_any *const args, meta_any *const args,
const size_type sz ) constconst size_type sz ) const
-inline +inline
@@ -965,7 +976,7 @@ template<typename... Args>
Returns
A wrapper containing the returned value, if any.
-

Definition at line 1503 of file meta.hpp.

+

Definition at line 1441 of file meta.hpp.

@@ -979,15 +990,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_arithmetic bool entt::meta_type::is_arithmetic ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -995,7 +1006,7 @@ template<typename... Args>

Checks whether a type refers to an arithmetic type or not.

Returns
True if the underlying type is an arithmetic type, false otherwise.
-

Definition at line 1260 of file meta.hpp.

+

Definition at line 1195 of file meta.hpp.

@@ -1009,15 +1020,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_array bool entt::meta_type::is_array ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1025,7 +1036,7 @@ template<typename... Args>

Checks whether a type refers to an array type or not.

Returns
True if the underlying type is an array type, false otherwise.
-

Definition at line 1284 of file meta.hpp.

+

Definition at line 1219 of file meta.hpp.

@@ -1039,15 +1050,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_associative_container bool entt::meta_type::is_associative_container ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1055,7 +1066,7 @@ template<typename... Args>

Checks whether a type refers to an associative container or not.

Returns
True if the type is an associative container, false otherwise.
-

Definition at line 1341 of file meta.hpp.

+

Definition at line 1276 of file meta.hpp.

@@ -1069,15 +1080,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_class bool entt::meta_type::is_class ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1085,7 +1096,7 @@ template<typename... Args>

Checks whether a type refers to a class or not.

Returns
True if the underlying type is a class, false otherwise.
-

Definition at line 1300 of file meta.hpp.

+

Definition at line 1235 of file meta.hpp.

@@ -1099,15 +1110,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_enum bool entt::meta_type::is_enum ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1115,7 +1126,7 @@ template<typename... Args>

Checks whether a type refers to an enum or not.

Returns
True if the underlying type is an enum, false otherwise.
-

Definition at line 1292 of file meta.hpp.

+

Definition at line 1227 of file meta.hpp.

@@ -1129,15 +1140,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_integral bool entt::meta_type::is_integral ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1145,7 +1156,7 @@ template<typename... Args>

Checks whether a type refers to an integral type or not.

Returns
True if the underlying type is an integral type, false otherwise.
-

Definition at line 1268 of file meta.hpp.

+

Definition at line 1203 of file meta.hpp.

@@ -1159,15 +1170,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_pointer bool entt::meta_type::is_pointer ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1175,7 +1186,7 @@ template<typename... Args>

Checks whether a type refers to a pointer or not.

Returns
True if the underlying type is a pointer, false otherwise.
-

Definition at line 1308 of file meta.hpp.

+

Definition at line 1243 of file meta.hpp.

@@ -1189,15 +1200,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_pointer_like bool entt::meta_type::is_pointer_like ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1205,7 +1216,7 @@ template<typename... Args>

Checks whether a type is a pointer-like type or not.

Returns
True if the underlying type is pointer-like, false otherwise.
-

Definition at line 1325 of file meta.hpp.

+

Definition at line 1260 of file meta.hpp.

@@ -1219,15 +1230,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_sequence_container bool entt::meta_type::is_sequence_container ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1235,7 +1246,7 @@ template<typename... Args>

Checks whether a type refers to a sequence container or not.

Returns
True if the type is a sequence container, false otherwise.
-

Definition at line 1333 of file meta.hpp.

+

Definition at line 1268 of file meta.hpp.

@@ -1249,15 +1260,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_signed bool entt::meta_type::is_signed ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1265,7 +1276,7 @@ template<typename... Args>

Checks whether a type refers to a signed type or not.

Returns
True if the underlying type is a signed type, false otherwise.
-

Definition at line 1276 of file meta.hpp.

+

Definition at line 1211 of file meta.hpp.

@@ -1279,15 +1290,15 @@ template<typename... Args> - + - +
bool entt::meta_type::is_template_specialization bool entt::meta_type::is_template_specialization ()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1295,7 +1306,7 @@ template<typename... Args>

Checks whether a type refers to a recognized class template specialization or not.

Returns
True if the type is a recognized class template specialization, false otherwise.
-

Definition at line 1351 of file meta.hpp.

+

Definition at line 1286 of file meta.hpp.

@@ -1309,15 +1320,15 @@ template<typename... Args> - + - +
entt::meta_type::operator bool entt::meta_type::operator bool ()) const
-inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
@@ -1325,7 +1336,7 @@ template<typename... Args>

Returns true if an object is valid, false otherwise.

Returns
True if the object is valid, false otherwise.
-

Definition at line 1595 of file meta.hpp.

+

Definition at line 1514 of file meta.hpp.

@@ -1339,95 +1350,29 @@ template<typename... Args> - + - +
bool entt::meta_type::operator== bool entt::meta_type::operator== (const meta_type & other)const meta_type & other) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Checks if two objects refer to the same type.

+

Checks if two objects refer to the same type.

Parameters
otherThe object with which to compare.
-
Returns
True if the objects refer to the same type, false otherwise.
+
Returns
True if the objects refer to the same type, false otherwise.
-

Definition at line 1600 of file meta.hpp.

- -
- - -

◆ prop() [1/2]

- -
-
- - - - - -
- - - - - - - -
meta_range< meta_prop, typename decltype(internal::meta_type_descriptor::prop)::const_iterator > entt::meta_type::prop () const
-
-inlinenoexcept
-
- -

Returns a range to visit registered top-level meta properties.

-
Returns
An iterable range to visit registered top-level meta properties.
- -

Definition at line 1565 of file meta.hpp.

- -
-
- -

◆ prop() [2/2]

- -
-
- - - - - -
- - - - - - - -
meta_prop entt::meta_type::prop (const id_type key) const
-
-inline
-
- -

Lookup utility for meta properties (bases are also visited).

-
Parameters
- - -
keyThe key to use to search for a property.
-
-
-
Returns
The registered meta property for the given key, if any.
- -

Definition at line 1575 of file meta.hpp.

+

Definition at line 1519 of file meta.hpp.

@@ -1443,13 +1388,13 @@ template<typename... Args> meta_type entt::meta_type::remove_pointer ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1457,7 +1402,7 @@ template<typename... Args>

Provides the type for which the pointer is defined.

Returns
The type for which the pointer is defined or this type if it doesn't refer to a pointer type.
-

Definition at line 1317 of file meta.hpp.

+

Definition at line 1252 of file meta.hpp.

@@ -1467,20 +1412,20 @@ template<typename... Args>
-template<typename Type >
+template<typename Type>
- +
- + - + - + @@ -1490,7 +1435,7 @@ template< -inline +inline
bool entt::meta_type::set bool entt::meta_type::set (const id_type id, const id_type id,
meta_handle instance, meta_handle instance,
@@ -1528,13 +1473,13 @@ template<size_type entt::meta_type::size_of
()) const
-inlinenoexcept +inlinenodiscardnoexcept
@@ -1542,7 +1487,7 @@ template<
Returns
The size of the underlying type if known, 0 otherwise.
-

Definition at line 1251 of file meta.hpp.

+

Definition at line 1186 of file meta.hpp.

@@ -1558,13 +1503,13 @@ template<meta_type entt::meta_type::template_arg ( - const size_type index) + const size_type index) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1578,7 +1523,7 @@ template<
Returns
The type of the i-th template argument of a type.
-

Definition at line 1376 of file meta.hpp.

+

Definition at line 1311 of file meta.hpp.

@@ -1594,13 +1539,13 @@ template<size_type entt::meta_type::template_arity ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1608,7 +1553,7 @@ template<
Returns
The number of template arguments.
-

Definition at line 1359 of file meta.hpp.

+

Definition at line 1294 of file meta.hpp.

@@ -1624,13 +1569,13 @@ template<meta_type entt::meta_type::template_type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
@@ -1638,7 +1583,7 @@ template<
Returns
The tag for the class template of the underlying type.
-

Definition at line 1367 of file meta.hpp.

+

Definition at line 1302 of file meta.hpp.

@@ -1648,7 +1593,7 @@ template<
+template<typename Type>
- +
@@ -1656,27 +1601,27 @@ template<Type entt::meta_type::traits ()) const
-inlinenoexcept +inlinenodiscardnoexcept
-

Returns all meta traits for a given meta object.

+

Returns all meta traits for a given meta object.

Template Parameters
TypeThe type to convert the meta traits to.
-
Returns
The registered meta traits, if any.
+
Returns
The registered meta traits, if any.
-

Definition at line 1582 of file meta.hpp.

+

Definition at line 1501 of file meta.hpp.

@@ -1686,7 +1631,8 @@ template< + diff --git a/classentt_1_1nth__argument-members.html b/classentt_1_1nth__argument-members.html index e40a6775e..44c99d093 100644 --- a/classentt_1_1nth__argument-members.html +++ b/classentt_1_1nth__argument-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
entt::nth_argument< Index, Candidate > Member List
@@ -85,7 +98,8 @@ $(function() {
+ diff --git a/classentt_1_1nth__argument.html b/classentt_1_1nth__argument.html index e914f4c1d..5afd98d7d 100644 --- a/classentt_1_1nth__argument.html +++ b/classentt_1_1nth__argument.html @@ -3,13 +3,15 @@ - + EnTT: entt::nth_argument< Index, Candidate > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + + +
Public Types | @@ -89,12 +102,12 @@ $(function() { - +

Public Types

using type = type_list_element_t<Index, decltype(pick_up(std::declval<Candidate>()))>
using type = type_list_element_t<Index, decltype(pick_up(std::declval<Candidate>()))>
 N-th argument of the callable type.
 

Detailed Description

-
template<std::size_t Index, typename Candidate>
+
template<std::size_t Index, typename Candidate>
class entt::nth_argument< Index, Candidate >

Extracts the n-th argument of a callable type.

Template Parameters
@@ -104,7 +117,7 @@ class entt::nth_argument< Index, Candidate >

Extracts the n-th arg -

Definition at line 876 of file type_traits.hpp.

+

Definition at line 878 of file type_traits.hpp.

Member Typedef Documentation

◆ type

@@ -112,17 +125,17 @@ class entt::nth_argument< Index, Candidate >

Extracts the n-th arg

-template<std::size_t Index, typename Candidate >
+template<std::size_t Index, typename Candidate>
- +
using entt::nth_argument< Index, Candidate >::type = type_list_element_t<Index, decltype(pick_up(std::declval<Candidate>()))>using entt::nth_argument< Index, Candidate >::type = type_list_element_t<Index, decltype(pick_up(std::declval<Candidate>()))>

N-th argument of the callable type.

-

Definition at line 894 of file type_traits.hpp.

+

Definition at line 896 of file type_traits.hpp.

@@ -132,7 +145,8 @@ template<std::size_t Index, +
diff --git a/classentt_1_1poly__vtable-members.html b/classentt_1_1poly__vtable-members.html index 9d99c3714..8342b87a2 100644 --- a/classentt_1_1poly__vtable-members.html +++ b/classentt_1_1poly__vtable-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::poly_vtable< Concept, Len, Align > Member List
@@ -82,11 +95,12 @@ $(function() {

This is the complete list of members for entt::poly_vtable< Concept, Len, Align >, including all inherited members.

- +
instance() noexceptentt::poly_vtable< Concept, Len, Align >inlinestatic
type typedefentt::poly_vtable< Concept, Len, Align >
type typedefentt::poly_vtable< Concept, Len, Align >
+
diff --git a/classentt_1_1poly__vtable.html b/classentt_1_1poly__vtable.html index ea44971cf..15ae1eacc 100644 --- a/classentt_1_1poly__vtable.html +++ b/classentt_1_1poly__vtable.html @@ -3,13 +3,15 @@ - + EnTT: entt::poly_vtable< Concept, Len, Align > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,19 +103,19 @@ $(function() { - - - + + +

Public Types

using type = std::conditional_t<is_mono_v, std::tuple_element_t<0u, vtable_type>, const vtable_type *>
 Virtual table type.
 
using type = std::conditional_t<is_mono, std::tuple_element_t<0u, vtable_type>, const vtable_type *>
 Virtual table type.
 
- - + +

Static Public Member Functions

template<typename Type >
static type instance () noexcept
template<typename Type>
static type instance () noexcept
 Returns a static virtual table for a specific concept and type.
 

Detailed Description

-
template<typename Concept, std::size_t Len, std::size_t Align>
+
template<typename Concept, std::size_t Len, std::size_t Align>
class entt::poly_vtable< Concept, Len, Align >

Static virtual table factory.

Template Parameters
@@ -115,16 +128,16 @@ class entt::poly_vtable< Concept, Len, Align >

Static virtual tabl

Definition at line 47 of file poly.hpp.

Member Typedef Documentation

- -

◆ type

+ +

◆ type

-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
- +
using entt::poly_vtable< Concept, Len, Align >::type = std::conditional_t<is_mono_v, std::tuple_element_t<0u, vtable_type>, const vtable_type *>using entt::poly_vtable< Concept, Len, Align >::type = std::conditional_t<is_mono, std::tuple_element_t<0u, vtable_type>, const vtable_type *>
@@ -142,23 +155,23 @@ template<
-template<typename Concept , std::size_t Len, std::size_t Align>
+template<typename Concept, std::size_t Len, std::size_t Align>
-template<typename Type >
+template<typename Type>
+inlinestaticnodiscardnoexcept
- + - +
static type entt::poly_vtable< Concept, Len, Align >::instance static type entt::poly_vtable< Concept, Len, Align >::instance ())
-inlinestaticnoexcept
@@ -182,7 +195,8 @@ template< +
diff --git a/classentt_1_1process-members.html b/classentt_1_1process-members.html index da836b306..2af1f62a8 100644 --- a/classentt_1_1process-members.html +++ b/classentt_1_1process-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::process< Derived, Delta > Member List
@@ -101,7 +114,8 @@ $(function() {
+
diff --git a/classentt_1_1process.html b/classentt_1_1process.html index 887de0a59..9156ad74e 100644 --- a/classentt_1_1process.html +++ b/classentt_1_1process.html @@ -3,13 +3,15 @@ - + EnTT: entt::process< Derived, Delta > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -91,78 +104,77 @@ $(function() { - +

Public Types

using delta_type = Delta
using delta_type = Delta
 Type used to provide elapsed time.
 
+constexpr  +  +  - + - + - + - + - + - + - + - + - +

Public Member Functions

-constexpr process ()=default
process ()=default
 Default constructor.
 
process (const process &)=default
process (const process &)=default
 Default copy constructor.
 
process (process &&) noexcept=default
process (process &&) noexcept=default
 Default move constructor.
 
processoperator= (const process &)=default
processoperator= (const process &)=default
 Default copy assignment operator.
 
processoperator= (process &&) noexcept=default
processoperator= (process &&) noexcept=default
 Default move assignment operator.
 
virtual ~process ()
virtual ~process ()
 Default destructor.
 
void abort (const bool immediate=false)
void abort (const bool immediate=false)
 Aborts a process if it's still alive.
 
bool alive () const noexcept
bool alive () const noexcept
 Returns true if a process is either running or paused.
 
bool finished () const noexcept
bool finished () const noexcept
 Returns true if a process is already terminated.
 
bool paused () const noexcept
bool paused () const noexcept
 Returns true if a process is currently paused.
 
bool rejected () const noexcept
bool rejected () const noexcept
 Returns true if a process terminated with errors.
 
void tick (const Delta delta, void *data=nullptr)
void tick (const Delta delta, void *data=nullptr)
 Updates a process and its internal state if required.
 
- + - + - + - +

Protected Member Functions

void succeed () noexcept
void succeed () noexcept
 Terminates a process with success if it's still alive.
 
void fail () noexcept
void fail () noexcept
 Terminates a process with errors if it's still alive.
 
void pause () noexcept
void pause () noexcept
 Stops a process if it's in a running state.
 
void unpause () noexcept
void unpause () noexcept
 Restarts a process if it's paused.
 

Detailed Description

-
template<typename Derived, typename Delta>
+
template<typename Derived, typename Delta>
class entt::process< Derived, Delta >

Base class for processes.

This class stays true to the CRTP idiom. Derived classes must specify what's the intended type for elapsed times.
A process should expose publicly the following member functions whether required:

    -
  • void update(Delta, void *);
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
  • void update(Delta, void *);

    It's invoked once per tick until a process is explicitly aborted or it terminates either with or without errors. Even though it's not mandatory to declare this member function, as a rule of thumb each process should at least define it to work properly. The void * parameter is an opaque pointer to user data (if any) forwarded directly to the process during an update.

  • -
  • void init();
    +
  • void init();

    It's invoked when the process joins the running queue of a scheduler. This happens as soon as it's attached to the scheduler if the process is a top level one, otherwise when it replaces its parent if the process is a continuation.

  • void succeeded();
    @@ -193,10 +205,10 @@ class entt::process< Derived, Delta >

    Base class for processes.

    -template<typename Derived , typename Delta >
    +template<typename Derived, typename Delta>
    - +
    using entt::process< Derived, Delta >::delta_type = Deltausing entt::process< Derived, Delta >::delta_type = Delta
@@ -214,21 +226,21 @@ template<
+template<typename Derived, typename Delta>
+inlinevirtual
- + - +
virtual entt::process< Derived, Delta >::~process virtual entt::process< Derived, Delta >::~process ())
-inlinevirtual
@@ -246,21 +258,21 @@ template<
+template<typename Derived, typename Delta>
+inline
- + - +
void entt::process< Derived, Delta >::abort void entt::process< Derived, Delta >::abort (const bool immediate = false)const bool immediate = false)
-inline
@@ -284,21 +296,21 @@ template<
+template<typename Derived, typename Delta>
+inlinenodiscardnoexcept
- + - +
bool entt::process< Derived, Delta >::alive bool entt::process< Derived, Delta >::alive ()) const
-inlinenoexcept
@@ -316,21 +328,21 @@ template<
+template<typename Derived, typename Delta>
+inlineprotectednoexcept
- + - +
void entt::process< Derived, Delta >::fail void entt::process< Derived, Delta >::fail ())
-inlineprotectednoexcept
@@ -348,21 +360,21 @@ template<
+template<typename Derived, typename Delta>
+inlinenodiscardnoexcept
- + - +
bool entt::process< Derived, Delta >::finished bool entt::process< Derived, Delta >::finished ()) const
-inlinenoexcept
@@ -380,21 +392,21 @@ template<
+template<typename Derived, typename Delta>
+default
- + - +
process & entt::process< Derived, Delta >::operator= process & entt::process< Derived, Delta >::operator= (const process< Derived, Delta > & )const process< Derived, Delta > & )
-default
@@ -410,21 +422,21 @@ template<
+template<typename Derived, typename Delta>
+defaultnoexcept
- + - +
process & entt::process< Derived, Delta >::operator= process & entt::process< Derived, Delta >::operator= (process< Derived, Delta > && )process< Derived, Delta > && )
-defaultnoexcept
@@ -440,21 +452,21 @@ template<
+template<typename Derived, typename Delta>
+inlineprotectednoexcept
- + - +
void entt::process< Derived, Delta >::pause void entt::process< Derived, Delta >::pause ())
-inlineprotectednoexcept
@@ -472,21 +484,21 @@ template<
+template<typename Derived, typename Delta>
+inlinenodiscardnoexcept
- + - +
bool entt::process< Derived, Delta >::paused bool entt::process< Derived, Delta >::paused ()) const
-inlinenoexcept
@@ -504,21 +516,21 @@ template<
+template<typename Derived, typename Delta>
+inlinenodiscardnoexcept
- + - +
bool entt::process< Derived, Delta >::rejected bool entt::process< Derived, Delta >::rejected ()) const
-inlinenoexcept
@@ -536,21 +548,21 @@ template<
+template<typename Derived, typename Delta>
+inlineprotectednoexcept
- + - +
void entt::process< Derived, Delta >::succeed void entt::process< Derived, Delta >::succeed ())
-inlineprotectednoexcept
@@ -568,25 +580,25 @@ template<
+template<typename Derived, typename Delta>
+inline
- + - + - +
void entt::process< Derived, Delta >::tick void entt::process< Derived, Delta >::tick (const Delta delta, const Delta delta,
void * data = nullptr )void * data = nullptr )
-inline
@@ -610,21 +622,21 @@ template<
+template<typename Derived, typename Delta>
+inlineprotectednoexcept
- + - +
void entt::process< Derived, Delta >::unpause void entt::process< Derived, Delta >::unpause ())
-inlineprotectednoexcept
@@ -643,7 +655,8 @@ template< +
diff --git a/classentt_1_1resource-members.html b/classentt_1_1resource-members.html index cb5e0d6d5..e5c9f1fb6 100644 --- a/classentt_1_1resource-members.html +++ b/classentt_1_1resource-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::resource< Type > Member List
@@ -107,7 +120,8 @@ $(function() {
+
diff --git a/classentt_1_1resource.html b/classentt_1_1resource.html index c73180aff..c6166829c 100644 --- a/classentt_1_1resource.html +++ b/classentt_1_1resource.html @@ -3,13 +3,15 @@ - + EnTT: entt::resource< Type > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,86 +103,86 @@ $(function() { - + - +

Public Types

using element_type = Type
using element_type = Type
 Resource type.
 
using handle_type = std::shared_ptr<element_type>
using handle_type = std::shared_ptr<element_type>
 Handle type.
 
- + - + +  +  - - + + - - + + - - + + +  - + - + - - + + - - + + - + - + - - + + - + - + - + - + - +

Public Member Functions

 resource () noexcept
 resource () noexcept
 Default constructor.
 
 resource (handle_type res) noexcept
 resource (handle_type res) noexcept
 Creates a new resource handle.
 
resource (const resource &) noexcept=default
resource (const resource &) noexcept=default
 Default copy constructor.
 
resource (resource &&) noexcept=default
resource (resource &&) noexcept=default
 Default move constructor.
 
template<typename Other >
 resource (const resource< Other > &other, element_type &res) noexcept
template<typename Other>
 resource (const resource< Other > &other, element_type &res) noexcept
 Aliasing constructor.
 
template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
 resource (const resource< Other > &other) noexcept
template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
 resource (const resource< Other > &other) noexcept
 Copy constructs a handle which shares ownership of the resource.
 
template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
 resource (resource< Other > &&other) noexcept
template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
 resource (resource< Other > &&other) noexcept
 Move constructs a handle which takes ownership of the resource.
 
~resource ()=default
~resource ()=default
 Default destructor.
 
resourceoperator= (const resource &) noexcept=default
resourceoperator= (const resource &) noexcept=default
 Default copy assignment operator.
 
resourceoperator= (resource &&) noexcept=default
resourceoperator= (resource &&) noexcept=default
 Default move assignment operator.
 
template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
resourceoperator= (const resource< Other > &other) noexcept
template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
resourceoperator= (const resource< Other > &other) noexcept
 Copy assignment operator from foreign handle.
 
template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
resourceoperator= (resource< Other > &&other) noexcept
template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
resourceoperator= (resource< Other > &&other) noexcept
 Move assignment operator from foreign handle.
 
void swap (resource &other) noexcept
void swap (resource &other) noexcept
 Exchanges the content with that of a given resource.
 
element_typeoperator* () const noexcept
element_typeoperator* () const noexcept
 Returns a reference to the managed resource.
 
 operator element_type & () const noexcept
 Returns a reference to the managed resource.
 operator element_type & () const noexcept
 Returns a reference to the managed resource.
 
element_typeoperator-> () const noexcept
element_typeoperator-> () const noexcept
 Returns a pointer to the managed resource.
 
 operator bool () const noexcept
 operator bool () const noexcept
 Returns true if a handle contains a resource, false otherwise.
 
void reset ()
void reset ()
 Releases the ownership of the managed resource.
 
void reset (handle_type other)
void reset (handle_type other)
 Replaces the managed resource.
 
const handle_typehandle () const noexcept
const handle_typehandle () const noexcept
 Returns the underlying resource handle.
 

Detailed Description

-
template<typename Type>
+
template<typename Type>
class entt::resource< Type >

Basic resource handle.

A handle wraps a resource and extends its lifetime. It also shares the same resource with all other handles constructed from the same element.
As a rule of thumb, resources should never be copied nor moved. Handles are the way to go to push references around.

@@ -188,10 +201,10 @@ class entt::resource< Type >

Basic resource handle.

-template<typename Type >
+template<typename Type>
- +
using entt::resource< Type >::element_type = Typeusing entt::resource< Type >::element_type = Type
@@ -208,10 +221,10 @@ template<
+template<typename Type>
- +
using entt::resource< Type >::handle_type = std::shared_ptr<element_type>using entt::resource< Type >::handle_type = std::shared_ptr<element_type>
@@ -229,7 +242,7 @@ template<
+template<typename Type>
- +
@@ -237,13 +250,13 @@ template<entt::resource< Type >::resource ())
-inlinenoexcept +inlinenoexcept
@@ -260,7 +273,7 @@ template<
+template<typename Type>
+inlineexplicitnoexcept
@@ -274,7 +287,7 @@ template< -inlineexplicitnoexcept
@@ -297,9 +310,9 @@ template<
+template<typename Type>
-template<typename Other >
+template<typename Other>
- + @@ -317,7 +330,7 @@ template< -inlinenoexcept +inlinenoexcept
@@ -307,7 +320,7 @@ template<entt::resource< Type >::resource (const resource< Other > & other, const resource< Other > & other,
@@ -347,9 +360,9 @@ template<
+template<typename Type>
-template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
+template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
- +
@@ -357,13 +370,13 @@ template<entt::resource< Type >::resource (const resource< Other > & other)const resource< Other > & other)
-inlinenoexcept +inlinenoexcept
@@ -392,9 +405,9 @@ template<
+template<typename Type>
-template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
+template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
- +
@@ -402,13 +415,13 @@ template<entt::resource< Type >::resource (resource< Other > && other)resource< Other > && other)
-inlinenoexcept +inlinenoexcept
@@ -438,21 +451,21 @@ template<
+template<typename Type>
+inlinenodiscardnoexcept
- + - +
const handle_type & entt::resource< Type >::handle const handle_type & entt::resource< Type >::handle ()) const
-inlinenoexcept
@@ -470,21 +483,21 @@ template<
+template<typename Type>
+inlineexplicitnodiscardnoexcept
- + - +
entt::resource< Type >::operator bool entt::resource< Type >::operator bool ()) const
-inlineexplicitnoexcept
@@ -502,28 +515,28 @@ template<
+template<typename Type>
+inlinenodiscardnoexcept
- + - +
entt::resource< Type >::operator element_type & entt::resource< Type >::operator element_type & ()) const
-inlinenoexcept
-

Returns a reference to the managed resource.

+

Returns a reference to the managed resource.

Warning
The behavior is undefined if the handle doesn't contain a resource.
-
Returns
A reference to the managed resource.
+
Returns
A reference to the managed resource.

Definition at line 141 of file resource.hpp.

@@ -535,21 +548,21 @@ template<
+template<typename Type>
+inlinenodiscardnoexcept
- + - +
element_type & entt::resource< Type >::operator* element_type & entt::resource< Type >::operator* ()) const
-inlinenoexcept
@@ -568,21 +581,21 @@ template<
+template<typename Type>
+inlinenodiscardnoexcept
- + - +
element_type * entt::resource< Type >::operator-> element_type * entt::resource< Type >::operator-> ()) const
-inlinenoexcept
@@ -600,21 +613,21 @@ template<
+template<typename Type>
+defaultnoexcept
- + - +
resource & entt::resource< Type >::operator= resource & entt::resource< Type >::operator= (const resource< Type > & )const resource< Type > & )
-defaultnoexcept
@@ -630,23 +643,23 @@ template<
+template<typename Type>
-template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
+template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
+inlinenoexcept
- + - +
resource & entt::resource< Type >::operator= resource & entt::resource< Type >::operator= (const resource< Other > & other)const resource< Other > & other)
-inlinenoexcept
@@ -676,21 +689,21 @@ template<
+template<typename Type>
+defaultnoexcept
- + - +
resource & entt::resource< Type >::operator= resource & entt::resource< Type >::operator= (resource< Type > && )resource< Type > && )
-defaultnoexcept
@@ -706,23 +719,23 @@ template<
+template<typename Type>
-template<typename Other , typename = std::enable_if_t<is_acceptable_v<Other>>>
+template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
+inlinenoexcept
- + - +
resource & entt::resource< Type >::operator= resource & entt::resource< Type >::operator= (resource< Other > && other)resource< Other > && other)
-inlinenoexcept
@@ -752,21 +765,21 @@ template<
+template<typename Type>
+inline
- + - +
void entt::resource< Type >::reset void entt::resource< Type >::reset ())
-inline
@@ -783,13 +796,13 @@ template<
+template<typename Type>
- + @@ -797,7 +810,7 @@ template< -inline +inline
void entt::resource< Type >::reset void entt::resource< Type >::reset ( handle_type other)
@@ -820,13 +833,13 @@ template<
+template<typename Type>
@@ -31,23 +33,33 @@
- + @@ -834,7 +847,7 @@ template< -inlinenoexcept +inlinenoexcept
void entt::resource< Type >::swap void entt::resource< Type >::swap ( resource< Type > & other)
@@ -858,20 +871,20 @@ template<
+template<typename Type>
-template<typename >
+template<typename>
+friend
- +
friend class resourcefriend class resource
-friend
@@ -887,7 +900,8 @@ template< +
diff --git a/classentt_1_1resource__cache-members.html b/classentt_1_1resource__cache-members.html index ce201903c..8814d68b2 100644 --- a/classentt_1_1resource__cache-members.html +++ b/classentt_1_1resource__cache-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + + +
entt::resource_cache< Type, Loader, Allocator > Member List
@@ -119,7 +132,8 @@ $(function() {
+
diff --git a/classentt_1_1resource__cache.html b/classentt_1_1resource__cache.html index 06fac26e7..60950e95d 100644 --- a/classentt_1_1resource__cache.html +++ b/classentt_1_1resource__cache.html @@ -3,13 +3,15 @@ - + EnTT: entt::resource_cache< Type, Loader, Allocator > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
Public Types | @@ -90,22 +103,22 @@ $(function() { - + - + - + - + - + - +

Public Types

using allocator_type = Allocator
using allocator_type = Allocator
 Allocator type.
 
using value_type = Type
using value_type = Type
 Resource type.
 
using size_type = std::size_t
using size_type = std::size_t
 Unsigned integer type.
 
using loader_type = Loader
using loader_type = Loader
 Loader type.
 
using iterator = internal::resource_cache_iterator<Type, typename container_type::iterator>
using iterator = internal::resource_cache_iterator<Type, typename container_type::iterator>
 Input iterator type.
 
using const_iterator = internal::resource_cache_iterator<const Type, typename container_type::const_iterator>
using const_iterator = internal::resource_cache_iterator<const Type, typename container_type::const_iterator>
 Constant input iterator type.
 
@@ -114,98 +127,98 @@ Public Member Functions - + - + +  - + +  - + +  - + - + - + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - +
 resource_cache ()
 Default constructor.
 
 resource_cache (const allocator_type &allocator)
 resource_cache (const allocator_type &allocator)
 Constructs an empty cache with a given allocator.
 
 resource_cache (const loader_type &callable, const allocator_type &allocator=allocator_type{})
 resource_cache (const loader_type &callable, const allocator_type &allocator=allocator_type{})
 Constructs an empty cache with a given allocator and loader.
 
resource_cache (const resource_cache &)=default
resource_cache (const resource_cache &)=default
 Default copy constructor.
 
 resource_cache (const resource_cache &other, const allocator_type &allocator)
 resource_cache (const resource_cache &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
resource_cache (resource_cache &&) noexcept=default
resource_cache (resource_cache &&) noexcept=default
 Default move constructor.
 
 resource_cache (resource_cache &&other, const allocator_type &allocator)
 resource_cache (resource_cache &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~resource_cache ()=default
~resource_cache ()=default
 Default destructor.
 
resource_cacheoperator= (const resource_cache &)=default
resource_cacheoperator= (const resource_cache &)=default
 Default copy assignment operator.
 
resource_cacheoperator= (resource_cache &&) noexcept=default
resource_cacheoperator= (resource_cache &&) noexcept=default
 Default move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
const_iterator cbegin () const noexcept
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
const_iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin () noexcept
 Returns an iterator to the beginning.
iterator begin () noexcept
 Returns an iterator to the beginning.
 
const_iterator cend () const noexcept
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator end () const noexcept
 Returns an iterator to the end.
const_iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end () noexcept
 Returns an iterator to the end.
iterator end () noexcept
 Returns an iterator to the end.
 
bool empty () const noexcept
bool empty () const noexcept
 Returns true if a cache contains no resources, false otherwise.
 
size_type size () const noexcept
size_type size () const noexcept
 Number of resources managed by a cache.
 
void clear () noexcept
void clear () noexcept
 Clears a cache.
 
template<typename... Args>
std::pair< iterator, boolload (const id_type id, Args &&...args)
std::pair< iterator, bool > load (const id_type id, Args &&...args)
 Loads a resource, if its identifier does not exist.
 
template<typename... Args>
std::pair< iterator, boolforce_load (const id_type id, Args &&...args)
std::pair< iterator, bool > force_load (const id_type id, Args &&...args)
 Force loads a resource, if its identifier does not exist.
 
resource< const value_typeoperator[] (const id_type id) const
resource< const value_typeoperator[] (const id_type id) const
 Returns a handle for a given resource identifier.
 
resource< value_typeoperator[] (const id_type id)
 Returns a handle for a given resource identifier.
resource< value_typeoperator[] (const id_type id)
 Returns a handle for a given resource identifier.
 
bool contains (const id_type id) const
bool contains (const id_type id) const
 Checks if a cache contains a given identifier.
 
iterator erase (const_iterator pos)
iterator erase (const_iterator pos)
 Removes an element from a given position.
 
iterator erase (const_iterator first, const_iterator last)
 Removes the given elements from a cache.
 
size_type erase (const id_type id)
size_type erase (const id_type id)
 Removes the given elements from a cache.
 
loader_type loader () const
loader_type loader () const
 Returns the loader used to create resources.
 

Detailed Description

-
template<typename Type, typename Loader, typename Allocator>
+
template<typename Type, typename Loader, typename Allocator>
class entt::resource_cache< Type, Loader, Allocator >

Basic cache for resources of any type.

Template Parameters
@@ -224,10 +237,10 @@ class entt::resource_cache< Type, Loader, Allocator >

Basic cache

-template<typename Type , typename Loader , typename Allocator >
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::allocator_type = Allocatorusing entt::resource_cache< Type, Loader, Allocator >::allocator_type = Allocator
@@ -244,10 +257,10 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::const_iterator = internal::resource_cache_iterator<const Type, typename container_type::const_iterator>using entt::resource_cache< Type, Loader, Allocator >::const_iterator = internal::resource_cache_iterator<const Type, typename container_type::const_iterator>
@@ -264,10 +277,10 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::iterator = internal::resource_cache_iterator<Type, typename container_type::iterator>using entt::resource_cache< Type, Loader, Allocator >::iterator = internal::resource_cache_iterator<Type, typename container_type::iterator>
@@ -284,10 +297,10 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::loader_type = Loaderusing entt::resource_cache< Type, Loader, Allocator >::loader_type = Loader
@@ -304,10 +317,10 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::size_type = std::size_tusing entt::resource_cache< Type, Loader, Allocator >::size_type = std::size_t
@@ -324,10 +337,10 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- +
using entt::resource_cache< Type, Loader, Allocator >::value_type = Typeusing entt::resource_cache< Type, Loader, Allocator >::value_type = Type
@@ -345,21 +358,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inline
- + - +
entt::resource_cache< Type, Loader, Allocator >::resource_cache entt::resource_cache< Type, Loader, Allocator >::resource_cache ())
-inline
@@ -376,21 +389,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlineexplicit
- + - +
entt::resource_cache< Type, Loader, Allocator >::resource_cache entt::resource_cache< Type, Loader, Allocator >::resource_cache (const allocator_type & allocator)const allocator_type & allocator)
-inlineexplicit
@@ -413,25 +426,25 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlineexplicit
- + - + - +
entt::resource_cache< Type, Loader, Allocator >::resource_cache entt::resource_cache< Type, Loader, Allocator >::resource_cache (const loader_type & callable, const loader_type & callable,
const allocator_type & allocator = allocator_type{} )const allocator_type & allocator = allocator_type{} )
-inlineexplicit
@@ -455,25 +468,25 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inline
- + - + - +
entt::resource_cache< Type, Loader, Allocator >::resource_cache entt::resource_cache< Type, Loader, Allocator >::resource_cache (const resource_cache< Type, Loader, Allocator > & other, const resource_cache< Type, Loader, Allocator > & other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -497,25 +510,25 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inline
- + - + - +
entt::resource_cache< Type, Loader, Allocator >::resource_cache entt::resource_cache< Type, Loader, Allocator >::resource_cache (resource_cache< Type, Loader, Allocator > && other, resource_cache< Type, Loader, Allocator > && other,
const allocator_type & allocator )const allocator_type & allocator )
-inline
@@ -540,28 +553,28 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::resource_cache< Type, Loader, Allocator >::begin const_iterator entt::resource_cache< Type, Loader, Allocator >::begin ()) const
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the cache is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal cache.
+
Returns
An iterator to the first instance of the internal cache.

Definition at line 249 of file cache.hpp.

@@ -573,28 +586,28 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::resource_cache< Type, Loader, Allocator >::begin iterator entt::resource_cache< Type, Loader, Allocator >::begin ())
-inlinenoexcept
-

Returns an iterator to the beginning.

+

Returns an iterator to the beginning.

If the cache is empty, the returned iterator will be equal to end().

-
Returns
An iterator to the first instance of the internal cache.
+
Returns
An iterator to the first instance of the internal cache.

Definition at line 254 of file cache.hpp.

@@ -606,21 +619,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::resource_cache< Type, Loader, Allocator >::cbegin const_iterator entt::resource_cache< Type, Loader, Allocator >::cbegin ()) const
-inlinenoexcept
@@ -639,21 +652,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::resource_cache< Type, Loader, Allocator >::cend const_iterator entt::resource_cache< Type, Loader, Allocator >::cend ()) const
-inlinenoexcept
@@ -671,21 +684,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenoexcept
- + - +
void entt::resource_cache< Type, Loader, Allocator >::clear void entt::resource_cache< Type, Loader, Allocator >::clear ())
-inlinenoexcept
@@ -702,21 +715,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscard
- + - +
bool entt::resource_cache< Type, Loader, Allocator >::contains bool entt::resource_cache< Type, Loader, Allocator >::contains (const id_type id)const id_type id) const
-inline
@@ -740,21 +753,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
bool entt::resource_cache< Type, Loader, Allocator >::empty bool entt::resource_cache< Type, Loader, Allocator >::empty ()) const
-inlinenoexcept
@@ -772,27 +785,27 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
const_iterator entt::resource_cache< Type, Loader, Allocator >::end const_iterator entt::resource_cache< Type, Loader, Allocator >::end ()) const
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal cache.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal cache.

Definition at line 268 of file cache.hpp.

@@ -804,27 +817,27 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
iterator entt::resource_cache< Type, Loader, Allocator >::end iterator entt::resource_cache< Type, Loader, Allocator >::end ())
-inlinenoexcept
-

Returns an iterator to the end.

-
Returns
An iterator to the element following the last instance of the internal cache.
+

Returns an iterator to the end.

+
Returns
An iterator to the element following the last instance of the internal cache.

Definition at line 273 of file cache.hpp.

@@ -836,21 +849,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inline
- + - +
size_type entt::resource_cache< Type, Loader, Allocator >::erase size_type entt::resource_cache< Type, Loader, Allocator >::erase (const id_type id)const id_type id)
-inline
@@ -874,15 +887,15 @@ template<
+template<typename Type, typename Loader, typename Allocator>
@@ -31,23 +33,33 @@
- + - + @@ -892,7 +905,7 @@ template< -inline +inline
iterator entt::resource_cache< Type, Loader, Allocator >::erase iterator entt::resource_cache< Type, Loader, Allocator >::erase (const_iterator first, const_iterator first,
@@ -917,13 +930,13 @@ template<
+template<typename Type, typename Loader, typename Allocator>
- + @@ -931,7 +944,7 @@ template< -inline +inline
iterator entt::resource_cache< Type, Loader, Allocator >::erase iterator entt::resource_cache< Type, Loader, Allocator >::erase ( const_iterator pos)
@@ -955,7 +968,7 @@ template<
+template<typename Type, typename Loader, typename Allocator>
template<typename... Args>
@@ -963,19 +976,19 @@ template<typename... Args> +inline
- + - + - +
std::pair< iterator, bool > entt::resource_cache< Type, Loader, Allocator >::force_load std::pair< iterator, bool > entt::resource_cache< Type, Loader, Allocator >::force_load (const id_type id, const id_type id,
Args &&... args )Args &&... args )
-inline
@@ -996,7 +1009,7 @@ template<typename... Args>
-
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
+
Returns
A pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.

Definition at line 329 of file cache.hpp.

@@ -1008,21 +1021,21 @@ template<typename... Args>
-template<typename Type , typename Loader , typename Allocator >
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardconstexprnoexcept
- + - +
constexpr allocator_type entt::resource_cache< Type, Loader, Allocator >::get_allocator allocator_type entt::resource_cache< Type, Loader, Allocator >::get_allocator ()) const
-inlineconstexprnoexcept
@@ -1040,7 +1053,7 @@ template<
+template<typename Type, typename Loader, typename Allocator>
template<typename... Args>
@@ -1048,19 +1061,19 @@ template<typename... Args> +inline
- + - + - +
std::pair< iterator, bool > entt::resource_cache< Type, Loader, Allocator >::load std::pair< iterator, bool > entt::resource_cache< Type, Loader, Allocator >::load (const id_type id, const id_type id,
Args &&... args )Args &&... args )
-inline
@@ -1093,21 +1106,21 @@ template<typename... Args>
-template<typename Type , typename Loader , typename Allocator >
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscard
- + - +
loader_type entt::resource_cache< Type, Loader, Allocator >::loader loader_type entt::resource_cache< Type, Loader, Allocator >::loader ()) const
-inline
@@ -1125,21 +1138,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+default
- + - +
resource_cache & entt::resource_cache< Type, Loader, Allocator >::operator= resource_cache & entt::resource_cache< Type, Loader, Allocator >::operator= (const resource_cache< Type, Loader, Allocator > & )const resource_cache< Type, Loader, Allocator > & )
-default
@@ -1155,21 +1168,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+defaultnoexcept
- + - +
resource_cache & entt::resource_cache< Type, Loader, Allocator >::operator= resource_cache & entt::resource_cache< Type, Loader, Allocator >::operator= (resource_cache< Type, Loader, Allocator > && )resource_cache< Type, Loader, Allocator > && )
-defaultnoexcept
@@ -1185,26 +1198,26 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscard
- + - +
resource< value_type > entt::resource_cache< Type, Loader, Allocator >::operator[] resource< value_type > entt::resource_cache< Type, Loader, Allocator >::operator[] (const id_type id)const id_type id)
-inline
-

Returns a handle for a given resource identifier.

+

Returns a handle for a given resource identifier.

Warning
There is no guarantee that the returned handle is valid.
If it is not, any use will result in indefinite behavior.
Parameters
@@ -1213,7 +1226,7 @@ template<
Returns
A handle for the given resource.
+
Returns
A handle for the given resource.

Definition at line 352 of file cache.hpp.

@@ -1225,21 +1238,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscard
- + - +
resource< const value_type > entt::resource_cache< Type, Loader, Allocator >::operator[] resource< const value_type > entt::resource_cache< Type, Loader, Allocator >::operator[] (const id_type id)const id_type id) const
-inline
@@ -1265,21 +1278,21 @@ template<
+template<typename Type, typename Loader, typename Allocator>
+inlinenodiscardnoexcept
- + - +
size_type entt::resource_cache< Type, Loader, Allocator >::size size_type entt::resource_cache< Type, Loader, Allocator >::size ()) const
-inlinenoexcept
@@ -1297,7 +1310,8 @@ template< +
diff --git a/classentt_1_1sigh.html b/classentt_1_1sigh.html index b4432fd8b..538c46207 100644 --- a/classentt_1_1sigh.html +++ b/classentt_1_1sigh.html @@ -3,13 +3,15 @@ - + EnTT: entt::sigh< Type, typename > Class Template Reference + + @@ -23,7 +25,7 @@
-
EnTT 3.14.0 +
EnTT 3.15.0
- + + +
+
entt::sigh< Type, typename > Class Template Reference
@@ -82,7 +95,7 @@ $(function() {

Unmanaged signal handler. More...

Detailed Description

-
template<typename Type, typename = std::allocator<void>>
+
template<typename Type, typename = std::allocator<void>>
class entt::sigh< Type, typename >

Unmanaged signal handler.

Primary template isn't defined on purpose. All the specializations give a compile-time error unless the template parameter is a function type.

Template Parameters
@@ -100,7 +113,8 @@ class entt::sigh< Type, typename >

Unmanaged signal handler.

+
diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4-members.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4-members.html deleted file mode 100644 index c6dbee56a..000000000 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4-members.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
entt::sigh< Ret(Args...), Allocator > Member List
-
-
- -

This is the complete list of members for entt::sigh< Ret(Args...), Allocator >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - -
allocator_type typedefentt::sigh< Ret(Args...), Allocator >
collect(Func func, Args... args) constentt::sigh< Ret(Args...), Allocator >inline
empty() const noexceptentt::sigh< Ret(Args...), Allocator >inline
get_allocator() const noexceptentt::sigh< Ret(Args...), Allocator >inline
operator=(const sigh &other)entt::sigh< Ret(Args...), Allocator >inline
operator=(sigh &&other) noexceptentt::sigh< Ret(Args...), Allocator >inline
publish(Args... args) constentt::sigh< Ret(Args...), Allocator >inline
sigh() noexcept(noexcept(allocator_type{}))entt::sigh< Ret(Args...), Allocator >inline
sigh(const allocator_type &allocator) noexceptentt::sigh< Ret(Args...), Allocator >inlineexplicit
sigh(const sigh &other)entt::sigh< Ret(Args...), Allocator >inline
sigh(const sigh &other, const allocator_type &allocator)entt::sigh< Ret(Args...), Allocator >inline
sigh(sigh &&other) noexceptentt::sigh< Ret(Args...), Allocator >inline
sigh(sigh &&other, const allocator_type &allocator)entt::sigh< Ret(Args...), Allocator >inline
sink< sigh< Ret(Args...), Allocator > > (defined in entt::sigh< Ret(Args...), Allocator >)entt::sigh< Ret(Args...), Allocator >friend
sink_type typedefentt::sigh< Ret(Args...), Allocator >
size() const noexceptentt::sigh< Ret(Args...), Allocator >inline
size_type typedefentt::sigh< Ret(Args...), Allocator >
swap(sigh &other) noexceptentt::sigh< Ret(Args...), Allocator >inline
~sigh()=defaultentt::sigh< Ret(Args...), Allocator >
- - - - diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html deleted file mode 100644 index bf2e86db2..000000000 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html +++ /dev/null @@ -1,805 +0,0 @@ - - - - - - - -EnTT: entt::sigh< Ret(Args...), Allocator > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
entt::sigh< Ret(Args...), Allocator > Class Template Reference
-
-
- -

Unmanaged signal handler. - More...

- -

#include <sigh.hpp>

- - - - - - - - - - - -

-Public Types

using allocator_type = Allocator
 Allocator type.
 
using size_type = std::size_t
 Unsigned integer type.
 
using sink_type = sink<sigh<Ret(Args...), Allocator>>
 Sink type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 sigh () noexcept(noexcept(allocator_type{}))
 Default constructor.
 
 sigh (const allocator_type &allocator) noexcept
 Constructs a signal handler with a given allocator.
 
 sigh (const sigh &other)
 Copy constructor.
 
 sigh (const sigh &other, const allocator_type &allocator)
 Allocator-extended copy constructor.
 
 sigh (sigh &&other) noexcept
 Move constructor.
 
 sigh (sigh &&other, const allocator_type &allocator)
 Allocator-extended move constructor.
 
~sigh ()=default
 Default destructor.
 
sighoperator= (const sigh &other)
 Copy assignment operator.
 
sighoperator= (sigh &&other) noexcept
 Move assignment operator.
 
void swap (sigh &other) noexcept
 Exchanges the contents with those of a given signal handler.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
size_type size () const noexcept
 Number of listeners connected to the signal.
 
bool empty () const noexcept
 Returns false if at least a listener is connected to the signal.
 
void publish (Args... args) const
 Triggers a signal.
 
template<typename Func >
void collect (Func func, Args... args) const
 Collects return values from the listeners.
 
- - - -

-Friends

class sink< sigh< Ret(Args...), Allocator > >
 
-

Detailed Description

-
template<typename Ret, typename... Args, typename Allocator>
-class entt::sigh< Ret(Args...), Allocator >

Unmanaged signal handler.

-

It works directly with references to classes and pointers to member functions as well as pointers to free functions. Users of this class are in charge of disconnecting instances before deleting them.

-

This class serves mainly two purposes:

-
    -
  • Creating signals to use later to notify a bunch of listeners.
  • -
  • Collecting results from a set of functions like in a voting system.
  • -
-
Template Parameters
- - - - -
RetReturn type of a function type.
ArgsTypes of arguments of a function type.
AllocatorType of allocator used to manage memory and elements.
-
-
- -

Definition at line 54 of file sigh.hpp.

-

Member Typedef Documentation

- -

◆ allocator_type

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - -
using entt::sigh< Ret(Args...), Allocator >::allocator_type = Allocator
-
- -

Allocator type.

- -

Definition at line 63 of file sigh.hpp.

- -
-
- -

◆ sink_type

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - -
using entt::sigh< Ret(Args...), Allocator >::sink_type = sink<sigh<Ret(Args...), Allocator>>
-
- -

Sink type.

- -

Definition at line 67 of file sigh.hpp.

- -
-
- -

◆ size_type

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - -
using entt::sigh< Ret(Args...), Allocator >::size_type = std::size_t
-
- -

Unsigned integer type.

- -

Definition at line 65 of file sigh.hpp.

- -
-
-

Constructor & Destructor Documentation

- -

◆ sigh() [1/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh ()
-
-inlinenoexcept
-
- -

Default constructor.

- -

Definition at line 70 of file sigh.hpp.

- -
-
- -

◆ sigh() [2/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh (const allocator_type & allocator)
-
-inlineexplicitnoexcept
-
- -

Constructs a signal handler with a given allocator.

-
Parameters
- - -
allocatorThe allocator to use.
-
-
- -

Definition at line 77 of file sigh.hpp.

- -
-
- -

◆ sigh() [3/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh (const sigh< Ret(Args...), Allocator > & other)
-
-inline
-
- -

Copy constructor.

-
Parameters
- - -
otherThe instance to copy from.
-
-
- -

Definition at line 84 of file sigh.hpp.

- -
-
- -

◆ sigh() [4/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh (const sigh< Ret(Args...), Allocator > & other,
const allocator_type & allocator )
-
-inline
-
- -

Allocator-extended copy constructor.

-
Parameters
- - - -
otherThe instance to copy from.
allocatorThe allocator to use.
-
-
- -

Definition at line 92 of file sigh.hpp.

- -
-
- -

◆ sigh() [5/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh (sigh< Ret(Args...), Allocator > && other)
-
-inlinenoexcept
-
- -

Move constructor.

-
Parameters
- - -
otherThe instance to move from.
-
-
- -

Definition at line 99 of file sigh.hpp.

- -
-
- -

◆ sigh() [6/6]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - - - - - -
entt::sigh< Ret(Args...), Allocator >::sigh (sigh< Ret(Args...), Allocator > && other,
const allocator_type & allocator )
-
-inline
-
- -

Allocator-extended move constructor.

-
Parameters
- - - -
otherThe instance to move from.
allocatorThe allocator to use.
-
-
- -

Definition at line 107 of file sigh.hpp.

- -
-
-

Member Function Documentation

- -

◆ collect()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
-
-template<typename Func >
- - - - - -
- - - - - - - - - - - -
void entt::sigh< Ret(Args...), Allocator >::collect (Func func,
Args... args ) const
-
-inline
-
- -

Collects return values from the listeners.

-

The collector must expose a call operator with the following properties:

-
    -
  • The return type is either void or such that it's convertible to bool. In the second case, a true value will stop the iteration.
  • -
  • The list of parameters is empty if Ret is void, otherwise it contains a single element such that Ret is convertible to it.
  • -
-
Template Parameters
- - -
FuncType of collector to use, if any.
-
-
-
Parameters
- - - -
funcA valid function object.
argsArguments to use to invoke listeners.
-
-
- -

Definition at line 194 of file sigh.hpp.

- -
-
- -

◆ empty()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
bool entt::sigh< Ret(Args...), Allocator >::empty () const
-
-inlinenoexcept
-
- -

Returns false if at least a listener is connected to the signal.

-
Returns
True if the signal has no listeners connected, false otherwise.
- -

Definition at line 162 of file sigh.hpp.

- -
-
- -

◆ get_allocator()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
constexpr allocator_type entt::sigh< Ret(Args...), Allocator >::get_allocator () const
-
-inlineconstexprnoexcept
-
- -

Returns the associated allocator.

-
Returns
The associated allocator.
- -

Definition at line 146 of file sigh.hpp.

- -
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
sigh & entt::sigh< Ret(Args...), Allocator >::operator= (const sigh< Ret(Args...), Allocator > & other)
-
-inline
-
- -

Copy assignment operator.

-
Parameters
- - -
otherThe instance to copy from.
-
-
-
Returns
This signal handler.
- -

Definition at line 118 of file sigh.hpp.

- -
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
sigh & entt::sigh< Ret(Args...), Allocator >::operator= (sigh< Ret(Args...), Allocator > && other)
-
-inlinenoexcept
-
- -

Move assignment operator.

-
Parameters
- - -
otherThe instance to move from.
-
-
-
Returns
This signal handler.
- -

Definition at line 128 of file sigh.hpp.

- -
-
- -

◆ publish()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
void entt::sigh< Ret(Args...), Allocator >::publish (Args... args) const
-
-inline
-
- -

Triggers a signal.

-

All the listeners are notified. Order isn't guaranteed.

-
Parameters
- - -
argsArguments to use to invoke listeners.
-
-
- -

Definition at line 173 of file sigh.hpp.

- -
-
- -

◆ size()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
size_type entt::sigh< Ret(Args...), Allocator >::size () const
-
-inlinenoexcept
-
- -

Number of listeners connected to the signal.

-
Returns
Number of listeners currently connected.
- -

Definition at line 154 of file sigh.hpp.

- -
-
- -

◆ swap()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
void entt::sigh< Ret(Args...), Allocator >::swap (sigh< Ret(Args...), Allocator > & other)
-
-inlinenoexcept
-
- -

Exchanges the contents with those of a given signal handler.

-
Parameters
- - -
otherSignal handler to exchange the content with.
-
-
- -

Definition at line 137 of file sigh.hpp.

- -
-
-

Friends And Related Symbol Documentation

- -

◆ sink< sigh< Ret(Args...), Allocator > >

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - -
friend class sink< sigh< Ret(Args...), Allocator > >
-
-friend
-
- -

Definition at line 466 of file sigh.hpp.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classentt_1_1sink.html b/classentt_1_1sink.html index 9b0f668b4..b5881aed1 100644 --- a/classentt_1_1sink.html +++ b/classentt_1_1sink.html @@ -3,13 +3,15 @@ - + EnTT: entt::sink< typename > Class Template Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt::sink< typename > Class Template Reference
@@ -82,7 +95,7 @@ $(function() {

Sink class. More...

Detailed Description

-
template<typename>
+
template<typename>
class entt::sink< typename >

Sink class.

Primary template isn't defined on purpose. All the specializations give a compile-time error unless the template parameter is a function type.

Template Parameters
@@ -99,7 +112,8 @@ class entt::sink< typename >

Sink class.

+
diff --git a/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4-members.html b/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4-members.html deleted file mode 100644 index 8d123b649..000000000 --- a/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4-members.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
entt::sink< sigh< Ret(Args...), Allocator > > Member List
-
-
- -

This is the complete list of members for entt::sink< sigh< Ret(Args...), Allocator > >, including all inherited members.

- - - - - - - -
connect(Type &&...value_or_instance)entt::sink< sigh< Ret(Args...), Allocator > >inline
disconnect(Type &&...value_or_instance)entt::sink< sigh< Ret(Args...), Allocator > >inline
disconnect(const void *value_or_instance)entt::sink< sigh< Ret(Args...), Allocator > >inline
disconnect()entt::sink< sigh< Ret(Args...), Allocator > >inline
empty() const noexceptentt::sink< sigh< Ret(Args...), Allocator > >inline
sink(sigh< Ret(Args...), Allocator > &ref) noexceptentt::sink< sigh< Ret(Args...), Allocator > >inline
- - - - diff --git a/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html b/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html deleted file mode 100644 index b1096c1ba..000000000 --- a/classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - -EnTT: entt::sink< sigh< Ret(Args...), Allocator > > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
EnTT 3.14.0 -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
entt::sink< sigh< Ret(Args...), Allocator > > Class Template Reference
-
-
- -

Sink class. - More...

- -

#include <sigh.hpp>

- - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 sink (sigh< Ret(Args...), Allocator > &ref) noexcept
 Constructs a sink that is allowed to modify a given signal.
 
bool empty () const noexcept
 Returns false if at least a listener is connected to the sink.
 
template<auto Candidate, typename... Type>
connection connect (Type &&...value_or_instance)
 Connects a free function (with or without payload), a bound or an unbound member to a signal.
 
template<auto Candidate, typename... Type>
void disconnect (Type &&...value_or_instance)
 Disconnects a free function (with or without payload), a bound or an unbound member from a signal.
 
void disconnect (const void *value_or_instance)
 Disconnects free functions with payload or bound members from a signal.
 
void disconnect ()
 Disconnects all the listeners from a signal.
 
-

Detailed Description

-
template<typename Ret, typename... Args, typename Allocator>
-class entt::sink< sigh< Ret(Args...), Allocator > >

Sink class.

-

A sink is used to connect listeners to signals and to disconnect them.
- The function type for a listener is the one of the signal to which it belongs.

-

The clear separation between a signal and a sink permits to store the former as private data member without exposing the publish functionality to the users of the class.

-
Warning
Lifetime of a sink must not overcome that of the signal to which it refers. In any other case, attempting to use a sink results in undefined behavior.
-
Template Parameters
- - - - -
RetReturn type of a function type.
ArgsTypes of arguments of a function type.
AllocatorType of allocator used to manage memory and elements.
-
-
- -

Definition at line 360 of file sigh.hpp.

-

Constructor & Destructor Documentation

- -

◆ sink()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
entt::sink< sigh< Ret(Args...), Allocator > >::sink (sigh< Ret(Args...), Allocator > & ref)
-
-inlinenoexcept
-
- -

Constructs a sink that is allowed to modify a given signal.

-
Parameters
- - -
refA valid reference to a signal object.
-
-
- -

Definition at line 390 of file sigh.hpp.

- -
-
-

Member Function Documentation

- -

◆ connect()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
-
-template<auto Candidate, typename... Type>
- - - - - -
- - - - - - - -
connection entt::sink< sigh< Ret(Args...), Allocator > >::connect (Type &&... value_or_instance)
-
-inline
-
- -

Connects a free function (with or without payload), a bound or an unbound member to a signal.

-
Template Parameters
- - - -
CandidateFunction or member to connect to the signal.
TypeType of class or type of payload, if any.
-
-
-
Parameters
- - -
value_or_instanceA valid object that fits the purpose, if any.
-
-
-
Returns
A properly initialized connection object.
- -

Definition at line 410 of file sigh.hpp.

- -
-
- -

◆ disconnect() [1/3]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
void entt::sink< sigh< Ret(Args...), Allocator > >::disconnect ()
-
-inline
-
- -

Disconnects all the listeners from a signal.

- -

Definition at line 447 of file sigh.hpp.

- -
-
- -

◆ disconnect() [2/3]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
void entt::sink< sigh< Ret(Args...), Allocator > >::disconnect (const void * value_or_instance)
-
-inline
-
- -

Disconnects free functions with payload or bound members from a signal.

-
Parameters
- - -
value_or_instanceA valid object that fits the purpose.
-
-
- -

Definition at line 441 of file sigh.hpp.

- -
-
- -

◆ disconnect() [3/3]

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
-
-template<auto Candidate, typename... Type>
- - - - - -
- - - - - - - -
void entt::sink< sigh< Ret(Args...), Allocator > >::disconnect (Type &&... value_or_instance)
-
-inline
-
- -

Disconnects a free function (with or without payload), a bound or an unbound member from a signal.

-
Template Parameters
- - - -
CandidateFunction or member to disconnect from the signal.
TypeType of class or type of payload, if any.
-
-
-
Parameters
- - -
value_or_instanceA valid object that fits the purpose, if any.
-
-
- -

Definition at line 430 of file sigh.hpp.

- -
-
- -

◆ empty()

- -
-
-
-template<typename Ret , typename... Args, typename Allocator >
- - - - - -
- - - - - - - -
bool entt::sink< sigh< Ret(Args...), Allocator > >::empty () const
-
-inlinenoexcept
-
- -

Returns false if at least a listener is connected to the sink.

-
Returns
True if the sink has no listeners connected, false otherwise.
- -

Definition at line 397 of file sigh.hpp.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classes.html b/classes.html index 5fdde9423..1ab643db1 100644 --- a/classes.html +++ b/classes.html @@ -3,13 +3,15 @@ - + EnTT: Class Index + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,24 +33,35 @@
- + +
+
+
adjacency_matrix (entt)
adl_meta_pointer_like (entt)
allocation_deleter (entt)
as_cref_t (entt)
as_group (entt)
as_is_t (entt)
as_ref_t (entt)
as_view (entt)
as_void_t (entt)
B
-
basic_any (entt)
basic_collector (entt)
basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > (entt)
basic_collector<> (entt)
basic_common_view (entt)
basic_continuous_loader (entt)
basic_dispatcher (entt)
basic_entt_traits (entt)
basic_flow (entt)
basic_group (entt)
basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > (entt)
basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > (entt)
basic_handle (entt)
basic_hashed_string (entt)
basic_meta_associative_container_traits (entt)
basic_meta_sequence_container_traits (entt)
basic_observer (entt)
basic_organizer (entt)
basic_poly (entt)
basic_reactive_mixin (entt)
basic_registry (entt)
basic_runtime_view (entt)
basic_scheduler (entt)
basic_sigh_mixin (entt)
basic_snapshot (entt)
basic_snapshot_loader (entt)
basic_sparse_set (entt)
basic_storage (entt)
basic_storage< Entity, Entity, Allocator > (entt)
basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > (entt)
basic_storage_view (entt)
basic_table (entt)
basic_view (entt)
basic_view< get_t< Get >, exclude_t<> > (entt)
basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> > (entt)
+
basic_any (entt)
basic_common_view (entt)
basic_continuous_loader (entt)
basic_dispatcher (entt)
basic_entt_traits (entt)
basic_flow (entt)
basic_group (entt)
basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > > (entt)
basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > > (entt)
basic_handle (entt)
basic_hashed_string (entt)
basic_meta_associative_container_traits (entt)
basic_meta_sequence_container_traits (entt)
basic_organizer (entt)
basic_poly (entt)
basic_reactive_mixin (entt)
basic_registry (entt)
basic_runtime_view (entt)
basic_scheduler (entt)
basic_sigh_mixin (entt)
basic_snapshot (entt)
basic_snapshot_loader (entt)
basic_sparse_set (entt)
basic_storage (entt)
basic_storage< Entity, Entity, Allocator > (entt)
basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > (entt)
basic_storage_view (entt)
basic_table (entt)
basic_view (entt)
basic_view< get_t< Get >, exclude_t<> > (entt)
basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> > (entt)
C
choice_t (entt)
choice_t< 0 > (entt)
component_traits (entt)
compressed_pair (entt)
connect_arg_t (entt)
connection (entt)
constness_as (entt)
constness_as< To, const From > (entt)
D
-
delegate (entt)
delegate< Ret(Args...)> (entt)
dense_map (entt)
dense_set (entt)
directed_tag (entt)
+
delegate (entt)
dense_map (entt)
dense_set (entt)
directed_tag (entt)
E
emitter (entt)
entt_traits (entt)
enum_as_bitmask (entt)
enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> > (entt)
exclude_t (entt)
@@ -99,13 +112,13 @@ $(function() {
get_t (entt)
I
-
ident (entt)
identity (entt)
input_iterator_pointer (entt)
insertion_sort (entt)
iota_iterator (entt)
is_applicable (entt)
is_applicable< Func, const Tuple< Args... > > (entt)
is_applicable< Func, Tuple< Args... > > (entt)
is_applicable_r (entt)
is_applicable_r< Ret, Func, std::tuple< Args... > > (entt)
is_complete (entt)
is_complete< Type, std::void_t< decltype(sizeof(Type))> > (entt)
is_ebco_eligible (entt)
is_equality_comparable (entt)
is_equality_comparable< const Type > (entt)
is_iterator (entt)
is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > > (entt)
is_meta_pointer_like (entt)
is_meta_pointer_like< const Type > (entt)
is_meta_pointer_like< std::shared_ptr< Type > > (entt)
is_meta_pointer_like< std::unique_ptr< Type, Args... > > (entt)
is_meta_pointer_like< Type * > (entt)
is_meta_pointer_like< Type(*)[N]> (entt)
is_meta_policy (entt)
is_transparent (entt)
is_transparent< Type, std::void_t< typename Type::is_transparent > > (entt)
is_tuple (entt)
iterable_adaptor (entt)
+
ident (entt)
identity (entt)
input_iterator_pointer (entt)
insertion_sort (entt)
iota_iterator (entt)
is_applicable (entt)
is_applicable< Func, const Tuple< Args... > > (entt)
is_applicable< Func, Tuple< Args... > > (entt)
is_applicable_r (entt)
is_applicable_r< Ret, Func, std::tuple< Args... > > (entt)
is_complete (entt)
is_complete< Type, std::void_t< decltype(sizeof(Type))> > (entt)
is_ebco_eligible (entt)
is_equality_comparable (entt)
is_equality_comparable< const Type > (entt)
is_iterator (entt)
is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > > (entt)
is_meta_pointer_like (entt)
is_meta_pointer_like< const Type > (entt)
is_meta_pointer_like< std::shared_ptr< Type > > (entt)
is_meta_pointer_like< std::unique_ptr< Type, Args... > > (entt)
is_meta_pointer_like< Type * > (entt)
is_meta_pointer_like< Type(*)[N]> (entt)
is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > > (entt)
is_meta_policy (entt)
is_transparent (entt)
is_transparent< Type, std::void_t< typename Type::is_transparent > > (entt)
is_tuple (entt)
is_tuple< std::tuple< Args... > > (entt)
iterable_adaptor (entt)
L
locator (entt)
M
-
matcher (entt)
member_class (entt)
meta_any (entt)
meta_associative_container (entt)
meta_associative_container_traits (entt)
meta_associative_container_traits< dense_map< Args... > > (entt)
meta_associative_container_traits< dense_set< Args... > > (entt)
meta_associative_container_traits< std::map< Args... > > (entt)
meta_associative_container_traits< std::set< Args... > > (entt)
meta_associative_container_traits< std::unordered_map< Args... > > (entt)
meta_associative_container_traits< std::unordered_set< Args... > > (entt)
meta_class_template_tag (entt)
meta_ctx (entt)
meta_ctx_arg_t (entt)
meta_custom (entt)
meta_data (entt)
meta_factory (entt)
meta_func (entt)
meta_function_descriptor (entt)
meta_function_descriptor< Type, Ret Class::* > (entt)
meta_function_descriptor< Type, Ret(*)()> (entt)
meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)> (entt)
meta_function_descriptor< Type, Ret(Class::*)(Args...) const > (entt)
meta_function_descriptor< Type, Ret(Class::*)(Args...)> (entt)
meta_function_descriptor_traits (entt)
meta_function_helper (entt)
meta_handle (entt)
meta_prop (entt)
meta_sequence_container (entt)
meta_sequence_container_traits (entt)
meta_sequence_container_traits< std::array< Type, N > > (entt)
meta_sequence_container_traits< std::deque< Args... > > (entt)
meta_sequence_container_traits< std::list< Args... > > (entt)
meta_sequence_container_traits< std::vector< Args... > > (entt)
meta_template_traits (entt)
meta_template_traits< Clazz< Args... > > (entt)
meta_type (entt)
monostate (entt)
+
member_class (entt)
meta_any (entt)
meta_associative_container (entt)
meta_associative_container_traits (entt)
meta_associative_container_traits< dense_map< Args... > > (entt)
meta_associative_container_traits< dense_set< Args... > > (entt)
meta_associative_container_traits< std::map< Args... > > (entt)
meta_associative_container_traits< std::set< Args... > > (entt)
meta_associative_container_traits< std::unordered_map< Args... > > (entt)
meta_associative_container_traits< std::unordered_set< Args... > > (entt)
meta_class_template_tag (entt)
meta_ctx (entt)
meta_ctx_arg_t (entt)
meta_custom (entt)
meta_data (entt)
meta_factory (entt)
meta_func (entt)
meta_function_descriptor (entt)
meta_function_descriptor< Type, Ret Class::* > (entt)
meta_function_descriptor< Type, Ret(*)()> (entt)
meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)> (entt)
meta_function_descriptor< Type, Ret(Class::*)(Args...) const > (entt)
meta_function_descriptor< Type, Ret(Class::*)(Args...)> (entt)
meta_function_descriptor_traits (entt)
meta_function_helper (entt)
meta_handle (entt)
meta_sequence_container (entt)
meta_sequence_container_traits (entt)
meta_sequence_container_traits< std::array< Type, N > > (entt)
meta_sequence_container_traits< std::deque< Args... > > (entt)
meta_sequence_container_traits< std::list< Args... > > (entt)
meta_sequence_container_traits< std::vector< Args... > > (entt)
meta_template_traits (entt)
meta_template_traits< Clazz< Args... > > (entt)
meta_type (entt)
monostate (entt)
N
nth_argument (entt)
null_t (entt)
@@ -120,7 +133,7 @@ $(function() {
radix_sort (entt)
reactive (entt)
resource (entt)
resource_cache (entt)
resource_loader (entt)
S
-
scoped_connection (entt)
sigh (entt)
sigh< Ret(Args...), Allocator > (entt)
sigh_helper (entt)
sigh_helper< Registry > (entt)
sigh_helper< Registry, Type > (entt)
sink (entt)
sink< sigh< Ret(Args...), Allocator > > (entt)
size_of (entt)
size_of< Type, std::void_t< decltype(sizeof(Type))> > (entt)
std_sort (entt)
storage_for (entt)
storage_type (entt)
storage_type< reactive, Entity, Allocator > (entt)
+
scoped_connection (entt)
sigh (entt)
sigh_helper (entt)
sigh_helper< Registry > (entt)
sigh_helper< Registry, Type > (entt)
sink (entt)
size_of (entt)
size_of< Type, std::void_t< decltype(sizeof(Type))> > (entt)
std_sort (entt)
storage_for (entt)
storage_type (entt)
storage_type< reactive, Entity, Allocator > (entt)
T
tombstone_t (entt)
tuple_element< Index, entt::compressed_pair< First, Second > > (std)
tuple_element< Index, entt::type_list< Type... > > (std)
tuple_element< Index, entt::value_list< Value... > > (std)
tuple_size< entt::compressed_pair< First, Second > > (std)
tuple_size< entt::type_list< Type... > > (std)
tuple_size< entt::value_list< Value... > > (std)
type_hash (entt)
type_identity (entt)
type_index (entt)
type_info (entt)
type_list (entt)
type_list_cat (entt)
type_list_cat< type_list< Type... > > (entt)
type_list_cat< type_list< Type... >, type_list< Other... >, List... > (entt)
type_list_cat<> (entt)
type_list_contains (entt)
type_list_contains< type_list< Type... >, Other > (entt)
type_list_diff (entt)
type_list_diff< type_list< Type... >, type_list< Other... > > (entt)
type_list_element (entt)
type_list_element< 0u, type_list< First, Other... > > (entt)
type_list_element< Index, type_list< First, Other... > > (entt)
type_list_index (entt)
type_list_index< Type, type_list< First, Other... > > (entt)
type_list_index< Type, type_list< Type, Other... > > (entt)
type_list_index< Type, type_list<> > (entt)
type_list_transform (entt)
type_list_transform< exclude_t< Type... >, Op > (entt)
type_list_transform< get_t< Type... >, Op > (entt)
type_list_transform< owned_t< Type... >, Op > (entt)
type_list_transform< type_list< Type... >, Op > (entt)
type_list_unique (entt)
type_name (entt)
@@ -137,7 +150,8 @@ $(function() {
+
diff --git a/clipboard.js b/clipboard.js index 42c1fb0e0..9da9f3ca4 100644 --- a/clipboard.js +++ b/clipboard.js @@ -28,8 +28,8 @@ SOFTWARE. */ let clipboard_title = "Copy to clipboard" -let clipboard_icon = `` -let clipboard_successIcon = `` +let clipboard_icon = `` +let clipboard_successIcon = `` let clipboard_successDuration = 1000 $(function() { diff --git a/component_8hpp_source.html b/component_8hpp_source.html index 948d41818..e575b06b3 100644 --- a/component_8hpp_source.html +++ b/component_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/component.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
component.hpp
@@ -92,7 +100,7 @@ $(function() { codefold.init(0); });
7#include "fwd.hpp"
8
9namespace entt {
-
10
+
10
12namespace internal {
13
14template<typename Type, typename = void>
@@ -116,30 +124,34 @@ $(function() { codefold.init(0); });
32 : std::integral_constant<std::size_t, Type::page_size> {};
33
34} // namespace internal
-
41template<typename Type, typename = void>
-
- -
43 static_assert(std::is_same_v<std::decay_t<Type>, Type>, "Unsupported type");
-
44
-
46 using type = Type;
-
47
-
49 static constexpr bool in_place_delete = internal::in_place_delete<Type>::value;
-
51 static constexpr std::size_t page_size = internal::page_size<Type>::value;
-
52};
+
36
+
42template<typename Type, typename Entity, typename>
+
+ +
44 static_assert(std::is_same_v<std::decay_t<Type>, Type>, "Unsupported type");
+
45
+
47 using element_type = Type;
+
49 using entity_type = Entity;
+
50
+
52 static constexpr bool in_place_delete = internal::in_place_delete<Type>::value;
+
54 static constexpr std::size_t page_size = internal::page_size<Type>::value;
+
55};
-
53
-
54} // namespace entt
-
55
-
56#endif
+
56
+
57} // namespace entt
+
58
+
59#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
Common way to access various properties of components.
Definition component.hpp:42
-
static constexpr std::size_t page_size
Page size, default is ENTT_PACKED_PAGE for non-empty types.
Definition component.hpp:51
-
static constexpr bool in_place_delete
Pointer stability, default is false.
Definition component.hpp:49
-
Type type
Component type.
Definition component.hpp:46
+
Common way to access various properties of components.
Definition component.hpp:43
+
static constexpr bool in_place_delete
Definition component.hpp:52
+
Type element_type
Element type.
Definition component.hpp:47
+
Entity entity_type
Underlying entity identifier.
Definition component.hpp:49
+
static constexpr std::size_t page_size
Definition component.hpp:54
+
diff --git a/compressed__pair_8hpp_source.html b/compressed__pair_8hpp_source.html index 44fc5daf2..593e3a593 100644 --- a/compressed__pair_8hpp_source.html +++ b/compressed__pair_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/compressed_pair.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
compressed_pair.hpp
@@ -94,7 +102,7 @@ $(function() { codefold.init(0); });
9#include "type_traits.hpp"
10
11namespace entt {
-
12
+
12
14namespace internal {
15
16template<typename Type, std::size_t, typename = void>
@@ -154,124 +162,125 @@ $(function() { codefold.init(0); });
70};
71
72} // namespace internal
+
74
84template<typename First, typename Second>
- +
85class compressed_pair final
86 : internal::compressed_pair_element<First, 0u>,
87 internal::compressed_pair_element<Second, 1u> {
88 using first_base = internal::compressed_pair_element<First, 0u>;
89 using second_base = internal::compressed_pair_element<Second, 1u>;
90
91public:
- - -
96
+
93 using first_type = First;
+
95 using second_type = Second;
+
96
105 template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<first_type> && std::is_default_constructible_v<second_type>>>
- +
106 constexpr compressed_pair() noexcept(std::is_nothrow_default_constructible_v<first_base> && std::is_nothrow_default_constructible_v<second_base>)
107 : first_base{},
108 second_base{} {}
-
109
-
114 constexpr compressed_pair(const compressed_pair &other) = default;
-
115
-
120 constexpr compressed_pair(compressed_pair &&other) noexcept = default;
-
121
+
109
+
114 constexpr compressed_pair(const compressed_pair &other) = default;
+
115
+
120 constexpr compressed_pair(compressed_pair &&other) noexcept = default;
+
121
129 template<typename Arg, typename Other>
-
130 constexpr compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v<first_base, Arg> && std::is_nothrow_constructible_v<second_base, Other>)
-
131 : first_base{std::forward<Arg>(arg)},
-
132 second_base{std::forward<Other>(other)} {}
+
130 constexpr compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v<first_base, Arg> && std::is_nothrow_constructible_v<second_base, Other>)
+
131 : first_base{std::forward<Arg>(arg)},
+
132 second_base{std::forward<Other>(other)} {}
-
133
-
141 template<typename... Args, typename... Other>
+
133
+
141 template<typename... Args, typename... Other>
-
142 constexpr compressed_pair(std::piecewise_construct_t, std::tuple<Args...> args, std::tuple<Other...> other) noexcept(std::is_nothrow_constructible_v<first_base, Args...> && std::is_nothrow_constructible_v<second_base, Other...>)
-
143 : first_base{std::move(args), std::index_sequence_for<Args...>{}},
-
144 second_base{std::move(other), std::index_sequence_for<Other...>{}} {}
+
142 constexpr compressed_pair(std::piecewise_construct_t, std::tuple<Args...> args, std::tuple<Other...> other) noexcept(std::is_nothrow_constructible_v<first_base, Args...> && std::is_nothrow_constructible_v<second_base, Other...>)
+
143 : first_base{std::move(args), std::index_sequence_for<Args...>{}},
+
144 second_base{std::move(other), std::index_sequence_for<Other...>{}} {}
-
145
+
145
147 ~compressed_pair() = default;
-
148
-
154 constexpr compressed_pair &operator=(const compressed_pair &other) = default;
-
155
-
161 constexpr compressed_pair &operator=(compressed_pair &&other) noexcept = default;
-
162
+
148
+
154 constexpr compressed_pair &operator=(const compressed_pair &other) = default;
+
155
+
161 constexpr compressed_pair &operator=(compressed_pair &&other) noexcept = default;
+
162
- +
167 [[nodiscard]] constexpr first_type &first() noexcept {
168 return static_cast<first_base &>(*this).get();
169 }
-
170
+
170
-
172 [[nodiscard]] constexpr const first_type &first() const noexcept {
+
172 [[nodiscard]] constexpr const first_type &first() const noexcept {
173 return static_cast<const first_base &>(*this).get();
174 }
-
175
+
175
- +
180 [[nodiscard]] constexpr second_type &second() noexcept {
181 return static_cast<second_base &>(*this).get();
182 }
-
183
+
183
-
185 [[nodiscard]] constexpr const second_type &second() const noexcept {
+
185 [[nodiscard]] constexpr const second_type &second() const noexcept {
186 return static_cast<const second_base &>(*this).get();
187 }
-
188
+
188
-
193 constexpr void swap(compressed_pair &other) noexcept {
+
193 constexpr void swap(compressed_pair &other) noexcept {
194 using std::swap;
-
195 swap(first(), other.first());
-
196 swap(second(), other.second());
+
195 swap(first(), other.first());
+
196 swap(second(), other.second());
197 }
-
198
+
198
205 template<std::size_t Index>
-
206 [[nodiscard]] constexpr decltype(auto) get() noexcept {
-
207 if constexpr(Index == 0u) {
-
208 return first();
+
206 [[nodiscard]] constexpr decltype(auto) get() noexcept {
+
207 if constexpr(Index == 0u) {
+
208 return first();
209 } else {
-
210 static_assert(Index == 1u, "Index out of bounds");
-
211 return second();
+
210 static_assert(Index == 1u, "Index out of bounds");
+
211 return second();
212 }
213 }
-
214
+
214
216 template<std::size_t Index>
-
217 [[nodiscard]] constexpr decltype(auto) get() const noexcept {
-
218 if constexpr(Index == 0u) {
-
219 return first();
+
217 [[nodiscard]] constexpr decltype(auto) get() const noexcept {
+
218 if constexpr(Index == 0u) {
+
219 return first();
220 } else {
-
221 static_assert(Index == 1u, "Index out of bounds");
-
222 return second();
+
221 static_assert(Index == 1u, "Index out of bounds");
+
222 return second();
223 }
224 }
225};
-
226
+
226
232template<typename Type, typename Other>
233compressed_pair(Type &&, Other &&) -> compressed_pair<std::decay_t<Type>, std::decay_t<Other>>;
-
234
+
234
242template<typename First, typename Second>
- -
244 lhs.swap(rhs);
+ +
244 lhs.swap(rhs);
245}
246
247} // namespace entt
248
249namespace std {
-
250
+
250
256template<typename First, typename Second>
257struct tuple_size<entt::compressed_pair<First, Second>>: integral_constant<size_t, 2u> {};
-
258
+
258
265template<size_t Index, typename First, typename Second>
266struct tuple_element<Index, entt::compressed_pair<First, Second>>: conditional<Index == 0u, First, Second> {
@@ -301,13 +310,13 @@ $(function() { codefold.init(0); });
Second second_type
The type of the second element that the pair stores.
constexpr compressed_pair & operator=(compressed_pair &&other) noexcept=default
Move assignment operator.
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
Swaps two compressed pair objects.
-
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:168
+
constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs) noexcept
Swaps two compressed pair objects.
+
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:167
+ diff --git a/structentt_1_1matcher.html b/config.html similarity index 65% rename from structentt_1_1matcher.html rename to config.html index 8646ac1c5..372feb86d 100644 --- a/structentt_1_1matcher.html +++ b/config.html @@ -3,13 +3,15 @@ - + -EnTT: entt::matcher<... > Struct Template Reference +EnTT: config + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
- -
-
entt::matcher<... > Struct Template Reference
+
+
+
config
- -

Grouping matcher. - More...

- -

#include <observer.hpp>

-

Detailed Description

-
template<typename...>
-struct entt::matcher<... >

Grouping matcher.

- -

Definition at line 17 of file observer.hpp.

-

The documentation for this struct was generated from the following file:
+
+
diff --git a/config_8h_source.html b/config_8h_source.html index 9ef7d5b93..31eb99ee6 100644 --- a/config_8h_source.html +++ b/config_8h_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/config/config.h Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
config.h
@@ -102,86 +110,99 @@ $(function() { codefold.init(0); });
17# define ENTT_CATCH if(false)
18#endif
19
-
20#ifdef ENTT_USE_ATOMIC
-
21# include <atomic>
-
22# define ENTT_MAYBE_ATOMIC(Type) std::atomic<Type>
-
23#else
-
24# define ENTT_MAYBE_ATOMIC(Type) Type
-
25#endif
-
26
-
27#ifndef ENTT_ID_TYPE
-
28# include <cstdint>
-
29# define ENTT_ID_TYPE std::uint32_t
-
30#else
-
31# include <cstdint> // provides coverage for types in the std namespace
-
32#endif
-
33
-
34#ifndef ENTT_SPARSE_PAGE
-
35# define ENTT_SPARSE_PAGE 4096
-
36#endif
-
37
-
38#ifndef ENTT_PACKED_PAGE
-
39# define ENTT_PACKED_PAGE 1024
-
40#endif
-
41
-
42#ifdef ENTT_DISABLE_ASSERT
-
43# undef ENTT_ASSERT
-
44# define ENTT_ASSERT(condition, msg) (void(0))
-
45#elif !defined ENTT_ASSERT
-
46# include <cassert>
-
47# define ENTT_ASSERT(condition, msg) assert(((condition) && (msg)))
+
20#if __has_include(<version>)
+
21# include <version>
+
22#
+
23# if defined(__cpp_consteval)
+
24# define ENTT_CONSTEVAL consteval
+
25# endif
+
26#endif
+
27
+
28#ifndef ENTT_CONSTEVAL
+
29# define ENTT_CONSTEVAL constexpr
+
30#endif
+
31
+
32#ifdef ENTT_USE_ATOMIC
+
33# include <atomic>
+
34# define ENTT_MAYBE_ATOMIC(Type) std::atomic<Type>
+
35#else
+
36# define ENTT_MAYBE_ATOMIC(Type) Type
+
37#endif
+
38
+
39#ifndef ENTT_ID_TYPE
+
40# include <cstdint>
+
41# define ENTT_ID_TYPE std::uint32_t
+
42#else
+
43# include <cstdint> // provides coverage for types in the std namespace
+
44#endif
+
45
+
46#ifndef ENTT_SPARSE_PAGE
+
47# define ENTT_SPARSE_PAGE 4096
48#endif
49
-
50#ifdef ENTT_DISABLE_ASSERT
-
51# undef ENTT_ASSERT_CONSTEXPR
-
52# define ENTT_ASSERT_CONSTEXPR(condition, msg) (void(0))
-
53#elif !defined ENTT_ASSERT_CONSTEXPR
-
54# define ENTT_ASSERT_CONSTEXPR(condition, msg) ENTT_ASSERT(condition, msg)
-
55#endif
-
56
-
57#define ENTT_FAIL(msg) ENTT_ASSERT(false, msg);
-
58
-
59#ifdef ENTT_NO_ETO
-
60# define ENTT_ETO_TYPE(Type) void
-
61#else
-
62# define ENTT_ETO_TYPE(Type) Type
-
63#endif
-
64
-
65#ifdef ENTT_NO_MIXIN
-
66# define ENTT_STORAGE(Mixin, ...) __VA_ARGS__
-
67#else
-
68# define ENTT_STORAGE(Mixin, ...) Mixin<__VA_ARGS__>
-
69#endif
+
50#ifndef ENTT_PACKED_PAGE
+
51# define ENTT_PACKED_PAGE 1024
+
52#endif
+
53
+
54#ifdef ENTT_DISABLE_ASSERT
+
55# undef ENTT_ASSERT
+
56# define ENTT_ASSERT(condition, msg) (void(0))
+
57#elif !defined ENTT_ASSERT
+
58# include <cassert>
+
59# define ENTT_ASSERT(condition, msg) assert(((condition) && (msg)))
+
60#endif
+
61
+
62#ifdef ENTT_DISABLE_ASSERT
+
63# undef ENTT_ASSERT_CONSTEXPR
+
64# define ENTT_ASSERT_CONSTEXPR(condition, msg) (void(0))
+
65#elif !defined ENTT_ASSERT_CONSTEXPR
+
66# define ENTT_ASSERT_CONSTEXPR(condition, msg) ENTT_ASSERT(condition, msg)
+
67#endif
+
68
+
69#define ENTT_FAIL(msg) ENTT_ASSERT(false, msg);
70
-
71#ifdef ENTT_STANDARD_CPP
-
72# define ENTT_NONSTD false
+
71#ifdef ENTT_NO_ETO
+
72# define ENTT_ETO_TYPE(Type) void
73#else
-
74# define ENTT_NONSTD true
-
75# if defined __clang__ || defined __GNUC__
-
76# define ENTT_PRETTY_FUNCTION __PRETTY_FUNCTION__
-
77# define ENTT_PRETTY_FUNCTION_PREFIX '='
-
78# define ENTT_PRETTY_FUNCTION_SUFFIX ']'
-
79# elif defined _MSC_VER
-
80# define ENTT_PRETTY_FUNCTION __FUNCSIG__
-
81# define ENTT_PRETTY_FUNCTION_PREFIX '<'
-
82# define ENTT_PRETTY_FUNCTION_SUFFIX '>'
-
83# endif
-
84#endif
-
85
-
86#if defined _MSC_VER
-
87# pragma detect_mismatch("entt.version", ENTT_VERSION)
-
88# pragma detect_mismatch("entt.noexcept", ENTT_XSTR(ENTT_TRY))
-
89# pragma detect_mismatch("entt.id", ENTT_XSTR(ENTT_ID_TYPE))
-
90# pragma detect_mismatch("entt.nonstd", ENTT_XSTR(ENTT_NONSTD))
-
91#endif
-
92
-
93// NOLINTEND(cppcoreguidelines-macro-usage)
-
94
-
95#endif
+
74# define ENTT_ETO_TYPE(Type) Type
+
75#endif
+
76
+
77#ifdef ENTT_NO_MIXIN
+
78# define ENTT_STORAGE(Mixin, ...) __VA_ARGS__
+
79#else
+
80# define ENTT_STORAGE(Mixin, ...) Mixin<__VA_ARGS__>
+
81#endif
+
82
+
83#ifdef ENTT_STANDARD_CPP
+
84# define ENTT_NONSTD false
+
85#else
+
86# define ENTT_NONSTD true
+
87# if defined __clang__ || defined __GNUC__
+
88# define ENTT_PRETTY_FUNCTION __PRETTY_FUNCTION__
+
89# define ENTT_PRETTY_FUNCTION_PREFIX '='
+
90# define ENTT_PRETTY_FUNCTION_SUFFIX ']'
+
91# elif defined _MSC_VER
+
92# define ENTT_PRETTY_FUNCTION __FUNCSIG__
+
93# define ENTT_PRETTY_FUNCTION_PREFIX '<'
+
94# define ENTT_PRETTY_FUNCTION_SUFFIX '>'
+
95# endif
+
96#endif
+
97
+
98#if defined _MSC_VER
+
99# pragma detect_mismatch("entt.version", ENTT_VERSION)
+
100# pragma detect_mismatch("entt.noexcept", ENTT_XSTR(ENTT_TRY))
+
101# pragma detect_mismatch("entt.id", ENTT_XSTR(ENTT_ID_TYPE))
+
102# pragma detect_mismatch("entt.nonstd", ENTT_XSTR(ENTT_NONSTD))
+
103#endif
+
104
+
105// NOLINTEND(cppcoreguidelines-macro-usage)
+
106
+
107#endif
+ diff --git a/container_2fwd_8hpp_source.html b/container_2fwd_8hpp_source.html index 86cfc4dae..2a976f26f 100644 --- a/container_2fwd_8hpp_source.html +++ b/container_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/container/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
fwd.hpp
@@ -94,36 +102,39 @@ $(function() { codefold.init(0); });
9namespace entt {
10
11template<
-
12 typename Key,
+
12 typename Key,
13 typename Type,
14 typename = std::hash<Key>,
15 typename = std::equal_to<>,
16 typename = std::allocator<std::pair<const Key, Type>>>
-
17class dense_map;
+
17class dense_map;
18
19template<
20 typename Type,
21 typename = std::hash<Type>,
22 typename = std::equal_to<>,
23 typename = std::allocator<Type>>
-
24class dense_set;
+
24class dense_set;
25
26template<typename...>
-
27class basic_table;
-
28
+
27class basic_table;
+
28
33template<typename... Type>
- +
35
36} // namespace entt
37
38#endif
Basic table implementation.
Definition table.hpp:149
+
Associative container for key-value pairs with unique keys.
+
Associative container for unique objects of a given type.
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
basic_table< std::vector< Type >... > table
Alias declaration for the most common use case.
Definition fwd.hpp:34
+ diff --git a/container_8hpp_source.html b/container_8hpp_source.html index 503861932..cff29a361 100644 --- a/container_8hpp_source.html +++ b/container_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/container.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
container.hpp
@@ -105,7 +113,7 @@ $(function() { codefold.init(0); });
20#include "type_traits.hpp"
21
22namespace entt {
-
23
+
23
25namespace internal {
26
27template<typename, typename = void>
@@ -136,241 +144,242 @@ $(function() { codefold.init(0); });
52inline constexpr bool reserve_aware_container_v = reserve_aware_container<Type>::value;
53
54} // namespace internal
+
56
61template<typename Type>
63 static_assert(std::is_same_v<Type, std::remove_cv_t<std::remove_reference_t<Type>>>, "Unexpected type");
-
64
+
64
-
69
+
69
71 static constexpr bool fixed_size = internal::fixed_size_sequence_container_v<Type>;
-
72
+
72
-
78 [[nodiscard]] static size_type size(const void *container) {
-
79 return static_cast<const Type *>(container)->size();
+
78 [[nodiscard]] static size_type size(const void *container) {
+
79 return static_cast<const Type *>(container)->size();
80 }
-
81
+
81
-
87 [[nodiscard]] static bool clear([[maybe_unused]] void *container) {
+
87 [[nodiscard]] static bool clear([[maybe_unused]] void *container) {
88 if constexpr(fixed_size) {
89 return false;
90 } else {
-
91 static_cast<Type *>(container)->clear();
+
91 static_cast<Type *>(container)->clear();
92 return true;
93 }
94 }
-
95
+
95
-
102 [[nodiscard]] static bool reserve([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
+
102 [[nodiscard]] static bool reserve([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
103 if constexpr(internal::reserve_aware_container_v<Type>) {
-
104 static_cast<Type *>(container)->reserve(sz);
+
104 static_cast<Type *>(container)->reserve(sz);
105 return true;
106 } else {
107 return false;
108 }
109 }
-
110
+
110
-
117 [[nodiscard]] static bool resize([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
+
117 [[nodiscard]] static bool resize([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
118 if constexpr(fixed_size || !std::is_default_constructible_v<typename Type::value_type>) {
119 return false;
120 } else {
-
121 static_cast<Type *>(container)->resize(sz);
+
121 static_cast<Type *>(container)->resize(sz);
122 return true;
123 }
124 }
-
125
+
125
-
133 static iterator begin(const meta_ctx &area, void *container, const void *as_const) {
-
134 return (container != nullptr) ? iterator{area, static_cast<Type *>(container)->begin()}
-
135 : iterator{area, static_cast<const Type *>(as_const)->begin()};
+
133 static iterator begin(const meta_ctx &area, void *container, const void *as_const) {
+
134 return (container != nullptr) ? iterator{area, static_cast<Type *>(container)->begin()}
+
135 : iterator{area, static_cast<const Type *>(as_const)->begin()};
136 }
-
137
+
137
-
145 static iterator end(const meta_ctx &area, void *container, const void *as_const) {
-
146 return (container != nullptr) ? iterator{area, static_cast<Type *>(container)->end()}
-
147 : iterator{area, static_cast<const Type *>(as_const)->end()};
+
145 static iterator end(const meta_ctx &area, void *container, const void *as_const) {
+
146 return (container != nullptr) ? iterator{area, static_cast<Type *>(container)->end()}
+
147 : iterator{area, static_cast<const Type *>(as_const)->end()};
148 }
-
149
+
149
-
162 [[nodiscard]] static iterator insert([[maybe_unused]] const meta_ctx &area, [[maybe_unused]] void *container, [[maybe_unused]] const void *value, [[maybe_unused]] const void *cref, [[maybe_unused]] const iterator &it) {
+
162 [[nodiscard]] static iterator insert([[maybe_unused]] const meta_ctx &area, [[maybe_unused]] void *container, [[maybe_unused]] const void *value, [[maybe_unused]] const void *cref, [[maybe_unused]] const iterator &it) {
163 if constexpr(fixed_size) {
164 return iterator{};
165 } else {
-
166 auto *const non_const = any_cast<typename Type::iterator>(&it.base());
-
167 return {area, static_cast<Type *>(container)->insert(
- -
169 (value != nullptr) ? *static_cast<const typename Type::value_type *>(value) : *static_cast<const std::remove_reference_t<typename Type::const_reference> *>(cref))};
+
166 auto *const non_const = any_cast<typename Type::iterator>(&it.base());
+
167 return {area, static_cast<Type *>(container)->insert(
+
168 non_const ? *non_const : any_cast<const typename Type::const_iterator &>(it.base()),
+
169 (value != nullptr) ? *static_cast<const typename Type::value_type *>(value) : *static_cast<const std::remove_reference_t<typename Type::const_reference> *>(cref))};
170 }
171 }
-
172
+
172
- +
180 [[nodiscard]] static iterator erase([[maybe_unused]] const meta_ctx &area, [[maybe_unused]] void *container, [[maybe_unused]] const iterator &it) {
181 if constexpr(fixed_size) {
182 return iterator{};
183 } else {
-
184 auto *const non_const = any_cast<typename Type::iterator>(&it.base());
-
185 return {area, static_cast<Type *>(container)->erase(non_const ? *non_const : any_cast<const typename Type::const_iterator &>(it.base()))};
+
184 auto *const non_const = any_cast<typename Type::iterator>(&it.base());
+
185 return {area, static_cast<Type *>(container)->erase(non_const ? *non_const : any_cast<const typename Type::const_iterator &>(it.base()))};
186 }
187 }
188};
-
189
+
189
194template<typename Type>
196 static_assert(std::is_same_v<Type, std::remove_cv_t<std::remove_reference_t<Type>>>, "Unexpected type");
-
197
+
197
-
202
+
202
204 static constexpr bool key_only = internal::key_only_associative_container_v<Type>;
-
205
+
205
-
211 [[nodiscard]] static size_type size(const void *container) {
-
212 return static_cast<const Type *>(container)->size();
+
211 [[nodiscard]] static size_type size(const void *container) {
+
212 return static_cast<const Type *>(container)->size();
213 }
-
214
+
214
-
220 [[nodiscard]] static bool clear(void *container) {
-
221 static_cast<Type *>(container)->clear();
+
220 [[nodiscard]] static bool clear(void *container) {
+
221 static_cast<Type *>(container)->clear();
222 return true;
223 }
-
224
+
224
-
231 [[nodiscard]] static bool reserve([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
+
231 [[nodiscard]] static bool reserve([[maybe_unused]] void *container, [[maybe_unused]] const size_type sz) {
232 if constexpr(internal::reserve_aware_container_v<Type>) {
-
233 static_cast<Type *>(container)->reserve(sz);
+
233 static_cast<Type *>(container)->reserve(sz);
234 return true;
235 } else {
236 return false;
237 }
238 }
-
239
+
239
-
247 static iterator begin(const meta_ctx &area, void *container, const void *as_const) {
-
248 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->begin()}
-
249 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->begin()};
+
247 static iterator begin(const meta_ctx &area, void *container, const void *as_const) {
+
248 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->begin()}
+
249 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->begin()};
250 }
-
251
+
251
-
259 static iterator end(const meta_ctx &area, void *container, const void *as_const) {
-
260 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->end()}
-
261 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->end()};
+
259 static iterator end(const meta_ctx &area, void *container, const void *as_const) {
+
260 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->end()}
+
261 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->end()};
262 }
-
263
+
263
-
271 [[nodiscard]] static bool insert(void *container, const void *key, [[maybe_unused]] const void *value) {
+
271 [[nodiscard]] static bool insert(void *container, const void *key, [[maybe_unused]] const void *value) {
272 if constexpr(key_only) {
-
273 return static_cast<Type *>(container)->insert(*static_cast<const typename Type::key_type *>(key)).second;
+
273 return static_cast<Type *>(container)->insert(*static_cast<const typename Type::key_type *>(key)).second;
274 } else {
-
275 return static_cast<Type *>(container)->emplace(*static_cast<const typename Type::key_type *>(key), *static_cast<const typename Type::mapped_type *>(value)).second;
+
275 return static_cast<Type *>(container)->emplace(*static_cast<const typename Type::key_type *>(key), *static_cast<const typename Type::mapped_type *>(value)).second;
276 }
277 }
-
278
+
278
-
285 [[nodiscard]] static size_type erase(void *container, const void *key) {
-
286 return static_cast<Type *>(container)->erase(*static_cast<const typename Type::key_type *>(key));
+
285 [[nodiscard]] static size_type erase(void *container, const void *key) {
+
286 return static_cast<Type *>(container)->erase(*static_cast<const typename Type::key_type *>(key));
287 }
-
288
+
288
-
297 static iterator find(const meta_ctx &area, void *container, const void *as_const, const void *key) {
-
298 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->find(*static_cast<const typename Type::key_type *>(key))}
-
299 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->find(*static_cast<const typename Type::key_type *>(key))};
+
297 static iterator find(const meta_ctx &area, void *container, const void *as_const, const void *key) {
+
298 return (container != nullptr) ? iterator{area, std::bool_constant<key_only>{}, static_cast<Type *>(container)->find(*static_cast<const typename Type::key_type *>(key))}
+
299 : iterator{area, std::bool_constant<key_only>{}, static_cast<const Type *>(as_const)->find(*static_cast<const typename Type::key_type *>(key))};
300 }
301};
-
302
-
307template<typename... Args>
+
302
+
307template<typename... Args>
- +
308struct meta_sequence_container_traits<std::vector<Args...>>
309 : basic_meta_sequence_container_traits<std::vector<Args...>> {};
-
310
+
310
316template<typename Type, auto N>
- +
317struct meta_sequence_container_traits<std::array<Type, N>>
318 : basic_meta_sequence_container_traits<std::array<Type, N>> {};
-
319
-
324template<typename... Args>
+
319
+
324template<typename... Args>
- +
325struct meta_sequence_container_traits<std::list<Args...>>
326 : basic_meta_sequence_container_traits<std::list<Args...>> {};
-
327
-
332template<typename... Args>
+
327
+
332template<typename... Args>
- +
333struct meta_sequence_container_traits<std::deque<Args...>>
334 : basic_meta_sequence_container_traits<std::deque<Args...>> {};
-
335
-
340template<typename... Args>
+
335
+
340template<typename... Args>
341struct meta_associative_container_traits<std::map<Args...>>
342 : basic_meta_associative_container_traits<std::map<Args...>> {};
-
343
-
349template<typename... Args>
+
343
+
349template<typename... Args>
- +
350struct meta_associative_container_traits<std::unordered_map<Args...>>
351 : basic_meta_associative_container_traits<std::unordered_map<Args...>> {};
-
352
-
357template<typename... Args>
+
352
+
357template<typename... Args>
358struct meta_associative_container_traits<std::set<Args...>>
359 : basic_meta_associative_container_traits<std::set<Args...>> {};
-
360
-
366template<typename... Args>
+
360
+
366template<typename... Args>
- +
367struct meta_associative_container_traits<std::unordered_set<Args...>>
368 : basic_meta_associative_container_traits<std::unordered_set<Args...>> {};
-
369
-
374template<typename... Args>
+
369
+
374template<typename... Args>
-
377
-
382template<typename... Args>
+
377
+
382template<typename... Args>
385
386} // namespace entt
387
388#endif
-
Associative container for key-value pairs with unique keys.
+
Associative container for key-value pairs with unique keys.
Associative container for unique objects of a given type.
-
std::size_t size_type
Unsigned integer type.
Definition meta.hpp:105
-
meta_iterator iterator
Meta iterator type.
Definition meta.hpp:107
+
std::size_t size_type
Unsigned integer type.
Definition meta.hpp:99
+
meta_iterator iterator
Meta iterator type.
Definition meta.hpp:101
Opaque meta context type.
Definition context.hpp:34
meta_iterator iterator
Meta iterator type.
Definition meta.hpp:38
std::size_t size_type
Unsigned integer type.
Definition meta.hpp:36
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
@ cref
Const aliasing mode, the object points to a const element.
+
std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
Performs type-safe access to the contained object.
Definition any.hpp:464
+
@ cref
Const aliasing mode, the object points to a const element.
Definition fwd.hpp:21
General purpose implementation of meta associative container traits.
static iterator begin(const meta_ctx &area, void *container, const void *as_const)
Returns a possibly const iterator to the beginning.
static iterator find(const meta_ctx &area, void *container, const void *as_const, const void *key)
Finds an element with a given key.
@@ -400,7 +409,8 @@ $(function() { codefold.init(0); });
+ diff --git a/context_8hpp_source.html b/context_8hpp_source.html index 04ac4df61..8410e93bd 100644 --- a/context_8hpp_source.html +++ b/context_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/context.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
context.hpp
@@ -92,50 +100,52 @@ $(function() { codefold.init(0); });
7
8namespace entt {
9
-
10class meta_ctx;
-
11
+
10class meta_ctx;
+
11
13namespace internal {
14
15struct meta_type_node;
16
17struct meta_context {
-
18 dense_map<id_type, meta_type_node, identity> value{};
+
18 dense_map<id_type, meta_type_node, identity> value;
19
20 [[nodiscard]] inline static meta_context &from(meta_ctx &ctx);
21 [[nodiscard]] inline static const meta_context &from(const meta_ctx &ctx);
22};
23
24} // namespace internal
- -
29
+
26
+
28class meta_ctx_arg_t final {};
+
29
31inline constexpr meta_ctx_arg_t meta_ctx_arg{};
-
32
+
32
34class meta_ctx: private internal::meta_context {
35 // attorney idiom like model to access the base class
36 friend struct internal::meta_context;
37};
-
38
-
40[[nodiscard]] inline internal::meta_context &internal::meta_context::from(meta_ctx &ctx) {
+
38
+
40[[nodiscard]] inline internal::meta_context &internal::meta_context::from(meta_ctx &ctx) {
41 return ctx;
42}
43
-
44[[nodiscard]] inline const internal::meta_context &internal::meta_context::from(const meta_ctx &ctx) {
+
44[[nodiscard]] inline const internal::meta_context &internal::meta_context::from(const meta_ctx &ctx) {
45 return ctx;
46}
+
48
49} // namespace entt
50
51#endif
Disambiguation tag for constructors and the like.
Definition context.hpp:28
Opaque meta context type.
Definition context.hpp:34
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
constexpr meta_ctx_arg_t meta_ctx_arg
Constant of type meta_context_arg_t used to disambiguate calls.
Definition context.hpp:31
+ diff --git a/core_2fwd_8hpp_source.html b/core_2fwd_8hpp_source.html index e446cdc21..e90f3383a 100644 --- a/core_2fwd_8hpp_source.html +++ b/core_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
fwd.hpp
@@ -87,44 +95,65 @@ $(function() { codefold.init(0); });
2#define ENTT_CORE_FWD_HPP
3
4#include <cstddef>
-
5#include "../config/config.h"
-
6
-
7namespace entt {
-
8
-
9// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
-
10template<std::size_t Len = sizeof(double[2]), std::size_t = alignof(double[2])>
-
11class basic_any;
-
12
-
14using id_type = ENTT_ID_TYPE;
-
15
- -
18
-
19template<typename, typename>
-
20class compressed_pair;
-
21
-
22template<typename>
- -
24
- -
27
- -
30
-
31// NOLINTNEXTLINE(bugprone-forward-declaration-namespace)
-
32struct type_info;
+
5#include <cstdint>
+
6#include "../config/config.h"
+
7
+
8namespace entt {
+
9
+
+
11enum class any_policy : std::uint8_t {
+ + + + + +
22};
+
+
23
+
24// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
+
25template<std::size_t Len = sizeof(double[2]), std::size_t = alignof(double[2])>
+
26class basic_any;
+
27
+
29using id_type = ENTT_ID_TYPE;
+
30
+
33
-
34} // namespace entt
-
35
-
36#endif
+
34template<typename, typename>
+
35class compressed_pair;
+
36
+
37template<typename>
+ +
39
+ +
42
+ +
45
+
46// NOLINTNEXTLINE(bugprone-forward-declaration-namespace)
+
47struct type_info;
+
48
+
49} // namespace entt
+
50
+
51#endif
Zero overhead unique identifier.
A compressed pair.
EnTT default namespace.
Definition dense_map.hpp:22
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
basic_hashed_string< char > hashed_string
Aliases for common character types.
Definition fwd.hpp:41
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
+
basic_any<> any
Alias declaration for the most common use case.
Definition fwd.hpp:32
+
basic_hashed_string< wchar_t > hashed_wstring
Aliases for common character types.
Definition fwd.hpp:44
+
any_policy
Possible modes of an any object.
Definition fwd.hpp:11
+
@ ref
Aliasing mode, the object points to a non-const element.
Definition fwd.hpp:19
+
@ cref
Const aliasing mode, the object points to a const element.
Definition fwd.hpp:21
+
@ embedded
Owning mode, the object owns an embedded element.
Definition fwd.hpp:17
+
@ empty
Default mode, the object does not own any elements.
Definition fwd.hpp:13
+
@ dynamic
Owning mode, the object owns a dynamically allocated element.
Definition fwd.hpp:15
Implementation specific information about a type.
+ diff --git a/core_2ranges_8hpp_source.html b/core_2ranges_8hpp_source.html index 2d4f1c340..a7572e480 100644 --- a/core_2ranges_8hpp_source.html +++ b/core_2ranges_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/ranges.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
ranges.hpp
@@ -107,7 +115,8 @@ $(function() { codefold.init(0); });
+ diff --git a/core_2type__traits_8hpp_source.html b/core_2type__traits_8hpp_source.html index b8eaf5dcf..a37ddd338 100644 --- a/core_2type__traits_8hpp_source.html +++ b/core_2type__traits_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/type_traits.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
type_traits.hpp
@@ -95,7 +103,7 @@ $(function() { codefold.init(0); });
10#include "fwd.hpp"
11
12namespace entt {
-
13
+
13
18template<std::size_t N>
@@ -103,649 +111,669 @@ $(function() { codefold.init(0); });
21 : choice_t<N - 1>
22{};
-
23
+
23
25template<>
26struct choice_t<0> {};
-
27
+
27
32template<std::size_t N>
33inline constexpr choice_t<N> choice{};
-
34
+
34
43template<typename Type>
46 using type = Type;
47};
-
48
+
48
53template<typename Type>
-
55
+
55
60template<typename Type, typename = void>
61struct size_of: std::integral_constant<std::size_t, 0u> {};
-
62
+
62
64template<typename Type>
-
65struct size_of<Type, std::void_t<decltype(sizeof(Type))>>
-
66 : std::integral_constant<std::size_t, sizeof(Type)> {};
+
65struct size_of<Type, std::void_t<decltype(sizeof(Type))>>
+
66 // NOLINTNEXTLINE(bugprone-sizeof-expression)
+
67 : std::integral_constant<std::size_t, sizeof(Type)> {};
-
67
-
72template<typename Type>
-
73inline constexpr std::size_t size_of_v = size_of<Type>::value;
-
74
-
80template<typename Type, typename>
-
81using unpack_as_type = Type;
-
82
-
88template<auto Value, typename>
-
89inline constexpr auto unpack_as_value = Value;
-
90
-
95template<auto Value>
-
96using integral_constant = std::integral_constant<decltype(Value), Value>;
-
97
-
102template<id_type Value>
- -
104
-
109template<typename... Type>
-
-
110struct type_list {
- -
114 static constexpr auto size = sizeof...(Type);
-
115};
+
68
+
73template<typename Type>
+
74inline constexpr std::size_t size_of_v = size_of<Type>::value;
+
75
+
81template<typename Type, typename>
+
82using unpack_as_type = Type;
+
83
+
89template<auto Value, typename>
+
90inline constexpr auto unpack_as_value = Value;
+
91
+
96template<auto Value>
+
97using integral_constant = std::integral_constant<decltype(Value), Value>;
+
98
+
103template<id_type Value>
+ +
105
+
110template<typename... Type>
+
+
111struct type_list {
+ +
115 static constexpr auto size = sizeof...(Type);
+
116};
-
116
-
118template<std::size_t, typename>
- -
120
-
127template<std::size_t Index, typename First, typename... Other>
-
- -
129 : type_list_element<Index - 1u, type_list<Other...>> {};
+
117
+
119template<std::size_t, typename>
+ +
121
+
128template<std::size_t Index, typename First, typename... Other>
+
+
129struct type_list_element<Index, type_list<First, Other...>>
+
130 : type_list_element<Index - 1u, type_list<Other...>> {};
-
130
-
136template<typename First, typename... Other>
-
- -
139 using type = First;
-
140};
+
131
+
137template<typename First, typename... Other>
+
+
138struct type_list_element<0u, type_list<First, Other...>> {
+
140 using type = First;
+
141};
-
141
-
147template<std::size_t Index, typename List>
- -
149
-
151template<typename, typename>
- -
153
-
160template<typename Type, typename First, typename... Other>
-
- -
163 using value_type = std::size_t;
-
165 static constexpr value_type value = 1u + type_list_index<Type, type_list<Other...>>::value;
-
166};
+
142
+
148template<std::size_t Index, typename List>
+ +
150
+
152template<typename, typename>
+ +
154
+
161template<typename Type, typename First, typename... Other>
+
+
162struct type_list_index<Type, type_list<First, Other...>> {
+
164 using value_type = std::size_t;
+
166 static constexpr value_type value = 1u + type_list_index<Type, type_list<Other...>>::value;
+
167};
-
167
-
173template<typename Type, typename... Other>
-
-
174struct type_list_index<Type, type_list<Type, Other...>> {
-
175 static_assert(type_list_index<Type, type_list<Other...>>::value == sizeof...(Other), "Non-unique type");
-
177 using value_type = std::size_t;
-
179 static constexpr value_type value = 0u;
-
180};
+
168
+
174template<typename Type, typename... Other>
+
+
175struct type_list_index<Type, type_list<Type, Other...>> {
+
176 static_assert(type_list_index<Type, type_list<Other...>>::value == sizeof...(Other), "Non-unique type");
+
178 using value_type = std::size_t;
+
180 static constexpr value_type value = 0u;
+
181};
-
181
-
186template<typename Type>
-
-
187struct type_list_index<Type, type_list<>> {
-
189 using value_type = std::size_t;
-
191 static constexpr value_type value = 0u;
-
192};
+
182
+
187template<typename Type>
+
+
188struct type_list_index<Type, type_list<>> {
+
190 using value_type = std::size_t;
+
192 static constexpr value_type value = 0u;
+
193};
-
193
-
199template<typename Type, typename List>
- -
201
-
208template<typename... Type, typename... Other>
-
- -
210 return {};
-
211}
+
194
+
200template<typename Type, typename List>
+ +
202
+
209template<typename... Type, typename... Other>
+
+ +
211 return {};
+
212}
-
212
-
214template<typename...>
- -
216
-
218template<>
-
- - -
222};
+
213
+
215template<typename...>
+ +
217
+
219template<>
+
+ + +
223};
-
223
-
230template<typename... Type, typename... Other, typename... List>
-
-
231struct type_list_cat<type_list<Type...>, type_list<Other...>, List...> {
-
233 using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type;
-
234};
+
224
+
231template<typename... Type, typename... Other, typename... List>
+
+
232struct type_list_cat<type_list<Type...>, type_list<Other...>, List...> {
+
234 using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type;
+
235};
-
235
-
240template<typename... Type>
-
-
241struct type_list_cat<type_list<Type...>> {
-
243 using type = type_list<Type...>;
-
244};
+
236
+
241template<typename... Type>
+
+
242struct type_list_cat<type_list<Type...>> {
+
244 using type = type_list<Type...>;
+
245};
-
245
-
250template<typename... List>
-
251using type_list_cat_t = typename type_list_cat<List...>::type;
-
252
-
254namespace internal {
-
255
-
256template<typename...>
-
257struct type_list_unique;
-
258
-
259template<typename First, typename... Other, typename... Type>
-
260struct type_list_unique<type_list<First, Other...>, Type...>
-
261 : std::conditional_t<(std::is_same_v<First, Type> || ...), type_list_unique<type_list<Other...>, Type...>, type_list_unique<type_list<Other...>, Type..., First>> {};
-
262
-
263template<typename... Type>
-
264struct type_list_unique<type_list<>, Type...> {
-
265 using type = type_list<Type...>;
-
266};
-
267
-
268} // namespace internal
-
275template<typename List>
-
- -
278 using type = typename internal::type_list_unique<List>::type;
-
279};
+
246
+
251template<typename... List>
+
252using type_list_cat_t = typename type_list_cat<List...>::type;
+
253
+
255namespace internal {
+
256
+
257template<typename...>
+
258struct type_list_unique;
+
259
+
260template<typename First, typename... Other, typename... Type>
+
261struct type_list_unique<type_list<First, Other...>, Type...>
+
262 : std::conditional_t<(std::is_same_v<First, Type> || ...), type_list_unique<type_list<Other...>, Type...>, type_list_unique<type_list<Other...>, Type..., First>> {};
+
263
+
264template<typename... Type>
+
265struct type_list_unique<type_list<>, Type...> {
+
266 using type = type_list<Type...>;
+
267};
+
268
+
269} // namespace internal
+
271
+
276template<typename List>
+
+ +
279 using type = typename internal::type_list_unique<List>::type;
+
280};
-
280
-
285template<typename List>
- -
287
-
294template<typename List, typename Type>
- -
296
-
302template<typename... Type, typename Other>
-
- -
304 : std::bool_constant<(std::is_same_v<Type, Other> || ...)> {};
+
281
+
286template<typename List>
+ +
288
+
295template<typename List, typename Type>
+ +
297
+
303template<typename... Type, typename Other>
+
+
304struct type_list_contains<type_list<Type...>, Other>
+
305 : std::bool_constant<(std::is_same_v<Type, Other> || ...)> {};
-
305
-
311template<typename List, typename Type>
- -
313
-
315template<typename...>
- -
317
-
323template<typename... Type, typename... Other>
-
- - -
327};
+
306
+
312template<typename List, typename Type>
+ +
314
+
316template<typename...>
+ +
318
+
324template<typename... Type, typename... Other>
+
+
325struct type_list_diff<type_list<Type...>, type_list<Other...>> {
+
327 using type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>;
+
328};
-
328
-
333template<typename... List>
-
334using type_list_diff_t = typename type_list_diff<List...>::type;
-
335
-
337template<typename, template<typename...> class>
- -
339
-
345template<typename... Type, template<typename...> class Op>
-
- - -
349};
+
329
+
334template<typename... List>
+
335using type_list_diff_t = typename type_list_diff<List...>::type;
+
336
+
338template<typename, template<typename...> class>
+ +
340
+
346template<typename... Type, template<typename...> class Op>
+
+
347struct type_list_transform<type_list<Type...>, Op> {
+
349 // NOLINTNEXTLINE(modernize-type-traits)
+ +
351};
-
350
-
356template<typename List, template<typename...> class Op>
- -
358
-
363template<auto... Value>
-
- - -
368 static constexpr auto size = sizeof...(Value);
-
369};
+
352
+
358template<typename List, template<typename...> class Op>
+ +
360
+
365template<auto... Value>
+
+ + +
370 static constexpr auto size = sizeof...(Value);
+
371};
-
370
-
372template<std::size_t, typename>
- -
374
-
381template<std::size_t Index, auto Value, auto... Other>
-
- -
383 : value_list_element<Index - 1u, value_list<Other...>> {};
+
372
+
374template<std::size_t, typename>
+ +
376
+
383template<std::size_t Index, auto Value, auto... Other>
+
+
384struct value_list_element<Index, value_list<Value, Other...>>
+
385 : value_list_element<Index - 1u, value_list<Other...>> {};
-
384
-
390template<auto Value, auto... Other>
-
- -
393 using type = decltype(Value);
-
395 static constexpr auto value = Value;
-
396};
+
386
+
392template<auto Value, auto... Other>
+
+
393struct value_list_element<0u, value_list<Value, Other...>> {
+
395 using type = decltype(Value);
+
397 static constexpr auto value = Value;
+
398};
-
397
-
403template<std::size_t Index, typename List>
- -
405
-
411template<std::size_t Index, typename List>
- -
413
-
415template<auto, typename>
- -
417
-
424template<auto Value, auto First, auto... Other>
-
- -
427 using value_type = std::size_t;
-
429 static constexpr value_type value = 1u + value_list_index<Value, value_list<Other...>>::value;
-
430};
+
399
+
405template<std::size_t Index, typename List>
+ +
407
+
413template<std::size_t Index, typename List>
+ +
415
+
417template<auto, typename>
+ +
419
+
426template<auto Value, auto First, auto... Other>
+
+
427struct value_list_index<Value, value_list<First, Other...>> {
+
429 using value_type = std::size_t;
+
431 static constexpr value_type value = 1u + value_list_index<Value, value_list<Other...>>::value;
+
432};
-
431
-
437template<auto Value, auto... Other>
-
- -
439 static_assert(value_list_index<Value, value_list<Other...>>::value == sizeof...(Other), "Non-unique type");
-
441 using value_type = std::size_t;
-
443 static constexpr value_type value = 0u;
-
444};
+
433
+
439template<auto Value, auto... Other>
+
+
440struct value_list_index<Value, value_list<Value, Other...>> {
+
441 static_assert(value_list_index<Value, value_list<Other...>>::value == sizeof...(Other), "Non-unique type");
+
443 using value_type = std::size_t;
+
445 static constexpr value_type value = 0u;
+
446};
-
445
-
450template<auto Value>
-
- -
453 using value_type = std::size_t;
-
455 static constexpr value_type value = 0u;
-
456};
+
447
+
452template<auto Value>
+
+
453struct value_list_index<Value, value_list<>> {
+
455 using value_type = std::size_t;
+
457 static constexpr value_type value = 0u;
+
458};
-
457
-
463template<auto Value, typename List>
- -
465
-
472template<auto... Value, auto... Other>
-
- -
474 return {};
-
475}
+
459
+
465template<auto Value, typename List>
+ +
467
+
474template<auto... Value, auto... Other>
+
+ +
476 return {};
+
477}
-
476
-
478template<typename...>
- -
480
-
482template<>
-
- - -
486};
+
478
+
480template<typename...>
+ +
482
+
484template<>
+
+ + +
488};
-
487
-
494template<auto... Value, auto... Other, typename... List>
-
- -
497 using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type;
-
498};
+
489
+
496template<auto... Value, auto... Other, typename... List>
+
+
497struct value_list_cat<value_list<Value...>, value_list<Other...>, List...> {
+
499 using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type;
+
500};
-
499
-
504template<auto... Value>
-
- -
507 using type = value_list<Value...>;
-
508};
+
501
+
506template<auto... Value>
+
+
507struct value_list_cat<value_list<Value...>> {
+
509 using type = value_list<Value...>;
+
510};
-
509
-
514template<typename... List>
-
515using value_list_cat_t = typename value_list_cat<List...>::type;
-
516
-
518template<typename>
- -
520
-
526template<auto Value, auto... Other>
-
- -
529 using type = std::conditional_t<
-
530 ((Value == Other) || ...),
-
531 typename value_list_unique<value_list<Other...>>::type,
- -
533};
+
511
+
516template<typename... List>
+
517using value_list_cat_t = typename value_list_cat<List...>::type;
+
518
+
520template<typename>
+ +
522
+
528template<auto Value, auto... Other>
+
+
529struct value_list_unique<value_list<Value, Other...>> {
+
531 using type = std::conditional_t<
+
532 ((Value == Other) || ...),
+
533 typename value_list_unique<value_list<Other...>>::type,
+ +
535};
-
534
-
536template<>
-
- - -
540};
+
536
+
538template<>
+
+ + +
542};
-
541
-
546template<typename Type>
- -
548
-
555template<typename List, auto Value>
- -
557
-
563template<auto... Value, auto Other>
-
- -
565 : std::bool_constant<((Value == Other) || ...)> {};
+
543
+
548template<typename Type>
+ +
550
+
557template<typename List, auto Value>
+ +
559
+
565template<auto... Value, auto Other>
+
+
566struct value_list_contains<value_list<Value...>, Other>
+
567 : std::bool_constant<((Value == Other) || ...)> {};
-
566
-
572template<typename List, auto Value>
- -
574
-
576template<typename...>
- -
578
-
584template<auto... Value, auto... Other>
-
- - -
588};
+
568
+
574template<typename List, auto Value>
+ +
576
+
578template<typename...>
+ +
580
+
586template<auto... Value, auto... Other>
+
+
587struct value_list_diff<value_list<Value...>, value_list<Other...>> {
+
589 using type = value_list_cat_t<std::conditional_t<value_list_contains_v<value_list<Other...>, Value>, value_list<>, value_list<Value>>...>;
+
590};
-
589
-
594template<typename... List>
-
595using value_list_diff_t = typename value_list_diff<List...>::type;
-
596
-
598template<typename, typename>
-
599struct is_applicable: std::false_type {};
-
600
-
607template<typename Func, template<typename...> class Tuple, typename... Args>
-
608struct is_applicable<Func, Tuple<Args...>>: std::is_invocable<Func, Args...> {};
-
609
-
616template<typename Func, template<typename...> class Tuple, typename... Args>
-
617struct is_applicable<Func, const Tuple<Args...>>: std::is_invocable<Func, Args...> {};
-
618
-
624template<typename Func, typename Args>
- -
626
-
628template<typename, typename, typename>
-
629struct is_applicable_r: std::false_type {};
-
630
-
638template<typename Ret, typename Func, typename... Args>
-
639struct is_applicable_r<Ret, Func, std::tuple<Args...>>: std::is_invocable_r<Ret, Func, Args...> {};
-
640
-
648template<typename Ret, typename Func, typename Args>
- -
650
-
656template<typename Type, typename = void>
-
657struct is_complete: std::false_type {};
-
658
-
660template<typename Type>
-
661struct is_complete<Type, std::void_t<decltype(sizeof(Type))>>: std::true_type {};
-
662
-
667template<typename Type>
- -
669
-
675template<typename Type, typename = void>
-
676struct is_iterator: std::false_type {};
-
677
-
679namespace internal {
-
680
-
681template<typename, typename = void>
-
682struct has_iterator_category: std::false_type {};
-
683
-
684template<typename Type>
-
685struct has_iterator_category<Type, std::void_t<typename std::iterator_traits<Type>::iterator_category>>: std::true_type {};
-
686
-
687} // namespace internal
-
691template<typename Type>
-
-
692struct is_iterator<Type, std::enable_if_t<!std::is_void_v<std::remove_cv_t<std::remove_pointer_t<Type>>>>>
-
693 : internal::has_iterator_category<Type> {};
+
591
+
596template<typename... List>
+
597using value_list_diff_t = typename value_list_diff<List...>::type;
+
598
+
600template<typename, typename>
+
601struct is_applicable: std::false_type {};
+
602
+
609template<typename Func, template<typename...> class Tuple, typename... Args>
+
610struct is_applicable<Func, Tuple<Args...>>: std::is_invocable<Func, Args...> {};
+
611
+
618template<typename Func, template<typename...> class Tuple, typename... Args>
+
619struct is_applicable<Func, const Tuple<Args...>>: std::is_invocable<Func, Args...> {};
+
620
+
626template<typename Func, typename Args>
+ +
628
+
630template<typename, typename, typename>
+
631struct is_applicable_r: std::false_type {};
+
632
+
640template<typename Ret, typename Func, typename... Args>
+
641struct is_applicable_r<Ret, Func, std::tuple<Args...>>: std::is_invocable_r<Ret, Func, Args...> {};
+
642
+
650template<typename Ret, typename Func, typename Args>
+ +
652
+
658template<typename Type, typename = void>
+
659struct is_complete: std::false_type {};
+
660
+
662template<typename Type>
+
663struct is_complete<Type, std::void_t<decltype(sizeof(Type))>>: std::true_type {};
+
664
+
669template<typename Type>
+ +
671
+
677template<typename Type, typename = void>
+
678struct is_iterator: std::false_type {};
+
679
+
681namespace internal {
+
682
+
683template<typename, typename = void>
+
684struct has_iterator_category: std::false_type {};
+
685
+
686template<typename Type>
+
687struct has_iterator_category<Type, std::void_t<typename std::iterator_traits<Type>::iterator_category>>: std::true_type {};
+
688
+
689} // namespace internal
+
691
+
693template<typename Type>
+
+
694struct is_iterator<Type, std::enable_if_t<!std::is_void_v<std::remove_cv_t<std::remove_pointer_t<Type>>>>>
+
695 : internal::has_iterator_category<Type> {};
-
694
-
699template<typename Type>
- -
701
-
707template<typename Type>
-
- -
709 : std::bool_constant<std::is_empty_v<Type> && !std::is_final_v<Type>> {};
+
696
+
701template<typename Type>
+ +
703
+
709template<typename Type>
+
+ +
711 : std::bool_constant<std::is_empty_v<Type> && !std::is_final_v<Type>> {};
-
710
-
715template<typename Type>
- -
717
-
723template<typename Type, typename = void>
-
724struct is_transparent: std::false_type {};
-
725
-
727template<typename Type>
-
728struct is_transparent<Type, std::void_t<typename Type::is_transparent>>: std::true_type {};
-
729
-
734template<typename Type>
- -
736
-
738namespace internal {
-
739
-
740template<typename, typename = void>
-
741struct has_tuple_size_value: std::false_type {};
-
742
-
743template<typename Type>
-
744struct has_tuple_size_value<Type, std::void_t<decltype(std::tuple_size<const Type>::value)>>: std::true_type {};
-
745
-
746template<typename, typename = void>
-
747struct has_value_type: std::false_type {};
-
748
-
749template<typename Type>
-
750struct has_value_type<Type, std::void_t<typename Type::value_type>>: std::true_type {};
-
751
-
752template<typename>
-
753[[nodiscard]] constexpr bool dispatch_is_equality_comparable();
-
754
-
755template<typename Type, std::size_t... Index>
-
756[[nodiscard]] constexpr bool unpack_maybe_equality_comparable(std::index_sequence<Index...>) {
-
757 return (dispatch_is_equality_comparable<std::tuple_element_t<Index, Type>>() && ...);
-
758}
-
759
-
760template<typename>
-
761[[nodiscard]] constexpr bool maybe_equality_comparable(char) {
-
762 return false;
-
763}
-
764
-
765template<typename Type>
-
766[[nodiscard]] constexpr auto maybe_equality_comparable(int) -> decltype(std::declval<Type>() == std::declval<Type>()) {
-
767 return true;
-
768}
-
769
-
770template<typename Type>
-
771[[nodiscard]] constexpr bool dispatch_is_equality_comparable() {
-
772 // NOLINTBEGIN(modernize-use-transparent-functors)
-
773 if constexpr(std::is_array_v<Type>) {
-
774 return false;
-
775 } else if constexpr(!is_iterator_v<Type> && has_value_type<Type>::value) {
-
776 if constexpr(std::is_same_v<typename Type::value_type, Type> || dispatch_is_equality_comparable<typename Type::value_type>()) {
-
777 return maybe_equality_comparable<Type>(0);
-
778 } else {
-
779 return false;
-
780 }
-
781 } else if constexpr(is_complete_v<std::tuple_size<std::remove_cv_t<Type>>>) {
-
782 if constexpr(has_tuple_size_value<Type>::value) {
-
783 return maybe_equality_comparable<Type>(0) && unpack_maybe_equality_comparable<Type>(std::make_index_sequence<std::tuple_size<Type>::value>{});
-
784 } else {
+
712
+
717template<typename Type>
+ +
719
+
725template<typename Type, typename = void>
+
726struct is_transparent: std::false_type {};
+
727
+
729template<typename Type>
+
730struct is_transparent<Type, std::void_t<typename Type::is_transparent>>: std::true_type {};
+
731
+
736template<typename Type>
+ +
738
+
740namespace internal {
+
741
+
742template<typename, typename = void>
+
743struct has_tuple_size_value: std::false_type {};
+
744
+
745template<typename Type>
+
746struct has_tuple_size_value<Type, std::void_t<decltype(std::tuple_size<const Type>::value)>>: std::true_type {};
+
747
+
748template<typename, typename = void>
+
749struct has_value_type: std::false_type {};
+
750
+
751template<typename Type>
+
752struct has_value_type<Type, std::void_t<typename Type::value_type>>: std::true_type {};
+
753
+
754template<typename>
+
755[[nodiscard]] constexpr bool dispatch_is_equality_comparable();
+
756
+
757template<typename Type, std::size_t... Index>
+
758[[nodiscard]] constexpr bool unpack_maybe_equality_comparable(std::index_sequence<Index...>) {
+
759 return (dispatch_is_equality_comparable<std::tuple_element_t<Index, Type>>() && ...);
+
760}
+
761
+
762template<typename>
+
763[[nodiscard]] constexpr bool maybe_equality_comparable(char) {
+
764 return false;
+
765}
+
766
+
767template<typename Type>
+
768[[nodiscard]] constexpr auto maybe_equality_comparable(int) -> decltype(std::declval<Type>() == std::declval<Type>()) {
+
769 return true;
+
770}
+
771
+
772template<typename Type>
+
773[[nodiscard]] constexpr bool dispatch_is_equality_comparable() {
+
774 // NOLINTBEGIN(modernize-use-transparent-functors)
+
775 if constexpr(std::is_array_v<Type>) {
+
776 return false;
+ +
778 if constexpr(has_tuple_size_value<Type>::value) {
+
779 return maybe_equality_comparable<Type>(0) && unpack_maybe_equality_comparable<Type>(std::make_index_sequence<std::tuple_size<Type>::value>{});
+
780 } else {
+
781 return maybe_equality_comparable<Type>(0);
+
782 }
+
783 } else if constexpr(has_value_type<Type>::value) {
+
784 if constexpr(is_iterator_v<Type> || std::is_same_v<typename Type::value_type, Type> || dispatch_is_equality_comparable<typename Type::value_type>()) {
785 return maybe_equality_comparable<Type>(0);
-
786 }
-
787 } else {
-
788 return maybe_equality_comparable<Type>(0);
-
789 }
-
790 // NOLINTEND(modernize-use-transparent-functors)
-
791}
-
792
-
793} // namespace internal
-
801template<typename Type>
-
802struct is_equality_comparable: std::bool_constant<internal::dispatch_is_equality_comparable<Type>()> {};
-
803
-
805template<typename Type>
- -
807
-
812template<typename Type>
- -
814
-
820template<typename To, typename From>
-
- -
823 using type = std::remove_const_t<To>;
-
824};
+
786 } else {
+
787 return false;
+
788 }
+
789 } else {
+
790 return maybe_equality_comparable<Type>(0);
+
791 }
+
792 // NOLINTEND(modernize-use-transparent-functors)
+
793}
+
794
+
795} // namespace internal
+
797
+
803template<typename Type>
+
804struct is_equality_comparable: std::bool_constant<internal::dispatch_is_equality_comparable<Type>()> {};
+
805
+
807template<typename Type>
+ +
809
+
814template<typename Type>
+ +
816
+
822template<typename To, typename From>
+
+ +
825 using type = std::remove_const_t<To>;
+
826};
-
825
-
827template<typename To, typename From>
-
- -
830 using type = const To;
-
831};
+
827
+
829template<typename To, typename From>
+
+
830struct constness_as<To, const From> {
+
832 using type = const To;
+
833};
-
832
-
838template<typename To, typename From>
- -
840
-
845template<typename Member>
-
- -
847 static_assert(std::is_member_pointer_v<Member>, "Invalid pointer type to non-static member object or function");
-
848
-
849 template<typename Class, typename Ret, typename... Args>
-
850 static Class *clazz(Ret (Class::*)(Args...));
-
851
-
852 template<typename Class, typename Ret, typename... Args>
-
853 static Class *clazz(Ret (Class::*)(Args...) const);
-
854
-
855 template<typename Class, typename Type>
-
856 static Class *clazz(Type Class::*);
-
857
-
858public:
-
860 using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>;
-
861};
+
834
+
840template<typename To, typename From>
+ +
842
+
847template<typename Member>
+
+ +
849 static_assert(std::is_member_pointer_v<Member>, "Invalid pointer type to non-static member object or function");
+
850
+
851 template<typename Class, typename Ret, typename... Args>
+
852 static Class *clazz(Ret (Class::*)(Args...));
+
853
+
854 template<typename Class, typename Ret, typename... Args>
+
855 static Class *clazz(Ret (Class::*)(Args...) const);
+
856
+
857 template<typename Class, typename Type>
+
858 static Class *clazz(Type Class::*);
+
859
+
860public:
+
862 using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>;
+
863};
-
862
-
867template<typename Member>
- -
869
-
875template<std::size_t Index, typename Candidate>
-
- -
877 template<typename Ret, typename... Args>
-
878 static constexpr type_list<Args...> pick_up(Ret (*)(Args...));
-
879
-
880 template<typename Ret, typename Class, typename... Args>
-
881 static constexpr type_list<Args...> pick_up(Ret (Class ::*)(Args...));
-
882
-
883 template<typename Ret, typename Class, typename... Args>
-
884 static constexpr type_list<Args...> pick_up(Ret (Class ::*)(Args...) const);
-
885
-
886 template<typename Type, typename Class>
-
887 static constexpr type_list<Type> pick_up(Type Class ::*);
-
888
-
889 template<typename Type>
-
890 static constexpr decltype(pick_up(&Type::operator())) pick_up(Type &&);
-
891
-
892public:
- -
895};
+
864
+
869template<typename Member>
+ +
871
+
877template<std::size_t Index, typename Candidate>
+
+ +
879 template<typename Ret, typename... Args>
+
880 static constexpr type_list<Args...> pick_up(Ret (*)(Args...));
+
881
+
882 template<typename Ret, typename Class, typename... Args>
+
883 static constexpr type_list<Args...> pick_up(Ret (Class ::*)(Args...));
+
884
+
885 template<typename Ret, typename Class, typename... Args>
+
886 static constexpr type_list<Args...> pick_up(Ret (Class ::*)(Args...) const);
+
887
+
888 template<typename Type, typename Class>
+
889 static constexpr type_list<Type> pick_up(Type Class ::*);
+
890
+
891 template<typename Type>
+
892 static constexpr decltype(pick_up(&Type::operator())) pick_up(Type &&);
+
893
+
894public:
+ +
897};
-
896
-
902template<std::size_t Index, typename Candidate>
- -
904
-
905} // namespace entt
+
898
+
904template<std::size_t Index, typename Candidate>
+
906
-
907template<typename... Type>
-
908struct std::tuple_size<entt::type_list<Type...>>: std::integral_constant<std::size_t, entt::type_list<Type...>::size> {};
-
909
-
910template<std::size_t Index, typename... Type>
-
911struct std::tuple_element<Index, entt::type_list<Type...>>: entt::type_list_element<Index, entt::type_list<Type...>> {};
-
912
-
913template<auto... Value>
-
914struct std::tuple_size<entt::value_list<Value...>>: std::integral_constant<std::size_t, entt::value_list<Value...>::size> {};
-
915
-
916template<std::size_t Index, auto... Value>
-
917struct std::tuple_element<Index, entt::value_list<Value...>>: entt::value_list_element<Index, entt::value_list<Value...>> {};
-
918
-
919#endif
-
Extracts the class of a non-static member object or function.
-
std::remove_pointer_t< decltype(clazz(std::declval< Member >()))> type
The class of the given non-static member object or function.
-
Extracts the n-th argument of a callable type.
-
type_list_element_t< Index, decltype(pick_up(std::declval< Candidate >()))> type
N-th argument of the callable type.
+
907} // namespace entt
+
908
+
909template<typename... Type>
+
910struct std::tuple_size<entt::type_list<Type...>>: std::integral_constant<std::size_t, entt::type_list<Type...>::size> {};
+
911
+
912template<std::size_t Index, typename... Type>
+
913struct std::tuple_element<Index, entt::type_list<Type...>>: entt::type_list_element<Index, entt::type_list<Type...>> {};
+
914
+
915template<auto... Value>
+
916struct std::tuple_size<entt::value_list<Value...>>: std::integral_constant<std::size_t, entt::value_list<Value...>::size> {};
+
917
+
918template<std::size_t Index, auto... Value>
+
919struct std::tuple_element<Index, entt::value_list<Value...>>: entt::value_list_element<Index, entt::value_list<Value...>> {};
+
920
+
921#endif
+
Extracts the class of a non-static member object or function.
+
std::remove_pointer_t< decltype(clazz(std::declval< Member >()))> type
The class of the given non-static member object or function.
+
Extracts the n-th argument of a callable type.
+
type_list_element_t< Index, decltype(pick_up(std::declval< Candidate >()))> type
N-th argument of the callable type.
EnTT default namespace.
Definition dense_map.hpp:22
-
typename member_class< Member >::type member_class_t
Helper type.
-
constexpr bool is_equality_comparable_v
Helper variable template.
+
typename member_class< Member >::type member_class_t
Helper type.
+
constexpr bool is_equality_comparable_v
Helper variable template.
constexpr choice_t< N > choice
Variable template for the choice trick.
-
std::integral_constant< decltype(Value), Value > integral_constant
Wraps a static constant.
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
-
constexpr std::size_t size_of_v
Helper variable template.
-
typename nth_argument< Index, Candidate >::type nth_argument_t
Helper type.
-
typename type_list_cat< List... >::type type_list_cat_t
Helper type.
-
typename type_list_transform< List, Op >::type type_list_transform_t
Helper type.
-
typename value_list_unique< Type >::type value_list_unique_t
Helper type.
-
constexpr std::size_t type_list_index_v
Helper variable template.
-
constexpr bool is_iterator_v
Helper variable template.
-
typename value_list_cat< List... >::type value_list_cat_t
Helper type.
-
constexpr auto value_list_element_v
Helper type.
-
typename type_list_diff< List... >::type type_list_diff_t
Helper type.
-
constexpr bool is_applicable_v
Helper variable template.
-
constexpr bool is_transparent_v
Helper variable template.
+
std::integral_constant< decltype(Value), Value > integral_constant
Wraps a static constant.
+
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
+
constexpr std::size_t size_of_v
Helper variable template.
+
typename nth_argument< Index, Candidate >::type nth_argument_t
Helper type.
+
typename type_list_cat< List... >::type type_list_cat_t
Helper type.
+
typename type_list_transform< List, Op >::type type_list_transform_t
Helper type.
+
typename value_list_unique< Type >::type value_list_unique_t
Helper type.
+
constexpr std::size_t type_list_index_v
Helper variable template.
+
constexpr bool is_iterator_v
Helper variable template.
+
typename value_list_cat< List... >::type value_list_cat_t
Helper type.
+
constexpr auto value_list_element_v
Helper type.
+
typename type_list_diff< List... >::type type_list_diff_t
Helper type.
+
constexpr bool is_applicable_v
Helper variable template.
+
constexpr bool is_transparent_v
Helper variable template.
typename type_identity< Type >::type type_identity_t
Helper type.
-
constexpr bool is_complete_v
Helper variable template.
-
constexpr bool type_list_contains_v
Helper variable template.
-
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
-
constexpr std::size_t value_list_index_v
Helper variable template.
-
typename type_list_unique< List >::type type_list_unique_t
Helper type.
-
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
-
typename value_list_element< Index, List >::type value_list_element_t
Helper type.
-
constexpr bool value_list_contains_v
Helper variable template.
-
typename value_list_diff< List... >::type value_list_diff_t
Helper type.
-
Type unpack_as_type
Using declaration to be used to repeat the same type a number of times equal to the size of a given p...
-
integral_constant< Value > tag
Alias template to facilitate the creation of named values.
-
constexpr bool is_applicable_r_v
Helper variable template.
-
constexpr auto unpack_as_value
Helper variable template to be used to repeat the same value a number of times equal to the size of a...
-
constexpr bool is_ebco_eligible_v
Helper variable template.
+
constexpr bool is_complete_v
Helper variable template.
+
constexpr bool type_list_contains_v
Helper variable template.
+
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
+
constexpr std::size_t value_list_index_v
Helper variable template.
+
typename type_list_unique< List >::type type_list_unique_t
Helper type.
+
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
+
typename value_list_element< Index, List >::type value_list_element_t
Helper type.
+
constexpr bool value_list_contains_v
Helper variable template.
+
typename value_list_diff< List... >::type value_list_diff_t
Helper type.
+
Type unpack_as_type
Using declaration to be used to repeat the same type a number of times equal to the size of a given p...
+
integral_constant< Value > tag
Alias template to facilitate the creation of named values.
+
constexpr bool is_applicable_r_v
Helper variable template.
+
constexpr auto unpack_as_value
Helper variable template to be used to repeat the same value a number of times equal to the size of a...
+
constexpr bool is_ebco_eligible_v
Helper variable template.
Utility class to disambiguate overloaded functions.
-
const To type
The type resulting from the transcription of the constness.
-
Transcribes the constness of a type to another type.
-
std::remove_const_t< To > type
The type resulting from the transcription of the constness.
-
Same as std::is_invocable_r, but with tuples for arguments.
-
Same as std::is_invocable, but with tuples.
-
Provides the member constant value to true if a given type is complete, false otherwise.
-
Provides the member constant value to true if a given type is both an empty and non-final class,...
-
Provides the member constant value to true if a given type is equality comparable,...
-
Provides the member constant value to true if a given type is an iterator, false otherwise.
-
Provides the member constant value to true if Type::is_transparent is valid and denotes a type,...
+
const To type
The type resulting from the transcription of the constness.
+
Transcribes the constness of a type to another type.
+
std::remove_const_t< To > type
The type resulting from the transcription of the constness.
+
Same as std::is_invocable_r, but with tuples for arguments.
+
Same as std::is_invocable, but with tuples.
+
Provides the member constant value to true if a given type is complete, false otherwise.
+
Provides the member constant value to true if a given type is both an empty and non-final class,...
+
Provides the member constant value to true if a given type is equality comparable,...
+
Provides the member constant value to true if a given type is an iterator, false otherwise.
+
Provides the member constant value to true if Type::is_transparent is valid and denotes a type,...
A type-only sizeof wrapper that returns 0 where sizeof complains.
Identity type trait.
Type type
Identity type.
-
typename type_list_cat< type_list< Type..., Other... >, List... >::type type
A type list composed by the types of all the type lists.
-
Concatenates multiple type lists.
-
Primary template isn't defined on purpose.
-
Provides the member constant value to true if a type list contains a given type, false otherwise.
-
type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... > type
A type list that is the difference between the two type lists.
-
Primary template isn't defined on purpose.
- -
Primary template isn't defined on purpose.
- - -
std::size_t value_type
Unsigned integer type.
-
Primary template isn't defined on purpose.
-
Primary template isn't defined on purpose.
-
Removes duplicates types from a type list.
-
typename internal::type_list_unique< List >::type type
A type list without duplicate types.
-
A class to use to push around lists of types, nothing more.
-
static constexpr auto size
Compile-time number of elements in the type list.
-
typename value_list_cat< value_list< Value..., Other... >, List... >::type type
A value list composed by the values of all the value lists.
-
Concatenates multiple value lists.
-
Primary template isn't defined on purpose.
-
Provides the member constant value to true if a value list contains a given value,...
-
value_list_cat_t< std::conditional_t< value_list_contains_v< value_list< Other... >, Value >, value_list<>, value_list< Value > >... > type
A value list that is the difference between the two value lists.
-
Primary template isn't defined on purpose.
- -
Primary template isn't defined on purpose.
- - -
std::size_t value_type
Unsigned integer type.
-
Primary template isn't defined on purpose.
-
std::conditional_t<((Value==Other)||...), typename value_list_unique< value_list< Other... > >::type, value_list_cat_t< value_list< Value >, typename value_list_unique< value_list< Other... > >::type > > type
A value list without duplicate types.
-
Primary template isn't defined on purpose.
-
A class to use to push around lists of constant values, nothing more.
-
static constexpr auto size
Compile-time number of elements in the value list.
+
typename type_list_cat< type_list< Type..., Other... >, List... >::type type
A type list composed by the types of all the type lists.
+
type_list< Type... > type
A type list composed by the types of all the type lists.
+
Concatenates multiple type lists.
+
type_list<> type
A type list composed by the types of all the type lists.
+
Primary template isn't defined on purpose.
+
Provides the member constant value to true if a type list contains a given type, false otherwise.
+
type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... > type
A type list that is the difference between the two type lists.
+
Primary template isn't defined on purpose.
+ +
Primary template isn't defined on purpose.
+ +
static constexpr value_type value
Compile-time position of the given type in the sublist.
+
static constexpr value_type value
Compile-time position of the given type in the sublist.
+ +
static constexpr value_type value
Compile-time position of the given type in the sublist.
+
std::size_t value_type
Unsigned integer type.
+
Primary template isn't defined on purpose.
+
type_list< typename Op< Type >::type... > type
Resulting type list after applying the transform function.
+
Primary template isn't defined on purpose.
+
Removes duplicates types from a type list.
+
typename internal::type_list_unique< List >::type type
A type list without duplicate types.
+
A class to use to push around lists of types, nothing more.
+
static constexpr auto size
+
type_list type
Type list type.
+
typename value_list_cat< value_list< Value..., Other... >, List... >::type type
A value list composed by the values of all the value lists.
+
value_list< Value... > type
A value list composed by the values of all the value lists.
+
Concatenates multiple value lists.
+
value_list<> type
A value list composed by the values of all the value lists.
+
Primary template isn't defined on purpose.
+
Provides the member constant value to true if a value list contains a given value,...
+
value_list_cat_t< std::conditional_t< value_list_contains_v< value_list< Other... >, Value >, value_list<>, value_list< Value > >... > type
A value list that is the difference between the two value lists.
+
Primary template isn't defined on purpose.
+ + +
Primary template isn't defined on purpose.
+
static constexpr value_type value
Compile-time position of the given value in the sublist.
+ +
static constexpr value_type value
Compile-time position of the given value in the sublist.
+ +
std::size_t value_type
Unsigned integer type.
+
static constexpr value_type value
Compile-time position of the given type in the sublist.
+
Primary template isn't defined on purpose.
+
std::conditional_t<((Value==Other)||...), typename value_list_unique< value_list< Other... > >::type, value_list_cat_t< value_list< Value >, typename value_list_unique< value_list< Other... > >::type > > type
A value list without duplicate types.
+
value_list<> type
A value list without duplicate types.
+
Primary template isn't defined on purpose.
+
A class to use to push around lists of constant values, nothing more.
+
static constexpr auto size
+
value_list type
Value list type.
+
diff --git a/core_2utility_8hpp_source.html b/core_2utility_8hpp_source.html index e2281ea7d..f856bc8ca 100644 --- a/core_2utility_8hpp_source.html +++ b/core_2utility_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/utility.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
utility.hpp
@@ -90,59 +98,59 @@ $(function() { codefold.init(0); });
5#include <utility>
6
7namespace entt {
-
8
+
8
10struct identity {
- -
13
+
12 using is_transparent = void;
+
13
20 template<typename Type>
-
21 [[nodiscard]] constexpr Type &&operator()(Type &&value) const noexcept {
+
21 [[nodiscard]] constexpr Type &&operator()(Type &&value) const noexcept {
22 return std::forward<Type>(value);
23 }
24};
-
25
+
25
33template<typename Type, typename Class>
-
34[[nodiscard]] constexpr auto overload(Type Class::*member) noexcept {
- +
34[[nodiscard]] constexpr auto overload(Type Class::*member) noexcept {
+
35 return member;
36}
-
37
+
37
44template<typename Func>
45[[nodiscard]] constexpr auto overload(Func *func) noexcept {
46 return func;
47}
-
48
+
48
53template<typename... Func>
54struct overloaded: Func... {
55 using Func::operator()...;
56};
-
57
+
57
62template<typename... Func>
-
63overloaded(Func...) -> overloaded<Func...>;
-
64
+
63overloaded(Func...) -> overloaded<Func...>;
+
64
69template<typename Func>
- +
75 constexpr y_combinator(Func recursive) noexcept(std::is_nothrow_move_constructible_v<Func>)
76 : func{std::move(recursive)} {}
-
77
+
77
84 template<typename... Args>
-
85 constexpr decltype(auto) operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v<Func, const y_combinator &, Args...>) {
+
85 constexpr decltype(auto) operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v<Func, const y_combinator &, Args...>) {
86 return func(*this, std::forward<Args>(args)...);
87 }
-
88
+
88
90 template<typename... Args>
91 constexpr decltype(auto) operator()(Args &&...args) noexcept(std::is_nothrow_invocable_v<Func, y_combinator &, Args...>) {
@@ -159,18 +167,19 @@ $(function() { codefold.init(0); });
100
101#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
+
overloaded(Func...) -> overloaded< Func... >
Deduction guide.
constexpr auto overload(Type Class::*member) noexcept
Constant utility to disambiguate overloaded members of a class.
Definition utility.hpp:34
Identity function object (waiting for C++20).
Definition utility.hpp:10
constexpr Type && operator()(Type &&value) const noexcept
Returns its argument unchanged.
Definition utility.hpp:21
void is_transparent
Indicates that this is a transparent function object.
Definition utility.hpp:12
Helper type for visitors.
Definition utility.hpp:54
-
Basic implementation of a y-combinator.
Definition utility.hpp:70
+
constexpr decltype(auto) operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)
Invokes a y-combinator and therefore its underlying function.
Definition utility.hpp:85
constexpr y_combinator(Func recursive) noexcept(std::is_nothrow_move_constructible_v< Func >)
Constructs a y-combinator from a given function.
Definition utility.hpp:75
+
diff --git a/delegate_8hpp_source.html b/delegate_8hpp_source.html index 6b3608e50..43d20ac6e 100644 --- a/delegate_8hpp_source.html +++ b/delegate_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/signal/delegate.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
delegate.hpp
@@ -96,7 +104,7 @@ $(function() { codefold.init(0); });
11#include "fwd.hpp"
12
13namespace entt {
-
14
+
14
16namespace internal {
17
18template<typename Ret, typename... Args>
@@ -109,7 +117,7 @@ $(function() { codefold.init(0); });
25constexpr auto function_pointer(Ret (Class::*)(Args...), Other &&...) -> Ret (*)(Args...);
26
27template<typename Class, typename Ret, typename... Args, typename... Other>
-
28constexpr auto function_pointer(Ret (Class::*)(Args...) const, Other &&...) -> Ret (*)(Args...);
+
28constexpr auto function_pointer(Ret (Class::*)(Args...) const, Other &&...) -> Ret (*)(Args...);
29
30template<typename Class, typename Type, typename... Other, typename = std::enable_if_t<std::is_member_object_pointer_v<Type Class::*>>>
31constexpr auto function_pointer(Type Class::*, Other &&...) -> Type (*)();
@@ -123,212 +131,174 @@ $(function() { codefold.init(0); });
39}
40
41} // namespace internal
+
43
50template<typename>
-
52
-
65template<typename Ret, typename... Args>
-
-
66class delegate<Ret(Args...)> {
+
52
+
65template<typename Ret, typename... Args>
+
66class delegate<Ret(Args...)> {
67 using return_type = std::remove_const_t<Ret>;
-
68 using delegate_type = return_type(const void *, Args...);
+
68 using delegate_type = return_type(const void *, Args...);
69
-
70 template<auto Candidate, std::size_t... Index>
-
71 [[nodiscard]] auto wrap(std::index_sequence<Index...>) noexcept {
-
72 return [](const void *, Args... args) -> return_type {
-
73 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
-
74 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
-
75 return static_cast<Ret>(std::invoke(Candidate, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
+
70 template<auto Candidate, std::size_t... Index>
+
71 [[nodiscard]] auto wrap(std::index_sequence<Index...>) noexcept {
+
72 return [](const void *, Args... args) -> return_type {
+
73 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
+
74 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
+
75 return static_cast<Ret>(std::invoke(Candidate, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
76 };
77 }
78
-
79 template<auto Candidate, typename Type, std::size_t... Index>
-
80 [[nodiscard]] auto wrap(Type &, std::index_sequence<Index...>) noexcept {
-
81 return [](const void *payload, Args... args) -> return_type {
-
82 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
-
83 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
-
84 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), Type &, type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
-
85 return static_cast<Ret>(std::invoke(Candidate, *curr, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
+
79 template<auto Candidate, typename Type, std::size_t... Index>
+
80 [[nodiscard]] auto wrap(Type &, std::index_sequence<Index...>) noexcept {
+
81 return [](const void *payload, Args... args) -> return_type {
+
82 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
+
83 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
+
84 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), Type &, type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
+
85 return static_cast<Ret>(std::invoke(Candidate, *curr, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
86 };
87 }
88
-
89 template<auto Candidate, typename Type, std::size_t... Index>
-
90 [[nodiscard]] auto wrap(Type *, std::index_sequence<Index...>) noexcept {
-
91 return [](const void *payload, Args... args) -> return_type {
-
92 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
-
93 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
-
94 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), Type *, type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
-
95 return static_cast<Ret>(std::invoke(Candidate, curr, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
+
89 template<auto Candidate, typename Type, std::size_t... Index>
+
90 [[nodiscard]] auto wrap(Type *, std::index_sequence<Index...>) noexcept {
+
91 return [](const void *payload, Args... args) -> return_type {
+
92 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
+
93 [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward<Args>(args)...);
+
94 [[maybe_unused]] constexpr auto offset = !std::is_invocable_r_v<Ret, decltype(Candidate), Type *, type_list_element_t<Index, type_list<Args...>>...> * (sizeof...(Args) - sizeof...(Index));
+
95 return static_cast<Ret>(std::invoke(Candidate, curr, std::forward<type_list_element_t<Index + offset, type_list<Args...>>>(std::get<Index + offset>(arguments))...));
96 };
97 }
98
99public:
-
101 using function_type = Ret(const void *, Args...);
-
103 using type = Ret(Args...);
- -
106
- -
109
- -
- -
118 connect<Candidate>(std::forward<Type>(value_or_instance)...);
+
101 using function_type = Ret(const void *, Args...);
+
103 using type = Ret(Args...);
+
105 using result_type = Ret;
+
106
+
108 delegate() noexcept = default;
+
109
+
116 template<auto Candidate, typename... Type>
+
117 delegate(connect_arg_t<Candidate>, Type &&...value_or_instance) noexcept {
+
118 connect<Candidate>(std::forward<Type>(value_or_instance)...);
119 }
-
-
120
-
-
127 delegate(function_type *function, const void *payload = nullptr) noexcept {
-
128 connect(function, payload);
+
120
+
127 delegate(function_type *function, const void *payload = nullptr) noexcept {
+
128 connect(function, payload);
129 }
-
-
130
+
130
135 template<auto Candidate>
-
- +
136 void connect() noexcept {
137 instance = nullptr;
138
-
139 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Args...>) {
-
140 fn = [](const void *, Args... args) -> return_type {
-
141 return Ret(std::invoke(Candidate, std::forward<Args>(args)...));
+
139 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Args...>) {
+
140 fn = [](const void *, Args... args) -> return_type {
+
141 return Ret(std::invoke(Candidate, std::forward<Args>(args)...));
142 };
-
143 } else if constexpr(std::is_member_pointer_v<decltype(Candidate)>) {
-
144 fn = wrap<Candidate>(internal::index_sequence_for<type_list_element_t<0, type_list<Args...>>>(internal::function_pointer_t<decltype(Candidate)>{}));
+
143 } else if constexpr(std::is_member_pointer_v<decltype(Candidate)>) {
+
144 fn = wrap<Candidate>(internal::index_sequence_for<type_list_element_t<0, type_list<Args...>>>(internal::function_pointer_t<decltype(Candidate)>{}));
145 } else {
-
146 fn = wrap<Candidate>(internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate)>{}));
+
146 fn = wrap<Candidate>(internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate)>{}));
147 }
148 }
-
-
149
+
149
165 template<auto Candidate, typename Type>
-
-
166 void connect(Type &value_or_instance) noexcept {
-
167 instance = &value_or_instance;
+
166 void connect(Type &value_or_instance) noexcept {
+
167 instance = &value_or_instance;
168
-
169 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type &, Args...>) {
-
170 fn = [](const void *payload, Args... args) -> return_type {
-
171 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
-
172 return Ret(std::invoke(Candidate, *curr, std::forward<Args>(args)...));
+
169 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type &, Args...>) {
+
170 fn = [](const void *payload, Args... args) -> return_type {
+
171 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
+
172 return Ret(std::invoke(Candidate, *curr, std::forward<Args>(args)...));
173 };
174 } else {
-
175 fn = wrap<Candidate>(value_or_instance, internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate), Type>{}));
+
175 fn = wrap<Candidate>(value_or_instance, internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate), Type>{}));
176 }
177 }
-
-
178
+
178
189 template<auto Candidate, typename Type>
-
-
190 void connect(Type *value_or_instance) noexcept {
-
191 instance = value_or_instance;
+
190 void connect(Type *value_or_instance) noexcept {
+
191 instance = value_or_instance;
192
-
193 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type *, Args...>) {
-
194 fn = [](const void *payload, Args... args) -> return_type {
-
195 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
-
196 return Ret(std::invoke(Candidate, curr, std::forward<Args>(args)...));
+
193 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type *, Args...>) {
+
194 fn = [](const void *payload, Args... args) -> return_type {
+
195 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
+
196 return Ret(std::invoke(Candidate, curr, std::forward<Args>(args)...));
197 };
198 } else {
-
199 fn = wrap<Candidate>(value_or_instance, internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate), Type>{}));
+
199 fn = wrap<Candidate>(value_or_instance, internal::index_sequence_for(internal::function_pointer_t<decltype(Candidate), Type>{}));
200 }
201 }
-
-
202
-
-
216 void connect(function_type *function, const void *payload = nullptr) noexcept {
-
217 ENTT_ASSERT(function != nullptr, "Uninitialized function pointer");
+
202
+
216 void connect(function_type *function, const void *payload = nullptr) noexcept {
+
217 ENTT_ASSERT(function != nullptr, "Uninitialized function pointer");
218 instance = payload;
-
219 fn = function;
+
219 fn = function;
220 }
-
-
221
-
- +
221
+
227 void reset() noexcept {
228 instance = nullptr;
229 fn = nullptr;
230 }
-
-
231
-
- +
231
+
236 [[nodiscard]] function_type *target() const noexcept {
237 return fn;
238 }
-
-
239
-
-
244 [[nodiscard]] const void *data() const noexcept {
+
239
+
244 [[nodiscard]] const void *data() const noexcept {
245 return instance;
246 }
-
-
247
-
- +
247
+
260 Ret operator()(Args... args) const {
261 ENTT_ASSERT(static_cast<bool>(*this), "Uninitialized delegate");
-
262 return fn(instance, std::forward<Args>(args)...);
+
262 return fn(instance, std::forward<Args>(args)...);
263 }
-
-
264
-
-
269 [[nodiscard]] explicit operator bool() const noexcept {
+
264
+
269 [[nodiscard]] explicit operator bool() const noexcept {
270 // no need to also test instance
271 return !(fn == nullptr);
272 }
-
-
273
-
-
279 [[nodiscard]] bool operator==(const delegate<Ret(Args...)> &other) const noexcept {
-
280 return fn == other.fn && instance == other.instance;
+
273
+
279 [[nodiscard]] bool operator==(const delegate<Ret(Args...)> &other) const noexcept {
+
280 return fn == other.fn && instance == other.instance;
281 }
-
282
283private:
284 const void *instance{};
285 delegate_type *fn{};
286};
-
-
287
-
296template<typename Ret, typename... Args>
+
287
+
296template<typename Ret, typename... Args>
-
297[[nodiscard]] bool operator!=(const delegate<Ret(Args...)> &lhs, const delegate<Ret(Args...)> &rhs) noexcept {
-
298 return !(lhs == rhs);
+
297[[nodiscard]] bool operator!=(const delegate<Ret(Args...)> &lhs, const delegate<Ret(Args...)> &rhs) noexcept {
+
298 return !(lhs == rhs);
299}
-
300
+
300
305template<auto Candidate>
-
306delegate(connect_arg_t<Candidate>) -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate)>>>;
-
307
+
306delegate(connect_arg_t<Candidate>) -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate)>>>;
+
307
313template<auto Candidate, typename Type>
-
314delegate(connect_arg_t<Candidate>, Type &&) -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate), Type>>>;
-
315
-
321template<typename Ret, typename... Args>
-
322delegate(Ret (*)(const void *, Args...), const void * = nullptr) -> delegate<Ret(Args...)>;
+
314delegate(connect_arg_t<Candidate>, Type &&) -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate), Type>>>;
+
315
+
321template<typename Ret, typename... Args>
+
322delegate(Ret (*)(const void *, Args...), const void * = nullptr) -> delegate<Ret(Args...)>;
323
324} // namespace entt
325
326#endif
-
bool operator==(const delegate< Ret(Args...)> &other) const noexcept
Compares the contents of two delegates.
Definition delegate.hpp:279
-
Ret operator()(Args... args) const
Triggers a delegate.
Definition delegate.hpp:260
-
void reset() noexcept
Resets a delegate.
Definition delegate.hpp:227
-
Ret(const void *, Args...) function_type
Function type of the contained target.
Definition delegate.hpp:101
-
delegate(function_type *function, const void *payload=nullptr) noexcept
Constructs a delegate and connects an user defined function with optional payload.
Definition delegate.hpp:127
-
void connect(Type &value_or_instance) noexcept
Connects a free function with payload or a bound member to a delegate.
Definition delegate.hpp:166
-
void connect(Type *value_or_instance) noexcept
Connects a free function with payload or a bound member to a delegate.
Definition delegate.hpp:190
-
void connect() noexcept
Connects a free function or an unbound member to a delegate.
Definition delegate.hpp:136
-
Ret result_type
Return type of the delegate.
Definition delegate.hpp:105
-
const void * data() const noexcept
Returns the instance or the payload linked to a delegate, if any.
Definition delegate.hpp:244
-
delegate() noexcept=default
Default constructor.
-
void connect(function_type *function, const void *payload=nullptr) noexcept
Connects an user defined function with optional payload to a delegate.
Definition delegate.hpp:216
-
function_type * target() const noexcept
Returns a pointer to the stored callable function target, if any.
Definition delegate.hpp:236
-
Ret(Args...) type
Function type of the delegate.
Definition delegate.hpp:103
Basic delegate implementation.
Definition delegate.hpp:51
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
-
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
+
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
+
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
Deduction guide.
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
+
constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
Disambiguation tag for constructors and the like.
Definition fwd.hpp:32
-
A class to use to push around lists of types, nothing more.
+
A class to use to push around lists of types, nothing more.
+
diff --git a/dense__map_8hpp_source.html b/dense__map_8hpp_source.html index b631667c0..b69fc8f30 100644 --- a/dense__map_8hpp_source.html +++ b/dense__map_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/container/dense_map.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
dense_map.hpp
@@ -106,7 +114,7 @@ $(function() { codefold.init(0); });
21
22namespace entt {
-
23
+
23
25namespace internal {
26
27template<typename Key, typename Type>
@@ -168,7 +176,7 @@ $(function() { codefold.init(0); });
83 }
84
85 constexpr dense_map_iterator operator++(int) noexcept {
-
86 dense_map_iterator orig = *this;
+
86 const dense_map_iterator orig = *this;
87 return ++(*this), orig;
88 }
89
@@ -177,7 +185,7 @@ $(function() { codefold.init(0); });
92 }
93
94 constexpr dense_map_iterator operator--(int) noexcept {
-
95 dense_map_iterator orig = *this;
+
95 const dense_map_iterator orig = *this;
96 return operator--(), orig;
97 }
98
@@ -289,11 +297,11 @@ $(function() { codefold.init(0); });
204 offset{other.offset} {}
205
206 constexpr dense_map_local_iterator &operator++() noexcept {
-
207 return offset = it[offset].next, *this;
+
207 return (offset = it[static_cast<typename It::difference_type>(offset)].next), *this;
208 }
209
210 constexpr dense_map_local_iterator operator++(int) noexcept {
-
211 dense_map_local_iterator orig = *this;
+
211 const dense_map_local_iterator orig = *this;
212 return ++(*this), orig;
213 }
214
@@ -302,721 +310,724 @@ $(function() { codefold.init(0); });
217 }
218
219 [[nodiscard]] constexpr reference operator*() const noexcept {
-
220 return {it[offset].element.first, it[offset].element.second};
-
221 }
-
222
-
223 [[nodiscard]] constexpr std::size_t index() const noexcept {
-
224 return offset;
-
225 }
-
226
-
227private:
-
228 It it;
-
229 std::size_t offset;
-
230};
-
231
-
232template<typename Lhs, typename Rhs>
-
233[[nodiscard]] constexpr bool operator==(const dense_map_local_iterator<Lhs> &lhs, const dense_map_local_iterator<Rhs> &rhs) noexcept {
-
234 return lhs.index() == rhs.index();
-
235}
-
236
-
237template<typename Lhs, typename Rhs>
-
238[[nodiscard]] constexpr bool operator!=(const dense_map_local_iterator<Lhs> &lhs, const dense_map_local_iterator<Rhs> &rhs) noexcept {
-
239 return !(lhs == rhs);
-
240}
-
241
-
242} // namespace internal
-
258template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
-
- -
260 static constexpr float default_threshold = 0.875f;
-
261 static constexpr std::size_t minimum_capacity = 8u;
-
262
-
263 using node_type = internal::dense_map_node<Key, Type>;
-
264 using alloc_traits = std::allocator_traits<Allocator>;
-
265 static_assert(std::is_same_v<typename alloc_traits::value_type, std::pair<const Key, Type>>, "Invalid value type");
-
266 using sparse_container_type = std::vector<std::size_t, typename alloc_traits::template rebind_alloc<std::size_t>>;
-
267 using packed_container_type = std::vector<node_type, typename alloc_traits::template rebind_alloc<node_type>>;
-
268
-
269 template<typename Other>
-
270 [[nodiscard]] std::size_t key_to_bucket(const Other &key) const noexcept {
-
271 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
-
272 return fast_mod(static_cast<size_type>(sparse.second()(key)), bucket_count());
-
273 }
-
274
-
275 template<typename Other>
-
276 [[nodiscard]] auto constrained_find(const Other &key, std::size_t bucket) {
-
277 for(auto it = begin(bucket), last = end(bucket); it != last; ++it) {
-
278 if(packed.second()(it->first, key)) {
-
279 return begin() + static_cast<typename iterator::difference_type>(it.index());
-
280 }
-
281 }
-
282
-
283 return end();
-
284 }
-
285
-
286 template<typename Other>
-
287 [[nodiscard]] auto constrained_find(const Other &key, std::size_t bucket) const {
-
288 for(auto it = cbegin(bucket), last = cend(bucket); it != last; ++it) {
-
289 if(packed.second()(it->first, key)) {
-
290 return cbegin() + static_cast<typename iterator::difference_type>(it.index());
-
291 }
-
292 }
-
293
-
294 return cend();
-
295 }
-
296
-
297 template<typename Other, typename... Args>
-
298 [[nodiscard]] auto insert_or_do_nothing(Other &&key, Args &&...args) {
-
299 const auto index = key_to_bucket(key);
-
300
-
301 if(auto it = constrained_find(key, index); it != end()) {
-
302 return std::make_pair(it, false);
-
303 }
-
304
-
305 packed.first().emplace_back(sparse.first()[index], std::piecewise_construct, std::forward_as_tuple(std::forward<Other>(key)), std::forward_as_tuple(std::forward<Args>(args)...));
-
306 sparse.first()[index] = packed.first().size() - 1u;
-
307 rehash_if_required();
-
308
-
309 return std::make_pair(--end(), true);
-
310 }
-
311
-
312 template<typename Other, typename Arg>
-
313 [[nodiscard]] auto insert_or_overwrite(Other &&key, Arg &&value) {
-
314 const auto index = key_to_bucket(key);
-
315
-
316 if(auto it = constrained_find(key, index); it != end()) {
-
317 it->second = std::forward<Arg>(value);
-
318 return std::make_pair(it, false);
-
319 }
-
320
-
321 packed.first().emplace_back(sparse.first()[index], std::forward<Other>(key), std::forward<Arg>(value));
-
322 sparse.first()[index] = packed.first().size() - 1u;
-
323 rehash_if_required();
-
324
-
325 return std::make_pair(--end(), true);
-
326 }
-
327
-
328 void move_and_pop(const std::size_t pos) {
-
329 if(const auto last = size() - 1u; pos != last) {
-
330 size_type *curr = &sparse.first()[key_to_bucket(packed.first().back().element.first)];
-
331 packed.first()[pos] = std::move(packed.first().back());
-
332 for(; *curr != last; curr = &packed.first()[*curr].next) {}
-
333 *curr = pos;
-
334 }
-
335
-
336 packed.first().pop_back();
-
337 }
-
338
-
339 void rehash_if_required() {
-
340 if(size() > (bucket_count() * max_load_factor())) {
-
341 rehash(bucket_count() * 2u);
-
342 }
-
343 }
-
344
-
345public:
-
347 using allocator_type = Allocator;
-
349 using key_type = Key;
-
351 using mapped_type = Type;
-
353 using value_type = std::pair<const Key, Type>;
-
355 using size_type = std::size_t;
-
357 using hasher = Hash;
- -
361 using iterator = internal::dense_map_iterator<typename packed_container_type::iterator>;
-
363 using const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>;
-
365 using local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>;
-
367 using const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>;
-
368
-
- -
371 : dense_map{minimum_capacity} {}
+
220 const auto idx = static_cast<typename It::difference_type>(offset);
+
221 return {it[idx].element.first, it[idx].element.second};
+
222 }
+
223
+
224 [[nodiscard]] constexpr std::size_t index() const noexcept {
+
225 return offset;
+
226 }
+
227
+
228private:
+
229 It it;
+
230 std::size_t offset;
+
231};
+
232
+
233template<typename Lhs, typename Rhs>
+
234[[nodiscard]] constexpr bool operator==(const dense_map_local_iterator<Lhs> &lhs, const dense_map_local_iterator<Rhs> &rhs) noexcept {
+
235 return lhs.index() == rhs.index();
+
236}
+
237
+
238template<typename Lhs, typename Rhs>
+
239[[nodiscard]] constexpr bool operator!=(const dense_map_local_iterator<Lhs> &lhs, const dense_map_local_iterator<Rhs> &rhs) noexcept {
+
240 return !(lhs == rhs);
+
241}
+
242
+
243} // namespace internal
+
245
+
259template<typename Key, typename Type, typename Hash, typename KeyEqual, typename Allocator>
+
+ +
261 static constexpr float default_threshold = 0.875f;
+
262 static constexpr std::size_t minimum_capacity = 8u;
+
263
+
264 using node_type = internal::dense_map_node<Key, Type>;
+
265 using alloc_traits = std::allocator_traits<Allocator>;
+
266 static_assert(std::is_same_v<typename alloc_traits::value_type, std::pair<const Key, Type>>, "Invalid value type");
+
267 using sparse_container_type = std::vector<std::size_t, typename alloc_traits::template rebind_alloc<std::size_t>>;
+
268 using packed_container_type = std::vector<node_type, typename alloc_traits::template rebind_alloc<node_type>>;
+
269
+
270 template<typename Other>
+
271 [[nodiscard]] std::size_t key_to_bucket(const Other &key) const noexcept {
+
272 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
+
273 return fast_mod(static_cast<size_type>(sparse.second()(key)), bucket_count());
+
274 }
+
275
+
276 template<typename Other>
+
277 [[nodiscard]] auto constrained_find(const Other &key, std::size_t bucket) {
+
278 for(auto it = begin(bucket), last = end(bucket); it != last; ++it) {
+
279 if(packed.second()(it->first, key)) {
+
280 return begin() + static_cast<difference_type>(it.index());
+
281 }
+
282 }
+
283
+
284 return end();
+
285 }
+
286
+
287 template<typename Other>
+
288 [[nodiscard]] auto constrained_find(const Other &key, std::size_t bucket) const {
+
289 for(auto it = cbegin(bucket), last = cend(bucket); it != last; ++it) {
+
290 if(packed.second()(it->first, key)) {
+
291 return cbegin() + static_cast<difference_type>(it.index());
+
292 }
+
293 }
+
294
+
295 return cend();
+
296 }
+
297
+
298 template<typename Other, typename... Args>
+
299 [[nodiscard]] auto insert_or_do_nothing(Other &&key, Args &&...args) {
+
300 const auto index = key_to_bucket(key);
+
301
+
302 if(auto it = constrained_find(key, index); it != end()) {
+
303 return std::make_pair(it, false);
+
304 }
+
305
+
306 packed.first().emplace_back(sparse.first()[index], std::piecewise_construct, std::forward_as_tuple(std::forward<Other>(key)), std::forward_as_tuple(std::forward<Args>(args)...));
+
307 sparse.first()[index] = packed.first().size() - 1u;
+
308 rehash_if_required();
+
309
+
310 return std::make_pair(--end(), true);
+
311 }
+
312
+
313 template<typename Other, typename Arg>
+
314 [[nodiscard]] auto insert_or_overwrite(Other &&key, Arg &&value) {
+
315 const auto index = key_to_bucket(key);
+
316
+
317 if(auto it = constrained_find(key, index); it != end()) {
+
318 it->second = std::forward<Arg>(value);
+
319 return std::make_pair(it, false);
+
320 }
+
321
+
322 packed.first().emplace_back(sparse.first()[index], std::forward<Other>(key), std::forward<Arg>(value));
+
323 sparse.first()[index] = packed.first().size() - 1u;
+
324 rehash_if_required();
+
325
+
326 return std::make_pair(--end(), true);
+
327 }
+
328
+
329 void move_and_pop(const std::size_t pos) {
+
330 if(const auto last = size() - 1u; pos != last) {
+
331 size_type *curr = &sparse.first()[key_to_bucket(packed.first().back().element.first)];
+
332 packed.first()[pos] = std::move(packed.first().back());
+
333 for(; *curr != last; curr = &packed.first()[*curr].next) {}
+
334 *curr = pos;
+
335 }
+
336
+
337 packed.first().pop_back();
+
338 }
+
339
+
340 void rehash_if_required() {
+
341 if(const auto bc = bucket_count(); size() > static_cast<size_type>(static_cast<float>(bc) * max_load_factor())) {
+
342 rehash(bc * 2u);
+
343 }
+
344 }
+
345
+
346public:
+
348 using allocator_type = Allocator;
+
350 using key_type = Key;
+
352 using mapped_type = Type;
+
354 using value_type = std::pair<const Key, Type>;
+
356 using size_type = std::size_t;
+
358 using difference_type = std::ptrdiff_t;
+
360 using hasher = Hash;
+
362 using key_equal = KeyEqual;
+
364 using iterator = internal::dense_map_iterator<typename packed_container_type::iterator>;
+
366 using const_iterator = internal::dense_map_iterator<typename packed_container_type::const_iterator>;
+
368 using local_iterator = internal::dense_map_local_iterator<typename packed_container_type::iterator>;
+
370 using const_local_iterator = internal::dense_map_local_iterator<typename packed_container_type::const_iterator>;
+
371
+
+ +
374 : dense_map{minimum_capacity} {}
-
372
-
- -
378 : dense_map{minimum_capacity, hasher{}, key_equal{}, allocator} {}
+
375
+
+
380 explicit dense_map(const allocator_type &allocator)
+
381 : dense_map{minimum_capacity, hasher{}, key_equal{}, allocator} {}
-
379
-
- - +
382
+
+
389 dense_map(const size_type cnt, const allocator_type &allocator)
+
390 : dense_map{cnt, hasher{}, key_equal{}, allocator} {}
-
388
-
- -
397 : dense_map{cnt, hash, key_equal{}, allocator} {}
+
391
+
+
399 dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)
+
400 : dense_map{cnt, hash, key_equal{}, allocator} {}
-
398
-
-
407 explicit dense_map(const size_type cnt, const hasher &hash = hasher{}, const key_equal &equal = key_equal{}, const allocator_type &allocator = allocator_type{})
-
408 : sparse{allocator, hash},
-
409 packed{allocator, equal} {
-
410 rehash(cnt);
-
411 }
+
401
+
+
410 explicit dense_map(const size_type cnt, const hasher &hash = hasher{}, const key_equal &equal = key_equal{}, const allocator_type &allocator = allocator_type{})
+
411 : sparse{allocator, hash},
+
412 packed{allocator, equal} {
+
413 rehash(cnt);
+
414 }
-
412
-
414 dense_map(const dense_map &) = default;
-
415
-
- -
422 : sparse{std::piecewise_construct, std::forward_as_tuple(other.sparse.first(), allocator), std::forward_as_tuple(other.sparse.second())},
-
423 packed{std::piecewise_construct, std::forward_as_tuple(other.packed.first(), allocator), std::forward_as_tuple(other.packed.second())},
-
424 threshold{other.threshold} {}
+
415
+
417 dense_map(const dense_map &) = default;
+
418
+
+
424 dense_map(const dense_map &other, const allocator_type &allocator)
+
425 : sparse{std::piecewise_construct, std::forward_as_tuple(other.sparse.first(), allocator), std::forward_as_tuple(other.sparse.second())},
+
426 packed{std::piecewise_construct, std::forward_as_tuple(other.packed.first(), allocator), std::forward_as_tuple(other.packed.second())},
+
427 threshold{other.threshold} {}
-
425
- -
428
-
- -
435 : sparse{std::piecewise_construct, std::forward_as_tuple(std::move(other.sparse.first()), allocator), std::forward_as_tuple(std::move(other.sparse.second()))},
-
436 packed{std::piecewise_construct, std::forward_as_tuple(std::move(other.packed.first()), allocator), std::forward_as_tuple(std::move(other.packed.second()))},
-
437 threshold{other.threshold} {}
+
428
+
430 dense_map(dense_map &&) noexcept = default;
+
431
+
+
437 dense_map(dense_map &&other, const allocator_type &allocator)
+
438 : sparse{std::piecewise_construct, std::forward_as_tuple(std::move(other.sparse.first()), allocator), std::forward_as_tuple(std::move(other.sparse.second()))},
+
439 packed{std::piecewise_construct, std::forward_as_tuple(std::move(other.packed.first()), allocator), std::forward_as_tuple(std::move(other.packed.second()))},
+
440 threshold{other.threshold} {}
-
438
-
440 ~dense_map() = default;
-
441
-
446 dense_map &operator=(const dense_map &) = default;
-
447
- -
453
-
- -
459 return sparse.first().get_allocator();
-
460 }
+
441
+
443 ~dense_map() = default;
+
444
+
449 dense_map &operator=(const dense_map &) = default;
+
450
+
455 dense_map &operator=(dense_map &&) noexcept = default;
+
456
+
+
461 void swap(dense_map &other) noexcept {
+
462 using std::swap;
+
463 swap(sparse, other.sparse);
+
464 swap(packed, other.packed);
+
465 swap(threshold, other.threshold);
+
466 }
-
461
-
- -
470 return packed.first().begin();
-
471 }
+
467
+
+
472 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
473 return sparse.first().get_allocator();
+
474 }
-
472
-
- -
475 return cbegin();
-
476 }
+
475
+
+
483 [[nodiscard]] const_iterator cbegin() const noexcept {
+
484 return packed.first().begin();
+
485 }
-
477
-
- -
480 return packed.first().begin();
-
481 }
-
-
482
+
486
- -
489 return packed.first().end();
+
488 [[nodiscard]] const_iterator begin() const noexcept {
+
489 return cbegin();
490 }
-
491
+
491
- -
494 return cend();
+
493 [[nodiscard]] iterator begin() noexcept {
+
494 return packed.first().begin();
495 }
-
496
-
- -
499 return packed.first().end();
-
500 }
+
496
+
+
502 [[nodiscard]] const_iterator cend() const noexcept {
+
503 return packed.first().end();
+
504 }
-
501
-
- -
507 return packed.first().empty();
-
508 }
+
505
+
+
507 [[nodiscard]] const_iterator end() const noexcept {
+
508 return cend();
+
509 }
-
509
-
- -
515 return packed.first().size();
-
516 }
+
510
+
+
512 [[nodiscard]] iterator end() noexcept {
+
513 return packed.first().end();
+
514 }
-
517
-
- -
523 return packed.first().max_size();
-
524 }
+
515
+
+
520 [[nodiscard]] bool empty() const noexcept {
+
521 return packed.first().empty();
+
522 }
-
525
-
- -
528 sparse.first().clear();
-
529 packed.first().clear();
-
530 rehash(0u);
-
531 }
+
523
+
+
528 [[nodiscard]] size_type size() const noexcept {
+
529 return packed.first().size();
+
530 }
-
532
-
-
540 std::pair<iterator, bool> insert(const value_type &value) {
-
541 return insert_or_do_nothing(value.first, value.second);
-
542 }
+
531
+
+
536 [[nodiscard]] size_type max_size() const noexcept {
+
537 return packed.first().max_size();
+
538 }
-
543
-
-
545 std::pair<iterator, bool> insert(value_type &&value) {
-
546 return insert_or_do_nothing(std::move(value.first), std::move(value.second));
-
547 }
+
539
+
+
541 void clear() noexcept {
+
542 sparse.first().clear();
+
543 packed.first().clear();
+
544 rehash(0u);
+
545 }
-
548
-
553 template<typename Arg>
-
554 std::enable_if_t<std::is_constructible_v<value_type, Arg &&>, std::pair<iterator, bool>>
-
-
555 insert(Arg &&value) {
-
556 return insert_or_do_nothing(std::forward<Arg>(value).first, std::forward<Arg>(value).second);
-
557 }
+
546
+
+
554 std::pair<iterator, bool> insert(const value_type &value) {
+
555 return insert_or_do_nothing(value.first, value.second);
+
556 }
-
558
-
565 template<typename It>
-
-
566 void insert(It first, It last) {
-
567 for(; first != last; ++first) {
-
568 insert(*first);
-
569 }
-
570 }
+
557
+
+
559 std::pair<iterator, bool> insert(value_type &&value) {
+
560 return insert_or_do_nothing(std::move(value.first), std::move(value.second));
+
561 }
-
571
-
581 template<typename Arg>
-
-
582 std::pair<iterator, bool> insert_or_assign(const key_type &key, Arg &&value) {
-
583 return insert_or_overwrite(key, std::forward<Arg>(value));
+
562
+
567 template<typename Arg>
+
568 std::enable_if_t<std::is_constructible_v<value_type, Arg &&>, std::pair<iterator, bool>>
+
+
569 insert(Arg &&value) {
+
570 return insert_or_do_nothing(std::forward<Arg>(value).first, std::forward<Arg>(value).second);
+
571 }
+
+
572
+
579 template<typename It>
+
+
580 void insert(It first, It last) {
+
581 for(; first != last; ++first) {
+
582 insert(*first);
+
583 }
584 }
-
585
-
587 template<typename Arg>
-
-
588 std::pair<iterator, bool> insert_or_assign(key_type &&key, Arg &&value) {
-
589 return insert_or_overwrite(std::move(key), std::forward<Arg>(value));
-
590 }
+
585
+
595 template<typename Arg>
+
+
596 std::pair<iterator, bool> insert_or_assign(const key_type &key, Arg &&value) {
+
597 return insert_or_overwrite(key, std::forward<Arg>(value));
+
598 }
-
591
-
605 template<typename... Args>
-
-
606 std::pair<iterator, bool> emplace([[maybe_unused]] Args &&...args) {
-
607 if constexpr(sizeof...(Args) == 0u) {
-
608 return insert_or_do_nothing(key_type{});
-
609 } else if constexpr(sizeof...(Args) == 1u) {
-
610 return insert_or_do_nothing(std::forward<Args>(args).first..., std::forward<Args>(args).second...);
-
611 } else if constexpr(sizeof...(Args) == 2u) {
-
612 return insert_or_do_nothing(std::forward<Args>(args)...);
-
613 } else {
-
614 auto &node = packed.first().emplace_back(packed.first().size(), std::forward<Args>(args)...);
-
615 const auto index = key_to_bucket(node.element.first);
-
616
-
617 if(auto it = constrained_find(node.element.first, index); it != end()) {
-
618 packed.first().pop_back();
-
619 return std::make_pair(it, false);
-
620 }
-
621
-
622 std::swap(node.next, sparse.first()[index]);
-
623 rehash_if_required();
-
624
-
625 return std::make_pair(--end(), true);
-
626 }
-
627 }
+
599
+
601 template<typename Arg>
+
+
602 std::pair<iterator, bool> insert_or_assign(key_type &&key, Arg &&value) {
+
603 return insert_or_overwrite(std::move(key), std::forward<Arg>(value));
+
604 }
-
628
-
640 template<typename... Args>
-
-
641 std::pair<iterator, bool> try_emplace(const key_type &key, Args &&...args) {
-
642 return insert_or_do_nothing(key, std::forward<Args>(args)...);
-
643 }
+
605
+
619 template<typename... Args>
+
+
620 std::pair<iterator, bool> emplace([[maybe_unused]] Args &&...args) {
+
621 if constexpr(sizeof...(Args) == 0u) {
+
622 return insert_or_do_nothing(key_type{});
+
623 } else if constexpr(sizeof...(Args) == 1u) {
+
624 return insert_or_do_nothing(std::forward<Args>(args).first..., std::forward<Args>(args).second...);
+
625 } else if constexpr(sizeof...(Args) == 2u) {
+
626 return insert_or_do_nothing(std::forward<Args>(args)...);
+
627 } else {
+
628 auto &node = packed.first().emplace_back(packed.first().size(), std::forward<Args>(args)...);
+
629 const auto index = key_to_bucket(node.element.first);
+
630
+
631 if(auto it = constrained_find(node.element.first, index); it != end()) {
+
632 packed.first().pop_back();
+
633 return std::make_pair(it, false);
+
634 }
+
635
+
636 std::swap(node.next, sparse.first()[index]);
+
637 rehash_if_required();
+
638
+
639 return std::make_pair(--end(), true);
+
640 }
+
641 }
-
644
-
646 template<typename... Args>
-
-
647 std::pair<iterator, bool> try_emplace(key_type &&key, Args &&...args) {
-
648 return insert_or_do_nothing(std::move(key), std::forward<Args>(args)...);
-
649 }
+
642
+
654 template<typename... Args>
+
+
655 std::pair<iterator, bool> try_emplace(const key_type &key, Args &&...args) {
+
656 return insert_or_do_nothing(key, std::forward<Args>(args)...);
+
657 }
-
650
-
- -
657 const auto diff = pos - cbegin();
-
658 erase(pos->first);
-
659 return begin() + diff;
-
660 }
+
658
+
660 template<typename... Args>
+
+
661 std::pair<iterator, bool> try_emplace(key_type &&key, Args &&...args) {
+
662 return insert_or_do_nothing(std::move(key), std::forward<Args>(args)...);
+
663 }
-
661
-
- -
669 const auto dist = first - cbegin();
-
670
-
671 for(auto from = last - cbegin(); from != dist; --from) {
-
672 erase(packed.first()[from - 1u].element.first);
-
673 }
-
674
-
675 return (begin() + dist);
-
676 }
+
664
+
+ +
671 const auto diff = pos - cbegin();
+
672 erase(pos->first);
+
673 return begin() + diff;
+
674 }
-
677
-
- -
684 for(size_type *curr = &sparse.first()[key_to_bucket(key)]; *curr != (std::numeric_limits<size_type>::max)(); curr = &packed.first()[*curr].next) {
-
685 if(packed.second()(packed.first()[*curr].element.first, key)) {
-
686 const auto index = *curr;
-
687 *curr = packed.first()[*curr].next;
-
688 move_and_pop(index);
-
689 return 1u;
-
690 }
-
691 }
-
692
-
693 return 0u;
-
694 }
-
-
695
-
-
700 void swap(dense_map &other) noexcept {
-
701 using std::swap;
-
702 swap(sparse, other.sparse);
-
703 swap(packed, other.packed);
-
704 swap(threshold, other.threshold);
-
705 }
+
675
+
+ +
683 const auto dist = first - cbegin();
+
684
+
685 for(auto from = last - cbegin(); from != dist; --from) {
+
686 erase(packed.first()[static_cast<size_type>(from) - 1u].element.first);
+
687 }
+
688
+
689 return (begin() + dist);
+
690 }
+
691
+
+ +
698 for(size_type *curr = &sparse.first()[key_to_bucket(key)]; *curr != (std::numeric_limits<size_type>::max)(); curr = &packed.first()[*curr].next) {
+
699 if(packed.second()(packed.first()[*curr].element.first, key)) {
+
700 const auto index = *curr;
+
701 *curr = packed.first()[*curr].next;
+
702 move_and_pop(index);
+
703 return 1u;
+
704 }
+
705 }
706
-
- -
713 auto it = find(key);
-
714 ENTT_ASSERT(it != end(), "Invalid key");
-
715 return it->second;
-
716 }
+
707 return 0u;
+
708 }
-
717
-
-
719 [[nodiscard]] const mapped_type &at(const key_type &key) const {
-
720 auto it = find(key);
-
721 ENTT_ASSERT(it != cend(), "Invalid key");
-
722 return it->second;
-
723 }
+
709
+
+
715 [[nodiscard]] mapped_type &at(const key_type &key) {
+
716 auto it = find(key);
+
717 ENTT_ASSERT(it != end(), "Invalid key");
+
718 return it->second;
+
719 }
-
724
-
- -
731 return insert_or_do_nothing(key).first->second;
-
732 }
+
720
+
+
722 [[nodiscard]] const mapped_type &at(const key_type &key) const {
+
723 auto it = find(key);
+
724 ENTT_ASSERT(it != cend(), "Invalid key");
+
725 return it->second;
+
726 }
-
733
-
- -
740 return insert_or_do_nothing(std::move(key)).first->second;
-
741 }
+
727
+
+
733 [[nodiscard]] mapped_type &operator[](const key_type &key) {
+
734 return insert_or_do_nothing(key).first->second;
+
735 }
-
742
-
- -
749 return find(key) != end();
-
750 }
+
736
+
+
742 [[nodiscard]] mapped_type &operator[](key_type &&key) {
+
743 return insert_or_do_nothing(std::move(key)).first->second;
+
744 }
-
751
-
758 template<typename Other>
-
759 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, size_type>>
-
-
760 count(const Other &key) const {
-
761 return find(key) != end();
-
762 }
+
745
+
+
751 [[nodiscard]] size_type count(const key_type &key) const {
+
752 return find(key) != end();
+
753 }
-
763
-
- -
771 return constrained_find(key, key_to_bucket(key));
-
772 }
+
754
+
761 template<typename Other>
+
762 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, size_type>>
+
+
763 count(const Other &key) const {
+
764 return find(key) != end();
+
765 }
-
773
-
- -
776 return constrained_find(key, key_to_bucket(key));
-
777 }
+
766
+
+
773 [[nodiscard]] iterator find(const key_type &key) {
+
774 return constrained_find(key, key_to_bucket(key));
+
775 }
-
778
-
787 template<typename Other>
-
788 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, iterator>>
-
-
789 find(const Other &key) {
-
790 return constrained_find(key, key_to_bucket(key));
-
791 }
+
776
+
+
778 [[nodiscard]] const_iterator find(const key_type &key) const {
+
779 return constrained_find(key, key_to_bucket(key));
+
780 }
-
792
-
794 template<typename Other>
-
795 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, const_iterator>>
-
-
796 find(const Other &key) const {
-
797 return constrained_find(key, key_to_bucket(key));
-
798 }
+
781
+
790 template<typename Other>
+
791 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, iterator>>
+
+
792 find(const Other &key) {
+
793 return constrained_find(key, key_to_bucket(key));
+
794 }
-
799
-
-
806 [[nodiscard]] std::pair<iterator, iterator> equal_range(const key_type &key) {
-
807 const auto it = find(key);
-
808 return {it, it + !(it == end())};
-
809 }
+
795
+
797 template<typename Other>
+
798 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, const_iterator>>
+
+
799 find(const Other &key) const {
+
800 return constrained_find(key, key_to_bucket(key));
+
801 }
-
810
-
-
812 [[nodiscard]] std::pair<const_iterator, const_iterator> equal_range(const key_type &key) const {
-
813 const auto it = find(key);
-
814 return {it, it + !(it == cend())};
-
815 }
+
802
+
+
809 [[nodiscard]] std::pair<iterator, iterator> equal_range(const key_type &key) {
+
810 const auto it = find(key);
+
811 return {it, it + !(it == end())};
+
812 }
-
816
-
825 template<typename Other>
-
826 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<iterator, iterator>>>
-
- -
828 const auto it = find(key);
-
829 return {it, it + !(it == end())};
-
830 }
+
813
+
+
815 [[nodiscard]] std::pair<const_iterator, const_iterator> equal_range(const key_type &key) const {
+
816 const auto it = find(key);
+
817 return {it, it + !(it == cend())};
+
818 }
-
831
-
833 template<typename Other>
-
834 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<const_iterator, const_iterator>>>
-
-
835 equal_range(const Other &key) const {
-
836 const auto it = find(key);
-
837 return {it, it + !(it == cend())};
-
838 }
+
819
+
828 template<typename Other>
+
829 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<iterator, iterator>>>
+
+
830 equal_range(const Other &key) {
+
831 const auto it = find(key);
+
832 return {it, it + !(it == end())};
+
833 }
-
839
-
-
845 [[nodiscard]] bool contains(const key_type &key) const {
-
846 return (find(key) != cend());
-
847 }
+
834
+
836 template<typename Other>
+
837 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<const_iterator, const_iterator>>>
+
+
838 equal_range(const Other &key) const {
+
839 const auto it = find(key);
+
840 return {it, it + !(it == cend())};
+
841 }
-
848
-
856 template<typename Other>
-
857 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, bool>>
-
-
858 contains(const Other &key) const {
-
859 return (find(key) != cend());
-
860 }
+
842
+
+
848 [[nodiscard]] bool contains(const key_type &key) const {
+
849 return (find(key) != cend());
+
850 }
-
861
-
- -
868 return {packed.first().begin(), sparse.first()[index]};
-
869 }
+
851
+
859 template<typename Other>
+
860 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, bool>>
+
+
861 contains(const Other &key) const {
+
862 return (find(key) != cend());
+
863 }
-
870
-
- -
877 return cbegin(index);
-
878 }
+
864
+
+
870 [[nodiscard]] const_local_iterator cbegin(const size_type index) const {
+
871 return {packed.first().begin(), sparse.first()[index]};
+
872 }
-
879
-
- -
886 return {packed.first().begin(), sparse.first()[index]};
-
887 }
+
873
+
+
879 [[nodiscard]] const_local_iterator begin(const size_type index) const {
+
880 return cbegin(index);
+
881 }
-
888
-
- -
895 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
-
896 }
+
882
+
+
888 [[nodiscard]] local_iterator begin(const size_type index) {
+
889 return {packed.first().begin(), sparse.first()[index]};
+
890 }
-
897
-
- -
904 return cend(index);
-
905 }
+
891
+
+
897 [[nodiscard]] const_local_iterator cend([[maybe_unused]] const size_type index) const {
+
898 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
+
899 }
-
906
-
- -
913 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
-
914 }
+
900
+
+
906 [[nodiscard]] const_local_iterator end(const size_type index) const {
+
907 return cend(index);
+
908 }
-
915
-
- -
921 return sparse.first().size();
-
922 }
+
909
+
+
915 [[nodiscard]] local_iterator end([[maybe_unused]] const size_type index) {
+
916 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
+
917 }
-
923
-
- -
929 return sparse.first().max_size();
-
930 }
+
918
+
+
923 [[nodiscard]] size_type bucket_count() const {
+
924 return sparse.first().size();
+
925 }
-
931
-
-
937 [[nodiscard]] size_type bucket_size(const size_type index) const {
-
938 return static_cast<size_type>(std::distance(begin(index), end(index)));
-
939 }
+
926
+
+
931 [[nodiscard]] size_type max_bucket_count() const {
+
932 return sparse.first().max_size();
+
933 }
-
940
-
- -
947 return key_to_bucket(key);
-
948 }
+
934
+
+
940 [[nodiscard]] size_type bucket_size(const size_type index) const {
+
941 return static_cast<size_type>(std::distance(begin(index), end(index)));
+
942 }
-
949
-
-
954 [[nodiscard]] float load_factor() const {
-
955 return size() / static_cast<float>(bucket_count());
-
956 }
+
943
+
+
949 [[nodiscard]] size_type bucket(const key_type &key) const {
+
950 return key_to_bucket(key);
+
951 }
-
957
-
-
962 [[nodiscard]] float max_load_factor() const {
-
963 return threshold;
-
964 }
+
952
+
+
957 [[nodiscard]] float load_factor() const {
+
958 return static_cast<float>(size()) / static_cast<float>(bucket_count());
+
959 }
-
965
-
-
970 void max_load_factor(const float value) {
-
971 ENTT_ASSERT(value > 0.f, "Invalid load factor");
-
972 threshold = value;
-
973 rehash(0u);
-
974 }
+
960
+
+
965 [[nodiscard]] float max_load_factor() const {
+
966 return threshold;
+
967 }
-
975
-
-
981 void rehash(const size_type cnt) {
-
982 auto value = cnt > minimum_capacity ? cnt : minimum_capacity;
-
983 const auto cap = static_cast<size_type>(size() / max_load_factor());
-
984 value = value > cap ? value : cap;
-
985
-
986 if(const auto sz = next_power_of_two(value); sz != bucket_count()) {
-
987 sparse.first().resize(sz);
+
968
+
+
973 void max_load_factor(const float value) {
+
974 ENTT_ASSERT(value > 0.f, "Invalid load factor");
+
975 threshold = value;
+
976 rehash(0u);
+
977 }
+
+
978
+
+
984 void rehash(const size_type cnt) {
+
985 auto value = cnt > minimum_capacity ? cnt : minimum_capacity;
+
986 const auto cap = static_cast<size_type>(static_cast<float>(size()) / max_load_factor());
+
987 value = value > cap ? value : cap;
988
-
989 for(auto &&elem: sparse.first()) {
-
990 elem = (std::numeric_limits<size_type>::max)();
-
991 }
-
992
-
993 for(size_type pos{}, last = size(); pos < last; ++pos) {
-
994 const auto index = key_to_bucket(packed.first()[pos].element.first);
-
995 packed.first()[pos].next = std::exchange(sparse.first()[index], pos);
-
996 }
-
997 }
-
998 }
+
989 if(const auto sz = next_power_of_two(value); sz != bucket_count()) {
+
990 sparse.first().resize(sz);
+
991
+
992 for(auto &&elem: sparse.first()) {
+
993 elem = (std::numeric_limits<size_type>::max)();
+
994 }
+
995
+
996 for(size_type pos{}, last = size(); pos < last; ++pos) {
+
997 const auto index = key_to_bucket(packed.first()[pos].element.first);
+
998 packed.first()[pos].next = std::exchange(sparse.first()[index], pos);
+
999 }
+
1000 }
+
1001 }
-
999
-
-
1005 void reserve(const size_type cnt) {
-
1006 packed.first().reserve(cnt);
-
1007 rehash(static_cast<size_type>(std::ceil(cnt / max_load_factor())));
-
1008 }
+
1002
+
+
1008 void reserve(const size_type cnt) {
+
1009 packed.first().reserve(cnt);
+
1010 rehash(static_cast<size_type>(std::ceil(static_cast<float>(cnt) / max_load_factor())));
+
1011 }
-
1009
-
- -
1015 return sparse.second();
-
1016 }
+
1012
+
+
1017 [[nodiscard]] hasher hash_function() const {
+
1018 return sparse.second();
+
1019 }
-
1017
-
- -
1023 return packed.second();
-
1024 }
+
1020
+
+
1025 [[nodiscard]] key_equal key_eq() const {
+
1026 return packed.second();
+
1027 }
-
1025
-
1026private:
- - -
1029 float threshold{default_threshold};
-
1030};
+
1028
+
1029private:
+ + +
1032 float threshold{default_threshold};
+
1033};
-
1031
-
1032} // namespace entt
+
1034
+
1035} // namespace entt
-
1033
-
1035namespace std {
-
1036
-
1037template<typename Key, typename Value, typename Allocator>
-
1038struct uses_allocator<entt::internal::dense_map_node<Key, Value>, Allocator>
-
1039 : std::true_type {};
-
1040
-
1041} // namespace std
-
1044#endif
+
1036
+
1038namespace std {
+
1039
+
1040template<typename Key, typename Value, typename Allocator>
+
1041struct uses_allocator<entt::internal::dense_map_node<Key, Value>, Allocator>
+
1042 : std::true_type {};
+
1043
+
1044} // namespace std
+
1046
+
1047#endif
A compressed pair.
-
constexpr second_type & second() noexcept
Returns the second element that a pair stores.
-
constexpr first_type & first() noexcept
Returns the first element that a pair stores.
-
Associative container for key-value pairs with unique keys.
-
dense_map(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator, hash function, compare function and user suppli...
-
dense_map(const allocator_type &allocator)
Constructs an empty container with a given allocator.
-
void clear() noexcept
Clears the container.
-
float load_factor() const
Returns the average number of elements per bucket.
-
size_type erase(const key_type &key)
Removes the element associated with a given key.
-
mapped_type & operator[](key_type &&key)
Accesses or inserts a given element.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains(const Other &key) const
Checks if the container contains an element with a key that compares equivalent to a given value.
-
const_iterator cbegin() const noexcept
Returns an iterator to the beginning.
-
const_local_iterator begin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count(const Other &key) const
Returns the number of elements matching a key (either 1 or 0).
-
size_type size() const noexcept
Returns the number of elements in a container.
-
std::size_t size_type
Unsigned integer type.
-
const_local_iterator end(const size_type index) const
Returns an iterator to the end of a given bucket.
-
void insert(It first, It last)
Inserts elements into the container, if their keys do not exist.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range(const Other &key)
Returns a range containing all elements that compare equivalent to a given key.
+
dense_map(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator, hash function, compare function and user suppli...
+
dense_map(const allocator_type &allocator)
Constructs an empty container with a given allocator.
+
void clear() noexcept
Clears the container.
+
float load_factor() const
Returns the average number of elements per bucket.
+
size_type erase(const key_type &key)
Removes the element associated with a given key.
+
mapped_type & operator[](key_type &&key)
Accesses or inserts a given element.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains(const Other &key) const
Checks if the container contains an element with a key that compares equivalent to a given value.
+
const_iterator cbegin() const noexcept
Returns an iterator to the beginning.
+
const_local_iterator begin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count(const Other &key) const
Returns the number of elements matching a key (either 1 or 0).
+
size_type size() const noexcept
Returns the number of elements in a container.
+
std::size_t size_type
Unsigned integer type.
+
const_local_iterator end(const size_type index) const
Returns an iterator to the end of a given bucket.
+
void insert(It first, It last)
Inserts elements into the container, if their keys do not exist.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range(const Other &key)
Returns a range containing all elements that compare equivalent to a given key.
dense_map & operator=(dense_map &&) noexcept=default
Default move assignment operator.
-
const mapped_type & at(const key_type &key) const
Accesses a given element with bounds checking.
-
KeyEqual key_equal
Type of function to use to compare the keys for equality.
-
size_type max_size() const noexcept
Returns the maximum possible number of elements.
-
mapped_type & at(const key_type &key)
Accesses a given element with bounds checking.
-
void reserve(const size_type cnt)
Reserves space for at least the specified number of elements and regenerates the hash table.
-
size_type max_bucket_count() const
Returns the maximum number of buckets.
-
iterator erase(const_iterator first, const_iterator last)
Removes the given elements from a container.
-
size_type count(const key_type &key) const
Returns the number of elements matching a key (either 1 or 0).
-
local_iterator begin(const size_type index)
Returns an iterator to the beginning of a given bucket.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find(const Other &key) const
Finds an element with a given key.
-
bool contains(const key_type &key) const
Checks if the container contains an element with a given key.
-
const_iterator cend() const noexcept
Returns an iterator to the end.
-
dense_map(const size_type cnt, const allocator_type &allocator)
Constructs an empty container with a given allocator and user supplied minimal number of buckets.
-
std::pair< iterator, bool > try_emplace(const key_type &key, Args &&...args)
Inserts in-place if the key does not exist, does nothing if the key exists.
-
float max_load_factor() const
Returns the maximum average number of elements per bucket.
-
const_iterator find(const key_type &key) const
Finds an element with a given key.
-
internal::dense_map_iterator< typename packed_container_type::const_iterator > const_iterator
Constant input iterator type.
-
void max_load_factor(const float value)
Sets the desired maximum average number of elements per bucket.
+
const mapped_type & at(const key_type &key) const
Accesses a given element with bounds checking.
+
KeyEqual key_equal
Type of function to use to compare the keys for equality.
+
size_type max_size() const noexcept
Returns the maximum possible number of elements.
+
mapped_type & at(const key_type &key)
Accesses a given element with bounds checking.
+
void reserve(const size_type cnt)
Reserves space for at least the specified number of elements and regenerates the hash table.
+
size_type max_bucket_count() const
Returns the maximum number of buckets.
+
iterator erase(const_iterator first, const_iterator last)
Removes the given elements from a container.
+
size_type count(const key_type &key) const
Returns the number of elements matching a key (either 1 or 0).
+
local_iterator begin(const size_type index)
Returns an iterator to the beginning of a given bucket.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find(const Other &key) const
Finds an element with a given key.
+
bool contains(const key_type &key) const
Checks if the container contains an element with a given key.
+
const_iterator cend() const noexcept
Returns an iterator to the end.
+
dense_map(const size_type cnt, const allocator_type &allocator)
Constructs an empty container with a given allocator and user supplied minimal number of buckets.
+
std::pair< iterator, bool > try_emplace(const key_type &key, Args &&...args)
Inserts in-place if the key does not exist, does nothing if the key exists.
+
float max_load_factor() const
Returns the maximum average number of elements per bucket.
+
const_iterator find(const key_type &key) const
Finds an element with a given key.
+
internal::dense_map_iterator< typename packed_container_type::const_iterator > const_iterator
Constant input iterator type.
+
void max_load_factor(const float value)
Sets the desired maximum average number of elements per bucket.
dense_map & operator=(const dense_map &)=default
Default copy assignment operator.
-
std::pair< iterator, bool > insert(value_type &&value)
Inserts an element into the container, if the key does not exist.
-
iterator find(const key_type &key)
Finds an element with a given key.
-
std::pair< iterator, iterator > equal_range(const key_type &key)
Returns a range containing all elements with a given key.
-
const_iterator begin() const noexcept
Returns an iterator to the beginning.
-
Type mapped_type
Mapped type of the container.
-
void rehash(const size_type cnt)
Reserves at least the specified number of buckets and regenerates the hash table.
-
const_local_iterator cend(const size_type index) const
Returns an iterator to the end of a given bucket.
-
iterator erase(const_iterator pos)
Removes an element from a given position.
-
void swap(dense_map &other) noexcept
Exchanges the contents with those of a given container.
-
dense_map(const dense_map &other, const allocator_type &allocator)
Allocator-extended copy constructor.
-
std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > insert(Arg &&value)
Inserts an element into the container, if the key does not exist.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range(const Other &key) const
Returns a range containing all elements with a given key.
-
size_type bucket(const key_type &key) const
Returns the bucket for a given key.
-
std::pair< iterator, bool > insert_or_assign(key_type &&key, Arg &&value)
Inserts an element into the container or assigns to the current element if the key already exists.
-
mapped_type & operator[](const key_type &key)
Accesses or inserts a given element.
-
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
-
const_local_iterator cbegin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
-
std::pair< const Key, Type > value_type
Key-value type of the container.
+
std::pair< iterator, bool > insert(value_type &&value)
Inserts an element into the container, if the key does not exist.
+
iterator find(const key_type &key)
Finds an element with a given key.
+
std::pair< iterator, iterator > equal_range(const key_type &key)
Returns a range containing all elements with a given key.
+
const_iterator begin() const noexcept
Returns an iterator to the beginning.
+
Type mapped_type
Mapped type of the container.
+
void rehash(const size_type cnt)
Reserves at least the specified number of buckets and regenerates the hash table.
+
const_local_iterator cend(const size_type index) const
Returns an iterator to the end of a given bucket.
+
iterator erase(const_iterator pos)
Removes an element from a given position.
+ +
dense_map(const dense_map &other, const allocator_type &allocator)
Allocator-extended copy constructor.
+
std::enable_if_t< std::is_constructible_v< value_type, Arg && >, std::pair< iterator, bool > > insert(Arg &&value)
Inserts an element into the container, if the key does not exist.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range(const Other &key) const
Returns a range containing all elements with a given key.
+
size_type bucket(const key_type &key) const
Returns the bucket for a given key.
+
std::pair< iterator, bool > insert_or_assign(key_type &&key, Arg &&value)
Inserts an element into the container or assigns to the current element if the key already exists.
+
mapped_type & operator[](const key_type &key)
Accesses or inserts a given element.
+
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
+
const_local_iterator cbegin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
+
std::pair< const Key, Type > value_type
Key-value type of the container.
dense_map(const dense_map &)=default
Default copy constructor.
-
std::pair< iterator, bool > insert_or_assign(const key_type &key, Arg &&value)
Inserts an element into the container or assigns to the current element if the key already exists.
-
std::pair< iterator, bool > emplace(Args &&...args)
Constructs an element in-place, if the key does not exist.
-
std::pair< iterator, bool > try_emplace(key_type &&key, Args &&...args)
Inserts in-place if the key does not exist, does nothing if the key exists.
-
local_iterator end(const size_type index)
Returns an iterator to the end of a given bucket.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find(const Other &key)
Finds an element with a key that compares equivalent to a given key.
-
key_equal key_eq() const
Returns the function used to compare keys for equality.
-
dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)
Constructs an empty container with a given allocator, hash function and user supplied minimal number ...
-
internal::dense_map_iterator< typename packed_container_type::iterator > iterator
Input iterator type.
-
internal::dense_map_local_iterator< typename packed_container_type::iterator > local_iterator
Input iterator type.
+
std::pair< iterator, bool > insert_or_assign(const key_type &key, Arg &&value)
Inserts an element into the container or assigns to the current element if the key already exists.
+
std::pair< iterator, bool > emplace(Args &&...args)
Constructs an element in-place, if the key does not exist.
+
std::pair< iterator, bool > try_emplace(key_type &&key, Args &&...args)
Inserts in-place if the key does not exist, does nothing if the key exists.
+
local_iterator end(const size_type index)
Returns an iterator to the end of a given bucket.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find(const Other &key)
Finds an element with a key that compares equivalent to a given key.
+
key_equal key_eq() const
Returns the function used to compare keys for equality.
+
dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)
Constructs an empty container with a given allocator, hash function and user supplied minimal number ...
+
internal::dense_map_iterator< typename packed_container_type::iterator > iterator
Input iterator type.
+
internal::dense_map_local_iterator< typename packed_container_type::iterator > local_iterator
Input iterator type.
dense_map(dense_map &&) noexcept=default
Default move constructor.
-
internal::dense_map_local_iterator< typename packed_container_type::const_iterator > const_local_iterator
Constant input iterator type.
-
bool empty() const noexcept
Checks whether a container is empty.
-
std::pair< iterator, bool > insert(const value_type &value)
Inserts an element into the container, if the key does not exist.
-
Allocator allocator_type
Allocator type.
-
size_type bucket_size(const size_type index) const
Returns the number of elements in a given bucket.
-
Hash hasher
Type of function to use to hash the keys.
-
Key key_type
Key type of the container.
-
size_type bucket_count() const
Returns the number of buckets.
-
dense_map()
Default constructor.
+
internal::dense_map_local_iterator< typename packed_container_type::const_iterator > const_local_iterator
Constant input iterator type.
+
bool empty() const noexcept
Checks whether a container is empty.
+
std::pair< iterator, bool > insert(const value_type &value)
Inserts an element into the container, if the key does not exist.
+
Allocator allocator_type
Allocator type.
+
size_type bucket_size(const size_type index) const
Returns the number of elements in a given bucket.
+
Hash hasher
Type of function to use to hash the keys.
+
Key key_type
Key type of the container.
+
size_type bucket_count() const
Returns the number of buckets.
+
dense_map()
Default constructor.
~dense_map()=default
Default destructor.
-
std::pair< const_iterator, const_iterator > equal_range(const key_type &key) const
Returns a range containing all elements with a given key.
-
hasher hash_function() const
Returns the function used to hash the keys.
-
const_iterator end() const noexcept
Returns an iterator to the end.
-
iterator begin() noexcept
Returns an iterator to the beginning.
-
iterator end() noexcept
Returns an iterator to the end.
+
std::pair< const_iterator, const_iterator > equal_range(const key_type &key) const
Returns a range containing all elements with a given key.
+
hasher hash_function() const
Returns the function used to hash the keys.
+
const_iterator end() const noexcept
Returns an iterator to the end.
+
iterator begin() noexcept
Returns an iterator to the beginning.
+
iterator end() noexcept
Returns an iterator to the end.
+
std::ptrdiff_t difference_type
Signed integer type.
EnTT default namespace.
Definition dense_map.hpp:22
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:62
+
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:63
+
constexpr bool is_transparent_v
Helper variable template.
constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > next_power_of_two(const Type value) noexcept
Computes the smallest power of two greater than or equal to a value (waiting for C++20 and std::bit_c...
Definition bit.hpp:43
constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
-
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
+
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
@@ -1025,7 +1036,8 @@ $(function() { codefold.init(0); });
+
diff --git a/dense__set_8hpp_source.html b/dense__set_8hpp_source.html index f6b58a33f..e5c24f58a 100644 --- a/dense__set_8hpp_source.html +++ b/dense__set_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/container/dense_set.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
dense_set.hpp
@@ -103,7 +111,7 @@ $(function() { codefold.init(0); });
18#include "fwd.hpp"
19
20namespace entt {
-
21
+
21
23namespace internal {
24
25template<typename It>
@@ -133,7 +141,7 @@ $(function() { codefold.init(0); });
49 }
50
51 constexpr dense_set_iterator operator++(int) noexcept {
-
52 dense_set_iterator orig = *this;
+
52 const dense_set_iterator orig = *this;
53 return ++(*this), orig;
54 }
55
@@ -142,7 +150,7 @@ $(function() { codefold.init(0); });
58 }
59
60 constexpr dense_set_iterator operator--(int) noexcept {
-
61 dense_set_iterator orig = *this;
+
61 const dense_set_iterator orig = *this;
62 return operator--(), orig;
63 }
64
@@ -250,16 +258,16 @@ $(function() { codefold.init(0); });
166 offset{other.offset} {}
167
168 constexpr dense_set_local_iterator &operator++() noexcept {
-
169 return offset = it[offset].first, *this;
+
169 return offset = it[static_cast<typename It::difference_type>(offset)].first, *this;
170 }
171
172 constexpr dense_set_local_iterator operator++(int) noexcept {
-
173 dense_set_local_iterator orig = *this;
+
173 const dense_set_local_iterator orig = *this;
174 return ++(*this), orig;
175 }
176
177 [[nodiscard]] constexpr pointer operator->() const noexcept {
-
178 return std::addressof(it[offset].second);
+
178 return std::addressof(it[static_cast<typename It::difference_type>(offset)].second);
179 }
180
181 [[nodiscard]] constexpr reference operator*() const noexcept {
@@ -286,9 +294,10 @@ $(function() { codefold.init(0); });
202}
203
204} // namespace internal
+
206
219template<typename Type, typename Hash, typename KeyEqual, typename Allocator>
- +
221 static constexpr float default_threshold = 0.875f;
222 static constexpr std::size_t minimum_capacity = 8u;
223
@@ -299,15 +308,15 @@ $(function() { codefold.init(0); });
228 using packed_container_type = std::vector<node_type, typename alloc_traits::template rebind_alloc<node_type>>;
229
230 template<typename Other>
-
231 [[nodiscard]] std::size_t value_to_bucket(const Other &value) const noexcept {
-
232 return fast_mod(static_cast<size_type>(sparse.second()(value)), bucket_count());
+
231 [[nodiscard]] std::size_t value_to_bucket(const Other &value) const noexcept {
+
232 return fast_mod(static_cast<size_type>(sparse.second()(value)), bucket_count());
233 }
234
235 template<typename Other>
-
236 [[nodiscard]] auto constrained_find(const Other &value, std::size_t bucket) {
-
237 for(auto it = begin(bucket), last = end(bucket); it != last; ++it) {
-
238 if(packed.second()(*it, value)) {
-
239 return begin() + static_cast<typename iterator::difference_type>(it.index());
+
236 [[nodiscard]] auto constrained_find(const Other &value, std::size_t bucket) {
+
237 for(auto it = begin(bucket), last = end(bucket); it != last; ++it) {
+
238 if(packed.second()(*it, value)) {
+
239 return begin() + static_cast<difference_type>(it.index());
240 }
241 }
242
@@ -315,10 +324,10 @@ $(function() { codefold.init(0); });
244 }
245
246 template<typename Other>
-
247 [[nodiscard]] auto constrained_find(const Other &value, std::size_t bucket) const {
-
248 for(auto it = cbegin(bucket), last = cend(bucket); it != last; ++it) {
-
249 if(packed.second()(*it, value)) {
-
250 return cbegin() + static_cast<typename iterator::difference_type>(it.index());
+
247 [[nodiscard]] auto constrained_find(const Other &value, std::size_t bucket) const {
+
248 for(auto it = cbegin(bucket), last = cend(bucket); it != last; ++it) {
+
249 if(packed.second()(*it, value)) {
+
250 return cbegin() + static_cast<difference_type>(it.index());
251 }
252 }
253
@@ -326,34 +335,34 @@ $(function() { codefold.init(0); });
255 }
256
257 template<typename Other>
-
258 [[nodiscard]] auto insert_or_do_nothing(Other &&value) {
+
258 [[nodiscard]] auto insert_or_do_nothing(Other &&value) {
259 const auto index = value_to_bucket(value);
260
-
261 if(auto it = constrained_find(value, index); it != end()) {
-
262 return std::make_pair(it, false);
+
261 if(auto it = constrained_find(value, index); it != end()) {
+
262 return std::make_pair(it, false);
263 }
264
-
265 packed.first().emplace_back(sparse.first()[index], std::forward<Other>(value));
-
266 sparse.first()[index] = packed.first().size() - 1u;
+
265 packed.first().emplace_back(sparse.first()[index], std::forward<Other>(value));
+
266 sparse.first()[index] = packed.first().size() - 1u;
267 rehash_if_required();
268
269 return std::make_pair(--end(), true);
270 }
271
-
272 void move_and_pop(const std::size_t pos) {
-
273 if(const auto last = size() - 1u; pos != last) {
-
274 size_type *curr = &sparse.first()[value_to_bucket(packed.first().back().second)];
-
275 packed.first()[pos] = std::move(packed.first().back());
-
276 for(; *curr != last; curr = &packed.first()[*curr].first) {}
-
277 *curr = pos;
+
272 void move_and_pop(const std::size_t pos) {
+
273 if(const auto last = size() - 1u; pos != last) {
+
274 size_type *curr = &sparse.first()[value_to_bucket(packed.first().back().second)];
+
275 packed.first()[pos] = std::move(packed.first().back());
+
276 for(; *curr != last; curr = &packed.first()[*curr].first) {}
+
277 *curr = pos;
278 }
279
-
280 packed.first().pop_back();
+
280 packed.first().pop_back();
281 }
282
283 void rehash_if_required() {
-
284 if(size() > (bucket_count() * max_load_factor())) {
-
285 rehash(bucket_count() * 2u);
+
284 if(const auto bc = bucket_count(); size() > static_cast<size_type>(static_cast<float>(bc) * max_load_factor())) {
+
285 rehash(bc * 2u);
286 }
287 }
288
@@ -362,564 +371,563 @@ $(function() { codefold.init(0); });
293 using key_type = Type;
295 using value_type = Type;
297 using size_type = std::size_t;
-
299 using hasher = Hash;
- -
303 using iterator = internal::dense_set_iterator<typename packed_container_type::iterator>;
-
305 using const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>;
-
307 using reverse_iterator = std::reverse_iterator<iterator>;
-
309 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
-
311 using local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>;
-
313 using const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>;
-
314
-
- -
317 : dense_set{minimum_capacity} {}
+
299 using difference_type = std::ptrdiff_t;
+
301 using hasher = Hash;
+
303 using key_equal = KeyEqual;
+
305 using iterator = internal::dense_set_iterator<typename packed_container_type::iterator>;
+
307 using const_iterator = internal::dense_set_iterator<typename packed_container_type::const_iterator>;
+
309 using reverse_iterator = std::reverse_iterator<iterator>;
+
311 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
+
313 using local_iterator = internal::dense_set_local_iterator<typename packed_container_type::iterator>;
+
315 using const_local_iterator = internal::dense_set_local_iterator<typename packed_container_type::const_iterator>;
+
316
+
+ +
319 : dense_set{minimum_capacity} {}
-
318
-
- -
324 : dense_set{minimum_capacity, hasher{}, key_equal{}, allocator} {}
+
320
+
+
325 explicit dense_set(const allocator_type &allocator)
+
326 : dense_set{minimum_capacity, hasher{}, key_equal{}, allocator} {}
-
325
-
- - +
327
+
+
334 dense_set(const size_type cnt, const allocator_type &allocator)
+
335 : dense_set{cnt, hasher{}, key_equal{}, allocator} {}
-
334
-
- -
343 : dense_set{cnt, hash, key_equal{}, allocator} {}
+
336
+
+
344 dense_set(const size_type cnt, const hasher &hash, const allocator_type &allocator)
+
345 : dense_set{cnt, hash, key_equal{}, allocator} {}
-
344
-
-
353 explicit dense_set(const size_type cnt, const hasher &hash = hasher{}, const key_equal &equal = key_equal{}, const allocator_type &allocator = allocator_type{})
-
354 : sparse{allocator, hash},
-
355 packed{allocator, equal} {
-
356 rehash(cnt);
-
357 }
+
346
+
+
355 explicit dense_set(const size_type cnt, const hasher &hash = hasher{}, const key_equal &equal = key_equal{}, const allocator_type &allocator = allocator_type{})
+
356 : sparse{allocator, hash},
+
357 packed{allocator, equal} {
+
358 rehash(cnt);
+
359 }
-
358
-
360 dense_set(const dense_set &) = default;
-
361
-
- -
368 : sparse{std::piecewise_construct, std::forward_as_tuple(other.sparse.first(), allocator), std::forward_as_tuple(other.sparse.second())},
-
369 packed{std::piecewise_construct, std::forward_as_tuple(other.packed.first(), allocator), std::forward_as_tuple(other.packed.second())},
-
370 threshold{other.threshold} {}
+
360
+
362 dense_set(const dense_set &) = default;
+
363
+
+
369 dense_set(const dense_set &other, const allocator_type &allocator)
+
370 : sparse{std::piecewise_construct, std::forward_as_tuple(other.sparse.first(), allocator), std::forward_as_tuple(other.sparse.second())},
+
371 packed{std::piecewise_construct, std::forward_as_tuple(other.packed.first(), allocator), std::forward_as_tuple(other.packed.second())},
+
372 threshold{other.threshold} {}
-
371
- -
374
-
- -
381 : sparse{std::piecewise_construct, std::forward_as_tuple(std::move(other.sparse.first()), allocator), std::forward_as_tuple(std::move(other.sparse.second()))},
-
382 packed{std::piecewise_construct, std::forward_as_tuple(std::move(other.packed.first()), allocator), std::forward_as_tuple(std::move(other.packed.second()))},
-
383 threshold{other.threshold} {}
+
373
+
375 dense_set(dense_set &&) noexcept = default;
+
376
+
+
382 dense_set(dense_set &&other, const allocator_type &allocator)
+
383 : sparse{std::piecewise_construct, std::forward_as_tuple(std::move(other.sparse.first()), allocator), std::forward_as_tuple(std::move(other.sparse.second()))},
+
384 packed{std::piecewise_construct, std::forward_as_tuple(std::move(other.packed.first()), allocator), std::forward_as_tuple(std::move(other.packed.second()))},
+
385 threshold{other.threshold} {}
-
384
-
386 ~dense_set() = default;
-
387
-
392 dense_set &operator=(const dense_set &) = default;
-
393
- -
399
-
- -
405 return sparse.first().get_allocator();
-
406 }
+
386
+
388 ~dense_set() = default;
+
389
+
394 dense_set &operator=(const dense_set &) = default;
+
395
+
400 dense_set &operator=(dense_set &&) noexcept = default;
+
401
+
+
406 void swap(dense_set &other) noexcept {
+
407 using std::swap;
+
408 swap(sparse, other.sparse);
+
409 swap(packed, other.packed);
+
410 swap(threshold, other.threshold);
+
411 }
-
407
-
- -
416 return packed.first().begin();
-
417 }
+
412
+
+
417 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
418 return sparse.first().get_allocator();
+
419 }
-
418
-
- -
421 return cbegin();
-
422 }
+
420
+
+
428 [[nodiscard]] const_iterator cbegin() const noexcept {
+
429 return packed.first().begin();
+
430 }
-
423
-
- -
426 return packed.first().begin();
-
427 }
+
431
+
+
433 [[nodiscard]] const_iterator begin() const noexcept {
+
434 return cbegin();
+
435 }
-
428
-
- -
435 return packed.first().end();
-
436 }
+
436
+
+
438 [[nodiscard]] iterator begin() noexcept {
+
439 return packed.first().begin();
+
440 }
-
437
-
- -
440 return cend();
-
441 }
+
441
+
+
447 [[nodiscard]] const_iterator cend() const noexcept {
+
448 return packed.first().end();
+
449 }
-
442
-
- -
445 return packed.first().end();
-
446 }
+
450
+
+
452 [[nodiscard]] const_iterator end() const noexcept {
+
453 return cend();
+
454 }
-
447
-
- -
456 return std::make_reverse_iterator(cend());
-
457 }
+
455
+
+
457 [[nodiscard]] iterator end() noexcept {
+
458 return packed.first().end();
+
459 }
-
458
-
- -
461 return crbegin();
-
462 }
+
460
+
+
468 [[nodiscard]] const_reverse_iterator crbegin() const noexcept {
+
469 return std::make_reverse_iterator(cend());
+
470 }
-
463
-
- -
466 return std::make_reverse_iterator(end());
-
467 }
+
471
+
+
473 [[nodiscard]] const_reverse_iterator rbegin() const noexcept {
+
474 return crbegin();
+
475 }
-
468
-
- -
475 return std::make_reverse_iterator(cbegin());
-
476 }
+
476
+
+
478 [[nodiscard]] reverse_iterator rbegin() noexcept {
+
479 return std::make_reverse_iterator(end());
+
480 }
-
477
-
- -
480 return crend();
-
481 }
+
481
+
+
487 [[nodiscard]] const_reverse_iterator crend() const noexcept {
+
488 return std::make_reverse_iterator(cbegin());
+
489 }
-
482
-
- -
485 return std::make_reverse_iterator(begin());
-
486 }
-
-
487
+
490
- -
493 return packed.first().empty();
+
492 [[nodiscard]] const_reverse_iterator rend() const noexcept {
+
493 return crend();
494 }
-
495
-
- -
501 return packed.first().size();
-
502 }
+
495
+
+
497 [[nodiscard]] reverse_iterator rend() noexcept {
+
498 return std::make_reverse_iterator(begin());
+
499 }
-
503
-
- -
509 return packed.first().max_size();
-
510 }
+
500
+
+
505 [[nodiscard]] bool empty() const noexcept {
+
506 return packed.first().empty();
+
507 }
-
511
+
508
- -
514 sparse.first().clear();
-
515 packed.first().clear();
-
516 rehash(0u);
-
517 }
+
513 [[nodiscard]] size_type size() const noexcept {
+
514 return packed.first().size();
+
515 }
-
518
+
516
+
+
521 [[nodiscard]] size_type max_size() const noexcept {
+
522 return packed.first().max_size();
+
523 }
+
+
524
-
526 std::pair<iterator, bool> insert(const value_type &value) {
-
527 return insert_or_do_nothing(value);
-
528 }
+
526 void clear() noexcept {
+
527 sparse.first().clear();
+
528 packed.first().clear();
+
529 rehash(0u);
+
530 }
-
529
-
-
531 std::pair<iterator, bool> insert(value_type &&value) {
-
532 return insert_or_do_nothing(std::move(value));
-
533 }
+
531
+
+
539 std::pair<iterator, bool> insert(const value_type &value) {
+
540 return insert_or_do_nothing(value);
+
541 }
-
534
-
541 template<typename It>
-
-
542 void insert(It first, It last) {
-
543 for(; first != last; ++first) {
-
544 insert(*first);
-
545 }
+
542
+
+
544 std::pair<iterator, bool> insert(value_type &&value) {
+
545 return insert_or_do_nothing(std::move(value));
546 }
-
547
-
561 template<typename... Args>
-
-
562 std::pair<iterator, bool> emplace(Args &&...args) {
-
563 if constexpr(((sizeof...(Args) == 1u) && ... && std::is_same_v<std::decay_t<Args>, value_type>)) {
-
564 return insert_or_do_nothing(std::forward<Args>(args)...);
-
565 } else {
-
566 auto &node = packed.first().emplace_back(std::piecewise_construct, std::make_tuple(packed.first().size()), std::forward_as_tuple(std::forward<Args>(args)...));
-
567 const auto index = value_to_bucket(node.second);
-
568
-
569 if(auto it = constrained_find(node.second, index); it != end()) {
-
570 packed.first().pop_back();
-
571 return std::make_pair(it, false);
-
572 }
-
573
-
574 std::swap(node.first, sparse.first()[index]);
-
575 rehash_if_required();
-
576
-
577 return std::make_pair(--end(), true);
-
578 }
-
579 }
+
547
+
554 template<typename It>
+
+
555 void insert(It first, It last) {
+
556 for(; first != last; ++first) {
+
557 insert(*first);
+
558 }
+
559 }
-
580
-
- -
587 const auto diff = pos - cbegin();
-
588 erase(*pos);
-
589 return begin() + diff;
-
590 }
+
560
+
574 template<typename... Args>
+
+
575 std::pair<iterator, bool> emplace(Args &&...args) {
+
576 if constexpr(((sizeof...(Args) == 1u) && ... && std::is_same_v<std::decay_t<Args>, value_type>)) {
+
577 return insert_or_do_nothing(std::forward<Args>(args)...);
+
578 } else {
+
579 auto &node = packed.first().emplace_back(std::piecewise_construct, std::make_tuple(packed.first().size()), std::forward_as_tuple(std::forward<Args>(args)...));
+
580 const auto index = value_to_bucket(node.second);
+
581
+
582 if(auto it = constrained_find(node.second, index); it != end()) {
+
583 packed.first().pop_back();
+
584 return std::make_pair(it, false);
+
585 }
+
586
+
587 std::swap(node.first, sparse.first()[index]);
+
588 rehash_if_required();
+
589
+
590 return std::make_pair(--end(), true);
+
591 }
+
592 }
-
591
-
- -
599 const auto dist = first - cbegin();
-
600
-
601 for(auto from = last - cbegin(); from != dist; --from) {
-
602 erase(packed.first()[from - 1u].second);
-
603 }
-
604
-
605 return (begin() + dist);
-
606 }
+
593
+
+ +
600 const auto diff = pos - cbegin();
+
601 erase(*pos);
+
602 return begin() + diff;
+
603 }
-
607
-
-
613 size_type erase(const value_type &value) {
-
614 for(size_type *curr = &sparse.first()[value_to_bucket(value)]; *curr != (std::numeric_limits<size_type>::max)(); curr = &packed.first()[*curr].first) {
-
615 if(packed.second()(packed.first()[*curr].second, value)) {
-
616 const auto index = *curr;
-
617 *curr = packed.first()[*curr].first;
-
618 move_and_pop(index);
-
619 return 1u;
-
620 }
-
621 }
-
622
-
623 return 0u;
-
624 }
+
604
+
+ +
612 const auto dist = first - cbegin();
+
613
+
614 for(auto from = last - cbegin(); from != dist; --from) {
+
615 erase(packed.first()[static_cast<size_type>(from) - 1u].second);
+
616 }
+
617
+
618 return (begin() + dist);
+
619 }
-
625
-
-
630 void swap(dense_set &other) noexcept {
-
631 using std::swap;
-
632 swap(sparse, other.sparse);
-
633 swap(packed, other.packed);
-
634 swap(threshold, other.threshold);
-
635 }
+
620
+
+
626 size_type erase(const value_type &value) {
+
627 for(size_type *curr = &sparse.first()[value_to_bucket(value)]; *curr != (std::numeric_limits<size_type>::max)(); curr = &packed.first()[*curr].first) {
+
628 if(packed.second()(packed.first()[*curr].second, value)) {
+
629 const auto index = *curr;
+
630 *curr = packed.first()[*curr].first;
+
631 move_and_pop(index);
+
632 return 1u;
+
633 }
+
634 }
+
635
+
636 return 0u;
+
637 }
-
636
-
- -
643 return find(key) != end();
-
644 }
+
638
+
+
644 [[nodiscard]] size_type count(const value_type &key) const {
+
645 return find(key) != end();
+
646 }
-
645
-
652 template<typename Other>
-
653 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, size_type>>
-
-
654 count(const Other &key) const {
-
655 return find(key) != end();
-
656 }
+
647
+
654 template<typename Other>
+
655 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, size_type>>
+
+
656 count(const Other &key) const {
+
657 return find(key) != end();
+
658 }
-
657
-
-
664 [[nodiscard]] iterator find(const value_type &value) {
-
665 return constrained_find(value, value_to_bucket(value));
-
666 }
+
659
+
+
666 [[nodiscard]] iterator find(const value_type &value) {
+
667 return constrained_find(value, value_to_bucket(value));
+
668 }
-
667
-
-
669 [[nodiscard]] const_iterator find(const value_type &value) const {
-
670 return constrained_find(value, value_to_bucket(value));
-
671 }
+
669
+
+
671 [[nodiscard]] const_iterator find(const value_type &value) const {
+
672 return constrained_find(value, value_to_bucket(value));
+
673 }
-
672
-
680 template<typename Other>
-
681 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, iterator>>
-
-
682 find(const Other &value) {
-
683 return constrained_find(value, value_to_bucket(value));
-
684 }
+
674
+
682 template<typename Other>
+
683 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, iterator>>
+
+
684 find(const Other &value) {
+
685 return constrained_find(value, value_to_bucket(value));
+
686 }
-
685
-
687 template<typename Other>
-
688 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, const_iterator>>
-
-
689 find(const Other &value) const {
-
690 return constrained_find(value, value_to_bucket(value));
-
691 }
+
687
+
689 template<typename Other>
+
690 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, const_iterator>>
+
+
691 find(const Other &value) const {
+
692 return constrained_find(value, value_to_bucket(value));
+
693 }
-
692
-
-
699 [[nodiscard]] std::pair<iterator, iterator> equal_range(const value_type &value) {
-
700 const auto it = find(value);
-
701 return {it, it + !(it == end())};
-
702 }
+
694
+
+
701 [[nodiscard]] std::pair<iterator, iterator> equal_range(const value_type &value) {
+
702 const auto it = find(value);
+
703 return {it, it + !(it == end())};
+
704 }
-
703
-
-
705 [[nodiscard]] std::pair<const_iterator, const_iterator> equal_range(const value_type &value) const {
-
706 const auto it = find(value);
-
707 return {it, it + !(it == cend())};
-
708 }
+
705
+
+
707 [[nodiscard]] std::pair<const_iterator, const_iterator> equal_range(const value_type &value) const {
+
708 const auto it = find(value);
+
709 return {it, it + !(it == cend())};
+
710 }
-
709
-
718 template<typename Other>
-
719 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<iterator, iterator>>>
-
-
720 equal_range(const Other &value) {
-
721 const auto it = find(value);
-
722 return {it, it + !(it == end())};
-
723 }
+
711
+
720 template<typename Other>
+
721 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<iterator, iterator>>>
+
+
722 equal_range(const Other &value) {
+
723 const auto it = find(value);
+
724 return {it, it + !(it == end())};
+
725 }
-
724
-
726 template<typename Other>
-
727 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<const_iterator, const_iterator>>>
-
-
728 equal_range(const Other &value) const {
-
729 const auto it = find(value);
-
730 return {it, it + !(it == cend())};
-
731 }
+
726
+
728 template<typename Other>
+
729 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, std::pair<const_iterator, const_iterator>>>
+
+
730 equal_range(const Other &value) const {
+
731 const auto it = find(value);
+
732 return {it, it + !(it == cend())};
+
733 }
-
732
-
-
738 [[nodiscard]] bool contains(const value_type &value) const {
-
739 return (find(value) != cend());
-
740 }
+
734
+
+
740 [[nodiscard]] bool contains(const value_type &value) const {
+
741 return (find(value) != cend());
+
742 }
-
741
-
749 template<typename Other>
-
750 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, bool>>
-
-
751 contains(const Other &value) const {
-
752 return (find(value) != cend());
-
753 }
+
743
+
751 template<typename Other>
+
752 [[nodiscard]] std::enable_if_t<is_transparent_v<hasher> && is_transparent_v<key_equal>, std::conditional_t<false, Other, bool>>
+
+
753 contains(const Other &value) const {
+
754 return (find(value) != cend());
+
755 }
-
754
-
- -
761 return {packed.first().begin(), sparse.first()[index]};
-
762 }
+
756
+
+
762 [[nodiscard]] const_local_iterator cbegin(const size_type index) const {
+
763 return {packed.first().begin(), sparse.first()[index]};
+
764 }
-
763
-
- -
770 return cbegin(index);
-
771 }
+
765
+
+
771 [[nodiscard]] const_local_iterator begin(const size_type index) const {
+
772 return cbegin(index);
+
773 }
-
772
-
- -
779 return {packed.first().begin(), sparse.first()[index]};
-
780 }
+
774
+
+
780 [[nodiscard]] local_iterator begin(const size_type index) {
+
781 return {packed.first().begin(), sparse.first()[index]};
+
782 }
-
781
-
- -
788 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
-
789 }
+
783
+
+
789 [[nodiscard]] const_local_iterator cend([[maybe_unused]] const size_type index) const {
+
790 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
+
791 }
-
790
-
- -
797 return cend(index);
-
798 }
+
792
+
+
798 [[nodiscard]] const_local_iterator end(const size_type index) const {
+
799 return cend(index);
+
800 }
-
799
-
- -
806 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
-
807 }
+
801
+
+
807 [[nodiscard]] local_iterator end([[maybe_unused]] const size_type index) {
+
808 return {packed.first().begin(), (std::numeric_limits<size_type>::max)()};
+
809 }
-
808
-
- -
814 return sparse.first().size();
-
815 }
+
810
+
+
815 [[nodiscard]] size_type bucket_count() const {
+
816 return sparse.first().size();
+
817 }
-
816
-
- -
822 return sparse.first().max_size();
-
823 }
+
818
+
+
823 [[nodiscard]] size_type max_bucket_count() const {
+
824 return sparse.first().max_size();
+
825 }
-
824
-
-
830 [[nodiscard]] size_type bucket_size(const size_type index) const {
-
831 return static_cast<size_type>(std::distance(begin(index), end(index)));
-
832 }
+
826
+
+
832 [[nodiscard]] size_type bucket_size(const size_type index) const {
+
833 return static_cast<size_type>(std::distance(begin(index), end(index)));
+
834 }
-
833
-
-
839 [[nodiscard]] size_type bucket(const value_type &value) const {
-
840 return value_to_bucket(value);
-
841 }
+
835
+
+
841 [[nodiscard]] size_type bucket(const value_type &value) const {
+
842 return value_to_bucket(value);
+
843 }
-
842
-
-
847 [[nodiscard]] float load_factor() const {
-
848 return size() / static_cast<float>(bucket_count());
-
849 }
+
844
+
+
849 [[nodiscard]] float load_factor() const {
+
850 return static_cast<float>(size()) / static_cast<float>(bucket_count());
+
851 }
-
850
-
-
855 [[nodiscard]] float max_load_factor() const {
-
856 return threshold;
-
857 }
+
852
+
+
857 [[nodiscard]] float max_load_factor() const {
+
858 return threshold;
+
859 }
-
858
-
-
863 void max_load_factor(const float value) {
-
864 ENTT_ASSERT(value > 0.f, "Invalid load factor");
-
865 threshold = value;
-
866 rehash(0u);
-
867 }
+
860
+
+
865 void max_load_factor(const float value) {
+
866 ENTT_ASSERT(value > 0.f, "Invalid load factor");
+
867 threshold = value;
+
868 rehash(0u);
+
869 }
-
868
-
-
874 void rehash(const size_type cnt) {
-
875 auto value = cnt > minimum_capacity ? cnt : minimum_capacity;
-
876 const auto cap = static_cast<size_type>(size() / max_load_factor());
-
877 value = value > cap ? value : cap;
-
878
-
879 if(const auto sz = next_power_of_two(value); sz != bucket_count()) {
-
880 sparse.first().resize(sz);
-
881
-
882 for(auto &&elem: sparse.first()) {
-
883 elem = (std::numeric_limits<size_type>::max)();
-
884 }
-
885
-
886 for(size_type pos{}, last = size(); pos < last; ++pos) {
-
887 const auto index = value_to_bucket(packed.first()[pos].second);
-
888 packed.first()[pos].first = std::exchange(sparse.first()[index], pos);
-
889 }
-
890 }
-
891 }
+
870
+
+
876 void rehash(const size_type cnt) {
+
877 auto value = cnt > minimum_capacity ? cnt : minimum_capacity;
+
878 const auto cap = static_cast<size_type>(static_cast<float>(size()) / max_load_factor());
+
879 value = value > cap ? value : cap;
+
880
+
881 if(const auto sz = next_power_of_two(value); sz != bucket_count()) {
+
882 sparse.first().resize(sz);
+
883
+
884 for(auto &&elem: sparse.first()) {
+
885 elem = (std::numeric_limits<size_type>::max)();
+
886 }
+
887
+
888 for(size_type pos{}, last = size(); pos < last; ++pos) {
+
889 const auto index = value_to_bucket(packed.first()[pos].second);
+
890 packed.first()[pos].first = std::exchange(sparse.first()[index], pos);
+
891 }
+
892 }
+
893 }
-
892
-
-
898 void reserve(const size_type cnt) {
-
899 packed.first().reserve(cnt);
-
900 rehash(static_cast<size_type>(std::ceil(cnt / max_load_factor())));
-
901 }
+
894
+
+
900 void reserve(const size_type cnt) {
+
901 packed.first().reserve(cnt);
+
902 rehash(static_cast<size_type>(std::ceil(static_cast<float>(cnt) / max_load_factor())));
+
903 }
-
902
-
- -
908 return sparse.second();
-
909 }
+
904
+
+
909 [[nodiscard]] hasher hash_function() const {
+
910 return sparse.second();
+
911 }
-
910
-
- -
916 return packed.second();
-
917 }
+
912
+
+
917 [[nodiscard]] key_equal key_eq() const {
+
918 return packed.second();
+
919 }
-
918
-
919private:
- - -
922 float threshold{default_threshold};
-
923};
+
920
+
921private:
+ + +
924 float threshold{default_threshold};
+
925};
-
924
-
925} // namespace entt
926
-
927#endif
+
927} // namespace entt
+
928
+
929#endif
A compressed pair.
-
constexpr second_type & second() noexcept
Returns the second element that a pair stores.
-
constexpr first_type & first() noexcept
Returns the first element that a pair stores.
-
Associative container for unique objects of a given type.
-
size_type bucket_size(const size_type index) const
Returns the number of elements in a given bucket.
-
void clear() noexcept
Clears the container.
-
internal::dense_set_local_iterator< typename packed_container_type::const_iterator > const_local_iterator
Constant forward iterator type.
-
const_reverse_iterator crbegin() const noexcept
Returns a reverse iterator to the beginning.
-
const_iterator begin() const noexcept
Returns an iterator to the beginning.
-
key_equal key_eq() const
Returns the function used to compare elements for equality.
-
KeyEqual key_equal
Type of function to use to compare the elements for equality.
-
internal::dense_set_iterator< typename packed_container_type::const_iterator > const_iterator
Constant random access iterator type.
-
const_iterator cend() const noexcept
Returns an iterator to the end.
-
iterator erase(const_iterator first, const_iterator last)
Removes the given elements from a container.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains(const Other &value) const
Checks if the container contains an element that compares equivalent to a given value.
-
Hash hasher
Type of function to use to hash the elements.
+
size_type bucket_size(const size_type index) const
Returns the number of elements in a given bucket.
+
void clear() noexcept
Clears the container.
+
internal::dense_set_local_iterator< typename packed_container_type::const_iterator > const_local_iterator
Constant forward iterator type.
+
const_reverse_iterator crbegin() const noexcept
Returns a reverse iterator to the beginning.
+
std::ptrdiff_t difference_type
Signed integer type.
+
const_iterator begin() const noexcept
Returns an iterator to the beginning.
+
key_equal key_eq() const
Returns the function used to compare elements for equality.
+
KeyEqual key_equal
Type of function to use to compare the elements for equality.
+
internal::dense_set_iterator< typename packed_container_type::const_iterator > const_iterator
Constant random access iterator type.
+
const_iterator cend() const noexcept
Returns an iterator to the end.
+
iterator erase(const_iterator first, const_iterator last)
Removes the given elements from a container.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, bool > > contains(const Other &value) const
Checks if the container contains an element that compares equivalent to a given value.
+
Hash hasher
Type of function to use to hash the elements.
std::size_t size_type
Unsigned integer type.
-
size_type bucket(const value_type &value) const
Returns the bucket for a given element.
-
reverse_iterator rbegin() noexcept
Returns a reverse iterator to the beginning.
-
iterator find(const value_type &value)
Finds an element with a given value.
+
size_type bucket(const value_type &value) const
Returns the bucket for a given element.
+
reverse_iterator rbegin() noexcept
Returns a reverse iterator to the beginning.
+
iterator find(const value_type &value)
Finds an element with a given value.
Type key_type
Key type of the container.
Type value_type
Value type of the container.
-
internal::dense_set_iterator< typename packed_container_type::iterator > iterator
Random access iterator type.
-
std::pair< iterator, bool > emplace(Args &&...args)
Constructs an element in-place, if it does not exist.
+
internal::dense_set_iterator< typename packed_container_type::iterator > iterator
Random access iterator type.
+
std::pair< iterator, bool > emplace(Args &&...args)
Constructs an element in-place, if it does not exist.
dense_set & operator=(dense_set &&) noexcept=default
Default move assignment operator.
-
size_type bucket_count() const
Returns the number of buckets.
-
size_type max_size() const noexcept
Returns the maximum possible number of elements.
-
size_type size() const noexcept
Returns the number of elements in a container.
-
std::pair< iterator, iterator > equal_range(const value_type &value)
Returns a range containing all elements with a given value.
-
std::reverse_iterator< const_iterator > const_reverse_iterator
Constant reverse iterator type.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range(const Other &value)
Returns a range containing all elements that compare equivalent to a given value.
-
local_iterator end(const size_type index)
Returns an iterator to the end of a given bucket.
-
dense_set(const dense_set &other, const allocator_type &allocator)
Allocator-extended copy constructor.
-
bool empty() const noexcept
Checks whether a container is empty.
-
dense_set(const size_type cnt, const hasher &hash, const allocator_type &allocator)
Constructs an empty container with a given allocator, hash function and user supplied minimal number ...
-
const_iterator find(const value_type &value) const
Finds an element with a given value.
-
const_iterator cbegin() const noexcept
Returns an iterator to the beginning.
-
const_reverse_iterator rend() const noexcept
Returns a reverse iterator to the end.
-
dense_set(const size_type cnt, const allocator_type &allocator)
Constructs an empty container with a given allocator and user supplied minimal number of buckets.
-
hasher hash_function() const
Returns the function used to hash the elements.
-
std::pair< iterator, bool > insert(const value_type &value)
Inserts an element into the container, if it does not exist.
-
internal::dense_set_local_iterator< typename packed_container_type::iterator > local_iterator
Forward iterator type.
+
size_type bucket_count() const
Returns the number of buckets.
+
size_type max_size() const noexcept
Returns the maximum possible number of elements.
+
size_type size() const noexcept
Returns the number of elements in a container.
+
std::pair< iterator, iterator > equal_range(const value_type &value)
Returns a range containing all elements with a given value.
+
std::reverse_iterator< const_iterator > const_reverse_iterator
Constant reverse iterator type.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< iterator, iterator > > > equal_range(const Other &value)
Returns a range containing all elements that compare equivalent to a given value.
+
local_iterator end(const size_type index)
Returns an iterator to the end of a given bucket.
+
dense_set(const dense_set &other, const allocator_type &allocator)
Allocator-extended copy constructor.
+
bool empty() const noexcept
Checks whether a container is empty.
+
dense_set(const size_type cnt, const hasher &hash, const allocator_type &allocator)
Constructs an empty container with a given allocator, hash function and user supplied minimal number ...
+
const_iterator find(const value_type &value) const
Finds an element with a given value.
+
const_iterator cbegin() const noexcept
Returns an iterator to the beginning.
+
const_reverse_iterator rend() const noexcept
Returns a reverse iterator to the end.
+
dense_set(const size_type cnt, const allocator_type &allocator)
Constructs an empty container with a given allocator and user supplied minimal number of buckets.
+
hasher hash_function() const
Returns the function used to hash the elements.
+
std::pair< iterator, bool > insert(const value_type &value)
Inserts an element into the container, if it does not exist.
+
internal::dense_set_local_iterator< typename packed_container_type::iterator > local_iterator
Forward iterator type.
~dense_set()=default
Default destructor.
-
void reserve(const size_type cnt)
Reserves space for at least the specified number of elements and regenerates the hash table.
-
const_local_iterator cend(const size_type index) const
Returns an iterator to the end of a given bucket.
-
std::reverse_iterator< iterator > reverse_iterator
Reverse iterator type.
+
void reserve(const size_type cnt)
Reserves space for at least the specified number of elements and regenerates the hash table.
+
const_local_iterator cend(const size_type index) const
Returns an iterator to the end of a given bucket.
+
std::reverse_iterator< iterator > reverse_iterator
Reverse iterator type.
Allocator allocator_type
Allocator type.
-
size_type count(const value_type &key) const
Returns the number of elements matching a value (either 1 or 0).
-
iterator end() noexcept
Returns an iterator to the end.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find(const Other &value) const
Finds an element with a given value.
+
size_type count(const value_type &key) const
Returns the number of elements matching a value (either 1 or 0).
+
iterator end() noexcept
Returns an iterator to the end.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, const_iterator > > find(const Other &value) const
Finds an element with a given value.
dense_set(const dense_set &)=default
Default copy constructor.
-
void swap(dense_set &other) noexcept
Exchanges the contents with those of a given container.
+
dense_set(dense_set &&) noexcept=default
Default move constructor.
-
const_local_iterator end(const size_type index) const
Returns an iterator to the end of a given bucket.
-
void max_load_factor(const float value)
Sets the desired maximum average number of elements per bucket.
-
float load_factor() const
Returns the average number of elements per bucket.
-
size_type erase(const value_type &value)
Removes the element associated with a given value.
-
std::pair< iterator, bool > insert(value_type &&value)
Inserts an element into the container, if it does not exist.
-
size_type max_bucket_count() const
Returns the maximum number of buckets.
-
dense_set(const allocator_type &allocator)
Constructs an empty container with a given allocator.
-
const_reverse_iterator rbegin() const noexcept
Returns a reverse iterator to the beginning.
-
dense_set()
Default constructor.
-
const_iterator end() const noexcept
Returns an iterator to the end.
+
const_local_iterator end(const size_type index) const
Returns an iterator to the end of a given bucket.
+
void max_load_factor(const float value)
Sets the desired maximum average number of elements per bucket.
+
float load_factor() const
Returns the average number of elements per bucket.
+
size_type erase(const value_type &value)
Removes the element associated with a given value.
+
std::pair< iterator, bool > insert(value_type &&value)
Inserts an element into the container, if it does not exist.
+
size_type max_bucket_count() const
Returns the maximum number of buckets.
+
dense_set(const allocator_type &allocator)
Constructs an empty container with a given allocator.
+
const_reverse_iterator rbegin() const noexcept
Returns a reverse iterator to the beginning.
+
dense_set()
Default constructor.
+
const_iterator end() const noexcept
Returns an iterator to the end.
dense_set & operator=(const dense_set &)=default
Default copy assignment operator.
-
dense_set(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator, hash function, compare function and user suppli...
-
iterator erase(const_iterator pos)
Removes an element from a given position.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find(const Other &value)
Finds an element that compares equivalent to a given value.
-
void rehash(const size_type cnt)
Reserves at least the specified number of buckets and regenerates the hash table.
-
const_reverse_iterator crend() const noexcept
Returns a reverse iterator to the end.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count(const Other &key) const
Returns the number of elements matching a key (either 1 or 0).
-
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
-
void insert(It first, It last)
Inserts elements into the container, if they do not exist.
-
reverse_iterator rend() noexcept
Returns a reverse iterator to the end.
-
float max_load_factor() const
Returns the maximum average number of elements per bucket.
-
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range(const Other &value) const
Returns a range containing all elements with a given value.
-
std::pair< const_iterator, const_iterator > equal_range(const value_type &value) const
Returns a range containing all elements with a given value.
-
const_local_iterator begin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
-
local_iterator begin(const size_type index)
Returns an iterator to the beginning of a given bucket.
-
const_local_iterator cbegin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
-
bool contains(const value_type &value) const
Checks if the container contains an element with a given value.
-
iterator begin() noexcept
Returns an iterator to the beginning.
+
dense_set(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})
Constructs an empty container with a given allocator, hash function, compare function and user suppli...
+
iterator erase(const_iterator pos)
Removes an element from a given position.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, iterator > > find(const Other &value)
Finds an element that compares equivalent to a given value.
+
void rehash(const size_type cnt)
Reserves at least the specified number of buckets and regenerates the hash table.
+
const_reverse_iterator crend() const noexcept
Returns a reverse iterator to the end.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, size_type > > count(const Other &key) const
Returns the number of elements matching a key (either 1 or 0).
+
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
+
void insert(It first, It last)
Inserts elements into the container, if they do not exist.
+
reverse_iterator rend() noexcept
Returns a reverse iterator to the end.
+
float max_load_factor() const
Returns the maximum average number of elements per bucket.
+
std::enable_if_t< is_transparent_v< hasher > &&is_transparent_v< key_equal >, std::conditional_t< false, Other, std::pair< const_iterator, const_iterator > > > equal_range(const Other &value) const
Returns a range containing all elements with a given value.
+
std::pair< const_iterator, const_iterator > equal_range(const value_type &value) const
Returns a range containing all elements with a given value.
+
const_local_iterator begin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
+
local_iterator begin(const size_type index)
Returns an iterator to the beginning of a given bucket.
+
const_local_iterator cbegin(const size_type index) const
Returns an iterator to the beginning of a given bucket.
+
bool contains(const value_type &value) const
Checks if the container contains an element with a given value.
+
iterator begin() noexcept
Returns an iterator to the beginning.
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:62
+
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
Fast module utility function (powers of two only).
Definition bit.hpp:63
+
constexpr bool is_transparent_v
Helper variable template.
constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > next_power_of_two(const Type value) noexcept
Computes the smallest power of two greater than or equal to a value (waiting for C++20 and std::bit_c...
Definition bit.hpp:43
constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
-
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
+
constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
Concatenates multiple type lists.
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
@@ -927,7 +935,8 @@ $(function() { codefold.init(0); });
+
diff --git a/dir_49e56c817e5e54854c35e136979f97ca.html b/dir_49e56c817e5e54854c35e136979f97ca.html index 8aed24530..9cb6a6ada 100644 --- a/dir_49e56c817e5e54854c35e136979f97ca.html +++ b/dir_49e56c817e5e54854c35e136979f97ca.html @@ -3,13 +3,15 @@ - + EnTT: docs Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
docs Directory Reference
@@ -81,7 +94,8 @@ $(function() {
+
diff --git a/dir_66e9674e8206a335795995fa32a03c91.html b/dir_66e9674e8206a335795995fa32a03c91.html index cfcc4be7b..e4a37e023 100644 --- a/dir_66e9674e8206a335795995fa32a03c91.html +++ b/dir_66e9674e8206a335795995fa32a03c91.html @@ -3,13 +3,15 @@ - + EnTT: src/entt Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entt Directory Reference
@@ -134,7 +147,8 @@ Files
+
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 02fa55a20..d28761674 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -3,13 +3,15 @@ - + EnTT: src Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
src Directory Reference
@@ -87,7 +100,8 @@ Directories
+
diff --git a/dir_721f6154dba3c88bcdead5f446bce319.html b/dir_721f6154dba3c88bcdead5f446bce319.html index 76e3fae9c..670a26631 100644 --- a/dir_721f6154dba3c88bcdead5f446bce319.html +++ b/dir_721f6154dba3c88bcdead5f446bce319.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/process Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
process Directory Reference
@@ -100,7 +113,8 @@ Files
+
diff --git a/dir_7929ab29d3f740cf727ccbd263321562.html b/dir_7929ab29d3f740cf727ccbd263321562.html index 01ea1077f..361e1a7e1 100644 --- a/dir_7929ab29d3f740cf727ccbd263321562.html +++ b/dir_7929ab29d3f740cf727ccbd263321562.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/config Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
config Directory Reference
@@ -100,7 +113,8 @@ Files
+
diff --git a/dir_7ec033ccd3859ebe4fcfc7c04a4d1ca0.html b/dir_7ec033ccd3859ebe4fcfc7c04a4d1ca0.html index 9f69d0b01..03d049119 100644 --- a/dir_7ec033ccd3859ebe4fcfc7c04a4d1ca0.html +++ b/dir_7ec033ccd3859ebe4fcfc7c04a4d1ca0.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/container Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
container Directory Reference
@@ -102,7 +115,8 @@ Files
+
diff --git a/dir_84cd6c110d68697bc23812bee21a8ed6.html b/dir_84cd6c110d68697bc23812bee21a8ed6.html index b77a8b4f9..e0ccb2f46 100644 --- a/dir_84cd6c110d68697bc23812bee21a8ed6.html +++ b/dir_84cd6c110d68697bc23812bee21a8ed6.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/poly Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
poly Directory Reference
@@ -98,7 +111,8 @@ Files
+
diff --git a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html index a2cedb185..1ab3b458c 100644 --- a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html +++ b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/resource Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
resource Directory Reference
@@ -102,7 +115,8 @@ Files
+
diff --git a/dir_a53318306f6ac0f7fe657839abd543ab.html b/dir_a53318306f6ac0f7fe657839abd543ab.html index f41a55f87..711fef036 100644 --- a/dir_a53318306f6ac0f7fe657839abd543ab.html +++ b/dir_a53318306f6ac0f7fe657839abd543ab.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/signal Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
signal Directory Reference
@@ -104,7 +117,8 @@ Files
+
diff --git a/dir_b64489a1e8130d5ebf6d86d282f500f0.html b/dir_b64489a1e8130d5ebf6d86d282f500f0.html index ecf10c042..7b7c45ae9 100644 --- a/dir_b64489a1e8130d5ebf6d86d282f500f0.html +++ b/dir_b64489a1e8130d5ebf6d86d282f500f0.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/locator Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
locator Directory Reference
@@ -96,7 +109,8 @@ Files
+
diff --git a/dir_c183064df1291357db1d38c637c6e87c.html b/dir_c183064df1291357db1d38c637c6e87c.html index 995872643..70f2aea71 100644 --- a/dir_c183064df1291357db1d38c637c6e87c.html +++ b/dir_c183064df1291357db1d38c637c6e87c.html @@ -3,13 +3,15 @@ - + EnTT: docs/md Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
md Directory Reference
@@ -90,7 +103,8 @@ Directory dependency graph for md:
+
diff --git a/dir_c5715f7ee899854a669b87bbaa642de0.html b/dir_c5715f7ee899854a669b87bbaa642de0.html index 5f6509a8c..7bfd768d1 100644 --- a/dir_c5715f7ee899854a669b87bbaa642de0.html +++ b/dir_c5715f7ee899854a669b87bbaa642de0.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
meta Directory Reference
@@ -122,7 +135,8 @@ Files
+
diff --git a/dir_caf434cd0cc634da803ab3b40811fcd6.html b/dir_caf434cd0cc634da803ab3b40811fcd6.html index ba55fb403..2c0199168 100644 --- a/dir_caf434cd0cc634da803ab3b40811fcd6.html +++ b/dir_caf434cd0cc634da803ab3b40811fcd6.html @@ -3,13 +3,15 @@ - + EnTT: docs/dox Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
dox Directory Reference
@@ -90,7 +103,8 @@ Directory dependency graph for dox:
+
diff --git a/dir_cb9807796ea702d95f280c116c66a3f6.html b/dir_cb9807796ea702d95f280c116c66a3f6.html index 684046fec..0bbd3ab3b 100644 --- a/dir_cb9807796ea702d95f280c116c66a3f6.html +++ b/dir_cb9807796ea702d95f280c116c66a3f6.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/graph Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
graph Directory Reference
@@ -102,7 +115,8 @@ Files
+
diff --git a/dir_de8f4e6ba3f54a2a21309f742e93a373.html b/dir_de8f4e6ba3f54a2a21309f742e93a373.html index 0faaf1057..505b60b00 100644 --- a/dir_de8f4e6ba3f54a2a21309f742e93a373.html +++ b/dir_de8f4e6ba3f54a2a21309f742e93a373.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
core Directory Reference
@@ -130,7 +143,8 @@ Files
+
diff --git a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html index ba71b0462..3d40c8ca0 100644 --- a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html +++ b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity Directory Reference + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,23 +33,33 @@
- + + +
+
entity Directory Reference
@@ -104,8 +117,6 @@ Files    mixin.hpp   - observer.hpp organizer.hpp    ranges.hpp @@ -126,7 +137,8 @@ Files
+
diff --git a/dispatcher_8hpp_source.html b/dispatcher_8hpp_source.html index 5520c3ec9..261fc11c8 100644 --- a/dispatcher_8hpp_source.html +++ b/dispatcher_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/signal/dispatcher.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
dispatcher.hpp
@@ -101,7 +109,7 @@ $(function() { codefold.init(0); });
16#include "sigh.hpp"
17
18namespace entt {
-
19
+
19
21namespace internal {
22
23struct basic_dispatcher_handler {
@@ -134,7 +142,7 @@ $(function() { codefold.init(0); });
50 signal.publish(events[pos]);
51 }
52
-
53 events.erase(events.cbegin(), events.cbegin() + length);
+
53 events.erase(events.cbegin(), events.cbegin() + static_cast<typename container_type::difference_type>(length));
54 }
55
56 void disconnect(void *instance) override {
@@ -172,27 +180,28 @@ $(function() { codefold.init(0); });
88};
89
90} // namespace internal
+
92
107template<typename Allocator>
- +
109 template<typename Type>
110 using handler_type = internal::dispatcher_handler<Type, Allocator>;
111
-
112 using key_type = id_type;
+
112 using key_type = id_type;
113 // std::shared_ptr because of its type erased allocator which is useful here
114 using mapped_type = std::shared_ptr<internal::basic_dispatcher_handler>;
115
116 using alloc_traits = std::allocator_traits<Allocator>;
117 using container_allocator = typename alloc_traits::template rebind_alloc<std::pair<const key_type, mapped_type>>;
- +
118 using container_type = dense_map<key_type, mapped_type, identity, std::equal_to<>, container_allocator>;
119
120 template<typename Type>
-
121 [[nodiscard]] handler_type<Type> &assure(const id_type id) {
+
121 [[nodiscard]] handler_type<Type> &assure(const id_type id) {
122 static_assert(std::is_same_v<Type, std::decay_t<Type>>, "Non-decayed types not allowed");
123 auto &&ptr = pools.first()[id];
124
125 if(!ptr) {
-
126 const auto &allocator = get_allocator();
+
126 const auto &allocator = get_allocator();
127 ptr = std::allocate_shared<handler_type<Type>>(allocator, allocator);
128 }
129
@@ -200,7 +209,7 @@ $(function() { codefold.init(0); });
131 }
132
133 template<typename Type>
-
134 [[nodiscard]] const handler_type<Type> *assure(const id_type id) const {
+
134 [[nodiscard]] const handler_type<Type> *assure(const id_type id) const {
135 static_assert(std::is_same_v<Type, std::decay_t<Type>>, "Non-decayed types not allowed");
136
137 if(auto it = pools.first().find(id); it != pools.first().cend()) {
@@ -213,64 +222,64 @@ $(function() { codefold.init(0); });
144public:
146 using allocator_type = Allocator;
148 using size_type = std::size_t;
-
149
+
149
-
153
+
153
158 explicit basic_dispatcher(const allocator_type &allocator)
159 : pools{allocator, allocator} {}
-
160
- -
163
+
160
+ +
163
- +
169 : pools{std::move(other.pools)} {}
-
170
+
170
- -
177 : pools{container_type{std::move(other.pools.first()), allocator}, allocator} {
-
178 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a dispatcher is not allowed");
+ +
177 : pools{container_type{std::move(other.pools.first()), allocator}, allocator} {
+
178 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a dispatcher is not allowed");
179 }
-
180
+
180
182 ~basic_dispatcher() = default;
-
183
- -
189
+
183
+ +
189
- -
196 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a dispatcher is not allowed");
-
197 swap(other);
+ +
196 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a dispatcher is not allowed");
+
197 swap(other);
198 return *this;
199 }
-
200
+
200
-
205 void swap(basic_dispatcher &other) noexcept {
+
205 void swap(basic_dispatcher &other) noexcept {
206 using std::swap;
-
207 swap(pools, other.pools);
+
207 swap(pools, other.pools);
208 }
-
209
+
209
214 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
215 return pools.second();
216 }
-
217
+
217
224 template<typename Type>
-
225 [[nodiscard]] size_type size(const id_type id = type_hash<Type>::value()) const noexcept {
+
225 [[nodiscard]] size_type size(const id_type id = type_hash<Type>::value()) const noexcept {
226 const auto *cpool = assure<std::decay_t<Type>>(id);
227 return cpool ? cpool->size() : 0u;
228 }
-
229
+
229
234 [[nodiscard]] size_type size() const noexcept {
235 size_type count{};
@@ -282,63 +291,63 @@ $(function() { codefold.init(0); });
241 return count;
242 }
-
243
+
243
263 template<typename Type>
-
264 [[nodiscard]] auto sink(const id_type id = type_hash<Type>::value()) {
+
264 [[nodiscard]] auto sink(const id_type id = type_hash<Type>::value()) {
265 return assure<Type>(id).bucket();
266 }
-
267
+
267
273 template<typename Type>
274 void trigger(Type &&value = {}) {
275 trigger(type_hash<std::decay_t<Type>>::value(), std::forward<Type>(value));
276 }
-
277
+
277
284 template<typename Type>
-
285 void trigger(const id_type id, Type &&value = {}) {
+
285 void trigger(const id_type id, Type &&value = {}) {
286 assure<std::decay_t<Type>>(id).trigger(std::forward<Type>(value));
287 }
-
288
+
288
295 template<typename Type, typename... Args>
296 void enqueue(Args &&...args) {
-
297 enqueue_hint<Type>(type_hash<Type>::value(), std::forward<Args>(args)...);
+
297 enqueue_hint<Type>(type_hash<Type>::value(), std::forward<Args>(args)...);
298 }
-
299
+
299
305 template<typename Type>
306 void enqueue(Type &&value) {
-
307 enqueue_hint(type_hash<std::decay_t<Type>>::value(), std::forward<Type>(value));
+
307 enqueue_hint(type_hash<std::decay_t<Type>>::value(), std::forward<Type>(value));
308 }
-
309
+
309
317 template<typename Type, typename... Args>
-
318 void enqueue_hint(const id_type id, Args &&...args) {
+
318 void enqueue_hint(const id_type id, Args &&...args) {
319 assure<Type>(id).enqueue(std::forward<Args>(args)...);
320 }
-
321
+
321
328 template<typename Type>
-
329 void enqueue_hint(const id_type id, Type &&value) {
-
330 assure<std::decay_t<Type>>(id).enqueue(std::forward<Type>(value));
+
329 void enqueue_hint(const id_type id, Type &&value) {
+
330 assure<std::decay_t<Type>>(id).enqueue(std::forward<Type>(value));
331 }
-
332
+
332
339 template<typename Type>
340 void disconnect(Type &value_or_instance) {
-
341 disconnect(&value_or_instance);
+
341 disconnect(&value_or_instance);
342 }
-
343
+
343
350 template<typename Type>
351 void disconnect(Type *value_or_instance) {
@@ -347,14 +356,14 @@ $(function() { codefold.init(0); });
354 }
355 }
-
356
+
356
362 template<typename Type>
- +
364 assure<Type>(id).clear();
365 }
-
366
+
366
368 void clear() noexcept {
369 for(auto &&cpool: pools.first()) {
@@ -362,14 +371,14 @@ $(function() { codefold.init(0); });
371 }
372 }
-
373
+
373
379 template<typename Type>
- +
381 assure<Type>(id).publish();
382 }
-
383
+
383
385 void update() const {
386 for(auto &&cpool: pools.first()) {
@@ -386,10 +395,9 @@ $(function() { codefold.init(0); });
395} // namespace entt
396
397#endif
-
Basic dispatcher implementation.
void clear(const id_type id=type_hash< Type >::value())
Discards all the events stored so far in a given queue.
void trigger(Type &&value={})
Triggers an immediate event of a given type.
-
void swap(basic_dispatcher &other) noexcept
Exchanges the contents with those of a given dispatcher.
+
void swap(basic_dispatcher &other) noexcept
void clear() noexcept
Discards all the events queued so far.
void enqueue_hint(const id_type id, Type &&value)
Enqueues an event of the given type.
Allocator allocator_type
Allocator type.
@@ -397,7 +405,7 @@ $(function() { codefold.init(0); });
basic_dispatcher(basic_dispatcher &&other, const allocator_type &allocator)
Allocator-extended move constructor.
void update() const
Delivers all the pending events.
void enqueue(Type &&value)
Enqueues an event of the given type.
-
void enqueue_hint(const id_type id, Args &&...args)
Enqueues an event of the given type.
+
void enqueue_hint(const id_type id, Args &&...args)
size_type size() const noexcept
Returns the total number of pending events.
std::size_t size_type
Unsigned integer type.
void disconnect(Type &value_or_instance)
Utility function to disconnect everything related to a given value or instance from a dispatcher.
@@ -415,15 +423,16 @@ $(function() { codefold.init(0); });
basic_dispatcher & operator=(basic_dispatcher &&other) noexcept
Move assignment operator.
void enqueue(Args &&...args)
Enqueues an event of the given type.
A compressed pair.
-
Associative container for key-value pairs with unique keys.
+
Associative container for key-value pairs with unique keys.
EnTT default namespace.
Definition dense_map.hpp:22
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
-
constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
Swaps two compressed pair objects.
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
Type hash.
Definition type_info.hpp:92
+
static constexpr id_type value() noexcept
Returns the numeric representation of a given type.
+
diff --git a/dot_8hpp_source.html b/dot_8hpp_source.html index c35096124..f2fdecbac 100644 --- a/dot_8hpp_source.html +++ b/dot_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/graph/dot.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
dot.hpp
@@ -91,10 +99,10 @@ $(function() { codefold.init(0); });
6#include "fwd.hpp"
7
8namespace entt {
-
9
+
9
18template<typename Graph, typename Writer>
-
19void dot(std::ostream &out, const Graph &graph, Writer writer) {
+
19void dot(std::ostream &out, const Graph &graph, Writer writer) {
20 static_assert(std::is_base_of_v<directed_tag, typename Graph::graph_category>, "Invalid graph category");
21
22 if constexpr(std::is_same_v<typename Graph::graph_category, undirected_tag>) {
@@ -105,25 +113,25 @@ $(function() { codefold.init(0); });
27
28 for(auto &&vertex: graph.vertices()) {
29 out << vertex << "[";
-
30 writer(out, vertex);
+
30 writer(out, vertex);
31 out << "];";
32 }
33
-
34 for(auto [lhs, rhs]: graph.edges()) {
+
34 for(auto [lhs, rhs]: graph.edges()) {
35 if constexpr(std::is_same_v<typename Graph::graph_category, undirected_tag>) {
-
36 out << lhs << "--" << rhs << ";";
+
36 out << lhs << "--" << rhs << ";";
37 } else {
-
38 out << lhs << "->" << rhs << ";";
+
38 out << lhs << "->" << rhs << ";";
39 }
40 }
41
42 out << "}";
43}
-
44
+
44
51template<typename Graph>
-
52void dot(std::ostream &out, const Graph &graph) {
+
52void dot(std::ostream &out, const Graph &graph) {
53 return dot(out, graph, [](auto &&...) {});
54}
@@ -132,12 +140,12 @@ $(function() { codefold.init(0); });
57
58#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
void dot(std::ostream &out, const Graph &graph, Writer writer)
Outputs a graph in dot format.
Definition dot.hpp:19
+
diff --git a/doxygen-awesome.css b/doxygen-awesome.css index c2f41142f..af68d5fea 100644 --- a/doxygen-awesome.css +++ b/doxygen-awesome.css @@ -32,6 +32,7 @@ html { --primary-color: #1779c4; --primary-dark-color: #335c80; --primary-light-color: #70b1e9; + --on-primary-color: #ffffff; /* page base colors */ --page-background-color: #ffffff; @@ -113,7 +114,7 @@ html { */ --menu-display: block; - --menu-focus-foreground: var(--page-background-color); + --menu-focus-foreground: var(--on-primary-color); --menu-focus-background: var(--primary-color); --menu-selected-background: rgba(0,0,0,.05); @@ -944,6 +945,7 @@ td.memSeparator { span.mlabel { background: var(--primary-color); + color: var(--on-primary-color); border: none; padding: 4px 9px; border-radius: 12px; diff --git a/doxygen_crawl.html b/doxygen_crawl.html index 00d443c3b..07e2276ec 100644 --- a/doxygen_crawl.html +++ b/doxygen_crawl.html @@ -4,574 +4,1384 @@ Validator / crawler helper - + - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - + + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + - + + + - - - - - - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - @@ -595,15 +1405,18 @@ - - - - - - - - - + + + + + + + + + + + + @@ -623,6 +1436,971 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js index bdb71d48f..8985f424f 100644 --- a/dynsections.js +++ b/dynsections.js @@ -23,6 +23,10 @@ @licend The above is the entire license notice for the JavaScript code in this file */ +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + let dynsection = { // helper function @@ -124,8 +128,8 @@ let codefold = { opened : true, // in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes - plusImg: [ "url('plus.svg')", "url('../../plus.svg')" ], - minusImg: [ "url('minus.svg')", "url('../../minus.svg')" ], + plusImg: [ "var(--fold-plus-image)", "var(--fold-plus-image-relpath)" ], + minusImg: [ "var(--fold-minus-image)", "var(--fold-minus-image-relpath)" ], // toggle all folding blocks toggle_all : function(relPath) { @@ -153,7 +157,7 @@ let codefold = { 'margin-right':'2px', 'display':'inline-block', 'width':'54px', - 'background':'linear-gradient(#808080,#808080) no-repeat 46px/2px 100%' + 'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%' }); // add global toggle to first line $('span[class=lineno]:first').append(' - + EnTT: src/entt/signal/emitter.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
emitter.hpp
@@ -97,115 +105,115 @@ $(function() { codefold.init(0); });
12#include "fwd.hpp"
13
14namespace entt {
-
15
+
15
35template<typename Derived, typename Allocator>
-
36class emitter {
-
37 using key_type = id_type;
-
38 using mapped_type = std::function<void(void *)>;
+
36class emitter {
+
37 using key_type = id_type;
+
38 using mapped_type = std::function<void(void *)>;
39
40 using alloc_traits = std::allocator_traits<Allocator>;
-
41 using container_allocator = typename alloc_traits::template rebind_alloc<std::pair<const key_type, mapped_type>>;
- +
41 using container_allocator = typename alloc_traits::template rebind_alloc<std::pair<const key_type, mapped_type>>;
+
42 using container_type = dense_map<key_type, mapped_type, identity, std::equal_to<>, container_allocator>;
43
44public:
46 using allocator_type = Allocator;
48 using size_type = std::size_t;
-
49
+
49
-
53
+
53
- -
59 : handlers{allocator, allocator} {}
+
58 explicit emitter(const allocator_type &allocator)
+
59 : handlers{allocator, allocator} {}
-
60
-
62 emitter(const emitter &) = delete;
-
63
+
60
+
62 emitter(const emitter &) = delete;
+
63
- -
69 : handlers{std::move(other.handlers)} {}
+
68 emitter(emitter &&other) noexcept
+
69 : handlers{std::move(other.handlers)} {}
-
70
+
70
- -
77 : handlers{container_type{std::move(other.handlers.first()), allocator}, allocator} {
-
78 ENTT_ASSERT(alloc_traits::is_always_equal::value || handlers.second() == other.handlers.second(), "Copying an emitter is not allowed");
+
76 emitter(emitter &&other, const allocator_type &allocator)
+
77 : handlers{container_type{std::move(other.handlers.first()), allocator}, allocator} {
+
78 ENTT_ASSERT(alloc_traits::is_always_equal::value || handlers.second() == other.handlers.second(), "Copying an emitter is not allowed");
79 }
-
80
+
80
82 virtual ~emitter() {
-
83 static_assert(std::is_base_of_v<emitter<Derived, Allocator>, Derived>, "Invalid emitter type");
+
83 static_assert(std::is_base_of_v<emitter<Derived, Allocator>, Derived>, "Invalid emitter type");
84 }
-
85
-
90 emitter &operator=(const emitter &) = delete;
-
91
+
85
+
90 emitter &operator=(const emitter &) = delete;
+
91
- -
98 ENTT_ASSERT(alloc_traits::is_always_equal::value || handlers.second() == other.handlers.second(), "Copying an emitter is not allowed");
-
99 swap(other);
+
97 emitter &operator=(emitter &&other) noexcept {
+
98 ENTT_ASSERT(alloc_traits::is_always_equal::value || handlers.second() == other.handlers.second(), "Copying an emitter is not allowed");
+
99 swap(other);
100 return *this;
101 }
-
102
+
102
-
107 void swap(emitter &other) noexcept {
+
107 void swap(emitter &other) noexcept {
108 using std::swap;
-
109 swap(handlers, other.handlers);
+
109 swap(handlers, other.handlers);
110 }
-
111
+
111
- -
117 return handlers.second();
+
116 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
117 return handlers.second();
118 }
-
119
+
119
125 template<typename Type>
-
126 void publish(Type &&value) {
-
127 if(const auto id = type_id<Type>().hash(); handlers.first().contains(id)) {
-
128 handlers.first()[id](&value);
+
126 void publish(Type value) {
+
127 if(const auto id = type_id<Type>().hash(); handlers.first().contains(id)) {
+
128 handlers.first()[id](&value);
129 }
130 }
-
131
+
131
137 template<typename Type>
-
138 void on(std::function<void(Type &, Derived &)> func) {
-
139 handlers.first().insert_or_assign(type_id<Type>().hash(), [func = std::move(func), this](void *value) {
-
140 func(*static_cast<Type *>(value), static_cast<Derived &>(*this));
+
138 void on(std::function<void(Type &, Derived &)> func) {
+
139 handlers.first().insert_or_assign(type_id<Type>().hash(), [func = std::move(func), this](void *value) {
+
140 func(*static_cast<Type *>(value), static_cast<Derived &>(*this));
141 });
142 }
-
143
+
143
148 template<typename Type>
149 void erase() {
-
150 handlers.first().erase(type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value());
+
150 handlers.first().erase(type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value());
151 }
-
152
+
152
- -
155 handlers.first().clear();
+
154 void clear() noexcept {
+
155 handlers.first().clear();
156 }
-
157
+
157
163 template<typename Type>
-
164 [[nodiscard]] bool contains() const {
-
165 return handlers.first().contains(type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value());
+
164 [[nodiscard]] bool contains() const {
+
165 return handlers.first().contains(type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value());
166 }
-
167
+
167
- -
173 return handlers.first().empty();
+
172 [[nodiscard]] bool empty() const noexcept {
+
173 return handlers.first().empty();
174 }
175
@@ -218,10 +226,7 @@ $(function() { codefold.init(0); });
181
182#endif
A compressed pair.
-
constexpr second_type & second() noexcept
Returns the second element that a pair stores.
-
constexpr first_type & first() noexcept
Returns the first element that a pair stores.
-
Associative container for key-value pairs with unique keys.
-
General purpose event emitter.
Definition emitter.hpp:36
+
Associative container for key-value pairs with unique keys.
emitter & operator=(const emitter &)=delete
Default copy assignment operator, deleted on purpose.
Allocator allocator_type
Allocator type.
Definition emitter.hpp:46
emitter(emitter &&other) noexcept
Move constructor.
Definition emitter.hpp:68
@@ -230,7 +235,6 @@ $(function() { codefold.init(0); });
void clear() noexcept
Disconnects all the listeners.
Definition emitter.hpp:154
emitter()
Default constructor.
Definition emitter.hpp:51
bool contains() const
Checks if there are listeners registered for the specific event.
Definition emitter.hpp:164
-
void publish(Type &&value)
Publishes a given event.
Definition emitter.hpp:126
void erase()
Disconnects a listener from the event emitter.
Definition emitter.hpp:149
std::size_t size_type
Unsigned integer type.
Definition emitter.hpp:48
emitter(const emitter &)=delete
Default copy constructor, deleted on purpose.
@@ -240,14 +244,16 @@ $(function() { codefold.init(0); });
emitter(emitter &&other, const allocator_type &allocator)
Allocator-extended move constructor.
Definition emitter.hpp:76
virtual ~emitter()
Default destructor.
Definition emitter.hpp:82
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
Definition emitter.hpp:116
+
void publish(Type value)
Publishes a given event.
Definition emitter.hpp:126
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
+
const type_info & type_id() noexcept
Returns the type info object associated to a given type.
Type hash.
Definition type_info.hpp:92
+
diff --git a/entity_2fwd_8hpp_source.html b/entity_2fwd_8hpp_source.html index e3b583063..c3c7df7e9 100644 --- a/entity_2fwd_8hpp_source.html +++ b/entity_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
fwd.hpp
@@ -94,231 +102,251 @@ $(function() { codefold.init(0); });
9#include "../core/type_traits.hpp"
10
11namespace entt {
-
12
-
14enum class entity : id_type {};
-
15
+
12
+
14enum class entity : id_type {};
+
15
17enum class deletion_policy : std::uint8_t {
-
19 swap_and_pop = 0u,
-
21 in_place = 1u,
-
23 swap_only = 2u
-
24};
+ + + + +
26};
-
25
-
26template<typename Entity = entity, typename = std::allocator<Entity>>
-
27class basic_sparse_set;
-
28
-
29template<typename Type, typename = entity, typename = std::allocator<Type>, typename = void>
-
30class basic_storage;
-
31
-
32template<typename, typename>
-
33class basic_sigh_mixin;
-
34
-
35template<typename, typename>
-
36class basic_reactive_mixin;
-
37
-
38template<typename Entity = entity, typename = std::allocator<Entity>>
-
39class basic_registry;
-
40
-
41template<typename, typename, typename = void>
- -
43
-
44template<typename Type, typename = std::allocator<Type *>>
- -
46
-
47template<typename, typename, typename>
- -
49
-
50template<typename, typename = std::allocator<void>>
-
51class basic_observer;
-
52
-
53template<typename>
-
54class basic_organizer;
-
55
-
56template<typename, typename...>
-
57class basic_handle;
-
58
-
59template<typename>
-
60class basic_snapshot;
-
61
-
62template<typename>
- -
64
-
65template<typename>
- -
67
- -
70
-
75template<typename Type>
- -
77
-
82template<typename Type>
- -
84
-
89template<typename Type>
- -
91
- -
94
- -
97
- -
100
- -
103
- -
106
-
111template<typename... Args>
- -
113
-
118template<typename... Args>
- -
120
- -
123
- -
126
- -
129
- -
132
- -
135
-
140template<typename... Type>
-
-
141struct exclude_t final: type_list<Type...> {
-
143 explicit constexpr exclude_t() = default;
-
144};
+
27
+
28template<typename Type, typename Entity = entity, typename = void>
+
29struct component_traits;
+
30
+
31template<typename Entity = entity, typename = std::allocator<Entity>>
+
32class basic_sparse_set;
+
33
+
34template<typename Type, typename = entity, typename = std::allocator<Type>, typename = void>
+
35class basic_storage;
+
36
+
37template<typename, typename>
+
38class basic_sigh_mixin;
+
39
+
40template<typename, typename>
+
41class basic_reactive_mixin;
+
42
+
43template<typename Entity = entity, typename = std::allocator<Entity>>
+
44class basic_registry;
+
45
+
46template<typename, typename, typename = void>
+ +
48
+
49template<typename Type, typename = std::allocator<Type *>>
+ +
51
+
52template<typename, typename, typename>
+ +
54
+
55template<typename>
+
56class basic_organizer;
+
57
+
58template<typename, typename...>
+
59class basic_handle;
+
60
+
61template<typename>
+
62class basic_snapshot;
+
63
+
64template<typename>
+ +
66
+
67template<typename>
+ +
69
+ +
72
+
77template<typename Type>
+ +
79
+
84template<typename Type>
+ +
86
+
91template<typename Type>
+ +
93
+ +
96
+ +
99
+ +
102
+ +
105
+
110template<typename... Args>
+ +
112
+
117template<typename... Args>
+ +
119
+ +
122
+ +
125
+ +
128
+ +
131
+ +
134
+
139template<typename... Type>
+
+
140struct exclude_t final: type_list<Type...> {
+
142 explicit constexpr exclude_t() = default;
+
143};
-
145
-
150template<typename... Type>
-
151inline constexpr exclude_t<Type...> exclude{};
-
152
-
157template<typename... Type>
-
-
158struct get_t final: type_list<Type...> {
-
160 explicit constexpr get_t() = default;
-
161};
+
144
+
149template<typename... Type>
+
150inline constexpr exclude_t<Type...> exclude{};
+
151
+
156template<typename... Type>
+
+
157struct get_t final: type_list<Type...> {
+
159 explicit constexpr get_t() = default;
+
160};
-
162
-
167template<typename... Type>
-
168inline constexpr get_t<Type...> get{};
-
169
-
174template<typename... Type>
-
-
175struct owned_t final: type_list<Type...> {
-
177 explicit constexpr owned_t() = default;
-
178};
+
161
+
166template<typename... Type>
+
167inline constexpr get_t<Type...> get{};
+
168
+
173template<typename... Type>
+
+
174struct owned_t final: type_list<Type...> {
+
176 explicit constexpr owned_t() = default;
+
177};
-
179
-
184template<typename... Type>
-
185inline constexpr owned_t<Type...> owned{};
-
186
-
192template<typename... Type, template<typename...> class Op>
-
-
193struct type_list_transform<get_t<Type...>, Op> {
- -
196};
+
178
+
183template<typename... Type>
+
184inline constexpr owned_t<Type...> owned{};
+
185
+
191template<typename... Type, template<typename...> class Op>
+
+
192struct type_list_transform<get_t<Type...>, Op> {
+ +
195};
-
197
-
203template<typename... Type, template<typename...> class Op>
-
- - -
207};
+
196
+
202template<typename... Type, template<typename...> class Op>
+
+
203struct type_list_transform<exclude_t<Type...>, Op> {
+ +
206};
-
208
-
214template<typename... Type, template<typename...> class Op>
-
-
215struct type_list_transform<owned_t<Type...>, Op> {
- -
218};
+
207
+
213template<typename... Type, template<typename...> class Op>
+
+
214struct type_list_transform<owned_t<Type...>, Op> {
+ +
217};
-
219
-
226template<typename Type, typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
-
- - -
230};
+
218
+
225template<typename Type, typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
+
+ + +
229};
-
231
-
233struct reactive final {};
-
234
-
240template<typename Entity, typename Allocator>
-
-
241struct storage_type<reactive, Entity, Allocator> {
- -
244};
+
230
+
232struct reactive final {};
+
233
+
239template<typename Entity, typename Allocator>
+
+
240struct storage_type<reactive, Entity, Allocator> {
+ +
243};
-
245
-
250template<typename... Args>
-
251using storage_type_t = typename storage_type<Args...>::type;
-
252
-
259template<typename Type, typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
-
- - -
263};
+
244
+
249template<typename... Args>
+
250using storage_type_t = typename storage_type<Args...>::type;
+
251
+
258template<typename Type, typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
+
+ + +
262};
-
264
-
269template<typename... Args>
-
270using storage_for_t = typename storage_for<Args...>::type;
-
271
-
277template<typename Get, typename Exclude = exclude_t<>>
- -
279
-
286template<typename Owned, typename Get, typename Exclude>
- -
288
-
289} // namespace entt
-
290
-
291#endif
-
Utility class for continuous loading.
Definition snapshot.hpp:303
- +
263
+
268template<typename... Args>
+
269using storage_for_t = typename storage_for<Args...>::type;
+
270
+
276template<typename Get, typename Exclude = exclude_t<>>
+ +
278
+
285template<typename Owned, typename Get = get_t<>, typename Exclude = exclude_t<>>
+ +
287
+
288} // namespace entt
+
289
+
290#endif
+
Utility class for continuous loading.
Definition snapshot.hpp:306
+
Non-owning handle to an entity.
Definition handle.hpp:98
- -
Utility class for creating a static task graph.
-
Mixin type used to add reactive support to storage types.
Definition mixin.hpp:389
-
Fast and reliable entity-component system.
Definition registry.hpp:234
+
Utility class for creating a static task graph.
+
Mixin type used to add reactive support to storage types.
Definition mixin.hpp:394
+
Generic runtime view.
-
Mixin type used to add signal support to storage types.
Definition mixin.hpp:71
+
Mixin type used to add signal support to storage types.
Definition mixin.hpp:57
Utility class to restore a snapshot as a whole.
Definition snapshot.hpp:176
Utility class to create snapshots from a registry.
Definition snapshot.hpp:47
-
Sparse set implementation.
-
Storage implementation.
Definition storage.hpp:230
-
View implementation.
Definition fwd.hpp:42
+ +
Storage implementation.
Definition storage.hpp:229
+
View implementation.
Definition fwd.hpp:47
EnTT default namespace.
Definition dense_map.hpp:22
+
basic_handle< const registry, Args... > const_handle_view
Alias declaration for the most common use case.
Definition fwd.hpp:118
entity
Default entity identifier.
Definition fwd.hpp:14
-
typename storage_type< Args... >::type storage_type_t
Helper type.
Definition fwd.hpp:251
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
-
typename type_list_transform< List, Op >::type type_list_transform_t
Helper type.
-
constexpr exclude_t< Type... > exclude
Variable template for exclusion lists.
Definition fwd.hpp:151
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
-
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:168
-
typename storage_for< Args... >::type storage_for_t
Helper type.
Definition fwd.hpp:270
-
basic_registry<> registry
Alias declaration for the most common use case.
Definition fwd.hpp:93
+
typename storage_type< Args... >::type storage_type_t
Helper type.
Definition fwd.hpp:250
+
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
+
basic_organizer< registry > organizer
Alias declaration for the most common use case.
Definition fwd.hpp:98
+
typename type_list_transform< List, Op >::type type_list_transform_t
Helper type.
+
basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
Alias declaration for the most common use case.
Definition fwd.hpp:277
+
basic_handle< registry > handle
Alias declaration for the most common use case.
Definition fwd.hpp:101
+
constexpr exclude_t< Type... > exclude
Variable template for exclusion lists.
Definition fwd.hpp:150
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
+
basic_handle< registry, Args... > handle_view
Alias declaration for the most common use case.
Definition fwd.hpp:111
+
basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > reactive_mixin
Alias declaration for the most common use case.
Definition fwd.hpp:92
+
basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > group
Alias declaration for the most common use case.
Definition fwd.hpp:286
+
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:167
+
typename storage_for< Args... >::type storage_for_t
Helper type.
Definition fwd.hpp:269
+
basic_registry<> registry
Alias declaration for the most common use case.
Definition fwd.hpp:95
deletion_policy
Storage deletion policy.
Definition fwd.hpp:17
-
@ swap_only
Swap-only deletion policy.
-
@ swap_and_pop
Swap-and-pop deletion policy.
-
@ in_place
In-place deletion policy.
-
constexpr owned_t< Type... > owned
Variable template for lists of owned elements.
Definition fwd.hpp:185
-
Alias for exclusion lists.
Definition fwd.hpp:141
+
@ swap_only
Swap-only deletion policy.
Definition fwd.hpp:23
+
@ swap_and_pop
Swap-and-pop deletion policy.
Definition fwd.hpp:19
+
@ in_place
In-place deletion policy.
Definition fwd.hpp:21
+
@ unspecified
Unspecified deletion policy.
Definition fwd.hpp:25
+
basic_runtime_view< const sparse_set > const_runtime_view
Alias declaration for the most common use case.
Definition fwd.hpp:133
+
constexpr owned_t< Type... > owned
Variable template for lists of owned elements.
Definition fwd.hpp:184
+
basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > sigh_mixin
Alias declaration for the most common use case.
Definition fwd.hpp:85
+
basic_runtime_view< sparse_set > runtime_view
Alias declaration for the most common use case.
Definition fwd.hpp:130
+
basic_snapshot< registry > snapshot
Alias declaration for the most common use case.
Definition fwd.hpp:121
+
basic_continuous_loader< registry > continuous_loader
Alias declaration for the most common use case.
Definition fwd.hpp:127
+
basic_handle< const registry > const_handle
Alias declaration for the most common use case.
Definition fwd.hpp:104
+
basic_sparse_set<> sparse_set
Alias declaration for the most common use case.
Definition fwd.hpp:71
+
basic_storage< Type > storage
Alias declaration for the most common use case.
Definition fwd.hpp:78
+
basic_snapshot_loader< registry > snapshot_loader
Alias declaration for the most common use case.
Definition fwd.hpp:124
+
Alias for exclusion lists.
Definition fwd.hpp:140
constexpr exclude_t()=default
Default constructor.
-
Alias for lists of observed elements.
Definition fwd.hpp:158
+
Alias for lists of observed elements.
Definition fwd.hpp:157
constexpr get_t()=default
Default constructor.
-
Alias for lists of owned elements.
Definition fwd.hpp:175
+
Alias for lists of owned elements.
Definition fwd.hpp:174
constexpr owned_t()=default
Default constructor.
-
Empty value type for reactive storage types.
Definition fwd.hpp:233
- -
constness_as_t< storage_type_t< std::remove_const_t< Type >, Entity, Allocator >, Type > type
Type-to-storage conversion result.
Definition fwd.hpp:262
-
Provides a common way to define storage types.
Definition fwd.hpp:227
-
Primary template isn't defined on purpose.
-
A class to use to push around lists of types, nothing more.
+
Empty value type for reactive storage types.
Definition fwd.hpp:232
+ +
constness_as_t< storage_type_t< std::remove_const_t< Type >, Entity, Allocator >, Type > type
Type-to-storage conversion result.
Definition fwd.hpp:261
+
reactive_mixin< basic_storage< reactive, Entity, Allocator > > type
Type-to-storage conversion result.
Definition fwd.hpp:242
+
Provides a common way to define storage types.
Definition fwd.hpp:226
+
sigh_mixin< basic_storage< Type, Entity, Allocator > > type
Type-to-storage conversion result.
Definition fwd.hpp:228
+
exclude_t< typename Op< Type >::type... > type
Resulting exclude list after applying the transform function.
Definition fwd.hpp:205
+
get_t< typename Op< Type >::type... > type
Resulting get list after applying the transform function.
Definition fwd.hpp:194
+
owned_t< typename Op< Type >::type... > type
Resulting owned list after applying the transform function.
Definition fwd.hpp:216
+
Primary template isn't defined on purpose.
+
A class to use to push around lists of types, nothing more.
+
diff --git a/entity_2ranges_8hpp_source.html b/entity_2ranges_8hpp_source.html index 6ce7780ce..3a8c2cf5a 100644 --- a/entity_2ranges_8hpp_source.html +++ b/entity_2ranges_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/ranges.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
ranges.hpp
@@ -109,12 +117,13 @@ $(function() { codefold.init(0); });
24#endif
25
26#endif
- -
View implementation.
Definition fwd.hpp:42
+ +
View implementation.
Definition fwd.hpp:47
+
diff --git a/entity_8hpp_source.html b/entity_8hpp_source.html index 4d44a854c..ffa8cd819 100644 --- a/entity_8hpp_source.html +++ b/entity_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/entity.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
entity.hpp
@@ -94,7 +102,7 @@ $(function() { codefold.init(0); });
9#include "fwd.hpp"
10
11namespace entt {
-
12
+
12
14namespace internal {
15
16template<typename, typename = void>
@@ -135,6 +143,7 @@ $(function() { codefold.init(0); });
51};
52
53} // namespace internal
+
55
60template<typename Traits>
@@ -147,205 +156,205 @@ $(function() { codefold.init(0); });
69 using value_type = typename Traits::value_type;
71 using entity_type = typename Traits::entity_type;
73 using version_type = typename Traits::version_type;
-
74
+
74
76 static constexpr entity_type entity_mask = Traits::entity_mask;
78 static constexpr entity_type version_mask = Traits::version_mask;
-
79
+
79
-
85 [[nodiscard]] static constexpr entity_type to_integral(const value_type value) noexcept {
+
85 [[nodiscard]] static constexpr entity_type to_integral(const value_type value) noexcept {
86 return static_cast<entity_type>(value);
87 }
-
88
+
88
-
94 [[nodiscard]] static constexpr entity_type to_entity(const value_type value) noexcept {
+
94 [[nodiscard]] static constexpr entity_type to_entity(const value_type value) noexcept {
95 return (to_integral(value) & entity_mask);
96 }
-
97
+
97
-
103 [[nodiscard]] static constexpr version_type to_version(const value_type value) noexcept {
-
104 if constexpr(Traits::version_mask == 0u) {
+
103 [[nodiscard]] static constexpr version_type to_version(const value_type value) noexcept {
+
104 if constexpr(Traits::version_mask == 0u) {
105 return version_type{};
106 } else {
107 return (static_cast<version_type>(to_integral(value) >> length) & version_mask);
108 }
109 }
-
110
+
110
-
116 [[nodiscard]] static constexpr value_type next(const value_type value) noexcept {
-
117 const auto vers = to_version(value) + 1;
-
118 return construct(to_integral(value), static_cast<version_type>(vers + (vers == version_mask)));
+
116 [[nodiscard]] static constexpr value_type next(const value_type value) noexcept {
+
117 const auto vers = to_version(value) + 1;
+
118 return construct(to_integral(value), static_cast<version_type>(vers + (vers == version_mask)));
119 }
-
120
+
120
-
131 [[nodiscard]] static constexpr value_type construct(const entity_type entity, const version_type version) noexcept {
-
132 if constexpr(Traits::version_mask == 0u) {
+
131 [[nodiscard]] static constexpr value_type construct(const entity_type entity, const version_type version) noexcept {
+
132 if constexpr(Traits::version_mask == 0u) {
133 return value_type{entity & entity_mask};
134 } else {
-
135 return value_type{(entity & entity_mask) | (static_cast<entity_type>(version & version_mask) << length)};
+
135 return value_type{(entity & entity_mask) | (static_cast<entity_type>(version & version_mask) << length)};
136 }
137 }
-
138
+
138
-
149 [[nodiscard]] static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept {
-
150 if constexpr(Traits::version_mask == 0u) {
-
151 return value_type{lhs & entity_mask};
+
149 [[nodiscard]] static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept {
+
150 if constexpr(Traits::version_mask == 0u) {
+
151 return value_type{lhs & entity_mask};
152 } else {
-
153 return value_type{(lhs & entity_mask) | (rhs & (version_mask << length))};
+
153 return value_type{(lhs & entity_mask) | (rhs & (version_mask << length))};
154 }
155 }
156};
-
157
+
157
162template<typename Type>
163struct entt_traits: basic_entt_traits<internal::entt_traits<Type>> {
- +
167 static constexpr std::size_t page_size = ENTT_SPARSE_PAGE;
168};
-
169
+
169
176template<typename Entity>
-
177[[nodiscard]] constexpr typename entt_traits<Entity>::entity_type to_integral(const Entity value) noexcept {
+
177[[nodiscard]] constexpr typename entt_traits<Entity>::entity_type to_integral(const Entity value) noexcept {
179}
-
180
+
180
187template<typename Entity>
-
188[[nodiscard]] constexpr typename entt_traits<Entity>::entity_type to_entity(const Entity value) noexcept {
+
188[[nodiscard]] constexpr typename entt_traits<Entity>::entity_type to_entity(const Entity value) noexcept {
189 return entt_traits<Entity>::to_entity(value);
190}
-
191
+
191
198template<typename Entity>
-
199[[nodiscard]] constexpr typename entt_traits<Entity>::version_type to_version(const Entity value) noexcept {
+
199[[nodiscard]] constexpr typename entt_traits<Entity>::version_type to_version(const Entity value) noexcept {
201}
-
202
+
202
204struct null_t {
210 template<typename Entity>
-
211 [[nodiscard]] constexpr operator Entity() const noexcept {
+
211 [[nodiscard]] constexpr operator Entity() const noexcept {
212 using traits_type = entt_traits<Entity>;
213 constexpr auto value = traits_type::construct(traits_type::entity_mask, traits_type::version_mask);
214 return value;
215 }
-
216
+
216
-
222 [[nodiscard]] constexpr bool operator==([[maybe_unused]] const null_t other) const noexcept {
+
222 [[nodiscard]] constexpr bool operator==([[maybe_unused]] const null_t other) const noexcept {
223 return true;
224 }
-
225
+
225
-
231 [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const null_t other) const noexcept {
+
231 [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const null_t other) const noexcept {
232 return false;
233 }
-
234
+
234
241 template<typename Entity>
-
242 [[nodiscard]] constexpr bool operator==(const Entity entity) const noexcept {
+
242 [[nodiscard]] constexpr bool operator==(const Entity entity) const noexcept {
243 using traits_type = entt_traits<Entity>;
244 return traits_type::to_entity(entity) == traits_type::to_entity(*this);
245 }
-
246
+
246
253 template<typename Entity>
-
254 [[nodiscard]] constexpr bool operator!=(const Entity entity) const noexcept {
+
254 [[nodiscard]] constexpr bool operator!=(const Entity entity) const noexcept {
255 return !(entity == *this);
256 }
257};
-
258
+
258
266template<typename Entity>
-
267[[nodiscard]] constexpr bool operator==(const Entity lhs, const null_t rhs) noexcept {
-
268 return rhs.operator==(lhs);
+
267[[nodiscard]] constexpr bool operator==(const Entity lhs, const null_t rhs) noexcept {
+
268 return rhs.operator==(lhs);
269}
-
270
+
270
278template<typename Entity>
-
279[[nodiscard]] constexpr bool operator!=(const Entity lhs, const null_t rhs) noexcept {
-
280 return !(rhs == lhs);
+
279[[nodiscard]] constexpr bool operator!=(const Entity lhs, const null_t rhs) noexcept {
+
280 return !(rhs == lhs);
281}
-
282
+
282
290 template<typename Entity>
-
291 [[nodiscard]] constexpr operator Entity() const noexcept {
+
291 [[nodiscard]] constexpr operator Entity() const noexcept {
292 using traits_type = entt_traits<Entity>;
293 constexpr auto value = traits_type::construct(traits_type::entity_mask, traits_type::version_mask);
294 return value;
295 }
-
296
+
296
-
302 [[nodiscard]] constexpr bool operator==([[maybe_unused]] const tombstone_t other) const noexcept {
+
302 [[nodiscard]] constexpr bool operator==([[maybe_unused]] const tombstone_t other) const noexcept {
303 return true;
304 }
-
305
+
305
-
311 [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const tombstone_t other) const noexcept {
+
311 [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const tombstone_t other) const noexcept {
312 return false;
313 }
-
314
+
314
321 template<typename Entity>
-
322 [[nodiscard]] constexpr bool operator==(const Entity entity) const noexcept {
+
322 [[nodiscard]] constexpr bool operator==(const Entity entity) const noexcept {
323 using traits_type = entt_traits<Entity>;
324
-
325 if constexpr(traits_type::version_mask == 0u) {
+
325 if constexpr(traits_type::version_mask == 0u) {
326 return false;
327 } else {
328 return (traits_type::to_version(entity) == traits_type::to_version(*this));
329 }
330 }
-
331
+
331
338 template<typename Entity>
-
339 [[nodiscard]] constexpr bool operator!=(const Entity entity) const noexcept {
+
339 [[nodiscard]] constexpr bool operator!=(const Entity entity) const noexcept {
340 return !(entity == *this);
341 }
342};
-
343
+
343
351template<typename Entity>
-
352[[nodiscard]] constexpr bool operator==(const Entity lhs, const tombstone_t rhs) noexcept {
-
353 return rhs.operator==(lhs);
+
352[[nodiscard]] constexpr bool operator==(const Entity lhs, const tombstone_t rhs) noexcept {
+
353 return rhs.operator==(lhs);
354}
-
355
+
355
363template<typename Entity>
-
364[[nodiscard]] constexpr bool operator!=(const Entity lhs, const tombstone_t rhs) noexcept {
-
365 return !(rhs == lhs);
+
364[[nodiscard]] constexpr bool operator!=(const Entity lhs, const tombstone_t rhs) noexcept {
+
365 return !(rhs == lhs);
366}
-
367
+
367
375inline constexpr null_t null{};
-
376
+
376
384inline constexpr tombstone_t tombstone{};
385
386} // namespace entt
@@ -353,11 +362,11 @@ $(function() { codefold.init(0); });
388#endif
Common basic entity traits implementation.
Definition entity.hpp:61
typename Traits::entity_type entity_type
Underlying entity type.
Definition entity.hpp:71
-
static constexpr entity_type version_mask
Version mask size.
Definition entity.hpp:78
+
static constexpr value_type construct(const entity_type entity, const version_type version) noexcept
Constructs an identifier from its parts.
Definition entity.hpp:131
static constexpr value_type next(const value_type value) noexcept
Returns the successor of a given identifier.
Definition entity.hpp:116
static constexpr entity_type to_integral(const value_type value) noexcept
Converts an entity to its underlying type.
Definition entity.hpp:85
-
static constexpr entity_type entity_mask
Entity mask size.
Definition entity.hpp:76
+
static constexpr entity_type to_entity(const value_type value) noexcept
Returns the entity part once converted to the underlying type.
Definition entity.hpp:94
typename Traits::value_type value_type
Value type.
Definition entity.hpp:69
typename Traits::version_type version_type
Underlying version type.
Definition entity.hpp:73
@@ -366,7 +375,6 @@ $(function() { codefold.init(0); });
EnTT default namespace.
Definition dense_map.hpp:22
entity
Default entity identifier.
Definition fwd.hpp:14
constexpr entt_traits< Entity >::entity_type to_entity(const Entity value) noexcept
Returns the entity part once converted to the underlying type.
Definition entity.hpp:188
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
constexpr null_t null
Compile-time constant for null entities.
Definition entity.hpp:375
constexpr entt_traits< Entity >::version_type to_version(const Entity value) noexcept
Returns the version part once converted to the underlying type.
Definition entity.hpp:199
constexpr tombstone_t tombstone
Compile-time constant for tombstone entities.
Definition entity.hpp:384
@@ -375,7 +383,8 @@ $(function() { codefold.init(0); });
constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
Compares two hashed strings.
constexpr std::enable_if_t< std::is_unsigned_v< Type >, int > popcount(const Type value) noexcept
Returns the number of set bits in a value (waiting for C++20 and std::popcount).
Definition bit.hpp:19
Entity traits.
Definition entity.hpp:163
-
static constexpr std::size_t page_size
Page size, default is ENTT_SPARSE_PAGE.
Definition entity.hpp:167
+ +
basic_entt_traits< internal::entt_traits< Type > > base_type
Base type.
Definition entity.hpp:165
Null object for all identifiers.
Definition entity.hpp:204
constexpr bool operator==(const Entity entity) const noexcept
Compares a null object and an identifier of any type.
Definition entity.hpp:242
constexpr bool operator!=(const Entity entity) const noexcept
Compares a null object and an identifier of any type.
Definition entity.hpp:254
@@ -389,7 +398,8 @@ $(function() { codefold.init(0); });
+
diff --git a/entt_8hpp_source.html b/entt_8hpp_source.html index c13940c76..333cb6f92 100644 --- a/entt_8hpp_source.html +++ b/entt_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entt.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,81 +86,86 @@ $(function() { codefold.init(0); });
+
entt.hpp
-
1// IWYU pragma: begin_exports
-
2#include "config/config.h"
-
3#include "config/macro.h"
-
4#include "config/version.h"
-
5#include "container/dense_map.hpp"
-
6#include "container/dense_set.hpp"
-
7#include "container/table.hpp"
-
8#include "core/algorithm.hpp"
-
9#include "core/any.hpp"
-
10#include "core/attribute.h"
-
11#include "core/bit.hpp"
-
12#include "core/compressed_pair.hpp"
-
13#include "core/enum.hpp"
-
14#include "core/family.hpp"
-
15#include "core/hashed_string.hpp"
-
16#include "core/ident.hpp"
-
17#include "core/iterator.hpp"
-
18#include "core/memory.hpp"
-
19#include "core/monostate.hpp"
-
20#include "core/ranges.hpp"
-
21#include "core/tuple.hpp"
-
22#include "core/type_info.hpp"
-
23#include "core/type_traits.hpp"
-
24#include "core/utility.hpp"
-
25#include "entity/component.hpp"
-
26#include "entity/entity.hpp"
-
27#include "entity/group.hpp"
-
28#include "entity/handle.hpp"
-
29#include "entity/helper.hpp"
-
30#include "entity/mixin.hpp"
-
31#include "entity/observer.hpp"
-
32#include "entity/organizer.hpp"
-
33#include "entity/ranges.hpp"
-
34#include "entity/registry.hpp"
-
35#include "entity/runtime_view.hpp"
-
36#include "entity/snapshot.hpp"
-
37#include "entity/sparse_set.hpp"
-
38#include "entity/storage.hpp"
-
39#include "entity/view.hpp"
-
40#include "graph/adjacency_matrix.hpp"
-
41#include "graph/dot.hpp"
-
42#include "graph/flow.hpp"
-
43#include "locator/locator.hpp"
-
44#include "meta/adl_pointer.hpp"
-
45#include "meta/container.hpp"
-
46#include "meta/context.hpp"
-
47#include "meta/factory.hpp"
-
48#include "meta/meta.hpp"
-
49#include "meta/node.hpp"
-
50#include "meta/pointer.hpp"
-
51#include "meta/policy.hpp"
-
52#include "meta/range.hpp"
-
53#include "meta/resolve.hpp"
-
54#include "meta/template.hpp"
-
55#include "meta/type_traits.hpp"
-
56#include "meta/utility.hpp"
-
57#include "poly/poly.hpp"
-
58#include "process/process.hpp"
-
59#include "process/scheduler.hpp"
-
60#include "resource/cache.hpp"
-
61#include "resource/loader.hpp"
-
62#include "resource/resource.hpp"
-
63#include "signal/delegate.hpp"
-
64#include "signal/dispatcher.hpp"
-
65#include "signal/emitter.hpp"
-
66#include "signal/sigh.hpp"
-
67// IWYU pragma: end_exports
+
1
+
2namespace entt {}
+
3
+
4// IWYU pragma: begin_exports
+
5#include "config/config.h"
+
6#include "config/macro.h"
+
7#include "config/version.h"
+
8#include "container/dense_map.hpp"
+
9#include "container/dense_set.hpp"
+
10#include "container/table.hpp"
+
11#include "core/algorithm.hpp"
+
12#include "core/any.hpp"
+
13#include "core/attribute.h"
+
14#include "core/bit.hpp"
+
15#include "core/compressed_pair.hpp"
+
16#include "core/enum.hpp"
+
17#include "core/family.hpp"
+
18#include "core/hashed_string.hpp"
+
19#include "core/ident.hpp"
+
20#include "core/iterator.hpp"
+
21#include "core/memory.hpp"
+
22#include "core/monostate.hpp"
+
23#include "core/ranges.hpp"
+
24#include "core/tuple.hpp"
+
25#include "core/type_info.hpp"
+
26#include "core/type_traits.hpp"
+
27#include "core/utility.hpp"
+
28#include "entity/component.hpp"
+
29#include "entity/entity.hpp"
+
30#include "entity/group.hpp"
+
31#include "entity/handle.hpp"
+
32#include "entity/helper.hpp"
+
33#include "entity/mixin.hpp"
+
34#include "entity/organizer.hpp"
+
35#include "entity/ranges.hpp"
+
36#include "entity/registry.hpp"
+
37#include "entity/runtime_view.hpp"
+
38#include "entity/snapshot.hpp"
+
39#include "entity/sparse_set.hpp"
+
40#include "entity/storage.hpp"
+
41#include "entity/view.hpp"
+
42#include "graph/adjacency_matrix.hpp"
+
43#include "graph/dot.hpp"
+
44#include "graph/flow.hpp"
+
45#include "locator/locator.hpp"
+
46#include "meta/adl_pointer.hpp"
+
47#include "meta/container.hpp"
+
48#include "meta/context.hpp"
+
49#include "meta/factory.hpp"
+
50#include "meta/meta.hpp"
+
51#include "meta/node.hpp"
+
52#include "meta/pointer.hpp"
+
53#include "meta/policy.hpp"
+
54#include "meta/range.hpp"
+
55#include "meta/resolve.hpp"
+
56#include "meta/template.hpp"
+
57#include "meta/type_traits.hpp"
+
58#include "meta/utility.hpp"
+
59#include "poly/poly.hpp"
+
60#include "process/process.hpp"
+
61#include "process/scheduler.hpp"
+
62#include "resource/cache.hpp"
+
63#include "resource/loader.hpp"
+
64#include "resource/resource.hpp"
+
65#include "signal/delegate.hpp"
+
66#include "signal/dispatcher.hpp"
+
67#include "signal/emitter.hpp"
+
68#include "signal/sigh.hpp"
+
69// IWYU pragma: end_exports
+
EnTT default namespace.
Definition dense_map.hpp:22
+
diff --git a/enum_8hpp_source.html b/enum_8hpp_source.html index 936a28701..e1c3e1ef8 100644 --- a/enum_8hpp_source.html +++ b/enum_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/enum.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
enum.hpp
@@ -89,60 +97,60 @@ $(function() { codefold.init(0); });
4#include <type_traits>
5
6namespace entt {
-
7
+
7
12template<typename Type, typename = void>
13struct enum_as_bitmask: std::false_type {};
-
14
+
14
16template<typename Type>
-
17struct enum_as_bitmask<Type, std::void_t<decltype(Type::_entt_enum_as_bitmask)>>: std::is_enum<Type> {};
-
18
+
17struct enum_as_bitmask<Type, std::void_t<decltype(Type::_entt_enum_as_bitmask)>>: std::is_enum<Type> {};
+
18
23template<typename Type>
25
26} // namespace entt
-
27
+
27
36template<typename Type>
37[[nodiscard]] constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type>
38operator|(const Type lhs, const Type rhs) noexcept {
39 return static_cast<Type>(static_cast<std::underlying_type_t<Type>>(lhs) | static_cast<std::underlying_type_t<Type>>(rhs));
40}
-
41
+
41
43template<typename Type>
44[[nodiscard]] constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type>
45operator&(const Type lhs, const Type rhs) noexcept {
46 return static_cast<Type>(static_cast<std::underlying_type_t<Type>>(lhs) & static_cast<std::underlying_type_t<Type>>(rhs));
47}
-
48
+
48
50template<typename Type>
51[[nodiscard]] constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type>
52operator^(const Type lhs, const Type rhs) noexcept {
53 return static_cast<Type>(static_cast<std::underlying_type_t<Type>>(lhs) ^ static_cast<std::underlying_type_t<Type>>(rhs));
54}
-
55
+
55
63template<typename Type>
64[[nodiscard]] constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type>
65operator~(const Type value) noexcept {
66 return static_cast<Type>(~static_cast<std::underlying_type_t<Type>>(value));
67}
-
68
+
68
70template<typename Type>
71[[nodiscard]] constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, bool>
72operator!(const Type value) noexcept {
73 return !static_cast<std::underlying_type_t<Type>>(value);
74}
-
75
+
75
77template<typename Type>
78constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type &>
79operator|=(Type &lhs, const Type rhs) noexcept {
80 return (lhs = (lhs | rhs));
81}
-
82
+
82
84template<typename Type>
85constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type &>
86operator&=(Type &lhs, const Type rhs) noexcept {
87 return (lhs = (lhs & rhs));
88}
-
89
+
89
91template<typename Type>
92constexpr std::enable_if_t<entt::enum_as_bitmask_v<Type>, Type &>
93operator^=(Type &lhs, const Type rhs) noexcept {
@@ -151,13 +159,13 @@ $(function() { codefold.init(0); });
96
97#endif
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
constexpr bool enum_as_bitmask_v
Helper variable template.
Definition enum.hpp:24
Enable bitmask support for enum classes.
Definition enum.hpp:13
+
diff --git a/factory_8hpp_source.html b/factory_8hpp_source.html index 4671ce0a6..4c21fb5c8 100644 --- a/factory_8hpp_source.html +++ b/factory_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/factory.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
factory.hpp
@@ -108,7 +116,7 @@ $(function() { codefold.init(0); });
23#include "utility.hpp"
24
25namespace entt {
-
26
+
26
28namespace internal {
29
30class basic_meta_factory {
@@ -176,418 +184,393 @@ $(function() { codefold.init(0); });
92
93 if(auto *member = find_member<&meta_func_node::id>(details->func, node.id); member == nullptr) {
94 details->func.emplace_back(std::move(node));
-
95 } else if(auto *overload = find_overload(member, node.invoke); overload == nullptr) {
+
95 } else if(auto *overload = find_overload(member, node.invoke); overload == nullptr) {
96 while(member->next != nullptr) { member = member->next.get(); }
97 member->next = std::make_shared<meta_func_node>(std::move(node));
98 }
99 }
100
-
101 void prop(meta_prop_node node) {
-
102 std::vector<meta_prop_node> *container = nullptr;
-
103
-
104 if(bucket == parent) {
-
105 container = &details->prop;
-
106 } else if(invoke == nullptr) {
-
107 container = &find_member_or_assert()->prop;
-
108 } else {
-
109 container = &find_overload_or_assert()->prop;
-
110 }
-
111
-
112 auto *member = find_member<&meta_prop_node::id>(*container, node.id);
-
113 (member != nullptr) ? (*member = std::move(node)) : container->emplace_back(std::move(node));
-
114 }
-
115
-
116 void traits(const meta_traits value) {
-
117 if(bucket == parent) {
-
118 meta_context::from(*ctx).value[bucket].traits |= value;
-
119 } else if(invoke == nullptr) {
-
120 find_member_or_assert()->traits |= value;
-
121 } else {
-
122 find_overload_or_assert()->traits |= value;
-
123 }
-
124 }
-
125
-
126 void custom(meta_custom_node node) {
-
127 if(bucket == parent) {
-
128 meta_context::from(*ctx).value[bucket].custom = std::move(node);
-
129 } else if(invoke == nullptr) {
-
130 find_member_or_assert()->custom = std::move(node);
-
131 } else {
-
132 find_overload_or_assert()->custom = std::move(node);
-
133 }
-
134 }
-
135
-
136public:
-
137 basic_meta_factory(const id_type id, meta_ctx &area)
-
138 : ctx{&area},
-
139 parent{id},
-
140 bucket{id} {
-
141 auto &&elem = meta_context::from(*ctx).value[parent];
-
142
-
143 if(!elem.details) {
-
144 elem.details = std::make_shared<meta_type_descriptor>();
-
145 }
-
146
-
147 details = elem.details.get();
-
148 }
-
149
-
150private:
-
151 meta_ctx *ctx{};
-
152 id_type parent{};
-
153 id_type bucket{};
-
154 invoke_type *invoke{};
-
155 meta_type_descriptor *details{};
-
156};
-
157
-
158} // namespace internal
-
165template<typename Type>
-
-
166class meta_factory: private internal::basic_meta_factory {
-
167 using base_type = internal::basic_meta_factory;
-
168
-
169 template<typename Setter, auto Getter, typename Policy, std::size_t... Index>
-
170 void data(const id_type id, std::index_sequence<Index...>) noexcept {
-
171 using data_type = std::invoke_result_t<decltype(Getter), Type &>;
-
172 using args_type = type_list<typename meta_function_helper_t<Type, decltype(value_list_element_v<Index, Setter>)>::args_type...>;
-
173 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
-
174
-
175 base_type::data(
-
176 internal::meta_data_node{
-
177 id,
-
178 /* this is never static */
-
179 (std::is_member_object_pointer_v<decltype(value_list_element_v<Index, Setter>)> && ... && std::is_const_v<std::remove_reference_t<data_type>>) ? internal::meta_traits::is_const : internal::meta_traits::is_none,
-
180 Setter::size,
-
181 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
- -
183 +[](meta_handle instance, meta_any value) { return (meta_setter<Type, value_list_element_v<Index, Setter>>(*instance.operator->(), value.as_ref()) || ...); },
- -
185 }
-
186
-
187public:
+
101 void traits(const meta_traits value) {
+
102 if(bucket == parent) {
+
103 meta_context::from(*ctx).value[bucket].traits |= value;
+
104 } else if(invoke == nullptr) {
+
105 find_member_or_assert()->traits |= value;
+
106 } else {
+
107 find_overload_or_assert()->traits |= value;
+
108 }
+
109 }
+
110
+
111 void custom(meta_custom_node node) {
+
112 if(bucket == parent) {
+
113 meta_context::from(*ctx).value[bucket].custom = std::move(node);
+
114 } else if(invoke == nullptr) {
+
115 find_member_or_assert()->custom = std::move(node);
+
116 } else {
+
117 find_overload_or_assert()->custom = std::move(node);
+
118 }
+
119 }
+
120
+
121public:
+
122 basic_meta_factory(meta_ctx &area, meta_type_node node)
+
123 : ctx{&area},
+
124 parent{node.info->hash()},
+
125 bucket{parent},
+
126 details{node.details.get()} {
+
127 if(details == nullptr) {
+
128 node.details = std::make_shared<meta_type_descriptor>();
+
129 meta_context::from(*ctx).value[parent] = node;
+
130 details = node.details.get();
+
131 }
+
132 }
+
133
+
134private:
+
135 meta_ctx *ctx{};
+
136 id_type parent{};
+
137 id_type bucket{};
+
138 invoke_type *invoke{};
+
139 meta_type_descriptor *details{};
+
140};
+
141
+
142} // namespace internal
+
144
+
149template<typename Type>
+
+
150class meta_factory: private internal::basic_meta_factory {
+
151 using base_type = internal::basic_meta_factory;
+
152
+
153 template<typename Setter, auto Getter, typename Policy, std::size_t... Index>
+
154 [[deprecated("use variant types or conversion support")]]
+
155 void data(const id_type id, std::index_sequence<Index...>) noexcept {
+
156 using data_type = std::invoke_result_t<decltype(Getter), Type &>;
+
157 using args_type = type_list<typename meta_function_helper_t<Type, decltype(value_list_element_v<Index, Setter>)>::args_type...>;
+
158 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
+
159
+
160 base_type::data(
+
161 internal::meta_data_node{
+
162 id,
+
163 /* this is never static */
+
164 (std::is_member_object_pointer_v<decltype(value_list_element_v<Index, Setter>)> && ... && std::is_const_v<std::remove_reference_t<data_type>>) ? internal::meta_traits::is_const : internal::meta_traits::is_none,
+
165 Setter::size,
+
166 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
+
167 &meta_arg<type_list<type_list_element_t<static_cast<std::size_t>(type_list_element_t<Index, args_type>::size != 1u), type_list_element_t<Index, args_type>>...>>,
+
168 +[](meta_handle instance, meta_any value) { return (meta_setter<Type, value_list_element_v<Index, Setter>>(*instance.operator->(), value.as_ref()) || ...); },
+ +
170 }
+
171
+
172public:
+ +
176
+
+
181 meta_factory(meta_ctx &area) noexcept
+
182 : internal::basic_meta_factory{area, internal::resolve<Type>(internal::meta_context::from(area))} {}
+
+
183
- -
190 : internal::basic_meta_factory{type_id<Type>(), locator<meta_ctx>::value_or()} {}
+
189 meta_factory type(const id_type id) noexcept {
+
190 base_type::type(id);
+
191 return *this;
+
192 }
-
191
-
- -
197 : internal::basic_meta_factory{type_id<Type>().hash(), area} {}
+
193
+
202 template<typename Base>
+
+
203 meta_factory base() noexcept {
+
204 static_assert(!std::is_same_v<Type, Base> && std::is_base_of_v<Base, Type>, "Invalid base type");
+
205 auto *const op = +[](const void *instance) noexcept { return static_cast<const void *>(static_cast<const Base *>(static_cast<const Type *>(instance))); };
+
206 base_type::insert_or_assign(internal::meta_base_node{type_id<Base>().hash(), &internal::resolve<Base>, op});
+
207 return *this;
+
208 }
-
198
-
-
204 meta_factory type(const id_type id) noexcept {
-
205 base_type::type(id);
-
206 return *this;
-
207 }
+
209
+
222 template<auto Candidate>
+
+
223 auto conv() noexcept {
+
224 using conv_type = std::remove_cv_t<std::remove_reference_t<std::invoke_result_t<decltype(Candidate), Type &>>>;
+
225 auto *const op = +[](const meta_ctx &area, const void *instance) { return forward_as_meta(area, std::invoke(Candidate, *static_cast<const Type *>(instance))); };
+
226 base_type::insert_or_assign(internal::meta_conv_node{type_id<conv_type>().hash(), op});
+
227 return *this;
+
228 }
-
208
-
217 template<typename Base>
-
- -
219 static_assert(!std::is_same_v<Type, Base> && std::is_base_of_v<Base, Type>, "Invalid base type");
-
220 auto *const op = +[](const void *instance) noexcept { return static_cast<const void *>(static_cast<const Base *>(static_cast<const Type *>(instance))); };
-
221 base_type::insert_or_assign(internal::meta_base_node{type_id<Base>().hash(), &internal::resolve<Base>, op});
-
222 return *this;
-
223 }
+
229
+
239 template<typename To>
+
+
240 meta_factory conv() noexcept {
+
241 using conv_type = std::remove_cv_t<std::remove_reference_t<To>>;
+
242 auto *const op = +[](const meta_ctx &area, const void *instance) { return forward_as_meta(area, static_cast<To>(*static_cast<const Type *>(instance))); };
+
243 base_type::insert_or_assign(internal::meta_conv_node{type_id<conv_type>().hash(), op});
+
244 return *this;
+
245 }
-
224
-
237 template<auto Candidate>
-
-
238 auto conv() noexcept {
-
239 using conv_type = std::remove_cv_t<std::remove_reference_t<std::invoke_result_t<decltype(Candidate), Type &>>>;
-
240 auto *const op = +[](const meta_ctx &area, const void *instance) { return forward_as_meta(area, std::invoke(Candidate, *static_cast<const Type *>(instance))); };
-
241 base_type::insert_or_assign(internal::meta_conv_node{type_id<conv_type>().hash(), op});
-
242 return *this;
-
243 }
+
246
+
260 template<auto Candidate, typename Policy = as_is_t>
+
+
261 meta_factory ctor() noexcept {
+
262 using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
+
263 static_assert(Policy::template value<typename descriptor::return_type>, "Invalid return type for the given policy");
+
264 static_assert(std::is_same_v<std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>, Type>, "The function doesn't return an object of the required type");
+
265 base_type::insert_or_assign(internal::meta_ctor_node{type_id<typename descriptor::args_type>().hash(), descriptor::args_type::size, &meta_arg<typename descriptor::args_type>, &meta_construct<Type, Candidate, Policy>});
+
266 return *this;
+
267 }
-
244
-
254 template<typename To>
-
- -
256 using conv_type = std::remove_cv_t<std::remove_reference_t<To>>;
-
257 auto *const op = +[](const meta_ctx &area, const void *instance) { return forward_as_meta(area, static_cast<To>(*static_cast<const Type *>(instance))); };
-
258 base_type::insert_or_assign(internal::meta_conv_node{type_id<conv_type>().hash(), op});
-
259 return *this;
-
260 }
+
268
+
279 template<typename... Args>
+
+
280 meta_factory ctor() noexcept {
+
281 // default constructor is already implicitly generated, no need for redundancy
+
282 if constexpr(sizeof...(Args) != 0u) {
+
283 using descriptor = meta_function_helper_t<Type, Type (*)(Args...)>;
+
284 base_type::insert_or_assign(internal::meta_ctor_node{type_id<typename descriptor::args_type>().hash(), descriptor::args_type::size, &meta_arg<typename descriptor::args_type>, &meta_construct<Type, Args...>});
+
285 }
+
286
+
287 return *this;
+
288 }
-
261
-
275 template<auto Candidate, typename Policy = as_is_t>
-
- -
277 using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
-
278 static_assert(Policy::template value<typename descriptor::return_type>, "Invalid return type for the given policy");
-
279 static_assert(std::is_same_v<std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>, Type>, "The function doesn't return an object of the required type");
-
280 base_type::insert_or_assign(internal::meta_ctor_node{type_id<typename descriptor::args_type>().hash(), descriptor::args_type::size, &meta_arg<typename descriptor::args_type>, &meta_construct<Type, Candidate, Policy>});
-
281 return *this;
-
282 }
+
289
+
308 template<auto Func>
+
+
309 meta_factory dtor() noexcept {
+
310 static_assert(std::is_invocable_v<decltype(Func), Type &>, "The function doesn't accept an object of the type provided");
+
311 auto *const op = +[](void *instance) { std::invoke(Func, *static_cast<Type *>(instance)); };
+
312 base_type::dtor(internal::meta_dtor_node{op});
+
313 return *this;
+
314 }
-
283
-
294 template<typename... Args>
-
- -
296 // default constructor is already implicitly generated, no need for redundancy
-
297 if constexpr(sizeof...(Args) != 0u) {
-
298 using descriptor = meta_function_helper_t<Type, Type (*)(Args...)>;
-
299 base_type::insert_or_assign(internal::meta_ctor_node{type_id<typename descriptor::args_type>().hash(), descriptor::args_type::size, &meta_arg<typename descriptor::args_type>, &meta_construct<Type, Args...>});
-
300 }
-
301
-
302 return *this;
-
303 }
+
315
+
329 template<auto Data, typename Policy = as_is_t>
+
+
330 meta_factory data(const id_type id) noexcept {
+
331 if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
+
332 using data_type = std::invoke_result_t<decltype(Data), Type &>;
+
333 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
+
334
+
335 base_type::data(
+
336 internal::meta_data_node{
+
337 id,
+
338 /* this is never static */
+
339 std::is_const_v<std::remove_reference_t<data_type>> ? internal::meta_traits::is_const : internal::meta_traits::is_none,
+
340 1u,
+
341 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
+
342 &meta_arg<type_list<std::remove_cv_t<std::remove_reference_t<data_type>>>>,
+ + +
345 } else {
+
346 using data_type = std::remove_pointer_t<decltype(Data)>;
+
347
+
348 if constexpr(std::is_pointer_v<decltype(Data)>) {
+
349 static_assert(Policy::template value<decltype(*Data)>, "Invalid return type for the given policy");
+
350 } else {
+
351 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
+
352 }
+
353
+
354 base_type::data(
+
355 internal::meta_data_node{
+
356 id,
+
357 ((!std::is_pointer_v<decltype(Data)> || std::is_const_v<data_type>) ? internal::meta_traits::is_const : internal::meta_traits::is_none) | internal::meta_traits::is_static,
+
358 1u,
+
359 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
+
360 &meta_arg<type_list<std::remove_cv_t<std::remove_reference_t<data_type>>>>,
+ + +
363 }
+
364
+
365 return *this;
+
366 }
-
304
-
323 template<auto Func>
-
- -
325 static_assert(std::is_invocable_v<decltype(Func), Type &>, "The function doesn't accept an object of the type provided");
-
326 auto *const op = +[](void *instance) { std::invoke(Func, *static_cast<Type *>(instance)); };
-
327 base_type::dtor(internal::meta_dtor_node{op});
-
328 return *this;
-
329 }
+
367
+
388 template<auto Setter, auto Getter, typename Policy = as_is_t>
+
+
389 meta_factory data(const id_type id) noexcept {
+
390 using descriptor = meta_function_helper_t<Type, decltype(Getter)>;
+
391 static_assert(Policy::template value<typename descriptor::return_type>, "Invalid return type for the given policy");
+
392
+
393 if constexpr(std::is_same_v<decltype(Setter), std::nullptr_t>) {
+
394 base_type::data(
+
395 internal::meta_data_node{
+
396 id,
+
397 /* this is never static */
+
398 internal::meta_traits::is_const,
+
399 0u,
+
400 &internal::resolve<std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>,
+
401 &meta_arg<type_list<>>,
+ + +
404 } else {
+
405 using args_type = typename meta_function_helper_t<Type, decltype(Setter)>::args_type;
+
406
+
407 base_type::data(
+
408 internal::meta_data_node{
+
409 id,
+
410 /* this is never static nor const */
+
411 internal::meta_traits::is_none,
+
412 1u,
+
413 &internal::resolve<std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>,
+
414 &meta_arg<type_list<type_list_element_t<static_cast<std::size_t>(args_type::size != 1u), args_type>>>,
+ + +
417 }
+
418
+
419 return *this;
+
420 }
-
330
-
344 template<auto Data, typename Policy = as_is_t>
-
-
345 meta_factory data(const id_type id) noexcept {
-
346 if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
-
347 using data_type = std::invoke_result_t<decltype(Data), Type &>;
-
348 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
-
349
-
350 base_type::data(
-
351 internal::meta_data_node{
-
352 id,
-
353 /* this is never static */
-
354 std::is_const_v<std::remove_reference_t<data_type>> ? internal::meta_traits::is_const : internal::meta_traits::is_none,
-
355 1u,
-
356 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
- - - -
360 } else {
-
361 using data_type = std::remove_pointer_t<decltype(Data)>;
-
362
-
363 if constexpr(std::is_pointer_v<decltype(Data)>) {
-
364 static_assert(Policy::template value<decltype(*Data)>, "Invalid return type for the given policy");
-
365 } else {
-
366 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
-
367 }
-
368
-
369 base_type::data(
-
370 internal::meta_data_node{
-
371 id,
-
372 ((std::is_same_v<Type, std::remove_cv_t<std::remove_reference_t<data_type>>> || std::is_const_v<std::remove_reference_t<data_type>>) ? internal::meta_traits::is_const : internal::meta_traits::is_none) | internal::meta_traits::is_static,
-
373 1u,
-
374 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
-
375 &meta_arg<type_list<std::remove_cv_t<std::remove_reference_t<data_type>>>>,
- - -
378 }
-
379
-
380 return *this;
-
381 }
+
421
+
439 template<typename Setter, auto Getter, typename Policy = as_is_t>
+
440 [[deprecated("use variant types or conversion support")]]
+
+
441 meta_factory data(const id_type id) noexcept {
+
442 data<Setter, Getter, Policy>(id, std::make_index_sequence<Setter::size>{});
+
443 return *this;
+
444 }
-
382
-
403 template<auto Setter, auto Getter, typename Policy = as_is_t>
-
-
404 meta_factory data(const id_type id) noexcept {
-
405 using data_type = std::invoke_result_t<decltype(Getter), Type &>;
-
406 static_assert(Policy::template value<data_type>, "Invalid return type for the given policy");
-
407
-
408 if constexpr(std::is_same_v<decltype(Setter), std::nullptr_t>) {
-
409 base_type::data(
-
410 internal::meta_data_node{
-
411 id,
-
412 /* this is never static */
-
413 internal::meta_traits::is_const,
-
414 0u,
-
415 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
- - - -
419 } else {
-
420 using args_type = typename meta_function_helper_t<Type, decltype(Setter)>::args_type;
-
421
-
422 base_type::data(
-
423 internal::meta_data_node{
-
424 id,
-
425 /* this is never static nor const */
-
426 internal::meta_traits::is_none,
-
427 1u,
-
428 &internal::resolve<std::remove_cv_t<std::remove_reference_t<data_type>>>,
- - - -
432 }
-
433
-
434 return *this;
-
435 }
+
445
+
459 template<auto Candidate, typename Policy = as_is_t>
+
+
460 meta_factory func(const id_type id) noexcept {
+
461 using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
+
462 static_assert(Policy::template value<typename descriptor::return_type>, "Invalid return type for the given policy");
+
463
+
464 base_type::func(
+
465 internal::meta_func_node{
+
466 id,
+
467 (descriptor::is_const ? internal::meta_traits::is_const : internal::meta_traits::is_none) | (descriptor::is_static ? internal::meta_traits::is_static : internal::meta_traits::is_none),
+
468 descriptor::args_type::size,
+
469 &internal::resolve<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>>,
+
470 &meta_arg<typename descriptor::args_type>,
+ +
472
+
473 return *this;
+
474 }
-
436
-
454 template<typename Setter, auto Getter, typename Policy = as_is_t>
-
-
455 meta_factory data(const id_type id) noexcept {
-
456 data<Setter, Getter, Policy>(id, std::make_index_sequence<Setter::size>{});
-
457 return *this;
-
458 }
+
475
+
485 template<typename Value>
+
+
486 meta_factory traits(const Value value) {
+
487 static_assert(std::is_enum_v<Value>, "Invalid enum type");
+
488 base_type::traits(internal::user_to_meta_traits(value));
+
489 return *this;
+
490 }
-
459
-
473 template<auto Candidate, typename Policy = as_is_t>
-
-
474 meta_factory func(const id_type id) noexcept {
-
475 using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
-
476 static_assert(Policy::template value<typename descriptor::return_type>, "Invalid return type for the given policy");
-
477
-
478 base_type::func(
-
479 internal::meta_func_node{
-
480 id,
-
481 (descriptor::is_const ? internal::meta_traits::is_const : internal::meta_traits::is_none) | (descriptor::is_static ? internal::meta_traits::is_static : internal::meta_traits::is_none),
-
482 descriptor::args_type::size,
-
483 &internal::resolve<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>>,
- - -
486
-
487 return *this;
-
488 }
+
491
+
499 template<typename Value, typename... Args>
+
+
500 meta_factory custom(Args &&...args) {
+
501 base_type::custom(internal::meta_custom_node{type_id<Value>().hash(), std::make_shared<Value>(std::forward<Args>(args)...)});
+
502 return *this;
+
503 }
-
489
-
500 template<typename... Value>
-
-
501 [[deprecated("use ::custom() instead")]] meta_factory prop(id_type id, [[maybe_unused]] Value &&...value) {
-
502 if constexpr(sizeof...(Value) == 0u) {
-
503 base_type::prop(internal::meta_prop_node{id, &internal::resolve<void>});
-
504 } else {
-
505 base_type::prop(internal::meta_prop_node{id, &internal::resolve<std::decay_t<Value>>..., std::make_shared<std::decay_t<Value>>(std::forward<Value>(value))...});
-
506 }
-
507
-
508 return *this;
-
509 }
+
504};
-
510
-
520 template<typename Value>
-
-
521 meta_factory traits(const Value value) {
-
522 static_assert(std::is_enum_v<Value>, "Invalid enum type");
-
523 base_type::traits(internal::user_to_meta_traits(value));
-
524 return *this;
-
525 }
+
505
+
518template<typename Type>
+
+
519[[nodiscard]] [[deprecated("use meta_factory directly instead")]] auto meta(meta_ctx &ctx) noexcept {
+
520 return meta_factory<Type>{ctx};
+
521}
-
526
-
534 template<typename Value, typename... Args>
+
522
+
534template<typename Type>
- -
536 base_type::custom(internal::meta_custom_node{type_id<Value>().hash(), std::make_shared<Value>(std::forward<Args>(args)...)});
-
537 return *this;
-
538 }
+
535[[nodiscard]] [[deprecated("use meta_factory directly instead")]] auto meta() noexcept {
+ +
537}
-
539};
+
538
+
+
551inline void meta_reset(meta_ctx &ctx, const id_type id) noexcept {
+
552 auto &&context = internal::meta_context::from(ctx);
+
553
+
554 for(auto it = context.value.begin(); it != context.value.end();) {
+
555 if(it->second.id == id) {
+
556 it = context.value.erase(it);
+
557 } else {
+
558 ++it;
+
559 }
+
560 }
+
561}
-
540
-
553template<typename Type>
-
-
554[[nodiscard]] auto meta(meta_ctx &ctx) noexcept {
-
555 auto &&context = internal::meta_context::from(ctx);
-
556 // make sure the type exists in the context before returning a factory
-
557 context.value.try_emplace(type_id<Type>().hash(), internal::resolve<Type>(context));
-
558 return meta_factory<Type>{ctx};
-
559}
+
562
+
+
574inline void meta_reset(const id_type id) noexcept {
+ +
576}
-
560
-
572template<typename Type>
-
- - -
575}
+
577
+
586template<typename Type>
+
+
587void meta_reset(meta_ctx &ctx) noexcept {
+
588 internal::meta_context::from(ctx).value.erase(type_id<Type>().hash());
+
589}
-
576
-
-
589inline void meta_reset(meta_ctx &ctx, const id_type id) noexcept {
-
590 auto &&context = internal::meta_context::from(ctx);
-
591
-
592 for(auto it = context.value.begin(); it != context.value.end();) {
-
593 if(it->second.id == id) {
-
594 it = context.value.erase(it);
-
595 } else {
-
596 ++it;
-
597 }
-
598 }
-
599}
+
590
+
598template<typename Type>
+
+
599void meta_reset() noexcept {
+ +
601}
-
600
-
-
612inline void meta_reset(const id_type id) noexcept {
- -
614}
+
602
+
+
610inline void meta_reset(meta_ctx &ctx) noexcept {
+
611 internal::meta_context::from(ctx).value.clear();
+
612}
-
615
-
624template<typename Type>
-
-
625void meta_reset(meta_ctx &ctx) noexcept {
-
626 internal::meta_context::from(ctx).value.erase(type_id<Type>().hash());
-
627}
+
613
+
+
619inline void meta_reset() noexcept {
+ +
621}
-
628
-
636template<typename Type>
- -
640
-
-
648inline void meta_reset(meta_ctx &ctx) noexcept {
-
649 internal::meta_context::from(ctx).value.clear();
-
650}
-
-
651
-
-
657inline void meta_reset() noexcept {
- -
659}
-
-
660
-
661} // namespace entt
-
662
-
663#endif
-
Service locator, nothing more.
Definition locator.hpp:27
+
622
+
623} // namespace entt
+
624
+
625#endif
static Service & value_or(Args &&...args)
Returns a service if available or sets it from a fallback type.
Definition locator.hpp:88
-
Opaque wrapper for values of any type.
Definition meta.hpp:179
-
meta_any as_ref() noexcept
Aliasing constructor.
Definition meta.hpp:598
+
Opaque wrapper for values of any type.
Definition meta.hpp:166
+
meta_any as_ref() noexcept
Aliasing constructor.
Definition meta.hpp:624
Opaque meta context type.
Definition context.hpp:34
-
Meta factory to be used for reflection purposes.
Definition factory.hpp:166
-
meta_factory base() noexcept
Assigns a meta base to a meta type.
Definition factory.hpp:218
-
meta_factory custom(Args &&...args)
Sets user defined data that will never be used by the library.
Definition factory.hpp:535
-
meta_factory ctor() noexcept
Assigns a meta constructor to a meta type.
Definition factory.hpp:295
-
auto conv() noexcept
Assigns a meta conversion function to a meta type.
Definition factory.hpp:238
-
meta_factory prop(id_type id, Value &&...value)
Assigns a property to the last created meta object.
Definition factory.hpp:501
-
meta_factory ctor() noexcept
Assigns a meta constructor to a meta type.
Definition factory.hpp:276
-
meta_factory() noexcept
Default constructor.
Definition factory.hpp:189
-
meta_factory dtor() noexcept
Assigns a meta destructor to a meta type.
Definition factory.hpp:324
-
meta_factory data(const id_type id) noexcept
Assigns a meta data to a meta type.
Definition factory.hpp:345
-
meta_factory(meta_ctx &area) noexcept
Context aware constructor.
Definition factory.hpp:196
-
meta_factory conv() noexcept
Assigns a meta conversion function to a meta type.
Definition factory.hpp:255
-
meta_factory data(const id_type id) noexcept
Assigns a meta data to a meta type by means of its setter and getter.
Definition factory.hpp:404
-
meta_factory func(const id_type id) noexcept
Assigns a meta function to a meta type.
Definition factory.hpp:474
-
meta_factory type(const id_type id) noexcept
Assigns a custom unique identifier to a meta type.
Definition factory.hpp:204
-
meta_factory traits(const Value value)
Sets traits on the last created meta object.
Definition factory.hpp:521
+
Meta factory to be used for reflection purposes.
Definition factory.hpp:150
+
meta_factory base() noexcept
Assigns a meta base to a meta type.
Definition factory.hpp:203
+
meta_factory custom(Args &&...args)
Sets user defined data that will never be used by the library.
Definition factory.hpp:500
+
meta_factory ctor() noexcept
Assigns a meta constructor to a meta type.
Definition factory.hpp:280
+
auto conv() noexcept
Assigns a meta conversion function to a meta type.
Definition factory.hpp:223
+
meta_factory ctor() noexcept
Assigns a meta constructor to a meta type.
Definition factory.hpp:261
+
meta_factory() noexcept
Default constructor.
Definition factory.hpp:174
+
meta_factory dtor() noexcept
Assigns a meta destructor to a meta type.
Definition factory.hpp:309
+
meta_factory data(const id_type id) noexcept
Assigns a meta data to a meta type.
Definition factory.hpp:330
+
meta_factory(meta_ctx &area) noexcept
Context aware constructor.
Definition factory.hpp:181
+
meta_factory conv() noexcept
Assigns a meta conversion function to a meta type.
Definition factory.hpp:240
+
meta_factory data(const id_type id) noexcept
Assigns a meta data to a meta type by means of its setter and getter.
Definition factory.hpp:389
+
meta_factory func(const id_type id) noexcept
Assigns a meta function to a meta type.
Definition factory.hpp:460
+
meta_factory type(const id_type id) noexcept
Assigns a custom unique identifier to a meta type.
Definition factory.hpp:189
+
meta_factory traits(const Value value)
Sets traits on the last created meta object.
Definition factory.hpp:486
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
Helper type.
Definition utility.hpp:152
-
meta_any meta_construct(const meta_ctx &ctx, meta_any *const args)
Tries to construct an instance given a list of erased parameters.
Definition utility.hpp:450
-
auto meta() noexcept
Utility function to use for reflection.
Definition factory.hpp:573
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
-
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
-
void meta_reset() noexcept
Resets a type and all its parts.
Definition factory.hpp:637
-
meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
Forwards its argument and avoids copies for lvalue references.
Definition meta.hpp:630
-
bool meta_setter(meta_handle instance, meta_any value)
Sets the value of a given variable.
Definition utility.hpp:226
+
std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_getter(meta_handle instance)
Gets the value of a given variable.
Definition utility.hpp:317
+
constexpr auto value_list_element_v
Helper type.
+
meta_any meta_construct(const meta_ctx &ctx, meta_any *const args)
Tries to construct an instance given a list of erased parameters.
Definition utility.hpp:433
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
+
auto meta() noexcept
Utility function to use for reflection.
Definition factory.hpp:535
+
std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)
Tries to invoke an object given a list of erased parameters.
Definition utility.hpp:370
+
constexpr get_t< Type... > get
Variable template for lists of observed elements.
Definition fwd.hpp:167
+
typename type_list_element< Index, List >::type type_list_element_t
Helper type.
+
void meta_reset() noexcept
Resets a type and all its parts.
Definition factory.hpp:599
+
meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
Forwards its argument and avoids copies for lvalue references.
Definition meta.hpp:672
+
bool meta_setter(meta_handle instance, meta_any value)
Sets the value of a given variable.
Definition utility.hpp:276
void invoke(Registry &reg, const typename Registry::entity_type entt)
Helper to create a listener that directly invokes a member function.
Definition helper.hpp:108
constexpr auto overload(Type Class::*member) noexcept
Constant utility to disambiguate overloaded members of a class.
Definition utility.hpp:34
meta_type resolve(const meta_ctx &ctx) noexcept
Returns the meta type associated with a given type.
Definition resolve.hpp:21
-
@ ref
Aliasing mode, the object points to a non-const element.
-
Opaque pointers to instances of any type.
Definition meta.hpp:651
-
A class to use to push around lists of types, nothing more.
+
const type_info & type_id() noexcept
Returns the type info object associated to a given type.
+
@ ref
Aliasing mode, the object points to a non-const element.
Definition fwd.hpp:19
+
Opaque pointers to instances of any type.
Definition meta.hpp:688
+
constexpr id_type hash() const noexcept
Type hash.
+
A class to use to push around lists of types, nothing more.
+
diff --git a/family_8hpp_source.html b/family_8hpp_source.html index 4b2584b9c..781c15fbb 100644 --- a/family_8hpp_source.html +++ b/family_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/family.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
family.hpp
@@ -90,19 +98,19 @@ $(function() { codefold.init(0); });
5#include "fwd.hpp"
6
7namespace entt {
-
8
+
8
16template<typename...>
17class family {
18 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
-
19 inline static ENTT_MAYBE_ATOMIC(id_type) identifier{};
+
19 inline static ENTT_MAYBE_ATOMIC(id_type) identifier{};
20
21public:
- -
24
+ +
24
26 template<typename... Type>
27 // at the time I'm writing, clang crashes during compilation if auto is used instead of family_type
-
28 inline static const value_type value = identifier++;
+
28 inline static const value_type value = identifier++;
29};
30
@@ -111,12 +119,14 @@ $(function() { codefold.init(0); });
33#endif
Dynamic identifier generator.
Definition family.hpp:17
id_type value_type
Unsigned integer type.
Definition family.hpp:23
+
static const value_type value
Statically generated unique identifier for the given type.
Definition family.hpp:28
EnTT default namespace.
Definition dense_map.hpp:22
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
+
diff --git a/files.html b/files.html index b6a7d2704..a7ff272a5 100644 --- a/files.html +++ b/files.html @@ -3,13 +3,15 @@ - + EnTT: File List + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,24 +33,35 @@
- + +
+
+
 handle.hpp  helper.hpp  mixin.hpp - observer.hpp - organizer.hpp - ranges.hpp - registry.hpp - runtime_view.hpp - snapshot.hpp - sparse_set.hpp - storage.hpp - view.hpp -  graph - adjacency_matrix.hpp - dot.hpp - flow.hpp - fwd.hpp -  locator - locator.hpp -  meta - adl_pointer.hpp - container.hpp - context.hpp - factory.hpp - fwd.hpp - meta.hpp - node.hpp - pointer.hpp - policy.hpp - range.hpp - resolve.hpp - template.hpp - type_traits.hpp - utility.hpp -  poly - fwd.hpp - poly.hpp -  process - fwd.hpp - process.hpp - scheduler.hpp -  resource - cache.hpp - fwd.hpp - loader.hpp - resource.hpp -  signal - delegate.hpp - dispatcher.hpp - emitter.hpp - fwd.hpp - sigh.hpp - entt.hpp - fwd.hpp + organizer.hpp + ranges.hpp + registry.hpp + runtime_view.hpp + snapshot.hpp + sparse_set.hpp + storage.hpp + view.hpp +  graph + adjacency_matrix.hpp + dot.hpp + flow.hpp + fwd.hpp +  locator + locator.hpp +  meta + adl_pointer.hpp + container.hpp + context.hpp + factory.hpp + fwd.hpp + meta.hpp + node.hpp + pointer.hpp + policy.hpp + range.hpp + resolve.hpp + template.hpp + type_traits.hpp + utility.hpp +  poly + fwd.hpp + poly.hpp +  process + fwd.hpp + process.hpp + scheduler.hpp +  resource + cache.hpp + fwd.hpp + loader.hpp + resource.hpp +  signal + delegate.hpp + dispatcher.hpp + emitter.hpp + fwd.hpp + sigh.hpp + entt.hpp + fwd.hpp
+
diff --git a/flow_8hpp_source.html b/flow_8hpp_source.html index e2936326b..16b1f06ad 100644 --- a/flow_8hpp_source.html +++ b/flow_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/graph/flow.hpp Source File + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,18 +33,23 @@
- + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
+
flow.hpp
@@ -105,90 +113,90 @@ $(function() { codefold.init(0); });
20#include "fwd.hpp"
21
22namespace entt {
-
23
+
23
28template<typename Allocator>
- +
30 using alloc_traits = std::allocator_traits<Allocator>;
31 static_assert(std::is_same_v<typename alloc_traits::value_type, id_type>, "Invalid value type");
- -
33 using ro_rw_container_type = std::vector<std::pair<std::size_t, bool>, typename alloc_traits::template rebind_alloc<std::pair<std::size_t, bool>>>;
- - +
32 using task_container_type = dense_set<id_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc<id_type>>;
+
33 using ro_rw_container_type = std::vector<std::pair<std::size_t, bool>, typename alloc_traits::template rebind_alloc<std::pair<std::size_t, bool>>>;
+
34 using deps_container_type = dense_map<id_type, ro_rw_container_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc<std::pair<const id_type, ro_rw_container_type>>>;
+
36
-
37 void emplace(const id_type res, const bool is_rw) {
-
38 ENTT_ASSERT(index.first() < vertices.size(), "Invalid node");
+
37 void emplace(const id_type res, const bool is_rw) {
+
38 ENTT_ASSERT(index.first() < vertices.size(), "Invalid node");
39
-
40 if(!deps.contains(res) && sync_on != vertices.size()) {
-
41 deps[res].emplace_back(sync_on, true);
+
40 if(!deps.contains(res) && sync_on != vertices.size()) {
+
41 deps[res].emplace_back(sync_on, true);
42 }
43
-
44 deps[res].emplace_back(index.first(), is_rw);
+
44 deps[res].emplace_back(index.first(), is_rw);
45 }
46
-
47 void setup_graph(adjacency_matrix_type &matrix) const {
-
48 for(const auto &elem: deps) {
-
49 const auto last = elem.second.cend();
-
50 auto it = elem.second.cbegin();
+
47 void setup_graph(adjacency_matrix_type &matrix) const {
+
48 for(const auto &elem: deps) {
+
49 const auto last = elem.second.cend();
+
50 auto it = elem.second.cbegin();
51
-
52 while(it != last) {
-
53 if(it->second) {
+
52 while(it != last) {
+
53 if(it->second) {
54 // rw item
-
55 if(auto curr = it++; it != last) {
-
56 if(it->second) {
-
57 matrix.insert(curr->first, it->first);
-
58 } else if(const auto next = std::find_if(it, last, [](const auto &value) { return value.second; }); next != last) {
-
59 for(; it != next; ++it) {
-
60 matrix.insert(curr->first, it->first);
-
61 matrix.insert(it->first, next->first);
+
55 if(auto curr = it++; it != last) {
+
56 if(it->second) {
+
57 matrix.insert(curr->first, it->first);
+
58 } else if(const auto next = std::find_if(it, last, [](const auto &value) { return value.second; }); next != last) {
+
59 for(; it != next; ++it) {
+
60 matrix.insert(curr->first, it->first);
+
61 matrix.insert(it->first, next->first);
62 }
63 } else {
-
64 for(; it != next; ++it) {
-
65 matrix.insert(curr->first, it->first);
+
64 for(; it != next; ++it) {
+
65 matrix.insert(curr->first, it->first);
66 }
67 }
68 }
69 } else {
70 // ro item (first iteration only)
-
71 if(const auto next = std::find_if(it, last, [](const auto &value) { return value.second; }); next != last) {
-
72 for(; it != next; ++it) {
-
73 matrix.insert(it->first, next->first);
+
71 if(const auto next = std::find_if(it, last, [](const auto &value) { return value.second; }); next != last) {
+
72 for(; it != next; ++it) {
+
73 matrix.insert(it->first, next->first);
74 }
75 } else {
-
76 it = last;
+
76 it = last;
77 }
78 }
79 }
80 }
81 }
82
-
83 void transitive_closure(adjacency_matrix_type &matrix) const {
+
83 void transitive_closure(adjacency_matrix_type &matrix) const {
84 const auto length = matrix.size();
85
-
86 for(std::size_t vk{}; vk < length; ++vk) {
-
87 for(std::size_t vi{}; vi < length; ++vi) {
-
88 for(std::size_t vj{}; vj < length; ++vj) {
-
89 if(matrix.contains(vi, vk) && matrix.contains(vk, vj)) {
-
90 matrix.insert(vi, vj);
+
86 for(std::size_t vk{}; vk < length; ++vk) {
+
87 for(std::size_t vi{}; vi < length; ++vi) {
+
88 for(std::size_t vj{}; vj < length; ++vj) {
+
89 if(matrix.contains(vi, vk) && matrix.contains(vk, vj)) {
+
90 matrix.insert(vi, vj);
91 }
92 }
93 }
94 }
95 }
96
-
97 void transitive_reduction(adjacency_matrix_type &matrix) const {
+
97 void transitive_reduction(adjacency_matrix_type &matrix) const {
98 const auto length = matrix.size();
99
100 for(std::size_t vert{}; vert < length; ++vert) {
101 matrix.erase(vert, vert);
102 }
103
-
104 for(std::size_t vj{}; vj < length; ++vj) {
-
105 for(std::size_t vi{}; vi < length; ++vi) {
-
106 if(matrix.contains(vi, vj)) {
-
107 for(std::size_t vk{}; vk < length; ++vk) {
-
108 if(matrix.contains(vj, vk)) {
-
109 matrix.erase(vi, vk);
+
104 for(std::size_t vj{}; vj < length; ++vj) {
+
105 for(std::size_t vi{}; vi < length; ++vi) {
+
106 if(matrix.contains(vi, vj)) {
+
107 for(std::size_t vk{}; vk < length; ++vk) {
+
108 if(matrix.contains(vj, vk)) {
+
109 matrix.erase(vi, vk);
110 }
111 }
112 }
@@ -199,130 +207,130 @@ $(function() { codefold.init(0); });
117public:
119 using allocator_type = Allocator;
121 using size_type = std::size_t;
- - -
126
+ +
125 using graph_type = adjacency_matrix_type;
+
126
-
130
+
130
- -
136 : index{0u, allocator},
-
137 vertices{allocator},
-
138 deps{allocator} {}
+
135 explicit basic_flow(const allocator_type &allocator)
+
136 : index{0u, allocator},
+
137 vertices{allocator},
+
138 deps{allocator} {}
-
139
-
141 basic_flow(const basic_flow &) = default;
-
142
+
139
+
141 basic_flow(const basic_flow &) = default;
+
142
- -
149 : index{other.index.first(), allocator},
-
150 vertices{other.vertices, allocator},
-
151 deps{other.deps, allocator},
-
152 sync_on{other.sync_on} {}
+
148 basic_flow(const basic_flow &other, const allocator_type &allocator)
+
149 : index{other.index.first(), allocator},
+
150 vertices{other.vertices, allocator},
+
151 deps{other.deps, allocator},
+
152 sync_on{other.sync_on} {}
-
153
- -
156
+
153
+
155 basic_flow(basic_flow &&) noexcept = default;
+
156
- -
163 : index{other.index.first(), allocator},
-
164 vertices{std::move(other.vertices), allocator},
-
165 deps{std::move(other.deps), allocator},
-
166 sync_on{other.sync_on} {}
+
162 basic_flow(basic_flow &&other, const allocator_type &allocator)
+
163 : index{other.index.first(), allocator},
+
164 vertices{std::move(other.vertices), allocator},
+
165 deps{std::move(other.deps), allocator},
+
166 sync_on{other.sync_on} {}
-
167
+
167
169 ~basic_flow() = default;
-
170
-
175 basic_flow &operator=(const basic_flow &) = default;
-
176
- -
182
+
170
+
175 basic_flow &operator=(const basic_flow &) = default;
+
176
+
181 basic_flow &operator=(basic_flow &&) noexcept = default;
+
182
- -
188 return allocator_type{index.second()};
-
189 }
+
187 void swap(basic_flow &other) noexcept {
+
188 using std::swap;
+
189 std::swap(index, other.index);
+
190 std::swap(vertices, other.vertices);
+
191 std::swap(deps, other.deps);
+
192 std::swap(sync_on, other.sync_on);
+
193 }
-
190
-
- -
197 return vertices.cbegin()[pos];
-
198 }
+
194
+
+
199 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
+
200 return allocator_type{index.second()};
+
201 }
-
199
-
- -
202 index.first() = {};
-
203 vertices.clear();
-
204 deps.clear();
-
205 sync_on = {};
-
206 }
+
202
+
+
208 [[nodiscard]] id_type operator[](const size_type pos) const {
+
209 return vertices.cbegin()[static_cast<typename task_container_type::difference_type>(pos)];
+
210 }
-
207
-
-
212 void swap(basic_flow &other) noexcept {
-
213 using std::swap;
-
214 std::swap(index, other.index);
-
215 std::swap(vertices, other.vertices);
-
216 std::swap(deps, other.deps);
-
217 std::swap(sync_on, other.sync_on);
+
211
+
+
213 void clear() noexcept {
+
214 index.first() = {};
+
215 vertices.clear();
+
216 deps.clear();
+
217 sync_on = {};
218 }
-
219
+
219
- -
225 return vertices.empty();
+
224 [[nodiscard]] bool empty() const noexcept {
+
225 return vertices.empty();
226 }
-
227
+
227
- -
233 return vertices.size();
+
232 [[nodiscard]] size_type size() const noexcept {
+
233 return vertices.size();
234 }
-
235
+
235
-
241 basic_flow &bind(const id_type value) {
-
242 sync_on += (sync_on == vertices.size());
-
243 const auto it = vertices.emplace(value).first;
-
244 index.first() = size_type(it - vertices.begin());
+
241 basic_flow &bind(const id_type value) {
+
242 sync_on += (sync_on == vertices.size());
+
243 const auto it = vertices.emplace(value).first;
+
244 index.first() = size_type(it - vertices.begin());
245 return *this;
246 }
-
247
+
247
- -
253 ENTT_ASSERT(index.first() < vertices.size(), "Invalid node");
-
254 sync_on = index.first();
+ +
253 ENTT_ASSERT(index.first() < vertices.size(), "Invalid node");
+
254 sync_on = index.first();
255
-
256 for(const auto &elem: deps) {
-
257 elem.second.emplace_back(sync_on, true);
+
256 for(const auto &elem: deps) {
+
257 elem.second.emplace_back(sync_on, true);
258 }
259
260 return *this;
261 }
-
262
+
262
-
269 basic_flow &set(const id_type res, bool is_rw = false) {
-
270 emplace(res, is_rw);
+
269 basic_flow &set(const id_type res, bool is_rw = false) {
+
270 emplace(res, is_rw);
271 return *this;
272 }
-
273
+
273
- -
280 emplace(res, false);
+
279 basic_flow &ro(const id_type res) {
+
280 emplace(res, false);
281 return *this;
282 }
-
283
+
283
291 template<typename It>
-
292 std::enable_if_t<std::is_same_v<std::remove_const_t<typename std::iterator_traits<It>::value_type>, id_type>, basic_flow &>
+
292 std::enable_if_t<std::is_same_v<std::remove_const_t<typename std::iterator_traits<It>::value_type>, id_type>, basic_flow &>
-
293 ro(It first, It last) {
+
293 ro(It first, It last) {
294 for(; first != last; ++first) {
295 emplace(*first, false);
296 }
@@ -330,18 +338,18 @@ $(function() { codefold.init(0); });
298 return *this;
299 }
-
300
+
300
- -
307 emplace(res, true);
+
306 basic_flow &rw(const id_type res) {
+
307 emplace(res, true);
308 return *this;
309 }
-
310
+
310
318 template<typename It>
-
319 std::enable_if_t<std::is_same_v<std::remove_const_t<typename std::iterator_traits<It>::value_type>, id_type>, basic_flow &>
+
319 std::enable_if_t<std::is_same_v<std::remove_const_t<typename std::iterator_traits<It>::value_type>, id_type>, basic_flow &>
-
320 rw(It first, It last) {
+
320 rw(It first, It last) {
321 for(; first != last; ++first) {
322 emplace(*first, true);
323 }
@@ -349,10 +357,10 @@ $(function() { codefold.init(0); });
325 return *this;
326 }
-
327
+
327
- -
333 graph_type matrix{vertices.size(), get_allocator()};
+
332 [[nodiscard]] graph_type graph() const {
+
333 graph_type matrix{vertices.size(), get_allocator()};
334
335 setup_graph(matrix);
336 transitive_closure(matrix);
@@ -373,23 +381,25 @@ $(function() { codefold.init(0); });
349} // namespace entt
350
351#endif
-
Basic implementation of a directed adjacency matrix.
-
std::pair< edge_iterator, bool > insert(const vertex_type lhs, const vertex_type rhs)
Inserts an edge into the adjacency matrix, if it does not exist.
-
size_type size() const noexcept
Returns the number of vertices.
-
bool contains(const vertex_type lhs, const vertex_type rhs) const
Checks if an adjacency matrix contains a given edge.
-
size_type erase(const vertex_type lhs, const vertex_type rhs)
Removes the edge associated with a pair of given vertices.
+
Basic implementation of a directed adjacency matrix.
+
std::pair< edge_iterator, bool > insert(const vertex_type lhs, const vertex_type rhs)
Inserts an edge into the adjacency matrix, if it does not exist.
+
size_type size() const noexcept
Returns the number of vertices.
+
bool contains(const vertex_type lhs, const vertex_type rhs) const
Checks if an adjacency matrix contains a given edge.
+
size_type erase(const vertex_type lhs, const vertex_type rhs)
Removes the edge associated with a pair of given vertices.
Utility class for creating task graphs.
Definition flow.hpp:29
-
void clear() noexcept
Clears the flow builder.
Definition flow.hpp:201
-
id_type operator[](const size_type pos) const
Returns the identifier at specified location.
Definition flow.hpp:196
+
void clear() noexcept
Clears the flow builder.
Definition flow.hpp:213
+
id_type operator[](const size_type pos) const
Returns the identifier at specified location.
Definition flow.hpp:208
Allocator allocator_type
Allocator type.
Definition flow.hpp:119
size_type size() const noexcept
Returns the number of tasks.
Definition flow.hpp:232
+
iterable_adaptor< typename task_container_type::const_iterator > iterable
Iterable task list.
Definition flow.hpp:123
std::size_t size_type
Unsigned integer type.
Definition flow.hpp:121
basic_flow & sync()
Turns the current task into a sync point.
Definition flow.hpp:252
basic_flow & rw(const id_type res)
Assigns a writable resource to the current task.
Definition flow.hpp:306
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > rw(It first, It last)
Assigns a range of writable resources to the current task.
Definition flow.hpp:320
-
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
Definition flow.hpp:187
+
constexpr allocator_type get_allocator() const noexcept
Returns the associated allocator.
Definition flow.hpp:199
graph_type graph() const
Generates a task graph for the current content.
Definition flow.hpp:332
basic_flow(const allocator_type &allocator)
Constructs a flow builder with a given allocator.
Definition flow.hpp:135
+
adjacency_matrix_type graph_type
Adjacency matrix type.
Definition flow.hpp:125
~basic_flow()=default
Default destructor.
basic_flow & ro(const id_type res)
Assigns a read-only resource to the current task.
Definition flow.hpp:279
basic_flow(basic_flow &&) noexcept=default
Default move constructor.
@@ -398,32 +408,23 @@ $(function() { codefold.init(0); });
basic_flow & operator=(basic_flow &&) noexcept=default
Default move assignment operator.
basic_flow()
Default constructor.
Definition flow.hpp:128
basic_flow(const basic_flow &other, const allocator_type &allocator)
Allocator-extended copy constructor.
Definition flow.hpp:148
-
void swap(basic_flow &other) noexcept
Exchanges the contents with those of a given flow builder.
Definition flow.hpp:212
+
void swap(basic_flow &other) noexcept
Definition flow.hpp:187
bool empty() const noexcept
Returns true if a flow builder contains no tasks, false otherwise.
Definition flow.hpp:224
std::enable_if_t< std::is_same_v< std::remove_const_t< typename std::iterator_traits< It >::value_type >, id_type >, basic_flow & > ro(It first, It last)
Assigns a range of read-only resources to the current task.
Definition flow.hpp:293
basic_flow & operator=(const basic_flow &)=default
Default copy assignment operator.
basic_flow(const basic_flow &)=default
Default copy constructor.
A compressed pair.
-
constexpr second_type & second() noexcept
Returns the second element that a pair stores.
-
constexpr first_type & first() noexcept
Returns the first element that a pair stores.
- -
void clear() noexcept
Clears the container.
-
bool contains(const key_type &key) const
Checks if the container contains an element with a given key.
- -
void clear() noexcept
Clears the container.
-
const_iterator begin() const noexcept
Returns an iterator to the beginning.
-
std::pair< iterator, bool > emplace(Args &&...args)
Constructs an element in-place, if it does not exist.
-
size_type size() const noexcept
Returns the number of elements in a container.
-
bool empty() const noexcept
Checks whether a container is empty.
-
const_iterator cbegin() const noexcept
Returns an iterator to the beginning.
+
Associative container for key-value pairs with unique keys.
+
Associative container for unique objects of a given type.
+
EnTT default namespace.
Definition dense_map.hpp:22
-
constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
Uses-allocator construction utility (waiting for C++20).
Definition memory.hpp:219
-
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:14
+
std::uint32_t id_type
Alias declaration for type identifiers.
Definition fwd.hpp:29
Utility class to create an iterable object from a pair of iterators.
Definition iterator.hpp:141
+
diff --git a/functions.html b/functions.html index e80392b5b..67fe23652 100644 --- a/functions.html +++ b/functions.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
EnTT 3.14.0 +
EnTT 3.15.0
@@ -31,24 +33,35 @@
- + +
+
+
alive() : entt::process< Derived, Delta >
  • all_of() : entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >
  • allocation_deleter() : entt::allocation_deleter< Allocator >
  • -
  • allocator_type : entt::adjacency_matrix< Category, Allocator >, entt::allocation_deleter< Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_observer< Registry, Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >, entt::sigh< Ret(Args...), Allocator >
  • +
  • allocator_type : entt::adjacency_matrix< Category, Allocator >, entt::allocation_deleter< Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • allow_cast() : entt::meta_any
  • any_of() : entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >
  • arg() : entt::meta_data, entt::meta_func
  • @@ -98,7 +111,8 @@ $(function() {
    +
    diff --git a/functions_b.html b/functions_b.html index 0fa9ff7ae..c3efba914 100644 --- a/functions_b.html +++ b/functions_b.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - b -

    +
    diff --git a/functions_c.html b/functions_c.html index 3aff637eb..4fcb32c7f 100644 --- a/functions_c.html +++ b/functions_c.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    callback() : entt::basic_organizer< Registry >::vertex
  • can_cast() : entt::meta_type
  • can_convert() : entt::meta_type
  • -
  • capacity() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >
  • +
  • capacity() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >
  • cast() : entt::meta_any
  • -
  • cbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • -
  • cend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • -
  • children() : entt::basic_organizer< Registry >::vertex
  • +
  • cbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • cend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • class_type : entt::meta_template_traits< Clazz< Args... > >
  • -
  • clear() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • -
  • collect() : entt::sigh< Ret(Args...), Allocator >
  • +
  • clear() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • combine() : entt::basic_entt_traits< Traits >
  • -
  • common_type : entt::basic_common_view< Type, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • +
  • common_type : entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • compact() : entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • compressed_pair() : entt::compressed_pair< First, Second >
  • concept_type : entt::basic_poly< Concept, Len, Align >
  • -
  • connect() : entt::basic_observer< Registry, Allocator >, entt::delegate< Ret(Args...)>, entt::sink< sigh< Ret(Args...), Allocator > >
  • connect_arg_t() : entt::connect_arg_t< auto >
  • connection() : entt::connection
  • -
  • const_iterable : entt::basic_registry< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • -
  • const_iterator : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • const_iterable : entt::basic_registry< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • +
  • const_iterator : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • const_local_iterator : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • -
  • const_pointer : entt::basic_storage< Type, Entity, Allocator, typename >
  • -
  • const_reverse_iterable : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • -
  • const_reverse_iterator : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • +
  • const_pointer : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • +
  • const_reverse_iterable : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • +
  • const_reverse_iterator : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • construct() : entt::basic_entt_traits< Traits >, entt::meta_type
  • -
  • contains() : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Get, Exclude >, entt::basic_continuous_loader< Registry >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • -
  • context : entt::basic_registry< Entity, Allocator >
  • +
  • contains() : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_continuous_loader< Registry >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • context : entt::basic_registry< Entity, Allocator >, entt::meta_any
  • contiguous() : entt::basic_sparse_set< Entity, Allocator >
  • conv() : entt::meta_factory< Type >
  • count() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • -
  • crbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • +
  • crbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • create() : entt::basic_registry< Entity, Allocator >
  • -
  • crend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • +
  • crend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • ctor() : entt::meta_factory< Type >
  • ctx() : entt::basic_registry< Entity, Allocator >
  • current() : entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • -
  • current_type : entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >
  • custom() : entt::meta_data, entt::meta_factory< Type >, entt::meta_func, entt::meta_type
  • +
    diff --git a/functions_d.html b/functions_d.html index 8a330cd9c..ef754b862 100644 --- a/functions_d.html +++ b/functions_d.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - d -

    +
    diff --git a/functions_e.html b/functions_e.html index 9466d92bb..daaed1ca2 100644 --- a/functions_e.html +++ b/functions_e.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - e -

    +
    diff --git a/functions_f.html b/functions_f.html index 9c237f81f..0590de4d4 100644 --- a/functions_f.html +++ b/functions_f.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - f -
    +
    diff --git a/functions_func.html b/functions_func.html index dc77c89c4..8efd21083 100644 --- a/functions_func.html +++ b/functions_func.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_func_b.html b/functions_func_b.html index 1608086eb..dd838cefe 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - b -

    +
    diff --git a/functions_func_c.html b/functions_func_c.html index 948b5fdaf..8080935d8 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    callback() : entt::basic_organizer< Registry >::vertex
  • can_cast() : entt::meta_type
  • can_convert() : entt::meta_type
  • -
  • capacity() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >
  • +
  • capacity() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >
  • cast() : entt::meta_any
  • -
  • cbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • -
  • cend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • -
  • children() : entt::basic_organizer< Registry >::vertex
  • -
  • clear() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • -
  • collect() : entt::sigh< Ret(Args...), Allocator >
  • +
  • cbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • cend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • clear() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • combine() : entt::basic_entt_traits< Traits >
  • compact() : entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • compressed_pair() : entt::compressed_pair< First, Second >
  • -
  • connect() : entt::basic_observer< Registry, Allocator >, entt::delegate< Ret(Args...)>, entt::sink< sigh< Ret(Args...), Allocator > >
  • connect_arg_t() : entt::connect_arg_t< auto >
  • connection() : entt::connection
  • construct() : entt::basic_entt_traits< Traits >, entt::meta_type
  • -
  • contains() : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Get, Exclude >, entt::basic_continuous_loader< Registry >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • contains() : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_continuous_loader< Registry >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource_cache< Type, Loader, Allocator >
  • +
  • context() : entt::meta_any
  • contiguous() : entt::basic_sparse_set< Entity, Allocator >
  • conv() : entt::meta_factory< Type >
  • count() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • -
  • crbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • +
  • crbegin() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • create() : entt::basic_registry< Entity, Allocator >
  • -
  • crend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • +
  • crend() : entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::dense_set< Type, Hash, KeyEqual, Allocator >
  • ctor() : entt::meta_factory< Type >
  • ctx() : entt::basic_registry< Entity, Allocator >
  • current() : entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • @@ -106,7 +117,8 @@ $(function() {
    +
    diff --git a/functions_func_d.html b/functions_func_d.html index 7706bde7f..a1abae75e 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + +
    diff --git a/functions_func_e.html b/functions_func_e.html index 4c1187689..83bf4d719 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - e -

    +
    diff --git a/functions_func_f.html b/functions_func_f.html index 88ac38f44..cd0eb0b06 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - f -
    +
    diff --git a/functions_func_g.html b/functions_func_g.html index ca7b9af1f..dc3d882b3 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - g -

    +
    diff --git a/functions_func_h.html b/functions_func_h.html index e80ecf89c..37121b2e4 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + +
    diff --git a/functions_func_i.html b/functions_func_i.html index a09700fac..d4feaee04 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    index() : entt::basic_sparse_set< Entity, Allocator >, entt::type_info
  • info() : entt::basic_organizer< Registry >::vertex, entt::meta_type
  • input_iterator_pointer() : entt::input_iterator_pointer< Type >
  • -
  • insert() : entt::adjacency_matrix< Category, Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_registry< Entity, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container
  • +
  • insert() : entt::adjacency_matrix< Category, Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_registry< Entity, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container
  • insert_or_assign() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >
  • instance() : entt::poly_vtable< Concept, Len, Align >
  • invoke() : entt::meta_any, entt::meta_func, entt::meta_type, entt::poly_base< Poly >, entt::poly_inspector
  • @@ -104,7 +117,8 @@ $(function() {
    +
    diff --git a/functions_func_k.html b/functions_func_k.html index dd5544388..8ebb11546 100644 --- a/functions_func_k.html +++ b/functions_func_k.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_func_l.html b/functions_func_l.html index 038175dd5..e25f6ded8 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_func_m.html b/functions_func_m.html index 46be2de49..2f35a906c 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    meta_factory() : entt::meta_factory< Type >
  • meta_func() : entt::meta_func
  • meta_handle() : entt::meta_handle
  • -
  • meta_prop() : entt::meta_prop
  • meta_sequence_container() : entt::meta_sequence_container
  • meta_type() : entt::meta_type
  • +
    diff --git a/functions_func_n.html b/functions_func_n.html index a1e92ad5f..8f18182e4 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_func_o.html b/functions_func_o.html index 11dc45835..7099da238 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    operator basic_group< Owned, Get, Exclude >() : entt::as_group< Registry >
  • operator basic_handle< Other, Args... >() : entt::basic_handle< Registry, Scope >
  • operator basic_view< Get, Exclude >() : entt::as_view< Registry >
  • -
  • operator bool() : entt::basic_any< Len, Align >, entt::basic_common_view< Type, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_poly< Concept, Len, Align >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage_view< Type, Policy >, entt::connection, entt::delegate< Ret(Args...)>, entt::meta_any, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_prop, entt::meta_sequence_container, entt::meta_type, entt::resource< Type >, entt::scoped_connection
  • +
  • operator bool() : entt::basic_any< Len, Align >, entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_poly< Concept, Len, Align >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage_view< Type, Policy >, entt::connection, entt::meta_any, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_sequence_container, entt::meta_type, entt::resource< Type >, entt::scoped_connection
  • operator const value_type *() : entt::basic_hashed_string< Char >
  • operator element_type &() : entt::resource< Type >
  • operator Entity() : entt::null_t, entt::tombstone_t
  • @@ -94,24 +107,26 @@ $(function() {
  • operator Type &&() : entt::poly_inspector
  • operator Type *() : entt::meta_custom
  • operator!=() : entt::basic_any< Len, Align >, entt::meta_any, entt::meta_handle, entt::null_t, entt::tombstone_t
  • -
  • operator()() : entt::allocation_deleter< Allocator >, entt::delegate< Ret(Args...)>, entt::forward_apply< Func >, entt::identity, entt::insertion_sort, entt::radix_sort< Bit, N >, entt::resource_loader< Type >, entt::std_sort, entt::y_combinator< Func >
  • +
  • operator()() : entt::allocation_deleter< Allocator >, entt::forward_apply< Func >, entt::identity, entt::insertion_sort, entt::radix_sort< Bit, N >, entt::resource_loader< Type >, entt::std_sort, entt::y_combinator< Func >
  • operator*() : entt::input_iterator_pointer< Type >, entt::iota_iterator< Type >, entt::meta_any, entt::resource< Type >
  • operator++() : entt::iota_iterator< Type >
  • operator->() : entt::basic_poly< Concept, Len, Align >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::input_iterator_pointer< Type >, entt::meta_handle, entt::resource< Type >
  • -
  • operator=() : entt::adjacency_matrix< Category, Allocator >, entt::basic_any< Len, Align >, entt::basic_continuous_loader< Registry >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_observer< Registry, Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_snapshot< Registry >, entt::basic_snapshot_loader< Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::locator< Service >, entt::meta_any, entt::meta_handle, entt::monostate< id_type >, entt::process< Derived, Delta >, entt::resource< Type >, entt::resource_cache< Type, Loader, Allocator >, entt::scoped_connection, entt::sigh< Ret(Args...), Allocator >
  • -
  • operator==() : entt::basic_any< Len, Align >, entt::delegate< Ret(Args...)>, entt::meta_any, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_prop, entt::meta_type, entt::null_t, entt::tombstone_t
  • +
  • operator=() : entt::adjacency_matrix< Category, Allocator >, entt::basic_any< Len, Align >, entt::basic_continuous_loader< Registry >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_snapshot< Registry >, entt::basic_snapshot_loader< Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::locator< Service >, entt::meta_any, entt::meta_handle, entt::monostate< id_type >, entt::process< Derived, Delta >, entt::resource< Type >, entt::resource_cache< Type, Loader, Allocator >, entt::scoped_connection
  • +
  • operator==() : entt::basic_any< Len, Align >, entt::meta_any, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_type, entt::null_t, entt::tombstone_t
  • operator[]() : entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • -
  • operator|() : entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • +
  • operator|() : entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • orphan() : entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >
  • orphans() : entt::basic_continuous_loader< Registry >, entt::basic_snapshot_loader< Registry >
  • out_edges() : entt::adjacency_matrix< Category, Allocator >, entt::basic_organizer< Registry >::vertex
  • owned() : entt::basic_registry< Entity, Allocator >
  • owned_t() : entt::owned_t< Type >
  • +
  • owner() : entt::basic_any< Len, Align >
  • +
    diff --git a/functions_func_p.html b/functions_func_p.html index 7049baf75..b4f9cc3ee 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - p -

    +
    diff --git a/functions_func_r.html b/functions_func_r.html index a3563b204..1a6ffb8e0 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - r -

    +
    diff --git a/functions_func_s.html b/functions_func_s.html index 00b5fb75b..255d39d90 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    scoped_connection() : entt::scoped_connection
  • second() : entt::compressed_pair< First, Second >
  • set() : entt::basic_flow< Allocator >, entt::meta_any, entt::meta_data, entt::meta_type
  • -
  • shrink_to_fit() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >
  • -
  • sigh() : entt::sigh< Ret(Args...), Allocator >
  • +
  • shrink_to_fit() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >
  • sigh_helper() : entt::sigh_helper< Registry >, entt::sigh_helper< Registry, Type >
  • -
  • sink() : entt::basic_dispatcher< Allocator >, entt::sink< sigh< Ret(Args...), Allocator > >
  • -
  • size() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >, entt::sigh< Ret(Args...), Allocator >
  • -
  • size_hint() : entt::basic_common_view< Type, Get, Exclude >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >
  • +
  • sink() : entt::basic_dispatcher< Allocator >
  • +
  • size() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • +
  • size_hint() : entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >
  • size_of() : entt::meta_type
  • sort() : entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • sort_as() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >
  • sort_n() : entt::basic_sparse_set< Entity, Allocator >
  • -
  • storage() : entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • +
  • start_from() : entt::basic_storage< Entity, Entity, Allocator >
  • +
  • storage() : entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • succeed() : entt::process< Derived, Delta >
  • -
  • swap() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource< Type >, entt::sigh< Ret(Args...), Allocator >
  • +
  • swap() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource< Type >
  • swap_and_pop() : entt::basic_sparse_set< Entity, Allocator >
  • swap_elements() : entt::basic_sparse_set< Entity, Allocator >
  • swap_only() : entt::basic_sparse_set< Entity, Allocator >
  • @@ -98,7 +111,8 @@ $(function() {
    +
    diff --git a/functions_func_t.html b/functions_func_t.html index 1fc8d5e1d..66ac49dde 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - t -

    +
    diff --git a/functions_func_u.html b/functions_func_u.html index cbb383fbc..956f5ac67 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + diff --git a/functions_func_v.html b/functions_func_v.html index 155332b03..038cbcc6b 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + diff --git a/functions_func_w.html b/functions_func_w.html index 0110ed381..6eb533a08 100644 --- a/functions_func_w.html +++ b/functions_func_w.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented functions with links to the class documentation for each member:

    - w -

    +
    diff --git a/functions_func_y.html b/functions_func_y.html index 47b69d5da..cb5a412ca 100644 --- a/functions_func_y.html +++ b/functions_func_y.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_func_~.html b/functions_func_~.html index 307d8ddd3..818543db5 100644 --- a/functions_func_~.html +++ b/functions_func_~.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Functions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    ~basic_continuous_loader() : entt::basic_continuous_loader< Registry >
  • ~basic_dispatcher() : entt::basic_dispatcher< Allocator >
  • ~basic_flow() : entt::basic_flow< Allocator >
  • -
  • ~basic_observer() : entt::basic_observer< Registry, Allocator >
  • ~basic_reactive_mixin() : entt::basic_reactive_mixin< Type, Registry >
  • ~basic_registry() : entt::basic_registry< Entity, Allocator >
  • ~basic_runtime_view() : entt::basic_runtime_view< Type, Allocator >
  • @@ -88,7 +100,7 @@ $(function() {
  • ~basic_snapshot() : entt::basic_snapshot< Registry >
  • ~basic_snapshot_loader() : entt::basic_snapshot_loader< Registry >
  • ~basic_sparse_set() : entt::basic_sparse_set< Entity, Allocator >
  • -
  • ~basic_storage() : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • +
  • ~basic_storage() : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • ~basic_table() : entt::basic_table< Container >
  • ~compressed_pair() : entt::compressed_pair< First, Second >
  • ~dense_map() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >
  • @@ -101,12 +113,12 @@ $(function() {
  • ~resource() : entt::resource< Type >
  • ~resource_cache() : entt::resource_cache< Type, Loader, Allocator >
  • ~scoped_connection() : entt::scoped_connection
  • -
  • ~sigh() : entt::sigh< Ret(Args...), Allocator >
  • +
    diff --git a/functions_g.html b/functions_g.html index 27b1ffc1e..62a6abe07 100644 --- a/functions_g.html +++ b/functions_g.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - g -

    +
    diff --git a/functions_h.html b/functions_h.html index 515b0800e..d27d7fff8 100644 --- a/functions_h.html +++ b/functions_h.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + +
    diff --git a/functions_i.html b/functions_i.html index ea82911a3..fb1a5e9ac 100644 --- a/functions_i.html +++ b/functions_i.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    id() : entt::meta_type
  • in_edge_iterator : entt::adjacency_matrix< Category, Allocator >
  • in_edges() : entt::adjacency_matrix< Category, Allocator >, entt::basic_organizer< Registry >::vertex
  • -
  • in_place_delete : entt::component_traits< Type, typename >
  • +
  • in_place_delete : entt::component_traits< Type, Entity, typename >
  • in_place_pop() : entt::basic_sparse_set< Entity, Allocator >
  • index() : entt::basic_sparse_set< Entity, Allocator >, entt::type_info
  • info() : entt::basic_organizer< Registry >::vertex, entt::meta_type
  • input_iterator_pointer() : entt::input_iterator_pointer< Type >
  • -
  • insert() : entt::adjacency_matrix< Category, Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_registry< Entity, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container
  • +
  • insert() : entt::adjacency_matrix< Category, Allocator >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_registry< Entity, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container
  • insert_or_assign() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >
  • instance() : entt::poly_vtable< Concept, Len, Align >
  • invoke() : entt::meta_any, entt::meta_func, entt::meta_type, entt::poly_base< Poly >, entt::poly_inspector
  • @@ -101,16 +114,17 @@ $(function() {
  • is_static() : entt::meta_data, entt::meta_func, entt::meta_function_descriptor_traits< Ret, Args, Static, Const >
  • is_template_specialization() : entt::meta_type
  • is_transparent : entt::identity
  • -
  • iterable : entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • +
  • iterable : entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • iterable_adaptor() : entt::iterable_adaptor< It, Sentinel >
  • iterate() : entt::basic_runtime_view< Type, Allocator >
  • -
  • iterator : entt::basic_common_view< Type, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • +
  • iterator : entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::iterable_adaptor< It, Sentinel >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • iterator_category : entt::iota_iterator< Type >
  • +
    diff --git a/functions_k.html b/functions_k.html index e23687252..e4746b2ee 100644 --- a/functions_k.html +++ b/functions_k.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_l.html b/functions_l.html index c58f2704c..bb9dc40a4 100644 --- a/functions_l.html +++ b/functions_l.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_m.html b/functions_m.html index 3cee536e7..e5d2e2e7b 100644 --- a/functions_m.html +++ b/functions_m.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    meta_factory() : entt::meta_factory< Type >
  • meta_func() : entt::meta_func
  • meta_handle() : entt::meta_handle
  • -
  • meta_prop() : entt::meta_prop
  • meta_sequence_container() : entt::meta_sequence_container
  • meta_type() : entt::meta_type
  • +
    diff --git a/functions_n.html b/functions_n.html index dba333186..7aab898bc 100644 --- a/functions_n.html +++ b/functions_n.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_o.html b/functions_o.html index a6da88980..f788eb7f1 100644 --- a/functions_o.html +++ b/functions_o.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    operator basic_group< Owned, Get, Exclude >() : entt::as_group< Registry >
  • operator basic_handle< Other, Args... >() : entt::basic_handle< Registry, Scope >
  • operator basic_view< Get, Exclude >() : entt::as_view< Registry >
  • -
  • operator bool() : entt::basic_any< Len, Align >, entt::basic_common_view< Type, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_poly< Concept, Len, Align >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage_view< Type, Policy >, entt::connection, entt::delegate< Ret(Args...)>, entt::meta_any, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_prop, entt::meta_sequence_container, entt::meta_type, entt::resource< Type >, entt::scoped_connection
  • +
  • operator bool() : entt::basic_any< Len, Align >, entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_poly< Concept, Len, Align >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_runtime_view< Type, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_storage_view< Type, Policy >, entt::connection, entt::meta_any, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_sequence_container, entt::meta_type, entt::resource< Type >, entt::scoped_connection
  • operator const value_type *() : entt::basic_hashed_string< Char >
  • operator element_type &() : entt::resource< Type >
  • operator Entity() : entt::null_t, entt::tombstone_t
  • @@ -94,25 +107,27 @@ $(function() {
  • operator Type &&() : entt::poly_inspector
  • operator Type *() : entt::meta_custom
  • operator!=() : entt::basic_any< Len, Align >, entt::meta_any, entt::meta_handle, entt::null_t, entt::tombstone_t
  • -
  • operator()() : entt::allocation_deleter< Allocator >, entt::delegate< Ret(Args...)>, entt::forward_apply< Func >, entt::identity, entt::insertion_sort, entt::radix_sort< Bit, N >, entt::resource_loader< Type >, entt::std_sort, entt::y_combinator< Func >
  • +
  • operator()() : entt::allocation_deleter< Allocator >, entt::forward_apply< Func >, entt::identity, entt::insertion_sort, entt::radix_sort< Bit, N >, entt::resource_loader< Type >, entt::std_sort, entt::y_combinator< Func >
  • operator*() : entt::input_iterator_pointer< Type >, entt::iota_iterator< Type >, entt::meta_any, entt::resource< Type >
  • operator++() : entt::iota_iterator< Type >
  • operator->() : entt::basic_poly< Concept, Len, Align >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::input_iterator_pointer< Type >, entt::meta_handle, entt::resource< Type >
  • -
  • operator=() : entt::adjacency_matrix< Category, Allocator >, entt::basic_any< Len, Align >, entt::basic_continuous_loader< Registry >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_observer< Registry, Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_snapshot< Registry >, entt::basic_snapshot_loader< Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::locator< Service >, entt::meta_any, entt::meta_handle, entt::monostate< id_type >, entt::process< Derived, Delta >, entt::resource< Type >, entt::resource_cache< Type, Loader, Allocator >, entt::scoped_connection, entt::sigh< Ret(Args...), Allocator >
  • -
  • operator==() : entt::basic_any< Len, Align >, entt::delegate< Ret(Args...)>, entt::meta_any, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_prop, entt::meta_type, entt::null_t, entt::tombstone_t
  • +
  • operator=() : entt::adjacency_matrix< Category, Allocator >, entt::basic_any< Len, Align >, entt::basic_continuous_loader< Registry >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_snapshot< Registry >, entt::basic_snapshot_loader< Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::locator< Service >, entt::meta_any, entt::meta_handle, entt::monostate< id_type >, entt::process< Derived, Delta >, entt::resource< Type >, entt::resource_cache< Type, Loader, Allocator >, entt::scoped_connection
  • +
  • operator==() : entt::basic_any< Len, Align >, entt::meta_any, entt::meta_data, entt::meta_func, entt::meta_handle, entt::meta_type, entt::null_t, entt::tombstone_t
  • operator[]() : entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >
  • -
  • operator|() : entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • +
  • operator|() : entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • orphan() : entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >
  • orphans() : entt::basic_continuous_loader< Registry >, entt::basic_snapshot_loader< Registry >
  • out_edge_iterator : entt::adjacency_matrix< Category, Allocator >
  • out_edges() : entt::adjacency_matrix< Category, Allocator >, entt::basic_organizer< Registry >::vertex
  • owned() : entt::basic_registry< Entity, Allocator >
  • owned_t() : entt::owned_t< Type >
  • +
  • owner() : entt::basic_any< Len, Align >
  • +
    diff --git a/functions_p.html b/functions_p.html index 9990dd9d5..449211034 100644 --- a/functions_p.html +++ b/functions_p.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - p -

    +
    diff --git a/functions_r.html b/functions_r.html index 84d1770f9..fc9cca770 100644 --- a/functions_r.html +++ b/functions_r.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - r -

    +
    diff --git a/functions_s.html b/functions_s.html index 465952fa6..f000b8313 100644 --- a/functions_s.html +++ b/functions_s.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    second_type : entt::compressed_pair< First, Second >
  • sentinel : entt::iterable_adaptor< It, Sentinel >
  • set() : entt::basic_flow< Allocator >, entt::meta_any, entt::meta_data, entt::meta_type
  • -
  • shrink_to_fit() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >
  • -
  • sigh() : entt::sigh< Ret(Args...), Allocator >
  • +
  • shrink_to_fit() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >
  • sigh_helper() : entt::sigh_helper< Registry >, entt::sigh_helper< Registry, Type >
  • -
  • sink() : entt::basic_dispatcher< Allocator >, entt::sink< sigh< Ret(Args...), Allocator > >
  • -
  • sink_type : entt::sigh< Ret(Args...), Allocator >
  • -
  • size() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >, entt::sigh< Ret(Args...), Allocator >, entt::type_list< Type >, entt::value_list< Value >
  • -
  • size_hint() : entt::basic_common_view< Type, Get, Exclude >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >
  • +
  • sink() : entt::basic_dispatcher< Allocator >
  • +
  • size() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::meta_associative_container, entt::meta_sequence_container, entt::resource_cache< Type, Loader, Allocator >, entt::type_list< Type >, entt::value_list< Value >
  • +
  • size_hint() : entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_runtime_view< Type, Allocator >, entt::basic_storage_view< Type, Policy >
  • size_of() : entt::meta_type
  • -
  • size_type : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Get, Exclude >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_observer< Registry, Allocator >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_sequence_container, entt::meta_type, entt::resource_cache< Type, Loader, Allocator >, entt::sigh< Ret(Args...), Allocator >
  • +
  • size_type : entt::adjacency_matrix< Category, Allocator >, entt::basic_common_view< Type, Checked, Get, Exclude >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_hashed_string< Char >, entt::basic_meta_associative_container_traits< Type >, entt::basic_meta_sequence_container_traits< Type >, entt::basic_organizer< Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_storage_view< Type, Policy >, entt::basic_table< Container >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::meta_associative_container, entt::meta_data, entt::meta_func, entt::meta_sequence_container, entt::meta_type, entt::resource_cache< Type, Loader, Allocator >
  • sort() : entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_registry< Entity, Allocator >, entt::basic_sparse_set< Entity, Allocator >
  • sort_as() : entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_sparse_set< Entity, Allocator >
  • sort_n() : entt::basic_sparse_set< Entity, Allocator >
  • +
  • start_from() : entt::basic_storage< Entity, Entity, Allocator >
  • storage() : entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >, entt::basic_handle< Registry, Scope >, entt::basic_registry< Entity, Allocator >, entt::basic_view< get_t< Get >, exclude_t<> >, entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >
  • storage_for_type : entt::basic_registry< Entity, Allocator >
  • -
  • storage_policy : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • +
  • storage_policy : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • succeed() : entt::process< Derived, Delta >
  • -
  • swap() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_reactive_mixin< Type, Registry >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource< Type >, entt::sigh< Ret(Args...), Allocator >
  • +
  • swap() : entt::adjacency_matrix< Category, Allocator >, entt::basic_dispatcher< Allocator >, entt::basic_flow< Allocator >, entt::basic_registry< Entity, Allocator >, entt::basic_runtime_view< Type, Allocator >, entt::basic_scheduler< Delta, Allocator >, entt::basic_sigh_mixin< Type, Registry >, entt::basic_sparse_set< Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >, entt::basic_table< Container >, entt::compressed_pair< First, Second >, entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >, entt::dense_set< Type, Hash, KeyEqual, Allocator >, entt::emitter< Derived, Allocator >, entt::resource< Type >
  • swap_and_pop() : entt::basic_sparse_set< Entity, Allocator >
  • swap_elements() : entt::basic_sparse_set< Entity, Allocator >
  • swap_only() : entt::basic_sparse_set< Entity, Allocator >
  • @@ -104,7 +116,8 @@ $(function() {
    +
    diff --git a/functions_t.html b/functions_t.html index 5e59bcea8..f2d8a4a50 100644 --- a/functions_t.html +++ b/functions_t.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - t -

    +
    diff --git a/functions_type.html b/functions_type.html index 47a0249b2..d0eca1d15 100644 --- a/functions_type.html +++ b/functions_type.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented typedefs with links to the class documentation for each member:

    - a -

    +
    diff --git a/functions_type_b.html b/functions_type_b.html index d869d5c10..836ee0e6e 100644 --- a/functions_type_b.html +++ b/functions_type_b.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + +
    diff --git a/functions_type_c.html b/functions_type_c.html index 5ec018842..0cb0dab1a 100644 --- a/functions_type_c.html +++ b/functions_type_c.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - c -
    +
    diff --git a/functions_type_d.html b/functions_type_d.html index 378660e25..75d30292a 100644 --- a/functions_type_d.html +++ b/functions_type_d.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + diff --git a/functions_type_e.html b/functions_type_e.html index 7cb943f6f..f59a0d6d0 100644 --- a/functions_type_e.html +++ b/functions_type_e.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - e -
    +
    diff --git a/functions_type_f.html b/functions_type_f.html index e9cff2868..0e6e71fee 100644 --- a/functions_type_f.html +++ b/functions_type_f.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    + +
    diff --git a/functions_type_g.html b/functions_type_g.html index 27055e895..e84a442c7 100644 --- a/functions_type_g.html +++ b/functions_type_g.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_h.html b/functions_type_h.html index 990292749..cad3896f4 100644 --- a/functions_type_h.html +++ b/functions_type_h.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_i.html b/functions_type_i.html index c5d570496..08d8d4120 100644 --- a/functions_type_i.html +++ b/functions_type_i.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - i -
    +
    diff --git a/functions_type_k.html b/functions_type_k.html index 9bf5a819b..072df674c 100644 --- a/functions_type_k.html +++ b/functions_type_k.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_l.html b/functions_type_l.html index ed6c10569..519cd81e3 100644 --- a/functions_type_l.html +++ b/functions_type_l.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_m.html b/functions_type_m.html index 6c7cab938..4988789c0 100644 --- a/functions_type_m.html +++ b/functions_type_m.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_n.html b/functions_type_n.html index 7bd7f9de6..6d93726e6 100644 --- a/functions_type_n.html +++ b/functions_type_n.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_o.html b/functions_type_o.html index c947a37fd..3771814a8 100644 --- a/functions_type_o.html +++ b/functions_type_o.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_type_p.html b/functions_type_p.html index 4dc306822..30106a5d8 100644 --- a/functions_type_p.html +++ b/functions_type_p.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + +
    diff --git a/functions_type_r.html b/functions_type_r.html index c3efe24d4..846da344e 100644 --- a/functions_type_r.html +++ b/functions_type_r.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - r -
    +
    diff --git a/functions_type_s.html b/functions_type_s.html index c963f5de6..885a72641 100644 --- a/functions_type_s.html +++ b/functions_type_s.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - s -
    +
    diff --git a/functions_type_t.html b/functions_type_t.html index 8182852ce..8864e9556 100644 --- a/functions_type_t.html +++ b/functions_type_t.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented typedefs with links to the class documentation for each member:

    - t -

    +
    diff --git a/functions_type_v.html b/functions_type_v.html index 9747e3505..a5d289341 100644 --- a/functions_type_v.html +++ b/functions_type_v.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Typedefs + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented typedefs with links to the class documentation for each member:

    - v -

    +
    diff --git a/functions_u.html b/functions_u.html index 121690221..f26fd976f 100644 --- a/functions_u.html +++ b/functions_u.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    + diff --git a/functions_v.html b/functions_v.html index 89300a63e..b5015dc6e 100644 --- a/functions_v.html +++ b/functions_v.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - v -
    +
    diff --git a/functions_vars.html b/functions_vars.html index c0586290d..6924b1a42 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -3,13 +3,15 @@ - + EnTT: Class Members - Variables + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    alignment : entt::basic_any< Len, Align >
  • entity_mask : entt::basic_entt_traits< Traits >
  • fixed_size : entt::basic_meta_sequence_container_traits< Type >
  • -
  • in_place_delete : entt::component_traits< Type, typename >
  • +
  • in_place_delete : entt::component_traits< Type, Entity, typename >
  • is_const : entt::meta_function_descriptor_traits< Ret, Args, Static, Const >
  • is_static : entt::meta_function_descriptor_traits< Ret, Args, Static, Const >
  • key_only : entt::basic_meta_associative_container_traits< Type >
  • length : entt::basic_any< Len, Align >
  • -
  • page_size : entt::component_traits< Type, typename >, entt::entt_traits< Type >
  • +
  • page_size : entt::component_traits< Type, Entity, typename >, entt::entt_traits< Type >
  • size : entt::type_list< Type >, entt::value_list< Value >
  • -
  • storage_policy : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • +
  • storage_policy : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • value : entt::family<... >, entt::ident< Type >, entt::type_list_index< Type, type_list< First, Other... > >, entt::type_list_index< Type, type_list< Type, Other... > >, entt::type_list_index< Type, type_list<> >, entt::value_list_element< 0u, value_list< Value, Other... > >, entt::value_list_index< Value, value_list< First, Other... > >, entt::value_list_index< Value, value_list< Value, Other... > >, entt::value_list_index< Value, value_list<> >
  • version_mask : entt::basic_entt_traits< Traits >
  • +
    diff --git a/functions_w.html b/functions_w.html index 5089e0c45..7591f594c 100644 --- a/functions_w.html +++ b/functions_w.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - w -

    +
    diff --git a/functions_y.html b/functions_y.html index e2241e40e..45dd6e858 100644 --- a/functions_y.html +++ b/functions_y.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/functions_~.html b/functions_~.html index 394e9352e..32f5b9fdb 100644 --- a/functions_~.html +++ b/functions_~.html @@ -3,13 +3,15 @@ - + EnTT: Class Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    ~basic_continuous_loader() : entt::basic_continuous_loader< Registry >
  • ~basic_dispatcher() : entt::basic_dispatcher< Allocator >
  • ~basic_flow() : entt::basic_flow< Allocator >
  • -
  • ~basic_observer() : entt::basic_observer< Registry, Allocator >
  • ~basic_reactive_mixin() : entt::basic_reactive_mixin< Type, Registry >
  • ~basic_registry() : entt::basic_registry< Entity, Allocator >
  • ~basic_runtime_view() : entt::basic_runtime_view< Type, Allocator >
  • @@ -88,7 +100,7 @@ $(function() {
  • ~basic_snapshot() : entt::basic_snapshot< Registry >
  • ~basic_snapshot_loader() : entt::basic_snapshot_loader< Registry >
  • ~basic_sparse_set() : entt::basic_sparse_set< Entity, Allocator >
  • -
  • ~basic_storage() : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >
  • +
  • ~basic_storage() : entt::basic_storage< Type, Entity, Allocator, typename >, entt::basic_storage< Entity, Entity, Allocator >, entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >
  • ~basic_table() : entt::basic_table< Container >
  • ~compressed_pair() : entt::compressed_pair< First, Second >
  • ~dense_map() : entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >
  • @@ -101,12 +113,12 @@ $(function() {
  • ~resource() : entt::resource< Type >
  • ~resource_cache() : entt::resource_cache< Type, Loader, Allocator >
  • ~scoped_connection() : entt::scoped_connection
  • -
  • ~sigh() : entt::sigh< Ret(Args...), Allocator >
  • +
    diff --git a/fwd_8hpp_source.html b/fwd_8hpp_source.html index 3dc4b48c3..ad0b70551 100644 --- a/fwd_8hpp_source.html +++ b/fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -97,7 +105,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/graph_2fwd_8hpp_source.html b/graph_2fwd_8hpp_source.html index dbcb6ca41..f1e313cee 100644 --- a/graph_2fwd_8hpp_source.html +++ b/graph_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/graph/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -91,9 +99,9 @@ $(function() { codefold.init(0); });
    6#include "../core/fwd.hpp"
    7
    8namespace entt {
    -
    9
    +
    9
    11struct directed_tag {};
    -
    12
    +
    12
    15
    16template<typename, typename = std::allocator<std::size_t>>
    @@ -101,21 +109,23 @@ $(function() { codefold.init(0); });
    18
    19template<typename = std::allocator<id_type>>
    20class basic_flow;
    -
    21
    - +
    21
    +
    24
    25} // namespace entt
    26
    27#endif
    -
    Basic implementation of a directed adjacency matrix.
    +
    Basic implementation of a directed adjacency matrix.
    Utility class for creating task graphs.
    Definition flow.hpp:29
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    basic_flow<> flow
    Alias declaration for the most common use case.
    Definition fwd.hpp:23
    Undirected graph category tag.
    Definition fwd.hpp:11
    Directed graph category tag.
    Definition fwd.hpp:14
    +
    diff --git a/graph_legend.html b/graph_legend.html index 065bff3e0..2c2e2c810 100644 --- a/graph_legend.html +++ b/graph_legend.html @@ -3,13 +3,15 @@ - + EnTT: Graph Legend + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
  • A dark red arrow is used for private inheritance.
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
    +
    diff --git a/group_8hpp_source.html b/group_8hpp_source.html index 9a8d9180c..ce7cf9cd0 100644 --- a/group_8hpp_source.html +++ b/group_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/group.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    group.hpp
    @@ -102,7 +110,7 @@ $(function() { codefold.init(0); });
    17#include "fwd.hpp"
    18
    19namespace entt {
    -
    20
    +
    20
    22namespace internal {
    23
    24template<typename, typename, typename>
    @@ -141,7 +149,7 @@ $(function() { codefold.init(0); });
    57 }
    58
    59 extended_group_iterator operator++(int) noexcept {
    -
    60 extended_group_iterator orig = *this;
    +
    60 const extended_group_iterator orig = *this;
    61 return ++(*this), orig;
    62 }
    63
    @@ -187,35 +195,35 @@ $(function() { codefold.init(0); });
    103class group_handler final: public group_descriptor {
    104 using entity_type = typename Type::entity_type;
    105
    -
    106 void swap_elements(const std::size_t pos, const entity_type entt) {
    +
    106 void swap_elements(const std::size_t pos, const entity_type entt) {
    107 for(size_type next{}; next < Owned; ++next) {
    -
    108 pools[next]->swap_elements((*pools[next])[pos], entt);
    +
    108 pools[next]->swap_elements((*pools[next])[pos], entt);
    109 }
    110 }
    111
    -
    112 void push_on_construct(const entity_type entt) {
    -
    113 if(std::apply([entt, pos = len](auto *cpool, auto *...other) { return cpool->contains(entt) && !(cpool->index(entt) < pos) && (other->contains(entt) && ...); }, pools)
    -
    114 && std::apply([entt](auto *...cpool) { return (!cpool->contains(entt) && ...); }, filter)) {
    -
    115 swap_elements(len++, entt);
    +
    112 void push_on_construct(const entity_type entt) {
    +
    113 if(std::apply([entt, pos = len](auto *cpool, auto *...other) { return cpool->contains(entt) && !(cpool->index(entt) < pos) && (other->contains(entt) && ...); }, pools)
    +
    114 && std::apply([entt](auto *...cpool) { return (!cpool->contains(entt) && ...); }, filter)) {
    +
    115 swap_elements(len++, entt);
    116 }
    117 }
    118
    -
    119 void push_on_destroy(const entity_type entt) {
    -
    120 if(std::apply([entt, pos = len](auto *cpool, auto *...other) { return cpool->contains(entt) && !(cpool->index(entt) < pos) && (other->contains(entt) && ...); }, pools)
    -
    121 && std::apply([entt](auto *...cpool) { return (0u + ... + cpool->contains(entt)) == 1u; }, filter)) {
    -
    122 swap_elements(len++, entt);
    +
    119 void push_on_destroy(const entity_type entt) {
    +
    120 if(std::apply([entt, pos = len](auto *cpool, auto *...other) { return cpool->contains(entt) && !(cpool->index(entt) < pos) && (other->contains(entt) && ...); }, pools)
    +
    121 && std::apply([entt](auto *...cpool) { return (0u + ... + cpool->contains(entt)) == 1u; }, filter)) {
    +
    122 swap_elements(len++, entt);
    123 }
    124 }
    125
    -
    126 void remove_if(const entity_type entt) {
    -
    127 if(pools[0u]->contains(entt) && (pools[0u]->index(entt) < len)) {
    -
    128 swap_elements(--len, entt);
    +
    126 void remove_if(const entity_type entt) {
    +
    127 if(pools[0u]->contains(entt) && (pools[0u]->index(entt) < len)) {
    +
    128 swap_elements(--len, entt);
    129 }
    130 }
    131
    132 void common_setup() {
    133 // we cannot iterate backwards because we want to leave behind valid entities in case of owned types
    -
    134 for(auto first = pools[0u]->rbegin(), last = first + pools[0u]->size(); first != last; ++first) {
    +
    134 for(auto first = pools[0u]->rbegin(), last = first + static_cast<typename decltype(pools)::difference_type>(pools[0u]->size()); first != last; ++first) {
    135 push_on_construct(*first);
    136 }
    137 }
    @@ -263,623 +271,628 @@ $(function() { codefold.init(0); });
    179};
    180
    181template<typename Type, std::size_t Get, std::size_t Exclude>
    -
    182class group_handler<Type, 0u, Get, Exclude> final: public group_descriptor {
    +
    182class group_handler<Type, 0u, Get, Exclude> final: public group_descriptor {
    183 using entity_type = typename Type::entity_type;
    184
    -
    185 void push_on_construct(const entity_type entt) {
    -
    186 if(!elem.contains(entt)
    -
    187 && std::apply([entt](auto *...cpool) { return (cpool->contains(entt) && ...); }, pools)
    -
    188 && std::apply([entt](auto *...cpool) { return (!cpool->contains(entt) && ...); }, filter)) {
    -
    189 elem.push(entt);
    +
    185 void push_on_construct(const entity_type entt) {
    +
    186 if(!elem.contains(entt)
    +
    187 && std::apply([entt](auto *...cpool) { return (cpool->contains(entt) && ...); }, pools)
    +
    188 && std::apply([entt](auto *...cpool) { return (!cpool->contains(entt) && ...); }, filter)) {
    +
    189 elem.push(entt);
    190 }
    191 }
    192
    -
    193 void push_on_destroy(const entity_type entt) {
    -
    194 if(!elem.contains(entt)
    -
    195 && std::apply([entt](auto *...cpool) { return (cpool->contains(entt) && ...); }, pools)
    -
    196 && std::apply([entt](auto *...cpool) { return (0u + ... + cpool->contains(entt)) == 1u; }, filter)) {
    -
    197 elem.push(entt);
    +
    193 void push_on_destroy(const entity_type entt) {
    +
    194 if(!elem.contains(entt)
    +
    195 && std::apply([entt](auto *...cpool) { return (cpool->contains(entt) && ...); }, pools)
    +
    196 && std::apply([entt](auto *...cpool) { return (0u + ... + cpool->contains(entt)) == 1u; }, filter)) {
    +
    197 elem.push(entt);
    198 }
    199 }
    200
    -
    201 void remove_if(const entity_type entt) {
    -
    202 elem.remove(entt);
    +
    201 void remove_if(const entity_type entt) {
    +
    202 elem.remove(entt);
    203 }
    204
    -
    205 void common_setup() {
    -
    206 for(const auto entity: *pools[0u]) {
    - +
    205 void common_setup() {
    +
    206 for(const auto entity: *pools[0u]) {
    +
    207 push_on_construct(entity);
    208 }
    209 }
    210
    211public:
    212 using common_type = Type;
    213
    -
    214 template<typename Allocator, typename... GType, typename... EType>
    -
    215 group_handler(const Allocator &allocator, std::tuple<GType &...> gpool, std::tuple<EType &...> epool)
    -
    216 : pools{std::apply([](auto &&...cpool) { return std::array<common_type *, Get>{&cpool...}; }, gpool)},
    -
    217 filter{std::apply([](auto &&...cpool) { return std::array<common_type *, Exclude>{&cpool...}; }, epool)},
    -
    218 elem{allocator} {
    -
    219 std::apply([this](auto &...cpool) { ((cpool.on_construct().template connect<&group_handler::push_on_construct>(*this), cpool.on_destroy().template connect<&group_handler::remove_if>(*this)), ...); }, gpool);
    -
    220 std::apply([this](auto &...cpool) { ((cpool.on_construct().template connect<&group_handler::remove_if>(*this), cpool.on_destroy().template connect<&group_handler::push_on_destroy>(*this)), ...); }, epool);
    -
    221 common_setup();
    +
    214 template<typename Allocator, typename... GType, typename... EType>
    +
    215 group_handler(const Allocator &allocator, std::tuple<GType &...> gpool, std::tuple<EType &...> epool)
    +
    216 : pools{std::apply([](auto &&...cpool) { return std::array<common_type *, Get>{&cpool...}; }, gpool)},
    +
    217 filter{std::apply([](auto &&...cpool) { return std::array<common_type *, Exclude>{&cpool...}; }, epool)},
    +
    218 elem{allocator} {
    +
    219 std::apply([this](auto &...cpool) { ((cpool.on_construct().template connect<&group_handler::push_on_construct>(*this), cpool.on_destroy().template connect<&group_handler::remove_if>(*this)), ...); }, gpool);
    +
    220 std::apply([this](auto &...cpool) { ((cpool.on_construct().template connect<&group_handler::remove_if>(*this), cpool.on_destroy().template connect<&group_handler::push_on_destroy>(*this)), ...); }, epool);
    +
    221 common_setup();
    222 }
    223
    -
    224 [[nodiscard]] common_type &handle() noexcept {
    -
    225 return elem;
    +
    224 [[nodiscard]] common_type &handle() noexcept {
    +
    225 return elem;
    226 }
    227
    -
    228 [[nodiscard]] const common_type &handle() const noexcept {
    -
    229 return elem;
    +
    228 [[nodiscard]] const common_type &handle() const noexcept {
    +
    229 return elem;
    230 }
    231
    232 template<std::size_t Index>
    -
    233 [[nodiscard]] common_type *storage() const noexcept {
    -
    234 if constexpr(Index < Get) {
    -
    235 return pools[Index];
    +
    233 [[nodiscard]] common_type *storage() const noexcept {
    +
    234 if constexpr(Index < Get) {
    +
    235 return pools[Index];
    236 } else {
    -
    237 return filter[Index - Get];
    +
    237 return filter[Index - Get];
    238 }
    239 }
    240
    241private:
    242 std::array<common_type *, Get> pools;
    243 std::array<common_type *, Exclude> filter;
    -
    244 common_type elem;
    +
    244 common_type elem;
    245};
    246
    247} // namespace internal
    +
    249
    256template<typename, typename, typename>
    257class basic_group;
    -
    258
    +
    258
    281template<typename... Get, typename... Exclude>
    -
    282class basic_group<owned_t<>, get_t<Get...>, exclude_t<Exclude...>> {
    +
    282class basic_group<owned_t<>, get_t<Get...>, exclude_t<Exclude...>> {
    283 using base_type = std::common_type_t<typename Get::base_type..., typename Exclude::base_type...>;
    284 using underlying_type = typename base_type::entity_type;
    285
    286 template<typename Type>
    -
    287 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Get::element_type..., typename Exclude::element_type...>>;
    +
    287 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Get::element_type..., typename Exclude::element_type...>>;
    288
    289 template<std::size_t... Index>
    290 [[nodiscard]] auto pools_for(std::index_sequence<Index...>) const noexcept {
    291 using return_type = std::tuple<Get *...>;
    -
    292 return descriptor ? return_type{static_cast<Get *>(descriptor->template storage<Index>())...} : return_type{};
    +
    292 return descriptor ? return_type{static_cast<Get *>(descriptor->template storage<Index>())...} : return_type{};
    293 }
    294
    295public:
    297 using entity_type = underlying_type;
    299 using size_type = std::size_t;
    -
    301 using common_type = base_type;
    -
    303 using iterator = typename common_type::iterator;
    -
    305 using reverse_iterator = typename common_type::reverse_iterator;
    - -
    309 using handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>;
    -
    310
    -
    -
    315 static id_type group_id() noexcept {
    - -
    317 }
    +
    301 using difference_type = std::ptrdiff_t;
    +
    303 using common_type = base_type;
    +
    305 using iterator = typename common_type::iterator;
    +
    307 using reverse_iterator = typename common_type::reverse_iterator;
    + +
    311 using handler = internal::group_handler<common_type, 0u, sizeof...(Get), sizeof...(Exclude)>;
    +
    312
    + -
    318
    -
    -
    320 basic_group() noexcept
    -
    321 : descriptor{} {}
    +
    320
    +
    +
    322 basic_group() noexcept
    +
    323 : descriptor{} {}
    -
    322
    -
    -
    327 basic_group(handler &ref) noexcept
    -
    328 : descriptor{&ref} {}
    +
    324
    +
    + +
    330 : descriptor{&ref} {}
    -
    329
    -
    -
    334 [[nodiscard]] const common_type &handle() const noexcept {
    -
    335 return descriptor->handle();
    -
    336 }
    +
    331
    +
    +
    336 [[nodiscard]] const common_type &handle() const noexcept {
    +
    337 return descriptor->handle();
    +
    338 }
    -
    337
    -
    343 template<typename Type>
    -
    -
    344 [[nodiscard]] auto *storage() const noexcept {
    -
    345 return storage<index_of<Type>>();
    -
    346 }
    +
    339
    +
    345 template<typename Type>
    +
    +
    346 [[nodiscard]] auto *storage() const noexcept {
    +
    347 return storage<index_of<Type>>();
    +
    348 }
    -
    347
    -
    353 template<std::size_t Index>
    -
    -
    354 [[nodiscard]] auto *storage() const noexcept {
    -
    355 using type = type_list_element_t<Index, type_list<Get..., Exclude...>>;
    -
    356 return *this ? static_cast<type *>(descriptor->template storage<Index>()) : nullptr;
    -
    357 }
    +
    349
    +
    355 template<std::size_t Index>
    +
    +
    356 [[nodiscard]] auto *storage() const noexcept {
    +
    357 using type = type_list_element_t<Index, type_list<Get..., Exclude...>>;
    +
    358 return *this ? static_cast<type *>(descriptor->template storage<Index>()) : nullptr;
    +
    359 }
    -
    358
    -
    -
    363 [[nodiscard]] size_type size() const noexcept {
    -
    364 return *this ? handle().size() : size_type{};
    -
    365 }
    +
    360
    +
    +
    365 [[nodiscard]] size_type size() const noexcept {
    +
    366 return *this ? handle().size() : size_type{};
    +
    367 }
    -
    366
    -
    -
    372 [[nodiscard]] size_type capacity() const noexcept {
    -
    373 return *this ? handle().capacity() : size_type{};
    -
    374 }
    +
    368
    +
    +
    374 [[nodiscard]] size_type capacity() const noexcept {
    +
    375 return *this ? handle().capacity() : size_type{};
    +
    376 }
    -
    375
    -
    - -
    378 if(*this) {
    -
    379 descriptor->handle().shrink_to_fit();
    -
    380 }
    -
    381 }
    +
    377
    +
    + +
    380 if(*this) {
    +
    381 descriptor->handle().shrink_to_fit();
    +
    382 }
    +
    383 }
    -
    382
    -
    -
    387 [[nodiscard]] bool empty() const noexcept {
    -
    388 return !*this || handle().empty();
    -
    389 }
    +
    384
    +
    +
    389 [[nodiscard]] bool empty() const noexcept {
    +
    390 return !*this || handle().empty();
    +
    391 }
    -
    390
    -
    -
    398 [[nodiscard]] iterator begin() const noexcept {
    -
    399 return *this ? handle().begin() : iterator{};
    -
    400 }
    +
    392
    +
    +
    400 [[nodiscard]] iterator begin() const noexcept {
    +
    401 return *this ? handle().begin() : iterator{};
    +
    402 }
    -
    401
    -
    -
    407 [[nodiscard]] iterator end() const noexcept {
    -
    408 return *this ? handle().end() : iterator{};
    -
    409 }
    +
    403
    +
    +
    409 [[nodiscard]] iterator end() const noexcept {
    +
    410 return *this ? handle().end() : iterator{};
    +
    411 }
    -
    410
    -
    -
    418 [[nodiscard]] reverse_iterator rbegin() const noexcept {
    -
    419 return *this ? handle().rbegin() : reverse_iterator{};
    -
    420 }
    +
    412
    +
    +
    420 [[nodiscard]] reverse_iterator rbegin() const noexcept {
    +
    421 return *this ? handle().rbegin() : reverse_iterator{};
    +
    422 }
    -
    421
    -
    -
    428 [[nodiscard]] reverse_iterator rend() const noexcept {
    -
    429 return *this ? handle().rend() : reverse_iterator{};
    -
    430 }
    +
    423
    +
    +
    430 [[nodiscard]] reverse_iterator rend() const noexcept {
    +
    431 return *this ? handle().rend() : reverse_iterator{};
    +
    432 }
    -
    431
    -
    -
    437 [[nodiscard]] entity_type front() const noexcept {
    -
    438 const auto it = begin();
    -
    439 return it != end() ? *it : null;
    -
    440 }
    +
    433
    +
    +
    439 [[nodiscard]] entity_type front() const noexcept {
    +
    440 const auto it = begin();
    +
    441 return it != end() ? *it : null;
    +
    442 }
    -
    441
    -
    -
    447 [[nodiscard]] entity_type back() const noexcept {
    -
    448 const auto it = rbegin();
    -
    449 return it != rend() ? *it : null;
    -
    450 }
    +
    443
    +
    +
    449 [[nodiscard]] entity_type back() const noexcept {
    +
    450 const auto it = rbegin();
    +
    451 return it != rend() ? *it : null;
    +
    452 }
    -
    451
    -
    -
    458 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    -
    459 return *this ? handle().find(entt) : iterator{};
    -
    460 }
    +
    453
    +
    +
    460 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    +
    461 return *this ? handle().find(entt) : iterator{};
    +
    462 }
    -
    461
    -
    -
    467 [[nodiscard]] entity_type operator[](const size_type pos) const {
    -
    468 return begin()[pos];
    -
    469 }
    +
    463
    +
    +
    469 [[nodiscard]] entity_type operator[](const size_type pos) const {
    +
    470 return begin()[static_cast<difference_type>(pos)];
    +
    471 }
    -
    470
    -
    -
    475 [[nodiscard]] explicit operator bool() const noexcept {
    -
    476 return descriptor != nullptr;
    -
    477 }
    +
    472
    +
    +
    477 [[nodiscard]] explicit operator bool() const noexcept {
    +
    478 return descriptor != nullptr;
    +
    479 }
    -
    478
    -
    -
    484 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    -
    485 return *this && handle().contains(entt);
    -
    486 }
    +
    480
    +
    +
    486 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    +
    487 return *this && handle().contains(entt);
    +
    488 }
    -
    487
    -
    495 template<typename Type, typename... Other>
    -
    -
    496 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    497 return get<index_of<Type>, index_of<Other>...>(entt);
    -
    498 }
    +
    489
    +
    497 template<typename Type, typename... Other>
    +
    +
    498 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    499 return get<index_of<Type>, index_of<Other>...>(entt);
    +
    500 }
    -
    499
    -
    506 template<std::size_t... Index>
    -
    -
    507 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    508 const auto cpools = pools_for(std::index_sequence_for<Get...>{});
    -
    509
    -
    510 if constexpr(sizeof...(Index) == 0) {
    -
    511 return std::apply([entt](auto *...curr) { return std::tuple_cat(curr->get_as_tuple(entt)...); }, cpools);
    -
    512 } else if constexpr(sizeof...(Index) == 1) {
    -
    513 return (std::get<Index>(cpools)->get(entt), ...);
    -
    514 } else {
    -
    515 return std::tuple_cat(std::get<Index>(cpools)->get_as_tuple(entt)...);
    -
    516 }
    -
    517 }
    +
    501
    +
    508 template<std::size_t... Index>
    +
    +
    509 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    510 const auto cpools = pools_for(std::index_sequence_for<Get...>{});
    +
    511
    +
    512 if constexpr(sizeof...(Index) == 0) {
    +
    513 return std::apply([entt](auto *...curr) { return std::tuple_cat(curr->get_as_tuple(entt)...); }, cpools);
    +
    514 } else if constexpr(sizeof...(Index) == 1) {
    +
    515 return (std::get<Index>(cpools)->get(entt), ...);
    +
    516 } else {
    +
    517 return std::tuple_cat(std::get<Index>(cpools)->get_as_tuple(entt)...);
    +
    518 }
    +
    519 }
    -
    518
    -
    541 template<typename Func>
    -
    -
    542 void each(Func func) const {
    -
    543 for(const auto entt: *this) {
    -
    544 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_group>().get({})))>) {
    -
    545 std::apply(func, std::tuple_cat(std::make_tuple(entt), get(entt)));
    -
    546 } else {
    -
    547 std::apply(func, get(entt));
    -
    548 }
    -
    549 }
    -
    550 }
    +
    520
    +
    543 template<typename Func>
    +
    +
    544 void each(Func func) const {
    +
    545 for(const auto entt: *this) {
    +
    546 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_group>().get({})))>) {
    +
    547 std::apply(func, std::tuple_cat(std::make_tuple(entt), get(entt)));
    +
    548 } else {
    +
    549 std::apply(func, get(entt));
    +
    550 }
    +
    551 }
    +
    552 }
    -
    551
    -
    -
    565 [[nodiscard]] iterable each() const noexcept {
    -
    566 const auto cpools = pools_for(std::index_sequence_for<Get...>{});
    -
    567 return iterable{{begin(), cpools}, {end(), cpools}};
    -
    568 }
    +
    553
    +
    +
    567 [[nodiscard]] iterable each() const noexcept {
    +
    568 const auto cpools = pools_for(std::index_sequence_for<Get...>{});
    +
    569 return iterable{{begin(), cpools}, {end(), cpools}};
    +
    570 }
    -
    569
    -
    603 template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    604 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    -
    605 sort<index_of<Type>, index_of<Other>...>(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    -
    606 }
    +
    571
    +
    605 template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    606 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    +
    607 sort<index_of<Type>, index_of<Other>...>(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    +
    608 }
    -
    607
    -
    621 template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    622 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    -
    623 if(*this) {
    -
    624 if constexpr(sizeof...(Index) == 0) {
    -
    625 static_assert(std::is_invocable_v<Compare, const entity_type, const entity_type>, "Invalid comparison function");
    -
    626 descriptor->handle().sort(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    -
    627 } else {
    -
    628 auto comp = [&compare, cpools = pools_for(std::index_sequence_for<Get...>{})](const entity_type lhs, const entity_type rhs) {
    -
    629 if constexpr(sizeof...(Index) == 1) {
    -
    630 return compare((std::get<Index>(cpools)->get(lhs), ...), (std::get<Index>(cpools)->get(rhs), ...));
    -
    631 } else {
    -
    632 return compare(std::forward_as_tuple(std::get<Index>(cpools)->get(lhs)...), std::forward_as_tuple(std::get<Index>(cpools)->get(rhs)...));
    -
    633 }
    -
    634 };
    -
    635
    -
    636 descriptor->handle().sort(std::move(comp), std::move(algo), std::forward<Args>(args)...);
    -
    637 }
    -
    638 }
    -
    639 }
    +
    609
    +
    623 template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    624 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    +
    625 if(*this) {
    +
    626 if constexpr(sizeof...(Index) == 0) {
    +
    627 static_assert(std::is_invocable_v<Compare, const entity_type, const entity_type>, "Invalid comparison function");
    +
    628 descriptor->handle().sort(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    +
    629 } else {
    +
    630 auto comp = [&compare, cpools = pools_for(std::index_sequence_for<Get...>{})](const entity_type lhs, const entity_type rhs) {
    +
    631 if constexpr(sizeof...(Index) == 1) {
    +
    632 return compare((std::get<Index>(cpools)->get(lhs), ...), (std::get<Index>(cpools)->get(rhs), ...));
    +
    633 } else {
    +
    634 return compare(std::forward_as_tuple(std::get<Index>(cpools)->get(lhs)...), std::forward_as_tuple(std::get<Index>(cpools)->get(rhs)...));
    +
    635 }
    +
    636 };
    +
    637
    +
    638 descriptor->handle().sort(std::move(comp), std::move(algo), std::forward<Args>(args)...);
    +
    639 }
    +
    640 }
    +
    641 }
    -
    640
    -
    651 template<typename It>
    -
    -
    652 void sort_as(It first, It last) const {
    -
    653 if(*this) {
    -
    654 descriptor->handle().sort_as(first, last);
    -
    655 }
    -
    656 }
    +
    642
    +
    653 template<typename It>
    +
    +
    654 void sort_as(It first, It last) const {
    +
    655 if(*this) {
    +
    656 descriptor->handle().sort_as(first, last);
    +
    657 }
    +
    658 }
    -
    657
    -
    658private:
    -
    659 handler *descriptor;
    -
    660};
    +
    659
    +
    660private:
    +
    661 handler *descriptor;
    +
    662};
    -
    661
    -
    693template<typename... Owned, typename... Get, typename... Exclude>
    -
    -
    694class basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>> {
    -
    695 static_assert(((Owned::storage_policy != deletion_policy::in_place) && ...), "Groups do not support in-place delete");
    -
    696
    -
    697 using base_type = std::common_type_t<typename Owned::base_type..., typename Get::base_type..., typename Exclude::base_type...>;
    -
    698 using underlying_type = typename base_type::entity_type;
    -
    699
    -
    700 template<typename Type>
    -
    701 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Owned::element_type..., typename Get::element_type..., typename Exclude::element_type...>>;
    -
    702
    -
    703 template<std::size_t... Index, std::size_t... Other>
    -
    704 [[nodiscard]] auto pools_for(std::index_sequence<Index...>, std::index_sequence<Other...>) const noexcept {
    -
    705 using return_type = std::tuple<Owned *..., Get *...>;
    -
    706 return descriptor ? return_type{static_cast<Owned *>(descriptor->template storage<Index>())..., static_cast<Get *>(descriptor->template storage<sizeof...(Owned) + Other>())...} : return_type{};
    -
    707 }
    -
    708
    -
    709public:
    -
    711 using entity_type = underlying_type;
    -
    713 using size_type = std::size_t;
    -
    715 using common_type = base_type;
    -
    717 using iterator = typename common_type::iterator;
    -
    719 using reverse_iterator = typename common_type::reverse_iterator;
    -
    721 using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>;
    -
    723 using handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>;
    -
    724
    -
    -
    729 static id_type group_id() noexcept {
    - -
    731 }
    +
    663
    +
    695template<typename... Owned, typename... Get, typename... Exclude>
    +
    +
    696class basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>> {
    +
    697 static_assert(((Owned::storage_policy != deletion_policy::in_place) && ...), "Groups do not support in-place delete");
    +
    698
    +
    699 using base_type = std::common_type_t<typename Owned::base_type..., typename Get::base_type..., typename Exclude::base_type...>;
    +
    700 using underlying_type = typename base_type::entity_type;
    +
    701
    +
    702 template<typename Type>
    +
    703 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Owned::element_type..., typename Get::element_type..., typename Exclude::element_type...>>;
    +
    704
    +
    705 template<std::size_t... Index, std::size_t... Other>
    +
    706 [[nodiscard]] auto pools_for(std::index_sequence<Index...>, std::index_sequence<Other...>) const noexcept {
    +
    707 using return_type = std::tuple<Owned *..., Get *...>;
    +
    708 return descriptor ? return_type{static_cast<Owned *>(descriptor->template storage<Index>())..., static_cast<Get *>(descriptor->template storage<sizeof...(Owned) + Other>())...} : return_type{};
    +
    709 }
    +
    710
    +
    711public:
    +
    713 using entity_type = underlying_type;
    +
    715 using size_type = std::size_t;
    +
    717 using difference_type = std::ptrdiff_t;
    +
    719 using common_type = base_type;
    +
    721 using iterator = typename common_type::iterator;
    +
    723 using reverse_iterator = typename common_type::reverse_iterator;
    +
    725 using iterable = iterable_adaptor<internal::extended_group_iterator<iterator, owned_t<Owned...>, get_t<Get...>>>;
    +
    727 using handler = internal::group_handler<common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)>;
    +
    728
    + -
    732
    -
    -
    734 basic_group() noexcept
    -
    735 : descriptor{} {}
    +
    736
    +
    +
    738 basic_group() noexcept
    +
    739 : descriptor{} {}
    -
    736
    -
    -
    741 basic_group(handler &ref) noexcept
    -
    742 : descriptor{&ref} {}
    +
    740
    +
    + +
    746 : descriptor{&ref} {}
    -
    743
    -
    -
    748 [[nodiscard]] const common_type &handle() const noexcept {
    -
    749 return *storage<0>();
    -
    750 }
    +
    747
    +
    +
    752 [[nodiscard]] const common_type &handle() const noexcept {
    +
    753 return *storage<0>();
    +
    754 }
    -
    751
    -
    757 template<typename Type>
    -
    -
    758 [[nodiscard]] auto *storage() const noexcept {
    -
    759 return storage<index_of<Type>>();
    -
    760 }
    +
    755
    +
    761 template<typename Type>
    +
    +
    762 [[nodiscard]] auto *storage() const noexcept {
    +
    763 return storage<index_of<Type>>();
    +
    764 }
    -
    761
    -
    767 template<std::size_t Index>
    -
    -
    768 [[nodiscard]] auto *storage() const noexcept {
    -
    769 using type = type_list_element_t<Index, type_list<Owned..., Get..., Exclude...>>;
    -
    770 return *this ? static_cast<type *>(descriptor->template storage<Index>()) : nullptr;
    -
    771 }
    +
    765
    +
    771 template<std::size_t Index>
    +
    +
    772 [[nodiscard]] auto *storage() const noexcept {
    +
    773 using type = type_list_element_t<Index, type_list<Owned..., Get..., Exclude...>>;
    +
    774 return *this ? static_cast<type *>(descriptor->template storage<Index>()) : nullptr;
    +
    775 }
    -
    772
    -
    -
    777 [[nodiscard]] size_type size() const noexcept {
    -
    778 return *this ? descriptor->length() : size_type{};
    -
    779 }
    +
    776
    +
    +
    781 [[nodiscard]] size_type size() const noexcept {
    +
    782 return *this ? descriptor->length() : size_type{};
    +
    783 }
    -
    780
    -
    -
    785 [[nodiscard]] bool empty() const noexcept {
    -
    786 return !*this || !descriptor->length();
    -
    787 }
    +
    784
    +
    +
    789 [[nodiscard]] bool empty() const noexcept {
    +
    790 return !*this || !descriptor->length();
    +
    791 }
    -
    788
    -
    -
    796 [[nodiscard]] iterator begin() const noexcept {
    -
    797 return *this ? (handle().end() - descriptor->length()) : iterator{};
    -
    798 }
    +
    792
    +
    +
    800 [[nodiscard]] iterator begin() const noexcept {
    +
    801 return *this ? (handle().end() - static_cast<difference_type>(descriptor->length())) : iterator{};
    +
    802 }
    -
    799
    -
    -
    805 [[nodiscard]] iterator end() const noexcept {
    -
    806 return *this ? handle().end() : iterator{};
    -
    807 }
    +
    803
    +
    +
    809 [[nodiscard]] iterator end() const noexcept {
    +
    810 return *this ? handle().end() : iterator{};
    +
    811 }
    -
    808
    -
    -
    816 [[nodiscard]] reverse_iterator rbegin() const noexcept {
    -
    817 return *this ? handle().rbegin() : reverse_iterator{};
    -
    818 }
    +
    812
    +
    +
    820 [[nodiscard]] reverse_iterator rbegin() const noexcept {
    +
    821 return *this ? handle().rbegin() : reverse_iterator{};
    +
    822 }
    -
    819
    -
    -
    826 [[nodiscard]] reverse_iterator rend() const noexcept {
    -
    827 return *this ? (handle().rbegin() + descriptor->length()) : reverse_iterator{};
    -
    828 }
    +
    823
    +
    +
    830 [[nodiscard]] reverse_iterator rend() const noexcept {
    +
    831 return *this ? (handle().rbegin() + static_cast<difference_type>(descriptor->length())) : reverse_iterator{};
    +
    832 }
    -
    829
    -
    -
    835 [[nodiscard]] entity_type front() const noexcept {
    -
    836 const auto it = begin();
    -
    837 return it != end() ? *it : null;
    -
    838 }
    +
    833
    +
    +
    839 [[nodiscard]] entity_type front() const noexcept {
    +
    840 const auto it = begin();
    +
    841 return it != end() ? *it : null;
    +
    842 }
    -
    839
    -
    -
    845 [[nodiscard]] entity_type back() const noexcept {
    -
    846 const auto it = rbegin();
    -
    847 return it != rend() ? *it : null;
    -
    848 }
    +
    843
    +
    +
    849 [[nodiscard]] entity_type back() const noexcept {
    +
    850 const auto it = rbegin();
    +
    851 return it != rend() ? *it : null;
    +
    852 }
    -
    849
    -
    -
    856 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    -
    857 const auto it = *this ? handle().find(entt) : iterator{};
    -
    858 return it >= begin() ? it : iterator{};
    -
    859 }
    +
    853
    +
    +
    860 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    +
    861 const auto it = *this ? handle().find(entt) : iterator{};
    +
    862 return it >= begin() ? it : iterator{};
    +
    863 }
    -
    860
    -
    -
    866 [[nodiscard]] entity_type operator[](const size_type pos) const {
    -
    867 return begin()[pos];
    -
    868 }
    +
    864
    +
    +
    870 [[nodiscard]] entity_type operator[](const size_type pos) const {
    +
    871 return begin()[static_cast<difference_type>(pos)];
    +
    872 }
    -
    869
    -
    -
    874 [[nodiscard]] explicit operator bool() const noexcept {
    -
    875 return descriptor != nullptr;
    -
    876 }
    +
    873
    +
    +
    878 [[nodiscard]] explicit operator bool() const noexcept {
    +
    879 return descriptor != nullptr;
    +
    880 }
    -
    877
    -
    -
    883 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    -
    884 return *this && handle().contains(entt) && (handle().index(entt) < (descriptor->length()));
    -
    885 }
    +
    881
    +
    +
    887 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    +
    888 return *this && handle().contains(entt) && (handle().index(entt) < (descriptor->length()));
    +
    889 }
    -
    886
    -
    894 template<typename Type, typename... Other>
    -
    -
    895 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    896 return get<index_of<Type>, index_of<Other>...>(entt);
    -
    897 }
    +
    890
    +
    898 template<typename Type, typename... Other>
    +
    +
    899 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    900 return get<index_of<Type>, index_of<Other>...>(entt);
    +
    901 }
    -
    898
    -
    905 template<std::size_t... Index>
    -
    -
    906 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    907 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    -
    908
    -
    909 if constexpr(sizeof...(Index) == 0) {
    -
    910 return std::apply([entt](auto *...curr) { return std::tuple_cat(curr->get_as_tuple(entt)...); }, cpools);
    -
    911 } else if constexpr(sizeof...(Index) == 1) {
    -
    912 return (std::get<Index>(cpools)->get(entt), ...);
    -
    913 } else {
    -
    914 return std::tuple_cat(std::get<Index>(cpools)->get_as_tuple(entt)...);
    -
    915 }
    -
    916 }
    +
    902
    +
    909 template<std::size_t... Index>
    +
    +
    910 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    911 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    +
    912
    +
    913 if constexpr(sizeof...(Index) == 0) {
    +
    914 return std::apply([entt](auto *...curr) { return std::tuple_cat(curr->get_as_tuple(entt)...); }, cpools);
    +
    915 } else if constexpr(sizeof...(Index) == 1) {
    +
    916 return (std::get<Index>(cpools)->get(entt), ...);
    +
    917 } else {
    +
    918 return std::tuple_cat(std::get<Index>(cpools)->get_as_tuple(entt)...);
    +
    919 }
    +
    920 }
    -
    917
    -
    940 template<typename Func>
    -
    -
    941 void each(Func func) const {
    -
    942 for(auto args: each()) {
    -
    943 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_group>().get({})))>) {
    -
    944 std::apply(func, args);
    -
    945 } else {
    -
    946 std::apply([&func](auto, auto &&...less) { func(std::forward<decltype(less)>(less)...); }, args);
    -
    947 }
    -
    948 }
    -
    949 }
    +
    921
    +
    944 template<typename Func>
    +
    +
    945 void each(Func func) const {
    +
    946 for(auto args: each()) {
    +
    947 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_group>().get({})))>) {
    +
    948 std::apply(func, args);
    +
    949 } else {
    +
    950 std::apply([&func](auto, auto &&...less) { func(std::forward<decltype(less)>(less)...); }, args);
    +
    951 }
    +
    952 }
    +
    953 }
    -
    950
    -
    -
    964 [[nodiscard]] iterable each() const noexcept {
    -
    965 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    -
    966 return iterable{{begin(), cpools}, {end(), cpools}};
    -
    967 }
    +
    954
    +
    +
    968 [[nodiscard]] iterable each() const noexcept {
    +
    969 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    +
    970 return iterable{{begin(), cpools}, {end(), cpools}};
    +
    971 }
    -
    968
    -
    1003 template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    1004 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) const {
    -
    1005 sort<index_of<Type>, index_of<Other>...>(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    -
    1006 }
    +
    972
    +
    1007 template<typename Type, typename... Other, typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    1008 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) const {
    +
    1009 sort<index_of<Type>, index_of<Other>...>(std::move(compare), std::move(algo), std::forward<Args>(args)...);
    +
    1010 }
    -
    1007
    -
    1021 template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    1022 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) const {
    -
    1023 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    -
    1024
    -
    1025 if constexpr(sizeof...(Index) == 0) {
    -
    1026 static_assert(std::is_invocable_v<Compare, const entity_type, const entity_type>, "Invalid comparison function");
    -
    1027 storage<0>()->sort_n(descriptor->length(), std::move(compare), std::move(algo), std::forward<Args>(args)...);
    -
    1028 } else {
    -
    1029 auto comp = [&compare, &cpools](const entity_type lhs, const entity_type rhs) {
    -
    1030 if constexpr(sizeof...(Index) == 1) {
    -
    1031 return compare((std::get<Index>(cpools)->get(lhs), ...), (std::get<Index>(cpools)->get(rhs), ...));
    -
    1032 } else {
    -
    1033 return compare(std::forward_as_tuple(std::get<Index>(cpools)->get(lhs)...), std::forward_as_tuple(std::get<Index>(cpools)->get(rhs)...));
    -
    1034 }
    -
    1035 };
    -
    1036
    -
    1037 storage<0>()->sort_n(descriptor->length(), std::move(comp), std::move(algo), std::forward<Args>(args)...);
    -
    1038 }
    -
    1039
    -
    1040 auto cb = [this](auto *head, auto *...other) {
    -
    1041 for(auto next = descriptor->length(); next; --next) {
    -
    1042 const auto pos = next - 1;
    -
    1043 [[maybe_unused]] const auto entt = head->data()[pos];
    -
    1044 (other->swap_elements(other->data()[pos], entt), ...);
    -
    1045 }
    -
    1046 };
    -
    1047
    -
    1048 std::apply(cb, cpools);
    -
    1049 }
    -
    -
    1050
    -
    1051private:
    -
    1052 handler *descriptor;
    -
    1053};
    +
    1011
    +
    1025 template<std::size_t... Index, typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    1026 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) const {
    +
    1027 const auto cpools = pools_for(std::index_sequence_for<Owned...>{}, std::index_sequence_for<Get...>{});
    +
    1028
    +
    1029 if constexpr(sizeof...(Index) == 0) {
    +
    1030 static_assert(std::is_invocable_v<Compare, const entity_type, const entity_type>, "Invalid comparison function");
    +
    1031 storage<0>()->sort_n(descriptor->length(), std::move(compare), std::move(algo), std::forward<Args>(args)...);
    +
    1032 } else {
    +
    1033 auto comp = [&compare, &cpools](const entity_type lhs, const entity_type rhs) {
    +
    1034 if constexpr(sizeof...(Index) == 1) {
    +
    1035 return compare((std::get<Index>(cpools)->get(lhs), ...), (std::get<Index>(cpools)->get(rhs), ...));
    +
    1036 } else {
    +
    1037 return compare(std::forward_as_tuple(std::get<Index>(cpools)->get(lhs)...), std::forward_as_tuple(std::get<Index>(cpools)->get(rhs)...));
    +
    1038 }
    +
    1039 };
    +
    1040
    +
    1041 storage<0>()->sort_n(descriptor->length(), std::move(comp), std::move(algo), std::forward<Args>(args)...);
    +
    1042 }
    +
    1043
    +
    1044 auto cb = [this](auto *head, auto *...other) {
    +
    1045 for(auto next = descriptor->length(); next; --next) {
    +
    1046 const auto pos = next - 1;
    +
    1047 [[maybe_unused]] const auto entt = head->data()[pos];
    +
    1048 (other->swap_elements(other->data()[pos], entt), ...);
    +
    1049 }
    +
    1050 };
    +
    1051
    +
    1052 std::apply(cb, cpools);
    +
    1053 }
    1054
    -
    1055} // namespace entt
    -
    1056
    -
    1057#endif
    -
    const common_type & handle() const noexcept
    Returns the leading storage of a group.
    Definition group.hpp:748
    -
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition group.hpp:941
    -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:895
    -
    basic_group() noexcept
    Default constructor to use to create empty, invalid groups.
    Definition group.hpp:734
    -
    entity_type back() const noexcept
    Returns the last entity of the group, if any.
    Definition group.hpp:845
    -
    iterator begin() const noexcept
    Returns an iterator to the first entity of the group.
    Definition group.hpp:796
    - - -
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition group.hpp:758
    -
    internal::group_handler< common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)> handler
    Group handler type.
    Definition group.hpp:723
    -
    typename common_type::iterator iterator
    Random access iterator type.
    Definition group.hpp:717
    -
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition group.hpp:856
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a group contains an entity.
    Definition group.hpp:883
    -
    entity_type front() const noexcept
    Returns the first entity of the group, if any.
    Definition group.hpp:835
    -
    basic_group(handler &ref) noexcept
    Constructs a group from a set of storage classes.
    Definition group.hpp:741
    -
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the group.
    Definition group.hpp:805
    -
    typename common_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition group.hpp:719
    -
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition group.hpp:866
    -
    size_type size() const noexcept
    Returns the number of entities that that are part of the group.
    Definition group.hpp:777
    -
    iterable each() const noexcept
    Returns an iterable object to use to visit a group.
    Definition group.hpp:964
    -
    reverse_iterator rend() const noexcept
    Returns an iterator that is past the last entity of the reversed group.
    Definition group.hpp:826
    -
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args) const
    Sort a group according to the given comparison function.
    Definition group.hpp:1004
    - -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:906
    -
    reverse_iterator rbegin() const noexcept
    Returns an iterator to the first entity of the reversed group.
    Definition group.hpp:816
    - -
    bool empty() const noexcept
    Checks whether a group is empty.
    Definition group.hpp:785
    -
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args) const
    Sort a group according to the given comparison function.
    Definition group.hpp:1022
    -
    iterator begin() const noexcept
    Returns an iterator to the first entity of the group.
    Definition group.hpp:398
    -
    void sort_as(It first, It last) const
    Sort entities according to their order in a range.
    Definition group.hpp:652
    -
    static id_type group_id() noexcept
    Group opaque identifier.
    Definition group.hpp:315
    -
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition group.hpp:344
    -
    typename common_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition group.hpp:305
    -
    basic_group(handler &ref) noexcept
    Constructs a group from a set of storage classes.
    Definition group.hpp:327
    -
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition group.hpp:467
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a group contains an entity.
    Definition group.hpp:484
    -
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort a group according to the given comparison function.
    Definition group.hpp:622
    -
    reverse_iterator rbegin() const noexcept
    Returns an iterator to the first entity of the reversed group.
    Definition group.hpp:418
    -
    const common_type & handle() const noexcept
    Returns the leading storage of a group.
    Definition group.hpp:334
    -
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort a group according to the given comparison function.
    Definition group.hpp:604
    -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:496
    -
    bool empty() const noexcept
    Checks whether a group is empty.
    Definition group.hpp:387
    -
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition group.hpp:542
    -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:507
    +
    1055private:
    +
    1056 handler *descriptor;
    +
    1057};
    +
    +
    1058
    +
    1059} // namespace entt
    +
    1060
    +
    1061#endif
    +
    const common_type & handle() const noexcept
    Returns the leading storage of a group.
    Definition group.hpp:752
    +
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition group.hpp:945
    +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:899
    +
    basic_group() noexcept
    Default constructor to use to create empty, invalid groups.
    Definition group.hpp:738
    +
    entity_type back() const noexcept
    Returns the last entity of the group, if any.
    Definition group.hpp:849
    +
    iterator begin() const noexcept
    Returns an iterator to the first entity of the group.
    Definition group.hpp:800
    + + +
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition group.hpp:762
    +
    internal::group_handler< common_type, sizeof...(Owned), sizeof...(Get), sizeof...(Exclude)> handler
    Group handler type.
    Definition group.hpp:727
    +
    typename common_type::iterator iterator
    Random access iterator type.
    Definition group.hpp:721
    +
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition group.hpp:860
    +
    bool contains(const entity_type entt) const noexcept
    Checks if a group contains an entity.
    Definition group.hpp:887
    +
    entity_type front() const noexcept
    Returns the first entity of the group, if any.
    Definition group.hpp:839
    +
    basic_group(handler &ref) noexcept
    Constructs a group from a set of storage classes.
    Definition group.hpp:745
    +
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the group.
    Definition group.hpp:809
    +
    typename common_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition group.hpp:723
    +
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition group.hpp:870
    +
    size_type size() const noexcept
    Returns the number of entities that that are part of the group.
    Definition group.hpp:781
    +
    iterable each() const noexcept
    Returns an iterable object to use to visit a group.
    Definition group.hpp:968
    +
    reverse_iterator rend() const noexcept
    Returns an iterator that is past the last entity of the reversed group.
    Definition group.hpp:830
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args) const
    Sort a group according to the given comparison function.
    Definition group.hpp:1008
    + + +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:910
    +
    reverse_iterator rbegin() const noexcept
    Returns an iterator to the first entity of the reversed group.
    Definition group.hpp:820
    + +
    bool empty() const noexcept
    Checks whether a group is empty.
    Definition group.hpp:789
    +
    iterable_adaptor< internal::extended_group_iterator< iterator, owned_t< Owned... >, get_t< Get... > > > iterable
    Iterable group type.
    Definition group.hpp:725
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args) const
    Sort a group according to the given comparison function.
    Definition group.hpp:1026
    +
    iterator begin() const noexcept
    Returns an iterator to the first entity of the group.
    Definition group.hpp:400
    +
    void sort_as(It first, It last) const
    Sort entities according to their order in a range.
    Definition group.hpp:654
    +
    static id_type group_id() noexcept
    Group opaque identifier.
    Definition group.hpp:317
    +
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition group.hpp:346
    +
    typename common_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition group.hpp:307
    +
    basic_group(handler &ref) noexcept
    Constructs a group from a set of storage classes.
    Definition group.hpp:329
    +
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition group.hpp:469
    +
    bool contains(const entity_type entt) const noexcept
    Checks if a group contains an entity.
    Definition group.hpp:486
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort a group according to the given comparison function.
    Definition group.hpp:624
    +
    reverse_iterator rbegin() const noexcept
    Returns an iterator to the first entity of the reversed group.
    Definition group.hpp:420
    +
    iterable_adaptor< internal::extended_group_iterator< iterator, owned_t<>, get_t< Get... > > > iterable
    Iterable group type.
    Definition group.hpp:309
    +
    const common_type & handle() const noexcept
    Returns the leading storage of a group.
    Definition group.hpp:336
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort a group according to the given comparison function.
    Definition group.hpp:606
    +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:498
    +
    bool empty() const noexcept
    Checks whether a group is empty.
    Definition group.hpp:389
    + +
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition group.hpp:544
    +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition group.hpp:509
    -
    size_type capacity() const noexcept
    Returns the number of elements that a group has currently allocated space for.
    Definition group.hpp:372
    -
    void shrink_to_fit()
    Requests the removal of unused capacity.
    Definition group.hpp:377
    -
    entity_type front() const noexcept
    Returns the first entity of the group, if any.
    Definition group.hpp:437
    -
    reverse_iterator rend() const noexcept
    Returns an iterator that is past the last entity of the reversed group.
    Definition group.hpp:428
    -
    internal::group_handler< common_type, 0u, sizeof...(Get), sizeof...(Exclude)> handler
    Group handler type.
    Definition group.hpp:309
    +
    size_type capacity() const noexcept
    Returns the number of elements that a group has currently allocated space for.
    Definition group.hpp:374
    +
    void shrink_to_fit()
    Requests the removal of unused capacity.
    Definition group.hpp:379
    +
    entity_type front() const noexcept
    Returns the first entity of the group, if any.
    Definition group.hpp:439
    +
    reverse_iterator rend() const noexcept
    Returns an iterator that is past the last entity of the reversed group.
    Definition group.hpp:430
    +
    internal::group_handler< common_type, 0u, sizeof...(Get), sizeof...(Exclude)> handler
    Group handler type.
    Definition group.hpp:311
    underlying_type entity_type
    Underlying entity identifier.
    Definition group.hpp:297
    -
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition group.hpp:458
    -
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the group.
    Definition group.hpp:407
    -
    typename common_type::iterator iterator
    Random access iterator type.
    Definition group.hpp:303
    -
    entity_type back() const noexcept
    Returns the last entity of the group, if any.
    Definition group.hpp:447
    -
    iterable each() const noexcept
    Returns an iterable object to use to visit a group.
    Definition group.hpp:565
    -
    base_type common_type
    Common type among all storage types.
    Definition group.hpp:301
    -
    basic_group() noexcept
    Default constructor to use to create empty, invalid groups.
    Definition group.hpp:320
    -
    size_type size() const noexcept
    Returns the number of entities that are part of the group.
    Definition group.hpp:363
    - -
    Non-owning handle to an entity.
    Definition handle.hpp:98
    -
    Storage implementation.
    Definition storage.hpp:230
    +
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition group.hpp:460
    +
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the group.
    Definition group.hpp:409
    +
    typename common_type::iterator iterator
    Random access iterator type.
    Definition group.hpp:305
    +
    entity_type back() const noexcept
    Returns the last entity of the group, if any.
    Definition group.hpp:449
    +
    iterable each() const noexcept
    Returns an iterable object to use to visit a group.
    Definition group.hpp:567
    +
    base_type common_type
    Common type among all storage types.
    Definition group.hpp:303
    +
    basic_group() noexcept
    Default constructor to use to create empty, invalid groups.
    Definition group.hpp:322
    +
    size_type size() const noexcept
    Returns the number of entities that are part of the group.
    Definition group.hpp:365
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    -
    basic_handle< registry > handle
    Alias declaration for the most common use case.
    Definition fwd.hpp:102
    -
    constexpr bool is_applicable_v
    Helper variable template.
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    -
    constexpr owned_t< Type... > owned
    Variable template for lists of owned elements.
    Definition fwd.hpp:185
    +
    constexpr std::size_t type_list_index_v
    Helper variable template.
    +
    basic_handle< registry > handle
    Alias declaration for the most common use case.
    Definition fwd.hpp:101
    +
    constexpr bool is_applicable_v
    Helper variable template.
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    +
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    +
    constexpr owned_t< Type... > owned
    Variable template for lists of owned elements.
    Definition fwd.hpp:184
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:76
    -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Alias for lists of observed elements.
    Definition fwd.hpp:158
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    +
    Alias for exclusion lists.
    Definition fwd.hpp:140
    +
    Alias for lists of observed elements.
    Definition fwd.hpp:157
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    -
    Alias for lists of owned elements.
    Definition fwd.hpp:175
    +
    Alias for lists of owned elements.
    Definition fwd.hpp:174
    Function object to wrap std::sort in a class type.
    Definition algorithm.hpp:21
    Type hash.
    Definition type_info.hpp:92
    -
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/handle_8hpp_source.html b/handle_8hpp_source.html index f77451c65..74b5c60ca 100644 --- a/handle_8hpp_source.html +++ b/handle_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/handle.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    handle.hpp
    @@ -97,7 +105,7 @@ $(function() { codefold.init(0); });
    12#include "fwd.hpp"
    13
    14namespace entt {
    -
    15
    +
    15
    17namespace internal {
    18
    19template<typename It>
    @@ -117,26 +125,26 @@ $(function() { codefold.init(0); });
    33 using iterator_concept = std::forward_iterator_tag;
    34
    35 constexpr handle_storage_iterator() noexcept
    -
    36 : entt{null},
    +
    36 : entt{null},
    37 it{},
    38 last{} {}
    39
    40 constexpr handle_storage_iterator(entity_type value, It from, It to) noexcept
    -
    41 : entt{value},
    +
    41 : entt{value},
    42 it{from},
    43 last{to} {
    -
    44 while(it != last && !it->second.contains(entt)) {
    +
    44 while(it != last && !it->second.contains(entt)) {
    45 ++it;
    46 }
    47 }
    48
    49 constexpr handle_storage_iterator &operator++() noexcept {
    -
    50 while(++it != last && !it->second.contains(entt)) {}
    +
    50 for(++it; it != last && !it->second.contains(entt); ++it) {}
    51 return *this;
    52 }
    53
    54 constexpr handle_storage_iterator operator++(int) noexcept {
    -
    55 handle_storage_iterator orig = *this;
    +
    55 const handle_storage_iterator orig = *this;
    56 return ++(*this), orig;
    57 }
    58
    @@ -152,7 +160,7 @@ $(function() { codefold.init(0); });
    68 friend constexpr bool operator==(const handle_storage_iterator<ILhs> &, const handle_storage_iterator<IRhs> &) noexcept;
    69
    70private:
    -
    71 entity_type entt;
    +
    71 entity_type entt;
    72 It it;
    73 It last;
    74};
    @@ -168,184 +176,185 @@ $(function() { codefold.init(0); });
    84}
    85
    86} // namespace internal
    -
    97template<typename Registry, typename... Scope>
    +
    88
    +
    97template<typename Registry, typename... Scope>
    - - + +
    100
    -
    101 [[nodiscard]] auto &owner_or_assert() const noexcept {
    +
    101 [[nodiscard]] auto &owner_or_assert() const noexcept {
    102 ENTT_ASSERT(owner != nullptr, "Invalid pointer to registry");
    -
    103 return static_cast<Registry &>(*owner);
    +
    103 return static_cast<Registry &>(*owner);
    104 }
    105
    106public:
    - +
    108 using registry_type = Registry;
    114 using size_type = std::size_t;
    - -
    117
    + +
    117
    - +
    119 basic_handle() noexcept
    120 : owner{},
    121 entt{null} {}
    -
    122
    +
    122
    - +
    129 : owner{&ref},
    130 entt{value} {}
    -
    131
    +
    131
    - -
    143 auto underlying = owner_or_assert().storage();
    -
    144 return iterable{{entt, underlying.begin(), underlying.end()}, {entt, underlying.end(), underlying.end()}};
    +
    142 [[nodiscard]] iterable storage() const noexcept {
    +
    143 auto underlying = owner_or_assert().storage();
    +
    144 return iterable{{entt, underlying.begin(), underlying.end()}, {entt, underlying.end(), underlying.end()}};
    145 }
    -
    146
    +
    146
    -
    148 [[nodiscard]] explicit operator bool() const noexcept {
    +
    148 [[nodiscard]] explicit operator bool() const noexcept {
    149 return owner && owner->valid(entt);
    150 }
    -
    151
    +
    151
    -
    157 [[nodiscard]] bool valid() const {
    +
    157 [[nodiscard]] bool valid() const {
    158 return static_cast<bool>(*this);
    159 }
    -
    160
    +
    160
    - +
    165 [[nodiscard]] registry_type *registry() const noexcept {
    166 return owner;
    167 }
    -
    168
    +
    168
    - +
    173 [[nodiscard]] entity_type entity() const noexcept {
    174 return entt;
    175 }
    -
    176
    +
    176
    - +
    178 [[nodiscard]] operator entity_type() const noexcept {
    179 return entity();
    180 }
    -
    181
    +
    181
    183 void destroy() {
    184 owner_or_assert().destroy(std::exchange(entt, null));
    185 }
    -
    186
    +
    186
    - -
    192 owner_or_assert().destroy(std::exchange(entt, null), version);
    +
    191 void destroy(const version_type version) {
    +
    192 owner_or_assert().destroy(std::exchange(entt, null), version);
    193 }
    -
    194
    -
    202 template<typename Type, typename... Args>
    +
    194
    +
    202 template<typename Type, typename... Args>
    203 // NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    204 decltype(auto) emplace(Args &&...args) const {
    +
    204 decltype(auto) emplace(Args &&...args) const {
    205 static_assert(((sizeof...(Scope) == 0) || ... || std::is_same_v<Type, Scope>), "Invalid type");
    -
    206 return owner_or_assert().template emplace<Type>(entt, std::forward<Args>(args)...);
    +
    206 return owner_or_assert().template emplace<Type>(entt, std::forward<Args>(args)...);
    207 }
    -
    208
    -
    216 template<typename Type, typename... Args>
    +
    208
    +
    216 template<typename Type, typename... Args>
    -
    217 decltype(auto) emplace_or_replace(Args &&...args) const {
    +
    217 decltype(auto) emplace_or_replace(Args &&...args) const {
    218 static_assert(((sizeof...(Scope) == 0) || ... || std::is_same_v<Type, Scope>), "Invalid type");
    -
    219 return owner_or_assert().template emplace_or_replace<Type>(entt, std::forward<Args>(args)...);
    +
    219 return owner_or_assert().template emplace_or_replace<Type>(entt, std::forward<Args>(args)...);
    220 }
    -
    221
    +
    221
    229 template<typename Type, typename... Func>
    230 decltype(auto) patch(Func &&...func) const {
    231 static_assert(((sizeof...(Scope) == 0) || ... || std::is_same_v<Type, Scope>), "Invalid type");
    -
    232 return owner_or_assert().template patch<Type>(entt, std::forward<Func>(func)...);
    +
    232 return owner_or_assert().template patch<Type>(entt, std::forward<Func>(func)...);
    233 }
    -
    234
    -
    242 template<typename Type, typename... Args>
    +
    234
    +
    242 template<typename Type, typename... Args>
    -
    243 decltype(auto) replace(Args &&...args) const {
    +
    243 decltype(auto) replace(Args &&...args) const {
    244 static_assert(((sizeof...(Scope) == 0) || ... || std::is_same_v<Type, Scope>), "Invalid type");
    -
    245 return owner_or_assert().template replace<Type>(entt, std::forward<Args>(args)...);
    +
    245 return owner_or_assert().template replace<Type>(entt, std::forward<Args>(args)...);
    246 }
    -
    247
    +
    247
    253 template<typename... Type>
    254 // NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    256 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    +
    256 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    257 return owner_or_assert().template remove<Type...>(entt);
    258 }
    -
    259
    +
    259
    264 template<typename... Type>
    265 void erase() const {
    -
    266 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    +
    266 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    267 owner_or_assert().template erase<Type...>(entt);
    268 }
    -
    269
    +
    269
    275 template<typename... Type>
    -
    276 [[nodiscard]] decltype(auto) all_of() const {
    +
    276 [[nodiscard]] decltype(auto) all_of() const {
    277 return owner_or_assert().template all_of<Type...>(entt);
    278 }
    -
    279
    +
    279
    286 template<typename... Type>
    -
    287 [[nodiscard]] decltype(auto) any_of() const {
    +
    287 [[nodiscard]] decltype(auto) any_of() const {
    288 return owner_or_assert().template any_of<Type...>(entt);
    289 }
    -
    290
    +
    290
    296 template<typename... Type>
    -
    297 [[nodiscard]] decltype(auto) get() const {
    -
    298 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    +
    297 [[nodiscard]] decltype(auto) get() const {
    +
    298 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    299 return owner_or_assert().template get<Type...>(entt);
    300 }
    -
    301
    -
    309 template<typename Type, typename... Args>
    +
    301
    +
    309 template<typename Type, typename... Args>
    -
    310 [[nodiscard]] decltype(auto) get_or_emplace(Args &&...args) const {
    +
    310 [[nodiscard]] decltype(auto) get_or_emplace(Args &&...args) const {
    311 static_assert(((sizeof...(Scope) == 0) || ... || std::is_same_v<Type, Scope>), "Invalid type");
    -
    312 return owner_or_assert().template get_or_emplace<Type>(entt, std::forward<Args>(args)...);
    +
    312 return owner_or_assert().template get_or_emplace<Type>(entt, std::forward<Args>(args)...);
    313 }
    -
    314
    +
    314
    320 template<typename... Type>
    -
    321 [[nodiscard]] auto try_get() const {
    -
    322 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    +
    321 [[nodiscard]] auto try_get() const {
    +
    322 static_assert(sizeof...(Scope) == 0 || (type_list_contains_v<type_list<Scope...>, Type> && ...), "Invalid type");
    323 return owner_or_assert().template try_get<Type...>(entt);
    324 }
    -
    325
    +
    325
    -
    330 [[nodiscard]] bool orphan() const {
    +
    330 [[nodiscard]] bool orphan() const {
    331 return owner_or_assert().orphan(entt);
    332 }
    -
    333
    -
    341 template<typename Other, typename... Args>
    +
    333
    +
    341 template<typename Other, typename... Args>
    -
    342 operator basic_handle<Other, Args...>() const noexcept {
    -
    343 static_assert(std::is_same_v<Other, Registry> || std::is_same_v<std::remove_const_t<Other>, Registry>, "Invalid conversion between different handles");
    -
    344 static_assert((sizeof...(Scope) == 0 || ((sizeof...(Args) != 0 && sizeof...(Args) <= sizeof...(Scope)) && ... && (type_list_contains_v<type_list<Scope...>, Args>))), "Invalid conversion between different handles");
    -
    345 return owner ? basic_handle<Other, Args...>{*owner, entt} : basic_handle<Other, Args...>{};
    +
    342 operator basic_handle<Other, Args...>() const noexcept {
    +
    343 static_assert(std::is_same_v<Other, Registry> || std::is_same_v<std::remove_const_t<Other>, Registry>, "Invalid conversion between different handles");
    +
    344 static_assert((sizeof...(Scope) == 0 || ((sizeof...(Args) != 0 && sizeof...(Args) <= sizeof...(Scope)) && ... && (type_list_contains_v<type_list<Scope...>, Args>))), "Invalid conversion between different handles");
    +
    345 return owner ? basic_handle<Other, Args...>{*owner, entt} : basic_handle<Other, Args...>{};
    346 }
    347
    @@ -354,54 +363,54 @@ $(function() { codefold.init(0); });
    351};
    -
    352
    -
    362template<typename... Args, typename... Other>
    +
    352
    +
    362template<typename... Args, typename... Other>
    - -
    364 return lhs.registry() == rhs.registry() && lhs.entity() == rhs.entity();
    +
    363[[nodiscard]] bool operator==(const basic_handle<Args...> &lhs, const basic_handle<Other...> &rhs) noexcept {
    +
    364 return lhs.registry() == rhs.registry() && lhs.entity() == rhs.entity();
    365}
    -
    366
    -
    376template<typename... Args, typename... Other>
    +
    366
    +
    376template<typename... Args, typename... Other>
    - -
    378 return !(lhs == rhs);
    +
    377[[nodiscard]] bool operator!=(const basic_handle<Args...> &lhs, const basic_handle<Other...> &rhs) noexcept {
    +
    378 return !(lhs == rhs);
    379}
    -
    380
    -
    388template<typename... Args>
    +
    380
    +
    388template<typename... Args>
    -
    389[[nodiscard]] constexpr bool operator==(const basic_handle<Args...> &lhs, const null_t rhs) noexcept {
    -
    390 return (lhs.entity() == rhs);
    +
    389[[nodiscard]] constexpr bool operator==(const basic_handle<Args...> &lhs, const null_t rhs) noexcept {
    +
    390 return (lhs.entity() == rhs);
    391}
    -
    392
    -
    400template<typename... Args>
    +
    392
    +
    400template<typename... Args>
    -
    401[[nodiscard]] constexpr bool operator==(const null_t lhs, const basic_handle<Args...> &rhs) noexcept {
    -
    402 return (rhs == lhs);
    +
    401[[nodiscard]] constexpr bool operator==(const null_t lhs, const basic_handle<Args...> &rhs) noexcept {
    +
    402 return (rhs == lhs);
    403}
    -
    404
    -
    412template<typename... Args>
    +
    404
    +
    412template<typename... Args>
    -
    413[[nodiscard]] constexpr bool operator!=(const basic_handle<Args...> &lhs, const null_t rhs) noexcept {
    -
    414 return (lhs.entity() != rhs);
    +
    413[[nodiscard]] constexpr bool operator!=(const basic_handle<Args...> &lhs, const null_t rhs) noexcept {
    +
    414 return (lhs.entity() != rhs);
    415}
    -
    416
    -
    424template<typename... Args>
    +
    416
    +
    424template<typename... Args>
    -
    425[[nodiscard]] constexpr bool operator!=(const null_t lhs, const basic_handle<Args...> &rhs) noexcept {
    -
    426 return (rhs != lhs);
    +
    425[[nodiscard]] constexpr bool operator!=(const null_t lhs, const basic_handle<Args...> &rhs) noexcept {
    +
    426 return (rhs != lhs);
    427}
    428
    429} // namespace entt
    430
    431#endif
    -
    typename Traits::value_type value_type
    Value type.
    Definition entity.hpp:69
    -
    typename Traits::version_type version_type
    Underlying version type.
    Definition entity.hpp:73
    +
    typename internal::entt_traits< Type >::value_type value_type
    Definition entity.hpp:69
    +
    typename internal::entt_traits< Type >::version_type version_type
    Definition entity.hpp:73
    Non-owning handle to an entity.
    Definition handle.hpp:98
    void destroy()
    Destroys the entity associated with a handle.
    Definition handle.hpp:183
    void erase() const
    Erases the given elements from a handle.
    Definition handle.hpp:265
    @@ -412,36 +421,37 @@ $(function() { codefold.init(0); });
    iterable storage() const noexcept
    Returns an iterable object to use to visit a handle.
    Definition handle.hpp:142
    decltype(auto) patch(Func &&...func) const
    Patches the given element for a handle.
    Definition handle.hpp:230
    decltype(auto) emplace(Args &&...args) const
    Assigns the given element to a handle.
    Definition handle.hpp:204
    +
    iterable_adaptor< internal::handle_storage_iterator< typename decltype(std::declval< registry_type >().storage())::iterator > > iterable
    Definition handle.hpp:116
    basic_handle() noexcept
    Constructs an invalid handle.
    Definition handle.hpp:119
    -
    std::size_t size_type
    Unsigned integer type.
    Definition handle.hpp:114
    +
    basic_handle(registry_type &ref, entity_type value) noexcept
    Constructs a handle from a given registry and entity.
    Definition handle.hpp:128
    void destroy(const version_type version)
    Destroys the entity associated with a handle.
    Definition handle.hpp:191
    decltype(auto) emplace_or_replace(Args &&...args) const
    Assigns or replaces the given element for a handle.
    Definition handle.hpp:217
    bool orphan() const
    Checks if a handle has elements assigned.
    Definition handle.hpp:330
    auto try_get() const
    Returns pointers to the given elements for a handle.
    Definition handle.hpp:321
    size_type remove() const
    Removes the given elements from a handle.
    Definition handle.hpp:255
    -
    typename traits_type::version_type version_type
    Underlying version type.
    Definition handle.hpp:112
    +
    typename traits_type::version_type version_type
    Definition handle.hpp:112
    decltype(auto) get_or_emplace(Args &&...args) const
    Returns a reference to the given element for a handle.
    Definition handle.hpp:310
    bool valid() const
    Checks if a handle refers to a valid registry and entity.
    Definition handle.hpp:157
    entity_type entity() const noexcept
    Returns the entity associated with a handle.
    Definition handle.hpp:173
    -
    Registry registry_type
    Type of registry accepted by the handle.
    Definition handle.hpp:108
    +
    registry_type * registry() const noexcept
    Returns a pointer to the underlying registry, if any.
    Definition handle.hpp:165
    -
    typename traits_type::value_type entity_type
    Underlying entity identifier.
    Definition handle.hpp:110
    +
    typename traits_type::value_type entity_type
    Definition handle.hpp:110
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    -
    constexpr bool type_list_contains_v
    Helper variable template.
    +
    constexpr bool type_list_contains_v
    Helper variable template.
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    Entity traits.
    Definition entity.hpp:163
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    Null object for all identifiers.
    Definition entity.hpp:204
    -
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/hashed__string_8hpp_source.html b/hashed__string_8hpp_source.html index b7ef95dbd..e6f0424a0 100644 --- a/hashed__string_8hpp_source.html +++ b/hashed__string_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/hashed_string.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    hashed_string.hpp
    @@ -92,7 +100,7 @@ $(function() { codefold.init(0); });
    7#include "fwd.hpp"
    8
    9namespace entt {
    -
    10
    +
    10
    12namespace internal {
    13
    14template<typename = id_type>
    @@ -114,7 +122,7 @@ $(function() { codefold.init(0); });
    31 using value_type = Char;
    32 using size_type = std::size_t;
    -
    33 using hash_type = id_type;
    +
    33 using hash_type = id_type;
    34
    35 const value_type *repr;
    36 size_type length;
    @@ -122,26 +130,27 @@ $(function() { codefold.init(0); });
    38};
    39
    40} // namespace internal
    +
    42
    58template<typename Char>
    -
    59class basic_hashed_string: internal::basic_hashed_string<Char> {
    +
    59class basic_hashed_string: internal::basic_hashed_string<Char> {
    60 using base_type = internal::basic_hashed_string<Char>;
    61 using params = internal::fnv_1a_params<>;
    62
    63 struct const_wrapper {
    64 // non-explicit constructor on purpose
    -
    65 constexpr const_wrapper(const Char *str) noexcept
    -
    66 : repr{str} {}
    +
    65 constexpr const_wrapper(const Char *str) noexcept
    +
    66 : repr{str} {}
    67
    -
    68 const Char *repr;
    +
    68 const Char *repr;
    69 };
    70
    71 // Fowler–Noll–Vo hash function v. 1a - the good
    -
    72 [[nodiscard]] static constexpr auto helper(const std::basic_string_view<Char> view) noexcept {
    -
    73 base_type base{view.data(), view.size(), params::offset};
    +
    72 [[nodiscard]] static constexpr auto helper(const std::basic_string_view<Char> view) noexcept {
    +
    73 base_type base{view.data(), view.size(), params::offset};
    74
    -
    75 for(auto &&curr: view) {
    -
    76 base.hash = (base.hash ^ static_cast<id_type>(curr)) * params::prime;
    +
    75 for(auto &&curr: view) {
    +
    76 base.hash = (base.hash ^ static_cast<id_type>(curr)) * params::prime;
    77 }
    78
    79 return base;
    @@ -151,141 +160,141 @@ $(function() { codefold.init(0); });
    84 using value_type = typename base_type::value_type;
    86 using size_type = typename base_type::size_type;
    88 using hash_type = typename base_type::hash_type;
    -
    89
    +
    89
    -
    96 [[nodiscard]] static constexpr hash_type value(const value_type *str, const size_type len) noexcept {
    - +
    96 [[nodiscard]] static constexpr hash_type value(const value_type *str, const size_type len) noexcept {
    +
    97 return basic_hashed_string{str, len};
    98 }
    -
    99
    +
    99
    106 template<std::size_t N>
    107 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    -
    108 [[nodiscard]] static constexpr hash_type value(const value_type (&str)[N]) noexcept {
    -
    109 return basic_hashed_string{str};
    +
    108 [[nodiscard]] static ENTT_CONSTEVAL hash_type value(const value_type (&str)[N]) noexcept {
    +
    109 return basic_hashed_string{str};
    110 }
    -
    111
    +
    111
    -
    117 [[nodiscard]] static constexpr hash_type value(const_wrapper wrapper) noexcept {
    - +
    117 [[nodiscard]] static constexpr hash_type value(const_wrapper wrapper) noexcept {
    +
    118 return basic_hashed_string{wrapper};
    119 }
    -
    120
    +
    120
    - -
    123 : basic_hashed_string{nullptr, 0u} {}
    +
    122 constexpr basic_hashed_string() noexcept
    +
    123 : basic_hashed_string{nullptr, 0u} {}
    -
    124
    +
    124
    - -
    131 : base_type{helper({str, len})} {}
    +
    130 constexpr basic_hashed_string(const value_type *str, const size_type len) noexcept
    +
    131 : base_type{helper({str, len})} {}
    -
    132
    +
    132
    138 template<std::size_t N>
    139 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    - -
    141 : base_type{helper({static_cast<const value_type *>(str)})} {}
    +
    140 ENTT_CONSTEVAL basic_hashed_string(const value_type (&str)[N]) noexcept
    +
    141 : base_type{helper({static_cast<const value_type *>(str)})} {}
    -
    142
    +
    142
    -
    152 explicit constexpr basic_hashed_string(const_wrapper wrapper) noexcept
    -
    153 : base_type{helper({wrapper.repr})} {}
    +
    152 explicit constexpr basic_hashed_string(const_wrapper wrapper) noexcept
    +
    153 : base_type{helper({wrapper.repr})} {}
    -
    154
    +
    154
    - +
    159 [[nodiscard]] constexpr size_type size() const noexcept {
    160 return base_type::length;
    161 }
    -
    162
    +
    162
    -
    167 [[nodiscard]] constexpr const value_type *data() const noexcept {
    +
    167 [[nodiscard]] constexpr const value_type *data() const noexcept {
    168 return base_type::repr;
    169 }
    -
    170
    +
    170
    - +
    175 [[nodiscard]] constexpr hash_type value() const noexcept {
    176 return base_type::hash;
    177 }
    -
    178
    +
    178
    -
    180 [[nodiscard]] constexpr operator const value_type *() const noexcept {
    +
    180 [[nodiscard]] constexpr operator const value_type *() const noexcept {
    181 return data();
    182 }
    -
    183
    +
    183
    -
    188 [[nodiscard]] constexpr operator hash_type() const noexcept {
    +
    188 [[nodiscard]] constexpr operator hash_type() const noexcept {
    189 return value();
    190 }
    191};
    -
    192
    +
    192
    199template<typename Char>
    - -
    201
    +
    200basic_hashed_string(const Char *str, std::size_t len) -> basic_hashed_string<Char>;
    +
    201
    208template<typename Char, std::size_t N>
    209// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    - -
    211
    + +
    211
    219template<typename Char>
    - -
    221 return lhs.value() == rhs.value();
    +
    220[[nodiscard]] constexpr bool operator==(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    221 return lhs.value() == rhs.value();
    222}
    -
    223
    +
    223
    231template<typename Char>
    - -
    233 return !(lhs == rhs);
    +
    232[[nodiscard]] constexpr bool operator!=(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    233 return !(lhs == rhs);
    234}
    -
    235
    +
    235
    243template<typename Char>
    - -
    245 return lhs.value() < rhs.value();
    +
    244[[nodiscard]] constexpr bool operator<(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    245 return lhs.value() < rhs.value();
    246}
    -
    247
    +
    247
    256template<typename Char>
    - -
    258 return !(rhs < lhs);
    +
    257[[nodiscard]] constexpr bool operator<=(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    258 return !(rhs < lhs);
    259}
    -
    260
    +
    260
    269template<typename Char>
    - -
    271 return rhs < lhs;
    +
    270[[nodiscard]] constexpr bool operator>(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    271 return rhs < lhs;
    272}
    -
    273
    +
    273
    282template<typename Char>
    - -
    284 return !(lhs < rhs);
    +
    283[[nodiscard]] constexpr bool operator>=(const basic_hashed_string<Char> &lhs, const basic_hashed_string<Char> &rhs) noexcept {
    +
    284 return !(lhs < rhs);
    285}
    286
    287inline namespace literals {
    -
    288
    +
    288
    -
    294[[nodiscard]] constexpr hashed_string operator"" _hs(const char *str, std::size_t) noexcept {
    -
    295 return hashed_string{str};
    +
    294[[nodiscard]] ENTT_CONSTEVAL hashed_string operator""_hs(const char *str, std::size_t) noexcept {
    +
    295 return hashed_string{str};
    296}
    -
    297
    +
    297
    -
    303[[nodiscard]] constexpr hashed_wstring operator"" _hws(const wchar_t *str, std::size_t) noexcept {
    -
    304 return hashed_wstring{str};
    +
    303[[nodiscard]] ENTT_CONSTEVAL hashed_wstring operator""_hws(const wchar_t *str, std::size_t) noexcept {
    +
    304 return hashed_wstring{str};
    305}
    306
    @@ -295,27 +304,27 @@ $(function() { codefold.init(0); });
    310
    311#endif
    Zero overhead unique identifier.
    -
    typename base_type::value_type value_type
    Character type.
    +
    typename base_type::value_type value_type
    constexpr const value_type * data() const noexcept
    Returns the human-readable representation of a hashed string.
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    -
    typename base_type::size_type size_type
    Unsigned integer type.
    +
    typename base_type::size_type size_type
    static constexpr hash_type value(const value_type(&str)[N]) noexcept
    Returns directly the numeric representation of a string.
    static constexpr hash_type value(const_wrapper wrapper) noexcept
    Returns directly the numeric representation of a string.
    -
    typename base_type::hash_type hash_type
    Unsigned integer type.
    +
    typename base_type::hash_type hash_type
    constexpr basic_hashed_string(const value_type *str, const size_type len) noexcept
    Constructs a hashed string from a string view.
    constexpr basic_hashed_string(const value_type(&str)[N]) noexcept
    Constructs a hashed string from an array of const characters.
    constexpr size_type size() const noexcept
    Returns the size a hashed string.
    constexpr basic_hashed_string() noexcept
    Constructs an empty hashed string.
    static constexpr hash_type value(const value_type *str, const size_type len) noexcept
    Returns directly the numeric representation of a string view.
    constexpr basic_hashed_string(const_wrapper wrapper) noexcept
    Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_typ...
    -
    View implementation.
    Definition fwd.hpp:42
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    basic_hashed_string(const Char *str, std::size_t len) -> basic_hashed_string< Char >
    Deduction guide.
    -
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:278
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    basic_hashed_string< char > hashed_string
    Aliases for common character types.
    Definition fwd.hpp:41
    +
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:277
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    +
    basic_hashed_string< wchar_t > hashed_wstring
    Aliases for common character types.
    Definition fwd.hpp:44
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    @@ -323,7 +332,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/helper_8hpp_source.html b/helper_8hpp_source.html index 939e8b012..3c85e0086 100644 --- a/helper_8hpp_source.html +++ b/helper_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/helper.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    helper.hpp
    @@ -98,216 +106,217 @@ $(function() { codefold.init(0); });
    13#include "view.hpp"
    14
    15namespace entt {
    -
    16
    +
    16
    21template<typename Registry>
    -
    22class as_view {
    -
    23 template<typename... Get, typename... Exclude>
    -
    24 [[nodiscard]] auto dispatch(get_t<Get...>, exclude_t<Exclude...>) const {
    - +
    22class as_view {
    +
    23 template<typename... Get, typename... Exclude>
    +
    24 [[nodiscard]] auto dispatch(get_t<Get...>, exclude_t<Exclude...>) const {
    +
    26 }
    27
    28public:
    - +
    30 using registry_type = Registry;
    32 using entity_type = typename registry_type::entity_type;
    -
    33
    +
    33
    - -
    39 : reg{source} {}
    +
    38 as_view(registry_type &source) noexcept
    +
    39 : reg{&source} {}
    -
    40
    +
    40
    47 template<typename Get, typename Exclude>
    -
    48 operator basic_view<Get, Exclude>() const {
    -
    49 return dispatch(Get{}, Exclude{});
    +
    48 operator basic_view<Get, Exclude>() const {
    +
    49 return dispatch(Get{}, Exclude{});
    50 }
    51
    52private:
    -
    53 registry_type &reg;
    +
    53 registry_type *reg;
    54};
    -
    55
    +
    55
    60template<typename Registry>
    -
    61class as_group {
    -
    62 template<typename... Owned, typename... Get, typename... Exclude>
    - +
    61class as_group {
    +
    62 template<typename... Owned, typename... Get, typename... Exclude>
    +
    63 [[nodiscard]] auto dispatch(owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>) const {
    64 if constexpr(std::is_const_v<registry_type>) {
    -
    65 return reg.template group_if_exists<typename Owned::element_type...>(get_t<typename Get::element_type...>{}, exclude_t<typename Exclude::element_type...>{});
    +
    65 return reg->template group_if_exists<typename Owned::element_type...>(get_t<typename Get::element_type...>{}, exclude_t<typename Exclude::element_type...>{});
    66 } else {
    - +
    68 }
    69 }
    70
    71public:
    - +
    73 using registry_type = Registry;
    75 using entity_type = typename registry_type::entity_type;
    -
    76
    +
    76
    - -
    82 : reg{source} {}
    +
    81 as_group(registry_type &source) noexcept
    +
    82 : reg{&source} {}
    -
    83
    +
    83
    91 template<typename Owned, typename Get, typename Exclude>
    - -
    93 return dispatch(Owned{}, Get{}, Exclude{});
    + +
    93 return dispatch(Owned{}, Get{}, Exclude{});
    94 }
    95
    96private:
    -
    97 registry_type &reg;
    +
    97 registry_type *reg;
    98};
    -
    99
    +
    99
    107template<auto Member, typename Registry = std::decay_t<nth_argument_t<0u, decltype(Member)>>>
    -
    108void invoke(Registry &reg, const typename Registry::entity_type entt) {
    -
    109 static_assert(std::is_member_function_pointer_v<decltype(Member)>, "Invalid pointer to non-static member function");
    -
    110 (reg.template get<member_class_t<decltype(Member)>>(entt).*Member)(reg, entt);
    +
    108void invoke(Registry &reg, const typename Registry::entity_type entt) {
    +
    109 static_assert(std::is_member_function_pointer_v<decltype(Member)>, "Invalid pointer to non-static member function");
    +
    110 (reg.template get<member_class_t<decltype(Member)>>(entt).*Member)(reg, entt);
    111}
    -
    112
    -
    125template<typename... Args>
    +
    112
    +
    125template<typename... Args>
    -
    126typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
    -
    127 using traits_type = component_traits<typename basic_storage<Args...>::value_type>;
    -
    128 static_assert(traits_type::page_size != 0u, "Unexpected page size");
    -
    129 const typename basic_storage<Args...>::base_type &base = storage;
    -
    130 const auto *addr = std::addressof(instance);
    -
    131
    -
    132 for(auto it = base.rbegin(), last = base.rend(); it < last; it += traits_type::page_size) {
    -
    133 if(const auto dist = (addr - std::addressof(storage.get(*it))); dist >= 0 && dist < static_cast<decltype(dist)>(traits_type::page_size)) {
    -
    134 return *(it + dist);
    +
    126typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
    +
    127 using traits_type = component_traits<typename basic_storage<Args...>::value_type, typename basic_storage<Args...>::entity_type>;
    +
    128 static_assert(traits_type::page_size != 0u, "Unexpected page size");
    +
    129 const auto *page = storage.raw();
    +
    130
    +
    131 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    132 for(std::size_t pos{}, count = storage.size(); pos < count; pos += traits_type::page_size, ++page) {
    +
    133 if(const auto dist = (std::addressof(instance) - *page); dist >= 0 && dist < static_cast<decltype(dist)>(traits_type::page_size)) {
    +
    134 return *(static_cast<const typename basic_storage<Args...>::base_type &>(storage).rbegin() + static_cast<decltype(dist)>(pos) + dist);
    135 }
    136 }
    -
    137
    -
    138 return null;
    -
    139}
    +
    137 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    138
    +
    139 return null;
    +
    140}
    -
    140
    -
    142template<typename...>
    - -
    144
    -
    149template<typename Registry>
    -
    - - -
    153
    -
    - -
    159 : bucket{&ref} {}
    +
    141
    +
    143template<typename...>
    + +
    145
    +
    150template<typename Registry>
    +
    + +
    153 using registry_type = Registry;
    +
    154
    +
    + +
    160 : bucket{&ref} {}
    -
    160
    -
    167 template<typename Type>
    -
    - -
    169 return sigh_helper<registry_type, Type>{*bucket, id};
    -
    170 }
    +
    161
    +
    168 template<typename Type>
    +
    +
    169 auto with(const id_type id = type_hash<Type>::value()) noexcept {
    +
    170 return sigh_helper<registry_type, Type>{*bucket, id};
    +
    171 }
    -
    171
    -
    - -
    177 return *bucket;
    -
    178 }
    +
    172
    +
    +
    177 [[nodiscard]] registry_type &registry() noexcept {
    +
    178 return *bucket;
    +
    179 }
    -
    179
    -
    180private:
    -
    181 registry_type *bucket;
    -
    182};
    +
    180
    +
    181private:
    +
    182 registry_type *bucket;
    +
    183};
    -
    183
    -
    189template<typename Registry, typename Type>
    -
    - - -
    193
    -
    - - -
    201 name{id} {}
    +
    184
    +
    190template<typename Registry, typename Type>
    +
    + +
    193 using registry_type = Registry;
    +
    194
    +
    + +
    201 : sigh_helper<Registry>{ref},
    +
    202 name{id} {}
    -
    202
    -
    210 template<auto Candidate, typename... Args>
    -
    -
    211 auto on_construct(Args &&...args) {
    -
    212 this->registry().template on_construct<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    -
    213 return *this;
    -
    214 }
    +
    203
    +
    211 template<auto Candidate, typename... Args>
    +
    +
    212 auto on_construct(Args &&...args) {
    +
    213 this->registry().template on_construct<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    +
    214 return *this;
    +
    215 }
    -
    215
    -
    223 template<auto Candidate, typename... Args>
    -
    -
    224 auto on_update(Args &&...args) {
    -
    225 this->registry().template on_update<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    -
    226 return *this;
    -
    227 }
    +
    216
    +
    224 template<auto Candidate, typename... Args>
    +
    +
    225 auto on_update(Args &&...args) {
    +
    226 this->registry().template on_update<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    +
    227 return *this;
    +
    228 }
    -
    228
    -
    236 template<auto Candidate, typename... Args>
    -
    -
    237 auto on_destroy(Args &&...args) {
    -
    238 this->registry().template on_destroy<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    -
    239 return *this;
    -
    240 }
    +
    229
    +
    237 template<auto Candidate, typename... Args>
    +
    +
    238 auto on_destroy(Args &&...args) {
    +
    239 this->registry().template on_destroy<Type>(name).template connect<Candidate>(std::forward<Args>(args)...);
    +
    240 return *this;
    +
    241 }
    -
    241
    -
    242private:
    -
    243 id_type name;
    -
    244};
    +
    242
    +
    243private:
    +
    244 id_type name;
    +
    245};
    -
    245
    -
    250template<typename Registry>
    - -
    252
    -
    253} // namespace entt
    -
    254
    -
    255#endif
    -
    Converts a registry to a group.
    Definition helper.hpp:61
    +
    246
    +
    251template<typename Registry>
    + +
    253
    +
    254} // namespace entt
    +
    255
    +
    256#endif
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition helper.hpp:75
    Registry registry_type
    Type of registry to convert.
    Definition helper.hpp:73
    as_group(registry_type &source) noexcept
    Constructs a converter for a given registry.
    Definition helper.hpp:81
    -
    Converts a registry to a view.
    Definition helper.hpp:22
    as_view(registry_type &source) noexcept
    Constructs a converter for a given registry.
    Definition helper.hpp:38
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition helper.hpp:32
    Registry registry_type
    Type of registry to convert.
    Definition helper.hpp:30
    - -
    Storage implementation.
    Definition storage.hpp:230
    -
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:639
    -
    element_type value_type
    Type of the objects assigned to entities.
    Definition storage.hpp:400
    -
    View implementation.
    Definition fwd.hpp:42
    + +
    Storage implementation.
    Definition storage.hpp:229
    +
    const_reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:610
    +
    element_type value_type
    Type of the objects assigned to entities.
    Definition storage.hpp:404
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    typename member_class< Member >::type member_class_t
    Helper type.
    +
    typename member_class< Member >::type member_class_t
    Helper type.
    +
    basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >
    Deduction guide.
    constexpr entt_traits< Entity >::entity_type to_entity(const Entity value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:188
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:93
    +
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:277
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > group
    Alias declaration for the most common use case.
    Definition fwd.hpp:286
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    +
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:95
    void invoke(Registry &reg, const typename Registry::entity_type entt)
    Helper to create a listener that directly invokes a member function.
    Definition helper.hpp:108
    sigh_helper(Registry &) -> sigh_helper< Registry >
    Deduction guide.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    -
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:76
    -
    Common way to access various properties of components.
    Definition component.hpp:42
    -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Alias for lists of observed elements.
    Definition fwd.hpp:158
    -
    Alias for lists of owned elements.
    Definition fwd.hpp:175
    -
    auto on_destroy(Args &&...args)
    Forwards the call to on_destroy on the underlying storage.
    Definition helper.hpp:237
    -
    auto on_construct(Args &&...args)
    Forwards the call to on_construct on the underlying storage.
    Definition helper.hpp:211
    -
    Registry registry_type
    Registry type.
    Definition helper.hpp:192
    -
    auto on_update(Args &&...args)
    Forwards the call to on_update on the underlying storage.
    Definition helper.hpp:224
    -
    sigh_helper(registry_type &ref, const id_type id=type_hash< Type >::value())
    Constructs a helper for a given registry.
    Definition helper.hpp:199
    -
    sigh_helper(registry_type &ref)
    Constructs a helper for a given registry.
    Definition helper.hpp:158
    -
    Registry registry_type
    Registry type.
    Definition helper.hpp:152
    -
    registry_type & registry() noexcept
    Returns a reference to the underlying registry.
    Definition helper.hpp:176
    -
    auto with(const id_type id=type_hash< Type >::value()) noexcept
    Binds a properly initialized helper to a given signal type.
    Definition helper.hpp:168
    -
    Primary template isn't defined on purpose.
    Definition helper.hpp:143
    -
    Type hash.
    Definition type_info.hpp:92
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    +
    Common way to access various properties of components.
    Definition component.hpp:43
    +
    Alias for exclusion lists.
    Definition fwd.hpp:140
    +
    Alias for lists of observed elements.
    Definition fwd.hpp:157
    +
    Alias for lists of owned elements.
    Definition fwd.hpp:174
    +
    auto on_destroy(Args &&...args)
    Forwards the call to on_destroy on the underlying storage.
    Definition helper.hpp:238
    +
    auto on_construct(Args &&...args)
    Forwards the call to on_construct on the underlying storage.
    Definition helper.hpp:212
    +
    Registry registry_type
    Registry type.
    Definition helper.hpp:193
    +
    auto on_update(Args &&...args)
    Forwards the call to on_update on the underlying storage.
    Definition helper.hpp:225
    +
    sigh_helper(registry_type &ref, const id_type id=type_hash< Type >::value())
    Constructs a helper for a given registry.
    Definition helper.hpp:200
    +
    sigh_helper(registry_type &ref)
    Constructs a helper for a given registry.
    Definition helper.hpp:159
    +
    Registry registry_type
    Registry type.
    Definition helper.hpp:153
    +
    registry_type & registry() noexcept
    Returns a reference to the underlying registry.
    Definition helper.hpp:177
    +
    auto with(const id_type id=type_hash< Type >::value()) noexcept
    Binds a properly initialized helper to a given signal type.
    Definition helper.hpp:169
    +
    Primary template isn't defined on purpose.
    Definition helper.hpp:144
    +
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    +
    diff --git a/hierarchy.html b/hierarchy.html index f61f37f0f..95a5fe67b 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -3,13 +3,15 @@ - + EnTT: Class Hierarchy + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
     Centt::as_view< Registry >Converts a registry to a view  Centt::as_void_tEmpty class type used to request the as void policy  Centt::basic_any< Len, Align >A SBO friendly, type-safe container for single values of any type - Centt::basic_any<> - Centt::basic_collector<... >Collector - Centt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >Collector - Centt::basic_collector<>Collector - Centt::basic_common_view< Type, Get, Exclude >Basic storage view implementation - Centt::basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)> - Centt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >General purpose view - Centt::basic_continuous_loader< Registry >Utility class for continuous loading - Centt::basic_dispatcher< Allocator >Basic dispatcher implementation - Centt::basic_entt_traits< Traits >Common basic entity traits implementation - Centt::basic_entt_traits< internal::entt_traits< Type > > - Centt::entt_traits< Type >Entity traits - Centt::basic_flow< Allocator >Utility class for creating task graphs - Centt::basic_flow<> - Centt::basic_group< typename, typename, typename >Group - Centt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >Owning group - Centt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >Non-owning group - Centt::basic_handle< Registry, Scope >Non-owning handle to an entity - Cinternal::basic_hashed_string - Centt::basic_hashed_string< Char >Zero overhead unique identifier - Centt::basic_meta_associative_container_traits< Type >General purpose implementation of meta associative container traits - Centt::basic_meta_associative_container_traits< dense_map< Args... > > - Centt::meta_associative_container_traits< dense_map< Args... > >Meta associative container traits for dense_maps of any type - Centt::basic_meta_associative_container_traits< dense_set< Args... > > - Centt::meta_associative_container_traits< dense_set< Args... > >Meta associative container traits for dense_sets of any type - Centt::basic_meta_associative_container_traits< std::map< Args... > > - Centt::meta_associative_container_traits< std::map< Args... > >Meta associative container traits for std::maps of any type - Centt::basic_meta_associative_container_traits< std::set< Args... > > - Centt::meta_associative_container_traits< std::set< Args... > >Meta associative container traits for std::sets of any type - Centt::basic_meta_associative_container_traits< std::unordered_map< Args... > > - Centt::meta_associative_container_traits< std::unordered_map< Args... > >Meta associative container traits for std::unordered_maps of any type - Centt::basic_meta_associative_container_traits< std::unordered_set< Args... > > - Centt::meta_associative_container_traits< std::unordered_set< Args... > >Meta associative container traits for std::unordered_sets of any type - Cinternal::basic_meta_factory - Centt::meta_factory< Type >Meta factory to be used for reflection purposes - Centt::basic_meta_sequence_container_traits< Type >General purpose implementation of meta sequence container traits - Centt::basic_meta_sequence_container_traits< std::array< Type, N > > - Centt::meta_sequence_container_traits< std::array< Type, N > >Meta sequence container traits for std::arrays of any type - Centt::basic_meta_sequence_container_traits< std::deque< Args... > > - Centt::meta_sequence_container_traits< std::deque< Args... > >Meta sequence container traits for std::deques of any type - Centt::basic_meta_sequence_container_traits< std::list< Args... > > - Centt::meta_sequence_container_traits< std::list< Args... > >Meta sequence container traits for std::lists of any type - Centt::basic_meta_sequence_container_traits< std::vector< Args... > > - Centt::meta_sequence_container_traits< std::vector< Args... > >Meta sequence container traits for std::vectors of any type - Centt::basic_observer< Registry, Allocator >Observer - Centt::basic_organizer< Registry >Utility class for creating a static task graph - Centt::basic_registry< Entity, Allocator >Fast and reliable entity-component system - Centt::basic_runtime_view< Type, Allocator >Generic runtime view - Centt::basic_scheduler< Delta, Allocator >Cooperative scheduler for processes - Centt::basic_snapshot< Registry >Utility class to create snapshots from a registry - Centt::basic_snapshot_loader< Registry >Utility class to restore a snapshot as a whole - Centt::basic_sparse_set< Entity, Allocator >Sparse set implementation - Centt::basic_storage< mask_type, typename Registry::entity_type, typename std::allocator_traits< Allocator >::template rebind_alloc< mask_type > > - Centt::basic_storage< Entity, Entity, Allocator >Swap-only entity storage specialization - Centt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > > - Centt::basic_storage< Type, Entity, Allocator, typename >Storage implementation - Centt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >Default constructor. - Centt::basic_sparse_set< typename Registry::entity_type, std::allocator_traits< Allocator >::template rebind_alloc< typename Registry::entity_type > > - Centt::basic_storage_view< Type, Policy >Basic storage view implementation - Centt::basic_storage_view< Get::base_type, Get::storage_policy > - Centt::basic_view< get_t< Get >, exclude_t<> >Storage view specialization - Centt::basic_table< Container >Basic table implementation - Centt::basic_view< typename, typename, typename >View implementation - Cstd::bool_constant - Centt::is_ebco_eligible< Type >Provides the member constant value to true if a given type is both an empty and non-final class, false otherwise - Centt::is_equality_comparable< Type >Provides the member constant value to true if a given type is equality comparable, false otherwise - Centt::is_equality_comparable< const Type >Provides the member constant value to true if a given type is equality comparable, false otherwise. - Centt::is_meta_policy< Type >Provides the member constant value to true if a type also is a meta policy, false otherwise - Centt::type_list_contains< type_list< Type... >, Other >Provides the member constant value to true if a type list contains a given type, false otherwise. - Centt::value_list_contains< value_list< Value... >, Other >Provides the member constant value to true if a value list contains a given value, false otherwise. - Centt::choice_t< N >Utility class to disambiguate overloaded functions - Centt::choice_t< 0 >Utility class to disambiguate overloaded functions. - Centt::component_traits< Type, typename >Common way to access various properties of components - Cinternal::compressed_pair_element - Centt::compressed_pair< sparse_container_type, hasher > - Centt::compressed_pair< sparse_container_type, hasher > - Centt::compressed_pair< packed_container_type, key_equal > - Centt::compressed_pair< packed_container_type, key_equal > - Centt::compressed_pair< entt::dense_map, allocator_type > - Centt::compressed_pair< entt::dense_map, allocator_type > - Centt::compressed_pair< size_type, allocator_type > - Centt::compressed_pair< size_type, allocator_type > - Centt::compressed_pair< container_type, allocator_type > - Centt::compressed_pair< container_type, allocator_type > - Centt::compressed_pair< entt::dense_map, loader_type > - Centt::compressed_pair< entt::dense_map, loader_type > - Centt::compressed_pair< First, Second >A compressed pair - Centt::compressed_pair< First, Second >A compressed pair - Cconditional - Cstd::tuple_element< Index, entt::compressed_pair< First, Second > >std::tuple_element specialization for compressed_pairs - Centt::connect_arg_t< auto >Disambiguation tag for constructors and the like - Centt::connectionConnection class - Centt::constness_as< To, From >Transcribes the constness of a type to another type - Centt::constness_as< To, const From >Transcribes the constness of a type to another type. - Centt::delegate< typename >Basic delegate implementation - Centt::delegate< Ret(Args...)>Utility class to use to send around functions and members - Centt::dense_map< Key, Type, Hash, KeyEqual, Allocator >Associative container for key-value pairs with unique keys - Centt::dense_map< id_type, ro_rw_container_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, ro_rw_container_type > > > - Centt::dense_map< id_type, std::shared_ptr< base_type >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< base_type > > > > - Centt::dense_map< id_type, std::shared_ptr< internal::group_descriptor >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< internal::group_descriptor > > > > - Centt::dense_map< typename traits_type::entity_type, std::pair< entity_type, entity_type > > - Centt::dense_set< Type, Hash, KeyEqual, Allocator >Associative container for unique objects of a given type - Centt::dense_set< id_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< id_type > > - Centt::directed_tagUndirected graph category tag - Centt::undirected_tagDirected graph category tag - Centt::emitter< Derived, Allocator >General purpose event emitter - Cstd::false_type - Centt::is_meta_pointer_like< Type > - Centt::is_meta_pointer_like< const Type >Partial specialization to ensure that const pointer-like types are also accepted - Centt::enum_as_bitmask< Type, typename >Enable bitmask support for enum classes - Centt::is_applicable< typename, typename >Same as std::is_invocable, but with tuples - Centt::is_applicable_r< typename, typename, typename >Same as std::is_invocable_r, but with tuples for arguments - Centt::is_complete< Type, typename >Provides the member constant value to true if a given type is complete, false otherwise - Centt::is_iterator< Type, typename >Provides the member constant value to true if a given type is an iterator, false otherwise - Centt::is_meta_pointer_like< typename >Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise - Centt::is_meta_pointer_like< Type(*)[N]>Partial specialization used to reject pointers to arrays - Centt::is_transparent< Type, typename >Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise - Centt::family<... >Dynamic identifier generator - CFunc - Centt::forward_apply< Func >Utility class to forward-and-apply tuple objects - Centt::overloaded< Func >Helper type for visitors - Centt::process_adaptor< Func, Delta >Adaptor for lambdas and functors to turn them into processes - Cinternal::has_iterator_category - Centt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >Provides the member constant value to true if a given type is an iterator, false otherwise. - Centt::ident< Type >Type integral identifiers - Centt::identityIdentity function object (waiting for C++20) - Centt::input_iterator_pointer< Type >Helper type to use as pointer with input iterators - Centt::insertion_sortFunction object for performing insertion sort - Cstd::integral_constant - Centt::size_of< Type, typename >A type-only sizeof wrapper that returns 0 where sizeof complains - Centt::size_of< Type, std::void_t< decltype(sizeof(Type))> >A type-only sizeof wrapper that returns 0 where sizeof complains. - Cstd::tuple_size< entt::compressed_pair< First, Second > >std::tuple_size specialization for compressed_pairs - Cstd::tuple_size< entt::type_list< Type... > > - Cstd::tuple_size< entt::value_list< Value... > > - Centt::iota_iterator< Type >Plain iota iterator (waiting for C++20) - Cstd::is_enum - Centt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >Enable bitmask support for enum classes. - Cstd::is_invocable - Centt::is_applicable< Func, Tuple< Args... > >Same as std::is_invocable, but with tuples. - Centt::is_applicable< Func, const Tuple< Args... > >Same as std::is_invocable, but with tuples. - Cstd::is_invocable_r - Centt::is_applicable_r< Ret, Func, std::tuple< Args... > >Same as std::is_invocable_r, but with tuples for arguments. - Cinternal::is_tuple_impl - Centt::is_tuple< Type >Provides the member constant value to true if a given type is a tuple, false otherwise - Centt::iterable_adaptor< It, Sentinel >Utility class to create an iterable object from a pair of iterators - Centt::locator< Service >Service locator, nothing more - Centt::matcher<... >Grouping matcher - Centt::member_class< Member >Extracts the class of a non-static member object or function - Centt::meta_anyOpaque wrapper for values of any type - Centt::meta_associative_containerProxy object for associative containers - Centt::meta_associative_container_traits< typename >Traits class template to be specialized to enable support for meta associative containers - Centt::meta_class_template_tag< class >Utility class to disambiguate class templates - Cinternal::meta_context - Centt::meta_ctxOpaque meta context type - Centt::meta_ctx_arg_tDisambiguation tag for constructors and the like - Centt::meta_customOpaque wrapper for user defined data of any type - Centt::meta_dataOpaque wrapper for data members - Centt::meta_funcOpaque wrapper for member functions - Centt::meta_function_descriptor< typename, typename >Primary template isn't defined on purpose - Centt::meta_function_descriptor_traits< Ret, Args, Static, Const >Meta function descriptor traits - Centt::meta_function_descriptor_traits< Ret &, std::conditional_t< std::is_base_of_v< Class, Type >, type_list<>, type_list< Class & > >, !std::is_base_of_v< Class, Type >, false > - Centt::meta_function_descriptor< Type, Ret Class::* >Meta function descriptor - Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< Class &, Args... > >, !std::is_base_of_v< Class, Type >, false > - Centt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>Meta function descriptor - Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< const Class &, Args... > >, !std::is_base_of_v< Class, Type >, true > - Centt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >Meta function descriptor - Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >, type_list< Args... >, type_list< MaybeType, Args... > >, !(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >), std::is_const_v< std::remove_reference_t< MaybeType > > &&(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >)> - Centt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)>Meta function descriptor - Centt::meta_function_descriptor_traits< Ret, type_list<>, true, false > - Centt::meta_function_descriptor< Type, Ret(*)()>Meta function descriptor - Centt::meta_function_helper< Type, Candidate >Meta function helper - Centt::meta_handleOpaque pointers to instances of any type - Centt::meta_propOpaque wrapper for properties of any type - Centt::meta_sequence_containerProxy object for sequence containers - Centt::meta_sequence_container_traits< typename >Traits class template to be specialized to enable support for meta sequence containers - Centt::meta_template_traits< typename >Traits class template to be specialized to enable support for meta template information - Centt::meta_template_traits< Clazz< Args... > >General purpose traits class for generating meta template information - Centt::meta_typeOpaque wrapper for types - Centt::monostate< id_type >Minimal implementation of the monostate pattern - Centt::nth_argument< Index, Candidate >Extracts the n-th argument of a callable type - Centt::null_tNull object for all identifiers.
    - - Centt::poly_base< Poly >Poly base class used to inject functionalities into concepts - Centt::poly_inspectorInspector class used to infer the type of the virtual table - Centt::poly_vtable< Concept, Len, Align >Static virtual table factory - Centt::process< Derived, Delta >Base class for processes - Centt::process< process_adaptor< Func, Delta >, Delta > - Centt::process_adaptor< Func, Delta >Adaptor for lambdas and functors to turn them into processes - Centt::radix_sort< Bit, N >Function object for performing LSD radix sort - Centt::reactiveEmpty value type for reactive storage types - Centt::resource< Type >Basic resource handle - Centt::resource_cache< Type, Loader, Allocator >Basic cache for resources of any type - Centt::resource_loader< Type >Transparent loader for shared resources - Centt::scoped_connectionScoped connection class - Centt::sigh< Type, typename >Unmanaged signal handler - Centt::sigh< Ret(Args...), Allocator >Unmanaged signal handler - Centt::sigh< void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type > - Centt::sigh_helper<... >Primary template isn't defined on purpose - Centt::sigh_helper< Registry >Signal connection helper for registries - Centt::sigh_helper< Registry, Type >Signal connection helper for registries - Centt::sink< typename >Sink class - Centt::sink< sigh< Ret(Args...), Allocator > >Sink class - Centt::std_sortFunction object to wrap std::sort in a class type - Centt::storage_for< Type, Entity, Allocator > - Centt::storage_type< Type, Entity, Allocator, typename >Provides a common way to define storage types - Centt::storage_type< reactive, Entity, Allocator > - CConcept::template type - Centt::basic_poly< Concept, Len, Align >Static polymorphism made simple and within everyone's reach - Centt::tombstone_tTombstone object for all identifiers.
    - - Cstd::true_type - Centt::is_complete< Type, std::void_t< decltype(sizeof(Type))> >Provides the member constant value to true if a given type is complete, false otherwise. - Centt::is_meta_pointer_like< Type * >Makes plain pointers pointer-like types for the meta system - Centt::is_meta_pointer_like< std::shared_ptr< Type > >Makes std::shared_ptrs of any type pointer-like types for the meta system - Centt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >Makes std::unique_ptrs of any type pointer-like types for the meta system - Centt::is_transparent< Type, std::void_t< typename Type::is_transparent > >Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. - CType - Centt::basic_reactive_mixin< Type, Registry >Mixin type used to add reactive support to storage types - Centt::basic_sigh_mixin< Type, Registry >Mixin type used to add signal support to storage types - Centt::type_hash< Type, typename >Type hash - Centt::type_identity< Type >Identity type trait - Centt::type_index< Type, typename >Type sequential identifier - Centt::type_infoImplementation specific information about a type - Centt::type_list< Type >A class to use to push around lists of types, nothing more - Centt::type_list< Type... > - Centt::exclude_t< Type >Alias for exclusion lists - Centt::get_t< Type >Alias for lists of observed elements - Centt::owned_t< Type >Alias for lists of owned elements - Centt::type_list_cat<... >Primary template isn't defined on purpose - Centt::type_list_cat< type_list< Type... > >Concatenates multiple type lists - Centt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >Concatenates multiple type lists - Centt::type_list_cat<>Concatenates multiple type lists - Centt::type_list_contains< List, Type >Provides the member constant value to true if a type list contains a given type, false otherwise - Centt::type_list_diff<... >Primary template isn't defined on purpose - Centt::type_list_diff< type_list< Type... >, type_list< Other... > >Computes the difference between two type lists - Centt::type_list_element< size_t, typename >Primary template isn't defined on purpose - Centt::type_list_element< 0u, type_list< First, Other... > >Provides compile-time indexed access to the types of a type list - Centt::type_list_element< Index - 1u, type_list< Other... > > - Centt::type_list_element< Index, type_list< First, Other... > >Provides compile-time indexed access to the types of a type list - Centt::type_list_element< Index, entt::type_list< Type... > > - Cstd::tuple_element< Index, entt::type_list< Type... > > - Centt::type_list_index< typename, typename >Primary template isn't defined on purpose - Centt::type_list_index< Type, type_list< First, Other... > >Provides compile-time type access to the types of a type list - Centt::type_list_index< Type, type_list< Type, Other... > >Provides compile-time type access to the types of a type list - Centt::type_list_index< Type, type_list<> >Provides compile-time type access to the types of a type list - Centt::type_list_transform< typename, class >Primary template isn't defined on purpose - Centt::type_list_transform< exclude_t< Type... >, Op >Applies a given function to an exclude list and generate a new list - Centt::type_list_transform< get_t< Type... >, Op >Applies a given function to a get list and generate a new list - Centt::type_list_transform< owned_t< Type... >, Op >Applies a given function to an owned list and generate a new list - Centt::type_list_transform< type_list< Type... >, Op >Applies a given function to a type list and generate a new list - Centt::type_list_unique< List >Removes duplicates types from a type list - Centt::type_name< Type, typename >Type name - Centt::value_list< Value >A class to use to push around lists of constant values, nothing more - Centt::value_list_cat<... >Primary template isn't defined on purpose - Centt::value_list_cat< value_list< Value... > >Concatenates multiple value lists - Centt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >Concatenates multiple value lists - Centt::value_list_cat<>Concatenates multiple value lists - Centt::value_list_contains< List, Value >Provides the member constant value to true if a value list contains a given value, false otherwise - Centt::value_list_diff<... >Primary template isn't defined on purpose - Centt::value_list_diff< value_list< Value... >, value_list< Other... > >Computes the difference between two value lists - Centt::value_list_element< size_t, typename >Primary template isn't defined on purpose - Centt::value_list_element< 0u, value_list< Value, Other... > >Provides compile-time indexed access to the types of a type list - Centt::value_list_element< Index - 1u, value_list< Other... > > - Centt::value_list_element< Index, value_list< Value, Other... > >Provides compile-time indexed access to the values of a value list - Centt::value_list_element< Index, entt::value_list< Value... > > - Cstd::tuple_element< Index, entt::value_list< Value... > > - Centt::value_list_index< auto, typename >Primary template isn't defined on purpose - Centt::value_list_index< Value, value_list< First, Other... > >Provides compile-time type access to the values of a value list - Centt::value_list_index< Value, value_list< Value, Other... > >Provides compile-time type access to the values of a value list - Centt::value_list_index< Value, value_list<> >Provides compile-time type access to the values of a value list - Centt::value_list_unique< typename >Primary template isn't defined on purpose - Centt::value_list_unique< value_list< Value, Other... > >Removes duplicates values from a value list - Centt::value_list_unique< value_list<> >Removes duplicates values from a value list - Centt::basic_organizer< Registry >::vertexVertex type of a task graph defined as an adjacency list - Centt::y_combinator< Func >Basic implementation of a y-combinator + Centt::basic_common_view< Type, Checked, Get, Exclude >Basic storage view implementation + Centt::basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)> + Centt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >General purpose view + Centt::basic_continuous_loader< Registry >Utility class for continuous loading + Centt::basic_dispatcher< Allocator >Basic dispatcher implementation + Centt::basic_entt_traits< Traits >Common basic entity traits implementation + Centt::entt_traits< typename Registry::entity_type > + Centt::entt_traits< Entity > + Centt::basic_entt_traits< internal::entt_traits< Type > > + Centt::entt_traits< Type >Entity traits + Centt::basic_flow< Allocator >Utility class for creating task graphs + Centt::basic_group< typename, typename, typename >Group + Centt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >Owning group + Centt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >Non-owning group + Centt::basic_handle< Registry, Scope >Non-owning handle to an entity + Cinternal::basic_hashed_string + Centt::basic_hashed_string< char > + Centt::basic_hashed_string< wchar_t > + Centt::basic_hashed_string< Char >Zero overhead unique identifier + Centt::basic_meta_associative_container_traits< Type >General purpose implementation of meta associative container traits + Centt::basic_meta_associative_container_traits< dense_map< Args... > > + Centt::meta_associative_container_traits< dense_map< Args... > >Meta associative container traits for dense_maps of any type + Centt::basic_meta_associative_container_traits< dense_set< Args... > > + Centt::meta_associative_container_traits< dense_set< Args... > >Meta associative container traits for dense_sets of any type + Centt::basic_meta_associative_container_traits< std::map< Args... > > + Centt::meta_associative_container_traits< std::map< Args... > >Meta associative container traits for std::maps of any type + Centt::basic_meta_associative_container_traits< std::set< Args... > > + Centt::meta_associative_container_traits< std::set< Args... > >Meta associative container traits for std::sets of any type + Centt::basic_meta_associative_container_traits< std::unordered_map< Args... > > + Centt::meta_associative_container_traits< std::unordered_map< Args... > >Meta associative container traits for std::unordered_maps of any type + Centt::basic_meta_associative_container_traits< std::unordered_set< Args... > > + Centt::meta_associative_container_traits< std::unordered_set< Args... > >Meta associative container traits for std::unordered_sets of any type + Cinternal::basic_meta_factory + Centt::meta_factory< Type >Meta factory to be used for reflection purposes + Centt::basic_meta_sequence_container_traits< Type >General purpose implementation of meta sequence container traits + Centt::basic_meta_sequence_container_traits< std::array< Type, N > > + Centt::meta_sequence_container_traits< std::array< Type, N > >Meta sequence container traits for std::arrays of any type + Centt::basic_meta_sequence_container_traits< std::deque< Args... > > + Centt::meta_sequence_container_traits< std::deque< Args... > >Meta sequence container traits for std::deques of any type + Centt::basic_meta_sequence_container_traits< std::list< Args... > > + Centt::meta_sequence_container_traits< std::list< Args... > >Meta sequence container traits for std::lists of any type + Centt::basic_meta_sequence_container_traits< std::vector< Args... > > + Centt::meta_sequence_container_traits< std::vector< Args... > >Meta sequence container traits for std::vectors of any type + Centt::basic_organizer< Registry >Utility class for creating a static task graph + Centt::basic_registry< Entity, Allocator >Fast and reliable entity-component system + Centt::basic_runtime_view< Type, Allocator >Generic runtime view + Centt::basic_scheduler< Delta, Allocator >Cooperative scheduler for processes + Centt::basic_snapshot< Registry >Utility class to create snapshots from a registry + Centt::basic_snapshot_loader< Registry >Utility class to restore a snapshot as a whole + Centt::basic_sparse_set< Entity, Allocator >Sparse set implementation + Centt::basic_storage< Entity, Entity, Allocator >Swap-only entity storage specialization + Centt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > > + Centt::basic_storage< Type > + Centt::basic_storage< Entity, Entity, Allocator >Swap-only entity storage specialization + Centt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >Default constructor. + Centt::basic_storage< Type, Entity, Allocator, typename >Storage implementation + Centt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >Default constructor. + Centt::basic_storage_view< Type, Policy >Basic storage view implementation + Centt::basic_storage_view< Get::base_type, Get::storage_policy > + Centt::basic_view< get_t< Get >, exclude_t<> >Storage view specialization + Centt::basic_table< Container >Basic table implementation + Centt::basic_view< typename, typename, typename >View implementation + Cstd::bool_constant + Centt::is_equality_comparable< const Type >Provides the member constant value to true if a given type is equality comparable, false otherwise. + Centt::is_ebco_eligible< Type >Provides the member constant value to true if a given type is both an empty and non-final class, false otherwise + Centt::is_equality_comparable< Type >Provides the member constant value to true if a given type is equality comparable, false otherwise + Centt::is_equality_comparable< const Type >Provides the member constant value to true if a given type is equality comparable, false otherwise. + Centt::is_meta_policy< Type >Provides the member constant value to true if a type also is a meta policy, false otherwise + Centt::type_list_contains< type_list< Type... >, Other >Provides the member constant value to true if a type list contains a given type, false otherwise. + Centt::value_list_contains< value_list< Value... >, Other >Provides the member constant value to true if a value list contains a given value, false otherwise. + Centt::choice_t< N >Utility class to disambiguate overloaded functions + Centt::choice_t< 0 >Utility class to disambiguate overloaded functions. + Centt::component_traits< Type, Entity, typename >Common way to access various properties of components + Cinternal::compressed_pair_element + Centt::compressed_pair< sparse_container_type, hasher > + Centt::compressed_pair< sparse_container_type, hasher > + Centt::compressed_pair< packed_container_type, key_equal > + Centt::compressed_pair< packed_container_type, key_equal > + Centt::compressed_pair< entt::dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >, allocator_type > + Centt::compressed_pair< entt::dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >, allocator_type > + Centt::compressed_pair< size_type, allocator_type > + Centt::compressed_pair< size_type, allocator_type > + Centt::compressed_pair< container_type, allocator_type > + Centt::compressed_pair< container_type, allocator_type > + Centt::compressed_pair< entt::dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >, loader_type > + Centt::compressed_pair< entt::dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >, loader_type > + Centt::compressed_pair< First, Second >A compressed pair + Centt::compressed_pair< First, Second >A compressed pair + Cconditional + Cstd::tuple_element< Index, entt::compressed_pair< First, Second > >std::tuple_element specialization for compressed_pairs + Centt::connect_arg_t< auto >Disambiguation tag for constructors and the like + Centt::connectionConnection class + Centt::constness_as< To, From >Transcribes the constness of a type to another type + Centt::constness_as< To, const From >Transcribes the constness of a type to another type. + Centt::delegate< typename >Basic delegate implementation + Centt::dense_map< Key, Type, Hash, KeyEqual, Allocator >Associative container for key-value pairs with unique keys + Centt::dense_set< Type, Hash, KeyEqual, Allocator >Associative container for unique objects of a given type + Centt::directed_tagUndirected graph category tag + Centt::undirected_tagDirected graph category tag + Centt::emitter< Derived, Allocator >General purpose event emitter + Cstd::false_type + Centt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >Enable bitmask support for enum classes. + Centt::is_applicable< Func, Tuple< Args... > >Same as std::is_invocable, but with tuples. + Centt::is_applicable< Func, const Tuple< Args... > >Same as std::is_invocable, but with tuples. + Centt::is_applicable_r< Ret, Func, std::tuple< Args... > >Same as std::is_invocable_r, but with tuples for arguments. + Centt::is_complete< Type, std::void_t< decltype(sizeof(Type))> >Provides the member constant value to true if a given type is complete, false otherwise. + Centt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >Provides the member constant value to true if a given type is an iterator, false otherwise. + Centt::is_meta_pointer_like< Type > + Centt::is_meta_pointer_like< const Type >Partial specialization to ensure that const pointer-like types are also accepted + Centt::is_meta_pointer_like< Type * >Makes plain pointers pointer-like types for the meta system + Centt::is_meta_pointer_like< Type(*)[N]>Partial specialization used to reject pointers to arrays + Centt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >Specialization for self-proclaimed meta pointer like types + Centt::is_meta_pointer_like< const Type >Partial specialization to ensure that const pointer-like types are also accepted + Centt::is_meta_pointer_like< std::shared_ptr< Type > >Makes std::shared_ptrs of any type pointer-like types for the meta system + Centt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >Makes std::unique_ptrs of any type pointer-like types for the meta system + Centt::is_transparent< Type, std::void_t< typename Type::is_transparent > >Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. + Centt::is_tuple< std::tuple< Args... > >Provides the member constant value to true if a given type is a tuple, false otherwise. + Centt::enum_as_bitmask< Type, typename >Enable bitmask support for enum classes + Centt::is_applicable< typename, typename >Same as std::is_invocable, but with tuples + Centt::is_applicable_r< typename, typename, typename >Same as std::is_invocable_r, but with tuples for arguments + Centt::is_complete< Type, typename >Provides the member constant value to true if a given type is complete, false otherwise + Centt::is_iterator< Type, typename >Provides the member constant value to true if a given type is an iterator, false otherwise + Centt::is_meta_pointer_like< typename, typename >Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise + Centt::is_meta_pointer_like< Type(*)[N]>Partial specialization used to reject pointers to arrays + Centt::is_transparent< Type, typename >Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise + Centt::is_tuple< Type >Provides the member constant value to true if a given type is a tuple, false otherwise + Centt::family<... >Dynamic identifier generator + CFunc + Centt::forward_apply< Func >Utility class to forward-and-apply tuple objects + Centt::process_adaptor< Func, Delta >Adaptor for lambdas and functors to turn them into processes + CFunc... + Centt::overloaded< Func >Helper type for visitors + Cinternal::has_iterator_category + Centt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >Provides the member constant value to true if a given type is an iterator, false otherwise. + Centt::ident< Type >Type integral identifiers + Centt::identityIdentity function object (waiting for C++20) + Centt::input_iterator_pointer< Type >Helper type to use as pointer with input iterators + Centt::insertion_sortFunction object for performing insertion sort + Cstd::integral_constant + Centt::size_of< Type, std::void_t< decltype(sizeof(Type))> >A type-only sizeof wrapper that returns 0 where sizeof complains. + Centt::size_of< Type, typename >A type-only sizeof wrapper that returns 0 where sizeof complains + Centt::size_of< Type, std::void_t< decltype(sizeof(Type))> >A type-only sizeof wrapper that returns 0 where sizeof complains. + Cstd::tuple_size< entt::compressed_pair< First, Second > >std::tuple_size specialization for compressed_pairs + Cstd::tuple_size< entt::type_list< Type... > > + Cstd::tuple_size< entt::value_list< Value... > > + Centt::iota_iterator< Type >Plain iota iterator (waiting for C++20) + Cstd::is_enum + Centt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >Enable bitmask support for enum classes. + Cstd::is_invocable + Centt::is_applicable< Func, Tuple< Args... > >Same as std::is_invocable, but with tuples. + Centt::is_applicable< Func, const Tuple< Args... > >Same as std::is_invocable, but with tuples. + Cstd::is_invocable_r + Centt::is_applicable_r< Ret, Func, std::tuple< Args... > >Same as std::is_invocable_r, but with tuples for arguments. + Centt::iterable_adaptor< It, Sentinel >Utility class to create an iterable object from a pair of iterators + Centt::locator< Service >Service locator, nothing more + Centt::member_class< Member >Extracts the class of a non-static member object or function + Centt::meta_anyOpaque wrapper for values of any type + Centt::meta_associative_containerProxy object for associative containers + Centt::meta_associative_container_traits< typename >Traits class template to be specialized to enable support for meta associative containers + Centt::meta_class_template_tag< class >Utility class to disambiguate class templates + Cinternal::meta_context + Centt::meta_ctxOpaque meta context type + Centt::meta_ctx_arg_tDisambiguation tag for constructors and the like + Centt::meta_customOpaque wrapper for user defined data of any type + Centt::meta_dataOpaque wrapper for data members + Centt::meta_funcOpaque wrapper for member functions + Centt::meta_function_descriptor< typename, typename >Primary template isn't defined on purpose + Centt::meta_function_descriptor_traits< Ret, Args, Static, Const >Meta function descriptor traits + Centt::meta_function_descriptor_traits< Ret &, std::conditional_t< std::is_base_of_v< Class, Type >, type_list<>, type_list< Class & > >, !std::is_base_of_v< Class, Type >, false > + Centt::meta_function_descriptor< Type, Ret Class::* >Meta function descriptor + Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< Class &, Args... > >, !std::is_base_of_v< Class, Type >, false > + Centt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>Meta function descriptor + Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< const Class &, Args... > >, !std::is_base_of_v< Class, Type >, true > + Centt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >Meta function descriptor + Centt::meta_function_descriptor_traits< Ret, std::conditional_t< std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >, type_list< Args... >, type_list< MaybeType, Args... > >, !(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >), std::is_const_v< std::remove_reference_t< MaybeType > > &&(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >)> + Centt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)>Meta function descriptor + Centt::meta_function_descriptor_traits< Ret, type_list<>, true, false > + Centt::meta_function_descriptor< Type, Ret(*)()>Meta function descriptor + Centt::meta_function_helper< Type, Candidate >Meta function helper + Centt::meta_handleOpaque pointers to instances of any type + Centt::meta_sequence_containerProxy object for sequence containers + Centt::meta_sequence_container_traits< typename >Traits class template to be specialized to enable support for meta sequence containers + Centt::meta_template_traits< typename >Traits class template to be specialized to enable support for meta template information + Centt::meta_template_traits< Clazz< Args... > >General purpose traits class for generating meta template information + Centt::meta_typeOpaque wrapper for types + Centt::monostate< id_type >Minimal implementation of the monostate pattern + Centt::nth_argument< Index, Candidate >Extracts the n-th argument of a callable type + Centt::null_tNull object for all identifiers + Centt::poly_base< Poly >Poly base class used to inject functionalities into concepts + Centt::poly_inspectorInspector class used to infer the type of the virtual table + Centt::poly_vtable< Concept, Len, Align >Static virtual table factory + Centt::process< Derived, Delta >Base class for processes + Centt::process< process_adaptor< Func, Delta >, Delta > + Centt::process_adaptor< Func, Delta >Adaptor for lambdas and functors to turn them into processes + Centt::radix_sort< Bit, N >Function object for performing LSD radix sort + Centt::reactiveEmpty value type for reactive storage types + Centt::resource< Type >Basic resource handle + Centt::resource_cache< Type, Loader, Allocator >Basic cache for resources of any type + Centt::resource_loader< Type >Transparent loader for shared resources + Centt::scoped_connectionScoped connection class + Centt::sigh< Type, typename >Unmanaged signal handler + Centt::sigh_helper<... >Primary template isn't defined on purpose + Centt::sigh_helper< Registry >Signal connection helper for registries + Centt::sigh_helper< Registry, Type >Signal connection helper for registries + Centt::sink< typename >Sink class + Centt::std_sortFunction object to wrap std::sort in a class type + Centt::storage_for< Type, Entity, Allocator > + Centt::storage_type< Type, Entity, Allocator, typename >Provides a common way to define storage types + Centt::storage_type< reactive, Entity, Allocator > + CConcept::template type + Centt::basic_poly< Concept > + Centt::basic_poly< Concept, Len, Align >Static polymorphism made simple and within everyone's reach + Centt::tombstone_tTombstone object for all identifiers + Cstd::true_type + Centt::is_complete< Type, std::void_t< decltype(sizeof(Type))> >Provides the member constant value to true if a given type is complete, false otherwise. + Centt::is_meta_pointer_like< Type * >Makes plain pointers pointer-like types for the meta system + Centt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >Specialization for self-proclaimed meta pointer like types + Centt::is_meta_pointer_like< std::shared_ptr< Type > >Makes std::shared_ptrs of any type pointer-like types for the meta system + Centt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >Makes std::unique_ptrs of any type pointer-like types for the meta system + Centt::is_transparent< Type, std::void_t< typename Type::is_transparent > >Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. + Centt::is_tuple< std::tuple< Args... > >Provides the member constant value to true if a given type is a tuple, false otherwise. + CType + Centt::basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > + Centt::basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > + Centt::basic_reactive_mixin< Type, Registry >Mixin type used to add reactive support to storage types + Centt::basic_sigh_mixin< Type, Registry >Mixin type used to add signal support to storage types + Centt::type_hash< Type, typename >Type hash + Centt::type_identity< Type >Identity type trait + Centt::type_index< Type, typename >Type sequential identifier + Centt::type_infoImplementation specific information about a type + Centt::type_list< Type >A class to use to push around lists of types, nothing more + Centt::type_list< Type... > + Centt::exclude_t< typename Op< Type >::type... > + Centt::get_t< typename Op< Type >::type... > + Centt::owned_t< typename Op< Type >::type... > + Centt::exclude_t< Type >Alias for exclusion lists + Centt::get_t< Type >Alias for lists of observed elements + Centt::owned_t< Type >Alias for lists of owned elements + Centt::type_list_cat<... >Primary template isn't defined on purpose + Centt::type_list_cat< type_list< Type... > >Concatenates multiple type lists + Centt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >Concatenates multiple type lists + Centt::type_list_cat<>Concatenates multiple type lists + Centt::type_list_contains< List, Type >Provides the member constant value to true if a type list contains a given type, false otherwise + Centt::type_list_diff<... >Primary template isn't defined on purpose + Centt::type_list_diff< type_list< Type... >, type_list< Other... > >Computes the difference between two type lists + Centt::type_list_element< size_t, typename >Primary template isn't defined on purpose + Centt::type_list_element< 0u, type_list< First, Other... > >Provides compile-time indexed access to the types of a type list + Centt::type_list_element< Index - 1u, type_list< Other... > > + Centt::type_list_element< Index, type_list< First, Other... > >Provides compile-time indexed access to the types of a type list + Centt::type_list_element< Index, entt::type_list< Type... > > + Cstd::tuple_element< Index, entt::type_list< Type... > > + Centt::type_list_index< typename, typename >Primary template isn't defined on purpose + Centt::type_list_index< Type, type_list< First, Other... > >Provides compile-time type access to the types of a type list + Centt::type_list_index< Type, type_list< Type, Other... > >Provides compile-time type access to the types of a type list + Centt::type_list_index< Type, type_list<> >Provides compile-time type access to the types of a type list + Centt::type_list_transform< typename, class >Primary template isn't defined on purpose + Centt::type_list_transform< exclude_t< Type... >, Op >Applies a given function to an exclude list and generate a new list + Centt::type_list_transform< get_t< Type... >, Op >Applies a given function to a get list and generate a new list + Centt::type_list_transform< owned_t< Type... >, Op >Applies a given function to an owned list and generate a new list + Centt::type_list_transform< type_list< Type... >, Op >Applies a given function to a type list and generate a new list + Centt::type_list_unique< List >Removes duplicates types from a type list + Centt::type_name< Type, typename >Type name + Centt::value_list< Value >A class to use to push around lists of constant values, nothing more + Centt::value_list_cat<... >Primary template isn't defined on purpose + Centt::value_list_cat< value_list< Value... > >Concatenates multiple value lists + Centt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >Concatenates multiple value lists + Centt::value_list_cat<>Concatenates multiple value lists + Centt::value_list_contains< List, Value >Provides the member constant value to true if a value list contains a given value, false otherwise + Centt::value_list_diff<... >Primary template isn't defined on purpose + Centt::value_list_diff< value_list< Value... >, value_list< Other... > >Computes the difference between two value lists + Centt::value_list_element< size_t, typename >Primary template isn't defined on purpose + Centt::value_list_element< 0u, value_list< Value, Other... > >Provides compile-time indexed access to the types of a type list + Centt::value_list_element< Index - 1u, value_list< Other... > > + Centt::value_list_element< Index, value_list< Value, Other... > >Provides compile-time indexed access to the values of a value list + Centt::value_list_element< Index, entt::value_list< Value... > > + Cstd::tuple_element< Index, entt::value_list< Value... > > + Centt::value_list_index< auto, typename >Primary template isn't defined on purpose + Centt::value_list_index< Value, value_list< First, Other... > >Provides compile-time type access to the values of a value list + Centt::value_list_index< Value, value_list< Value, Other... > >Provides compile-time type access to the values of a value list + Centt::value_list_index< Value, value_list<> >Provides compile-time type access to the values of a value list + Centt::value_list_unique< typename >Primary template isn't defined on purpose + Centt::value_list_unique< value_list< Value, Other... > >Removes duplicates values from a value list + Centt::value_list_unique< value_list<> >Removes duplicates values from a value list + Centt::basic_organizer< Registry >::vertexVertex type of a task graph defined as an adjacency list + Centt::y_combinator< Func >Basic implementation of a y-combinator
    +
    diff --git a/ident_8hpp_source.html b/ident_8hpp_source.html index 34c5e35a5..18cb21f8b 100644 --- a/ident_8hpp_source.html +++ b/ident_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/ident.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    ident.hpp
    @@ -93,21 +101,21 @@ $(function() { codefold.init(0); });
    8#include "type_traits.hpp"
    9
    10namespace entt {
    -
    11
    +
    11
    16template<typename... Type>
    17class ident {
    -
    18 template<typename Curr, std::size_t... Index>
    -
    19 [[nodiscard]] static constexpr id_type get(std::index_sequence<Index...>) noexcept {
    +
    18 template<typename Curr, std::size_t... Index>
    +
    19 [[nodiscard]] static constexpr id_type get(std::index_sequence<Index...>) noexcept {
    20 static_assert((std::is_same_v<Curr, Type> || ...), "Invalid type");
    -
    21 return (0 + ... + (std::is_same_v<Curr, type_list_element_t<Index, type_list<std::decay_t<Type>...>>> ? id_type{Index} : id_type{}));
    +
    21 return (0 + ... + (std::is_same_v<Curr, type_list_element_t<Index, type_list<std::decay_t<Type>...>>> ? id_type{Index} : id_type{}));
    22 }
    23
    24public:
    - -
    27
    + +
    27
    29 template<typename Curr>
    -
    30 static constexpr value_type value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{});
    +
    30 static constexpr value_type value = get<std::decay_t<Curr>>(std::index_sequence_for<Type...>{});
    31};
    32
    @@ -118,15 +126,15 @@ $(function() { codefold.init(0); });
    id_type value_type
    Unsigned integer type.
    Definition ident.hpp:26
    static constexpr value_type value
    Statically generated unique identifier for the given type.
    Definition ident.hpp:30
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    -
    A class to use to push around lists of types, nothing more.
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    +
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/index.html b/index.html index ee3ea7e06..668666c4d 100644 --- a/index.html +++ b/index.html @@ -3,13 +3,15 @@ - + EnTT: EnTT + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +

    EnTT: Gaming meets modern C++

    Build Status Coverage Try online Documentation Vcpkg port Conan Center Gitter chat Discord channel

    -

    EnTT has been a dream so far, we haven't found a single bug to date and it's super easy to work with

    +

    EnTT has been a dream so far, we haven't found a single bug to date and it's super easy to work with

    – Every EnTT User Ever

    EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++.
    @@ -159,8 +172,8 @@ Code Example

    float dy;
    };
    -
    void update(entt::registry &registry) {
    -
    auto view = registry.view<const position, velocity>();
    +
    void update(entt::registry &registry) {
    +
    auto view = registry.view<const position, velocity>();
    // use a callback
    view.each([](const auto &pos, auto &vel) { /* ... */ });
    @@ -174,27 +187,29 @@ Code Example
    }
    // use forward iterators and get only the components of interest
    -
    for(auto entity: view) {
    +
    for(auto entity: view) {
    auto &vel = view.get<velocity>(entity);
    // ...
    }
    }
    int main() {
    - +
    for(auto i = 0u; i < 10u; ++i) {
    -
    const auto entity = registry.create();
    -
    registry.emplace<position>(entity, i * 1.f, i * 1.f);
    -
    if(i % 2 == 0) { registry.emplace<velocity>(entity, i * .1f, i * .1f); }
    +
    const auto entity = registry.create();
    +
    registry.emplace<position>(entity, i * 1.f, i * 1.f);
    +
    if(i % 2 == 0) { registry.emplace<velocity>(entity, i * .1f, i * .1f); }
    }
    update(registry);
    }
    -
    Fast and reliable entity-component system.
    Definition registry.hpp:234
    +
    entity_type create()
    Creates a new entity or recycles a destroyed one.
    Definition registry.hpp:499
    +
    basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
    Returns a view for the given elements.
    +
    decltype(auto) emplace(const entity_type entt, Args &&...args)
    Assigns the given element to an entity.
    Definition registry.hpp:604
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    -
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:278
    -
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:93
    +
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:277
    +
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:95

    Motivation

    I started developing EnTT for the wrong reason: my goal was to design an entity-component system to beat another well known open source library both in terms of performance and possibly memory usage.
    @@ -209,7 +224,7 @@ Benchmark Out of all of them, this seems like the most up-to-date project and also covers a certain number of libraries. I can't say exactly whether EnTT is used correctly or not. However, even if used poorly, it should still give the reader an idea of where it's going to operate.

    Integration

    -

    EnTT is a header-only library. This means that including the entt.hpp header is enough to include the library as a whole and use it. For those who are interested only in the entity-component system, consider to include the sole entity/registry.hpp header instead.
    +

    EnTT is a header-only library. This means that including the entt.hpp header is enough to include the library as a whole and use it. For those who are interested only in the entity-component system, consider to include the sole entity/registry.hpp header instead.
    It's a matter of adding the following line to the top of a file:

    #include <entt/entt.hpp>

    Use the line below to include only the entity-component system instead:

    @@ -274,16 +289,16 @@ Packaging Tools

    Consider this list a work in progress and help me to make it longer if you like.

    pkg-config

    -

    EnTT also supports pkg-config (for some definition of supports at least). A suitable file called entt.pc is generated and installed in a proper directory when running CMake.
    +

    EnTT also supports pkg-config (for some definition of supports at least). A suitable file called entt.pc is generated and installed in a proper directory when running CMake.
    This should also make it easier to use with tools such as Meson or similar.

    Documentation

    The documentation is based on doxygen. To build it:

    $ cd build
     $ cmake .. -DENTT_BUILD_DOCS=ON
     $ make
    -

    The API reference is created in HTML format in the build/docs/html directory. To navigate it with your favorite browser:

    $ cd build
    +

    The API reference is created in HTML format in the build/docs/html directory. To navigate it with your favorite browser:

    $ cd build
     $ your_favorite_browser docs/html/index.html
    -

    The same version is also available online for the latest release, that is the last stable tag.
    +

    The same version is also available online for the latest release, that is the last stable tag.
    Moreover, there exists a wiki dedicated to the project where users can find all related documentation pages.

    Tests

    @@ -311,17 +326,18 @@ Contributors Take also a look at the contributors list to know who has participated so far.

    License

    -

    Code and documentation Copyright (c) 2017-2024 Michele Caini.
    +

    Code and documentation Copyright (c) 2017-2025 Michele Caini.
    Colorful logo Copyright (c) 2018-2021 Richard Caseres.

    Code released under the MIT license.
    Documentation released under CC BY 4.0.
    All logos released under CC BY-SA 4.0.

    - +
    +
    diff --git a/inherit_graph_1.map b/inherit_graph_1.map index 734680127..6598493a4 100644 --- a/inherit_graph_1.map +++ b/inherit_graph_1.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 index bf7dd8d2b..23372f1dc 100644 --- a/inherit_graph_1.md5 +++ b/inherit_graph_1.md5 @@ -1 +1 @@ -1f1d2339f403527d867b4503de7dd09e \ No newline at end of file +c83cedff4f147884076d83315f53bdf8 \ No newline at end of file diff --git a/inherit_graph_1.png b/inherit_graph_1.png index a43a2c628aa859fb7d004088958c27b9c314a7ca..9fe1c72f7255268b3d1ac4f9a93597b329cd32bd 100644 GIT binary patch literal 3304 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 MP)kUKq5IQ+11MHE`2YX_ literal 1686 zcmV;H25I?;P)>G;s%xb-}J2N|T zGk5zwl9k)PnQ!+l^X<;;?EyqYL_|bHL_|bHL`30<&;bxlf@ZV18af6dS6Z#sZ|Ql{ zAp#+qG(w19L&rem5R(OwFU@8XD=RCZ!yvM@wY7y-tChK|HsV-_h-eHkSr8FXAtnnV zA}YjWK}1A_m@J4YLn0kLhS;|2#wIQkWs-!dJk$5kWIf$=M|H)+ z0dArQ`TUQsD%+$^-F1DGnYX>_EIZk-j!KNjs0?0N5CszB9X6_%k`3{2dYt5S3B@MH z&jr9_K@?1EjaJ^+1CT#XF%Hsw{I*?LzV|!U z*6Z^FA+AEoPsHKj>i|xNj>%M+Zk@6N(W-jWT{Y?TbmA?uU#hMmUtM5D7jcsE@@wqua|59yc<_dt1rIZ&1AR*-xgxCumn=RdeW|O;} zOsDhe*4@^$4&D08%y-4)c;(GEIYu^hj-u)lZ4M4{@Y8cwUau=2XMOv_BpPtVJm z&RXBLUeo<9s?RhwRo&@%S<_|SBU|5}KRV5e#Lp1oB7~R%Fdbdr z4bcP}*#LL?DkE=N_1a{aYTc|Wo~)~)<=e!Tw_inU-Xl{tfZFML z{fz;zy1%=7O#pKM4kR#hw91rK!4y={_<+kgVjUnJHP^=>n!BNN8yAyCC{!0%Uh*kg z*LEEjk_jZM!S@-*;p4}6djI~XFDx$pD1n!S5YMEP&lAM(-)!QWrKPLh0@L)@&Q9nM zqGsEjwEpY zu?*d^Y>&sxg$v#5{r=~#_WKJ0cyj>!1mGV5NFl^Ct3qjFq#vZG!bIVRvnz{q!cg5x zt6FYTu1THgWu^nP$$7T>k|i%j)jD~J*)%qjq^^q9X9NKG{EjH1k>J&e<8G*;Mk22iDwT{Tsk-0Jpz8bLN%(>FHGoTnQW&9kG36w`tirT~Vq!iOlI$CW~=s@M4RxOm`m<;O9Yi$=|3*&kxa9 z^U8vVs3czvsOomvQL1W^7~(JG5s?=z8uPrX2a~ajvhjrYrM=kj%7TcDWHq{3zY$U9 zvFonnJ$Bu+oT_88AR=wP9@$;CzR-_WuL5PV=yW=xjDv{CxvJf<RB4!2kdN07*qoM6N<$f;FWzGXMYp diff --git a/inherit_graph_100.map b/inherit_graph_100.map index a03ab12ac..627286a4f 100644 --- a/inherit_graph_100.map +++ b/inherit_graph_100.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_100.md5 b/inherit_graph_100.md5 index 0db9c58eb..5fd27f90d 100644 --- a/inherit_graph_100.md5 +++ b/inherit_graph_100.md5 @@ -1 +1 @@ -6a118a4ab029495ae3112713bcc7eeac \ No newline at end of file +f61bec0b275a0f997d5a826ce659eff0 \ No newline at end of file diff --git a/inherit_graph_100.png b/inherit_graph_100.png index 69c8c8eeae25aba0caa5dac77201b31ecec8607d..a3b44c42f3e5f8b3a2caa021f760470280331459 100644 GIT binary patch delta 834 zcmV-I1HJs#1IGp-iBL{Q4GJ0x0000DNk~Le0002L0000p2nGNE0LGZvrI8^Ne**kT zL_t(|ob8=qa)clZg-xf&=t+8>z0{5;XwTvq_A2(59ZLfOz66x_&Fpj$B>`dxnw?G) zA%qY@2qEOoNO<7!czlS+XA5Nrv0|R*@9@}rctAuxMdZszB|_XdHvWz0^J%LJAr36d zGR^a>*1b9FLP$5z_{p%)_{p%)fB4C;(D(;LT8M(6m$|gYB<$(MbEG!U-ttT8YT7(%4=wKw zKs^7MkOH|$OzDBDOHnHW(WZ7DTHf6-4|`G@t)op?X*s2bMIBOpirhAHH?=k6dPn$@ ziwq0Q^OHJKA=M}zxD_=1f5yAC5~r8<_pkw&LWYhl;fzJ_Cnv@eL~f8TfhEc?mR2BxQY zvLt1|qFqmFQ>jbZJvy)C#?Aqr+tYfpbrqQ?T~nck>5Ox_t9n;Jzpr8+e3z>yR1&D4Nhw>bA~JH-ZR}9zr`=12+?5JLxzRMPlkoY zPlkoYPlhGB;a!%+Qx8H+c)ecHx~TET{(U1Mgb+dqA%qY@7zpW@AA&)lROG2yzyJUM M07*qoM6N<$g7~1G!vFvP delta 462 zcmX@kc8yuFGr-TCmrII^fq{Y7)59eQNY?j)d*Y;b5C3HZ$MQe7JK$IH@wZ3E4V7)h`sq3>EKl5i}eB^zsZR$NM39 zUi#Jln~G&0Bq&rEfKWY{;uD=Sv-?|M=^V*79};G8o;y?De`o%_bw9U0|Fa_{d*jyF z)mK+M)xGQAxwdNCr!VVfvd)g*^X0%96(!$qRXR%l|LolRE2t>Cd+xmDPtUHu{OQ`8 zYg;oS+o#R3{h9sd(xtUsxt+NaU(b|SnqB>&+73DS$v+;cN~BraFfF}icj$r_%fa0@R{`kv%tqpt|!db;|#taD0e0s!Nh B*}VV& diff --git a/inherit_graph_101.map b/inherit_graph_101.map index 97f3e66a5..83160096b 100644 --- a/inherit_graph_101.map +++ b/inherit_graph_101.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_101.md5 b/inherit_graph_101.md5 index 5df10895f..c1f042d56 100644 --- a/inherit_graph_101.md5 +++ b/inherit_graph_101.md5 @@ -1 +1 @@ -bfdb2db84cdf2d18c8d8b7020d7a3680 \ No newline at end of file +b3786ffd79ca890d9ef8aa19e18d386e \ No newline at end of file diff --git a/inherit_graph_101.png b/inherit_graph_101.png index 6111e51ea39fd330f2655656557d28364fc12628..02c57d6b271ec7e861b5e99db4f1444c4e8f2b02 100644 GIT binary patch delta 633 zcmV-<0*3vS1*8R#Hh)=3L_t(|ob8<9ZNwl9g>ls}I?2s*OPw-7J4MhurUxDPy=EEYCvp24Tx=Vh=2Z^PAxemhpA$V7d`7D z03G1jfEr?ABch+5xIS!8)u(>PpG)PqPs)zgwo+MgelET1s~I!3z8 z_Mflo`c)s7eO*Xg&W$bER<*8G^WMo(`H&d7B{`9C!NS2s_q~S9Shj{a&lcv( z^%B0yNeM<;6k(p9Ma+4&_#NRaS_HF#-6Jt4Hs{s|OSQ=ewSE30=E7)*L|96tt9!WP zzDhNc3Ud3aW74z5jJlDzkX@6uvxCSyTZoN=^xrbk$pfo&r{P5V1(!MnQhC8E%)!m0RR9100000fNs74TM)Dh TcrnWO00000NkvXXu0mjf|2ZoW delta 618 zcmV-w0+s!w1(gMmHh)Sil6=Xdr zI#SL7f<}@>vGNURJ4BoV0001hS4aGg`~ChUBDX7?fq7V#<;U;)^gBf4CL-T9F2Tg4 z#kTW!Jo>rZU6fH_TG2IZ-;Cjj|;8q&kL=aYS-*T?pVnQuG#k%KU*<=hEhq*8mY?y4Mwr) zT&FZTQNgo??zj`oyaMR%CU3iPpvN_ zGks(`qV-KcZ<|{4UX7_En-v-tp9kOf5F&^viQf%8^>isZ#wT@>XdSu4U-RM#;}u3@tVUH5Q~%FaxoH8Hf$c zKx|;f=?%iVu9kklBs`zb)3H;ro&CHx00000002NUzke;sF4G1-P5=M^07*qoM6N<$ Ef@6U)Q2+n{ diff --git a/inherit_graph_102.map b/inherit_graph_102.map index 2f735f411..c0249e3d2 100644 --- a/inherit_graph_102.map +++ b/inherit_graph_102.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_102.md5 b/inherit_graph_102.md5 index 6875dafe1..8be873fe2 100644 --- a/inherit_graph_102.md5 +++ b/inherit_graph_102.md5 @@ -1 +1 @@ -a73c588ab1bffe836120517f4c6aba49 \ No newline at end of file +1559802d8157221a66e476996848345a \ No newline at end of file diff --git a/inherit_graph_102.png b/inherit_graph_102.png index 16df156a64865e844ad4d00453e2e564ec7fc8b4..b364e8e52fcc66e570574f0c79c4ea4c11adc4d5 100644 GIT binary patch delta 520 zcmV+j0{8uw2ap6IiBL{Q4GJ0x0000DNk~Le000250000a2nGNE0RQD`Zjm7re*wiw zL_t(|obB1safBccfZ^Rt%19;GNE&eFYI3X~DI`z!M4n7M4pC%*!}-6NOawexbPv%J z0RR91u1)=lVHiGC_0}R7V9PX3-+tY@U!kfuRsE_H5^&gl@-D`4EE@`Nz&y_~O;fP# zt#T}Y8Il*>B6-m*k{8_~c?(f}e|igfDX%cTrpfD{fLAyn2=lLvbFNV&|Co8vEwkiR z)xST#e%&6b5B>MIL*-b%XWO>oO*v*N>o_gO5W80X_SradZT?7+LRBAbBeC+b?VNk4 z_sdJ&nqNNBPik9i-<181DiNo}7}n*`wK+P5y*_eOSvJ&KAI17fi6J-Mf1J--#c6TQ zt*%?C>u)miinMvyT4scGxwI=hR9;~WB8JJ^>gh9fyDHsZudXl#kwVLcTHox{wWamG zCB|8MR*d!c>NB*-%$sxj&Us*o^?SC>Z$Ep?qjKUrBd5QuJ6nt8n@ELaL+p*g-rIz| za;)E+wpe?Khom#dv^=l5Uj5~KE(bqSpj&1$FT!F=iK{#~wLKMe?FsBrm$P`L^MHzt@ZdNcNPx&bc2E`D_pi00000VC5G@i)UtlPxuP}0000< KMNUMnLSTZIy!EvJ delta 914 zcmV;D18w|}1eXUPiBL{Q4GJ0x0000DNk~Le0002d0000p2nGNE013A3W|1Kje*;WO zL_t(|ob8+IaoaEqfJtA+=p@;r8+a+5C+J=G=pTEEF5n5Q{8FmOe1QNdQ~tiYT*4O! zK>-PpqH_QM00000?~C7NoX_W<-usU|lmU2kPN&nqX`247^L}hAdG9~G_rLq81uzbe z$K#K4?$tMQ%x`wcX?h zwX5x;v@BFF)_<+tYxRUMf6c?W)WScvDbPBd%C8N>QgwTl)!HIg2G4NV3ZTSnCVB@_ zVI8CQ`+^e*=;bIlmCXZPzDp1Mk4p{JD80#~AI>={e+%auzu7h>UJt<5anm$d(uGjo@4 z&iYgSP@7nJs$J;=>{HPOM oE|+G?00000000000DyDu6YC)b;$SR+G5`Po07*qoM6N<$f-@JlC;$Ke diff --git a/inherit_graph_103.map b/inherit_graph_103.map index fed47716d..ae62a3aec 100644 --- a/inherit_graph_103.map +++ b/inherit_graph_103.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_103.md5 b/inherit_graph_103.md5 index b980923aa..1f22621b6 100644 --- a/inherit_graph_103.md5 +++ b/inherit_graph_103.md5 @@ -1 +1 @@ -3c70506576fbe95ec8a55049a983d39d \ No newline at end of file +1fb3ceae00eb7118ddb732af06216fff \ No newline at end of file diff --git a/inherit_graph_103.png b/inherit_graph_103.png index 4947aa5d32d19db581cce6e14391281166e34aaa..2151ba1a25b4a8719ec27e6f167ec44c7c3ada7a 100644 GIT binary patch delta 642 zcmV-|0)73a2Z;qCiBL{Q4GJ0x0000DNk~Le0002Y0000a2nGNE0L3-c9g!gve*!*9 zL_t(|ob8GtQWj_j=_K8Q{zxxE1P;uZkITI$MGfRI25hiN z6=MJZ00000_Ja*8&gb)owe~bZ8GxB^&i&kOw_m^RJ$%Sod$QJk^-~LAT0V_2-+slD z!z^5{*XG&)%*y3*iPpb$)&pSIf8a0x0&o}r0XPhRfMn9YcdWI>Ij8nqiJTM~@?j2! zo-m=2tr?w^-bU)2d%R-h5opdQ+#w_rf)UP5>-AA{7;Ek071sNo$LeE$!}qarNx$K9 zIXSuU)t(q@`laS5>|0_C()p~_LA%}7IdIO2=SqS~4ig&ET6uZD49pK&KPvH5JJgI2pmZ>gNv*kdv^=n|6kisMTSskEK%+#0(1yJ~JT zXhAC-Qtfi`TF-&MF>9fAOEx054=1C=g!ejO)|er0s?|YD_Zm4Z)=te~Mj2F1xKbm3 zq~pwREnTBSD!gsof6KLMe-e`Q+7Y+xI#M)__qDvDRPNTf9i@Y&P2?_TT3+X?oG@EL zqtXO2Rxa%~46S!#(mo-iZOo07=NB83jjY} zuh*{-!jClW&FMFmWpNh-fG5kce}u>5@fLq+pap=Y!0Ews!0Ews!0Ews!087k#;(<{)$vovZcb^4F@|+rMd9swUDyBO_u(xrWgn(&r|GD2_xY%De@kJCBX*?P zOLZyPx2of(aLVw;^I=L}j9QysXtYZ-&EmARnDq1^j4@HtXdHEN+oF!6VdnHB^fFS7 z)TiIOObfKSM`$w-T!uFz^dQ;^>X~I)NJGA2F!Hc?8$QZy5`n#op4BQ>d}@|DQh zp~^g}KWC?;+e_PMxDRi*f5}>DBIh0E;yIl;N_I5bq_(8bSEKFI!R8d04zr$q2Do9) zti9%l!08pVa%{X%wqSSzrlV`8Z?Un%o!jY^p0)LeyVF~3?07e9dQL^VOxco6_b7UM zpzEIA63!{8_5U6msdf2Q^tMsvI+0C}wC*>Ys1t@Ey!Y;@^Kskkf4RwCX+wvD%fo5T z+2QU{wzZmbn|Zm@oJXGL5hNRHHR-juIz9DZL(uQK9zC|Z<+X+@o6}UPr&cq!!%C&e zbu^_qS&%zIZIxa_lO@X|yPX=F-e<$lc#*7-99huhv(h82uQt7eF4pOfjN!PmBi^6K z5XzdlMk>uAB%0G9f1k8mjuK)vHOF`*Ly4M)rul`EBwy*?(ILRz{!u)? zmOVK8Mpvsh9zTGPEJ0HDrH$^f(ooV|dT}J0sQP-5E(d$0*K$fvFKwh!gVh|3mE4!w z<1|ylj(rcVDaR5{H&=h{A_7&eR;MTKPEU - + + + diff --git a/inherit_graph_104.md5 b/inherit_graph_104.md5 index 9d3fefdc2..fcebf80e7 100644 --- a/inherit_graph_104.md5 +++ b/inherit_graph_104.md5 @@ -1 +1 @@ -1ef036d8bee7b81b9a22fd3ed353e3a8 \ No newline at end of file +aed489651ab18c404a476800a5ccca76 \ No newline at end of file diff --git a/inherit_graph_104.png b/inherit_graph_104.png index 8ce9034eea546d6bd87559a7c991c75cfcc83a78..01351fd90c160462d9f0c69abab84b7513eada8c 100644 GIT binary patch literal 1520 zcmVY0Agev;rOR+DBps(UVThRv#UIJRHxg8(umCa^%Z+3TfW@q;M zfg{zkk_v9A)%+ zy+@-cI^sGGaziQg-C!{ICBE*C)@RC|IoE zh$vXB;D{(#!B%i0`)0sY+RpWU)E>-TbDUOi$rEPs1S+MBl|_`q-1S4SEx5Mx@oq~5 zn9W^d6`Y9NekIq(|DLu!?Pv1$v}K*+CbyebPElF=WyO^iW6?5n-UnL&`k1?VaizuB z^xVyy=vzcGsJ!LL?@FmX>yyiqb#ck%X~)ev{*@0EtbOvjylo1yn zBeLb}7wVpK7u7*)2doiuSO1tkjv6U$!t6WoR@1o{CO`7(kY1(qx zk z2>yja_tshIx{a{C!PcRvuj|Ig^|uLRD&<6b>{ z2Dq~3It*$MFDkgKCbx;Z2*)`7_s}fx;IA9_{>skR(c|x3R)RMH97Vhpm*W6%-`avW zeTurWva*5W$Bq1_Ga=_(o4T;xJpG!?k%_-dJTlk)KwZp1azS1HX=m_^tbVW{_lw|! z61*?KbpQ~-uIu=03N`2A?=K zIajADUn0=z7F=ANca}QFG}5qQ^GgUhXG4+LZCnGvK1I#ClbHDWmn^znh4?rNg`>$i zXR=(~n03Y;>%IoOY{3EhKY+ZZe)5S;-XzXxPsL2%vB@948@!K^2sMY`Lzt^qG9 zxV-5WI@_5jqwaxLYL>R-T-8|srpl{JuwB$RUnbU4IGA(I;6)3rDjQF#_|Smjnvio< zy0%sJZ<1D2a6tVZRtU*JX8D?PO&B{fr4?ONB5EgAa6}X=R&YcVELLzt6s*jL44a#q zHshcM7>!1*L#S*t8Zme2w#*7{eSO_#97IM8heHg9L)T#t5fKp)5fKp)5fKrQ&;A2= Wr4a(=9-+bj0000}3+9k?mR6=WuT~>+-$XnO-rFE^eXQacjuxqEXu ztj1VN_V7~z5xH&Ks>=K4ZQH)o$K|~)Brd0HhxeuWjoYRAEtONW*s0ZCe;P~4zSbCP z8M6IpiLJ4%(U+xOt{<-78cm~gmrz-$oI7@qx+BrJYVbZ|j4^6Xb(CKTN3F)x)?nSI z22$Nt+Dx{;Gp$;hW9hLaZEJl$hssK|2ZCX_7D+(b6HJygrXCtn?MmeAr21^tpR-fa zZKW;7eEZ{q(NdslUFPaJf1No>b|l(rZPm`NL|ZR7`~>Q#tyJFuZW~ZPRxGzY2jR^Pk*VD3+Lpg=B;TZd)pR`e;hgeEh#`P?ZR>O zyn)Es>}AUK*K%4du^HwOwb}|-2(9!Q$%#I9UHgb3%(>Fw5a(1agW=v?)x0OOqVaCV`iKbd+rP^4{&7q$DEE3FGmv%1JvP_#9m1@%)B5({@skneq zl4jDAx>33=3D$Gle`{+xNl&Ux&Q7U+%az;QsiY|#Gg3EN>_~%dNvexxde96Gwf%u} z(7jTfF&$*qljB+FcB(T@{H$2yEMWTs>cFXhI&dnW4x9?8lMU4G_xng4U_qYGXR - + diff --git a/inherit_graph_105.md5 b/inherit_graph_105.md5 index 0a58844b4..995f9f7be 100644 --- a/inherit_graph_105.md5 +++ b/inherit_graph_105.md5 @@ -1 +1 @@ -e83d8cab1535dda869222fdeb859042d \ No newline at end of file +07d8e0f5a6380c3992f296dd94ee993c \ No newline at end of file diff --git a/inherit_graph_105.png b/inherit_graph_105.png index 2c8a447a0012f8a22dfc750c36e5d3aef8255c5c..cc78175c3d73735ec6463e5bddeca91d82c57f6c 100644 GIT binary patch delta 563 zcmV-30?hs61G@wviBL{Q4GJ0x0000DNk~Le0001?0000a2nGNE0O2fJ-H{;`fAC2} zK~#90?U_+-!ypWXZM0+TB)!M93smZvIKrfzV|(f;dXKV)DH9_h0b=7Q{GU{{xCA@o zuN|jE000000AO@DHC(UPS7yFg1Ov{GbME22|Bh`h=_F>pF!M*hu)s(>pU+PsdW&r{ z5l(pT)dK=!;k~E({XVlhgIECge+NVe%z+4jIS?T*=d>bZo;`iqHP8CEGh-^k^nyrU zpb&!CT0oc6X2Q{t{6TAHZ!r-v^WQ7A$KNm6m)_IQOXCv1>AbCVYRMg!i)$&y+BHhf zL$VTt5SsU=gzUrW8q$+q8&9976PxVmc(TQ$<1N2A|6AXeUclUOrE%?9e`9G(q<0&V z?w_QeF6Fq_{aJ~hr8%wfNt~C2@A!wUO`Jfa5Xpo@HeFx38AobHB=)0pjd&ll_dvss zmqIQmP^fbiImE5udLYGNc5(pIoY#Dj7GWCF83mta8Fq*X<~A7OZ}$h zN?V9E`;jZ9dv7&ro0_c{e>G7r$7>z#R`^WLv?ZpretMOOa zu@TFJN2aB;tqIpUbDWJKL`by1glPaV|1v~52FC^>1m-}5z#NDWm;(_4bF$s>?RM)K z2N;-{2tx>8MD%VD3m5?B+`~Es000000B}5h0P?k&PDHLkV1jv5 B1d0Fv delta 474 zcmdnZ@|an%Gr-TCmrII^fq{Y7)59eQNY?0QN?D|+3b$4%s zvvhj@lzqxyyT5oI5-Bp;FP(`Sm&tlZ!tK0fUy|e?xwW<*$s-E1t@M NxSp - + diff --git a/inherit_graph_106.md5 b/inherit_graph_106.md5 index fb8aa2987..651dba0f8 100644 --- a/inherit_graph_106.md5 +++ b/inherit_graph_106.md5 @@ -1 +1 @@ -423ca6d9b98124447522eb55a36ae16b \ No newline at end of file +3fc418a2b45e81e60114ae2066f18bf1 \ No newline at end of file diff --git a/inherit_graph_106.png b/inherit_graph_106.png index 34391a90b1fe3c673284fe42c88fef3cb98eadd4..5d3f006f8915c1907535a1ddbb4f27902e64ebaa 100644 GIT binary patch delta 580 zcmV-K0=xaF1-9cLc5&orhKFkD4M9&{?kKa$(Q@{D^)OE?cM=?n2knBVx?##9E=VGeOr}lHT zemLIyqH$WpgZdiyjXSyyufxKEonHrA48P9JD~*-LrR*W`xt1Xne-0@oe@#9$pNrR3 z<0rNDlurw~l=xo#U`Y}sByol>lQy1s=gNKIYW&vNrT4AxOT6(|VX}idH>Nk^$07zY1m3Z#Yx|hw($Ng&8#r70ImcC+K`dG+f_h`2U7!q zf~kQ(!PG#YU}_*xFg4;+y!3a<0Q6)hQ1AW2{rraq0J`$4Jpcdz8UO$QhVl)2ih*Jn S?#y-o0000DBztrNFNHEerS8#}WQs133F1CcQ37WlcNiP~Pl^&S-~<1; zyAX^40000005-0e=lR`Qdud?|I6l)f{W#~o!@9S)k+t?>t^M53EN~{C&*zsh<|C|o z5s}9^SKT0RE}V1be!suePYrAVf1Lpl0WlB}5CahbF%VJbSo^Yzv*{X#rXq?bp*5)^ zz?n%;4*`qX>;nJTBoPAx3g#8FmHp>sS^m|>WnUMPTC8~NuwClD92+_9sJUsi4a>Rpf1pUMl?Jvi_l8O(H=u<4MOor(0nE;p2(Q?ak&NFi-ctgjbuB#=N?J(7Su#^lnLz(6?Q^$ zA!*CFxobxeQ{QR}^w zo*70&Ef__(Lx_lb%tUfDB*bs-^)4p0&Bh~>I&QH>$m@04X78 zKkTFY&sBpVJdrjfLg?8OK|}>`!y>oO*%&sQ8AInvTfNQN8EB1Dc8Eu3C{M&mu5%{{ zIma}57msHc5tTep&M}XX89JN+9lG&ERBl4$Jn$-Vx)Bjq49I2lKsW$4)dUa!@R0RR91000005b+D2xTA!%g1){00000 - + diff --git a/inherit_graph_107.md5 b/inherit_graph_107.md5 index 3f4b23bf2..6129e45f8 100644 --- a/inherit_graph_107.md5 +++ b/inherit_graph_107.md5 @@ -1 +1 @@ -e7b42bbdb362c5183c808216d3013398 \ No newline at end of file +d5e1496e8286c84921f961a8b3a33083 \ No newline at end of file diff --git a/inherit_graph_107.png b/inherit_graph_107.png index 68d01c1e6d0cd83f4ce84a7f34ddbc5a8f7661ab..e857e6de97dd77b36500e122405141d3b4210290 100644 GIT binary patch delta 448 zcmV;x0YCn+2FL>;iBL{Q4GJ0x0000DNk~Le0001O0000a2nGNE0E4fz@{u7Fe*t|- zL_t(&f$f*uZNo4OMMl&DuoO2J^+p%-*k3Y0GpHFD# z;-sDx<{(kqGj&UF$as`WRw_| zw}Q>JLc}^vE2WV+dcl$7@}iwpm=YL|3V~<}foKYWXbOR73dyb>=XpLd4^TlQnse@p qh~5X}0umTw?xS-60001b7V!h7#@u$B6r`vC0000%FWaO delta 812 zcmV+{1JnG-1F;4niBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e*)%7 zL_t(|ob8&?k>el?hEe9qxJtH<>mW@rsbFWWk9$d~*alKTd{5qC2?&8D!1n*mWMVMJ z2>%8d-9GgeT--f*gu!c<;#2jFUipN#B}(~M+b9BLvXqVHdvAD&O;r~cz(E?ufS)y^6uwx#Nq+QQkv*`U!MJ;*M` z)<8sVSr$=xJzkdOM}C}M^FrdZv~I4fg>CC`4XJB$^=|F!-gKEREsd+Gf4ij}rE7BM zYwsm_p<3#h0hN)=xnn!pv)MLVdrGK@Y{oZ8gVc01n!WY4$#glxgRr2+u3mkxhrU)3 z+3HxXznV8q^3|0~*Vf%aXq&`8%ax7$NTWSl`??qA(Dp^Ka`mR_;OcGZ zBS~6PZsZh;#aKo5Fm;VUe{Ce&E1WP|mLbCW_U52lae9$y3jxA<2h$}mXNbsJeV3j- zkH(jvSCrS;c53vRMr-!L4x}8B6=rMOM2=m*MYv z4GG#pDx#w%+$O#*l`komyLT>}M>_3?i@e&XZ;-bP`&_t8E_8+qe{l&zTP#9cwuJvk zLV;TBPT5*Y$K*ndwxTkUg@(2uxo)PVf!6S!+A^tfJ^Df07gZU_!UpveLunz^GEi@% zk7m75ul+35_bz*ijk|~TbXkf{?M3aqTQ< - + diff --git a/inherit_graph_108.md5 b/inherit_graph_108.md5 index 41169bedb..3a4ee7e6b 100644 --- a/inherit_graph_108.md5 +++ b/inherit_graph_108.md5 @@ -1 +1 @@ -715a0e1c749782333c4de8baa7e8f938 \ No newline at end of file +61032f2252dae83125be9630383dc316 \ No newline at end of file diff --git a/inherit_graph_108.png b/inherit_graph_108.png index 9458450665ec5ff0ed6c6ac57b94a014af9aa547..31affd59a8a77191410002b65e7df9356a437684 100644 GIT binary patch delta 856 zcmV-e1E>6x1KkE8iBL{Q4GJ0x0000DNk~Le000270000p2nGNE0N7FK7Lg$oe*+Rp zL_t(|ob8+4k>el?$02iNTqWDbb&#f*RB$ub$Gs#~Yy+tvz9-)>1cU&IkMRG!>>6w& zuq??~F$Mqt0001hy|H1#^?Lnjt^FFI3;;PUm&>^D-A^q5_`F`P zKgO6}e%qT7pE&2#6#}3H=bU*we;#k`mjSu}APS5aEDwwrEDwwrEDwx$60Ehx+P57~ zz+k8mhc`{~Caz=<)>?BMhdGX8v?@yiPyAu5^zcd{X2fSWOnKL^&u@?Y4gZfFr{u=Q z;_8??H=GMsMv4;IDVhE?J9_iv$Bq)h#iNe>(CN2_$7h>Qc$|_G8>>dge_UV8$S4^x zLS1Y0j;+m3bV(fzClS4--l-5C*2Y|NNk?DS&(u@trQ>A4R6{C75FF(V$e zh^671Ln>sK>eGWTwb{{_Rnm!G-l&HhN=8n8Z?7Cird<&6#4TaH_63V0H}>Ml(J>6u z;dPw8oD7canlX0t#Omn;f3?Gq+kMC#m&k27m!k)#k9$pto&X;^irFz-&yJWU-i4ZQ zPZ>VEYdbLF3XrGH1=0zyJmQ{s#?UFPQ;!;jlniS3W>>_GSmWb^1TA_{H60prJjWcp zexv1cK{^4tpt-Bl-H563%2e5=->>xx2yV$}tgW!PxixF2e^t)vb4C`8dpF(g z1XcFf62_^;rDRiKT_faEUm3aAg~v60t>vsSwCX&%8?nDQu}N#?V4QI!Was8L12tu* zrQ>qWlUkqYJTb+me=VazxaPyqdtI0J#4XI|)uc&nt7*|vc3LCL82S4+WOsrJwIw;= ztkk3u)cMjSmZ`CNe>^N2j%YehocgswN!eu#&WjxdHGYY~YNZC$`f&SV4@+%1YfL{a zRE@Y+ap_XTnwL6mDW=rT$&KS15=XC+@l#{Amb3N(A3MPEbWbO=lKWX+`f~G|MbA%S z$UbpR-zt2<999GA1XvyzF<2fLF<2fLF<74Di{1Tx@2Lj>E?J(>XS6+O#JAf`O&I_H i000000001h|NH}8E|7~@c3o@$0000f%8?-ye*s8I zL_t(&f$f;lZG;;)& zv|1KK2qA>@0^-0h4DSFg7GiqDId}8k|Eyzg@kIbG06yEv>YI6 - + diff --git a/inherit_graph_109.md5 b/inherit_graph_109.md5 index 3785e51ce..2b7e947e5 100644 --- a/inherit_graph_109.md5 +++ b/inherit_graph_109.md5 @@ -1 +1 @@ -ee62b74e865532b965b3e43b13860992 \ No newline at end of file +96d33e3c29df5255ba455f348f11494a \ No newline at end of file diff --git a/inherit_graph_109.png b/inherit_graph_109.png index 96e0f3ca7f1a4ac4aa19a89ece35a9fda047927b..b440a70acf665f832fcc6eb3fecad22117f2c267 100644 GIT binary patch delta 952 zcmV;p14sPM1iS|!iBL{Q4GJ0x0000DNk~Le0001q0000%2nGNE0Og;D5RoAie*_apWKjhQV`XTqWt_I@qRM!p)?QJZ%m8kUs2ta)x6;5+FeA{@+X{3&xgg z|0`sROq>G%0001(kB>WUx7%;;{l^SvzAFIF3)} z+@G-TNhBBhzIS&B*ka#zcfa4CfBLrxzJSGmNB|2&0$3mtzygr~mZ>7~-ji+3V_U|$ zuZSdoMNK5$`=6h#U_{eQb-Au|xij=P$ls~2RB@CHvG#u@1e}@uh4}08k z!-&CsS$d-qNt~OLe1#YDYHLw@KC_e19`@BlGFsg!yISEj6}D^qnL!WxU8b8+-=-0E zC>xyp7XPSRr8FsSMJ1B7g#FqCQeroi7)yK%$ENm^Y~yUiltjVU2Mzla-KQHW>EaSH zNx~+z+cLH!ajdy9n)@s>f8D$?vlG)9s6~=@p(dnL!lH7H*-7vPL{dTN&C?t|LpYdj z0L$A%60LVAxnt+3vDwqt8eUc;TpdW8mg7^tS`bXP>E<1u0$vq$kz8eJO8vE^`Ie;u zRB2ygrxodviBwg5IbJe0 zyzrVgKx$jVP7nVn)N41jPPY`&v_Kw}M!j}ZE0)~&ma=^*v%|Vo)Dzcmo~_e7QWHW@ec+){Depr14{*fNtP0ctb2r>4y3vE9ri5TWbkIX*;I1<~4#PBS{Z> zz2z(^3s}gxQkah38sKqP<# zA^|KA31ERp01HF{SRfL>f`8Nqet0|{$^IviY}@vI9LHzszdC}~XWOEZIK}qe*yzZ zL_t(|obBB0ZNnfC2H?A@V|0=%(gh-Arbt^B#m|n(6%nv)3L`3R3uljsb z16DT5s*U7Tt}VT{F{T8Lm3q;cM%T$KV43;vOXjENbNRXN^0=1H-M3aJO_^FP_ijBW zud(PUt=lMsuvuOYlPSU0(4MB_aeT0tFVitEwKc?*j&o@XE%$Cc7t=)ge|hMh`sdQE z(&tIj77m%ij+`^~mYsf3_P$}IYc0xddQQHP zn%C_Om|2$YVP`kaN=id{R2znC?KpC%wKTGRLv{&{>}@UX)iNE>>RHs)dRy63kEU&- zbd55CNe{a<%+>TPLgc+=e^1p~r#*Ggl`rcguhYCvQ)jFByH$BsWz-Cx64X}uTe|?7 zT>{JeJ@y2X_Bk}=YW2=@SDkL)2M6HFQ~oYNs - + diff --git a/inherit_graph_110.md5 b/inherit_graph_110.md5 index 8110e4809..4272568a7 100644 --- a/inherit_graph_110.md5 +++ b/inherit_graph_110.md5 @@ -1 +1 @@ -4f90ef1209822a10f05af1c608bceaf2 \ No newline at end of file +45ad0e4960f0f5a90370e6ac93fa8587 \ No newline at end of file diff --git a/inherit_graph_110.png b/inherit_graph_110.png index 44334bfe71592f277a18f955205ee8da6ecb0f5e..549802642dade73d1a3709296b371200dbba5f92 100644 GIT binary patch delta 1038 zcmV+p1o8X+1Cj_KiBL{Q4GJ0x0000DNk~Le000270000%2nGNE0G_)=+>s#^e*?!! zL_t(|ob8+4aor#gg+Y@tQi=OW2e&Co$c+2&)2-n?xDUxsWC#}lyDb0boAJa#61$R* zfR#>^0ssI2003ZbwBPV}Jbr7fKYAnsK#JoyzKt*7|R|v;fHGJkL+1 z)E~F)O~e*sO!b5SpkRzq&*$^4fBoo?3jm@(#9(?LVlX`rF_<2R7)(!B5o@iZ+md~c z%uKnC2u5NsJz^r(TL1g;+ui-4_Rzon@1gCxxS_ssb4(rUUrTO`JE+%vcR#uDSK#(z z2L-LQx~?m0+x~uC*MIH)wrz9qx9{SF`r_o6+7}XAEJlb>t|?;qP~)#af0N}zs~cGo zC-(5vh?nZu9dT0+^X`a@#7gxkPTW7X-IjuTJ-w&#-tl`NCgNVBLyhS(G%a)T=|S)K zJ*cvrXf+zNh!cyEieHjnY^_W!8dpbTBrciOxdm2E+)&||lcRfV=)9bLsTe+#S;Wsl zBL2)&Urxk|l2pNxQ_$qbe=RwdQdn_>BYDm)!gayN4kEiu(K8`767K?M%8m&?w&vY& zROJ8>GoXq~@^}dQ9V{on^fVudsZ(nUq;qQVxi|Lu?e6W)sx%kzsNeQW@`!mpYFwl3 zv-kb$9p6%IIe{u3v_f3O)&|IZLPxbB=2}WaZB%}JnH*RAj1|S-jSUi+~q|~wL^04p3>))+D+|;e}^5!Jlxv}X-YrwQtX~m z=h?ie{e-SP)aPm}KN5#t^hiBL{Q4GJ0x0000DNk~Le0001!0000a2nGNE0F5dL*pVR=e*v>e zL_t(|obA}%ZNnfG1z>K~F*->W=>nEKlf?w>Abs*qWZEptQa2PD(z>q3TC1M> zXdDY&7?X)$m`nu2WFnZiOeT@1ed*}*JwBt!GFS5=o^5-(0LGjf*wlI{e~?;zf1~UAATyIO zV{M*W+9&IFoNBZ&g(cIg-rc-{(q(0|F|D%9wfsjR`qK6qD6#lTHvFY+)CQTE&Q9gI z8_iJP{^q?jCZt##CGp4F)NX7--$kmv%pGkwW1G>`%_^!q$C=-e8qZO^oH{kfVUG_j z2?jPZjY?Z$_T`$^L`0W&2cuUjQ2}FnF8}}l07*qoM6N<$f^wzk$p8QV diff --git a/inherit_graph_111.map b/inherit_graph_111.map index d2a38bdc3..661856ca8 100644 --- a/inherit_graph_111.map +++ b/inherit_graph_111.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_111.md5 b/inherit_graph_111.md5 index 71596fde4..c71c64475 100644 --- a/inherit_graph_111.md5 +++ b/inherit_graph_111.md5 @@ -1 +1 @@ -458cdf7f00b66148bd7c5b82adc2430c \ No newline at end of file +0ae9b60750d9b7f5c578cc741329af44 \ No newline at end of file diff --git a/inherit_graph_111.png b/inherit_graph_111.png index 20dc12eee33c60918e2ae9127ab5c27dc0d1ccad..b0708cfef82171de290aaf4e4ddce7a6f22cfb1f 100644 GIT binary patch delta 458 zcmZ3=c8OWBGr-TCmrII^fq{Y7)59eQNVfyA3I`jIT%51zHBnKdp0VB2#WAE}&f6Pr zbDIqW8WQ8L8d`aZy=3w@(_-Uj?NPsR^6&00D?5XaKb24Y_6YpI{)4HVw~&v4VS!zz z_Oi@h0u!VA6E5_B|7X3fx?kJniJDS;uG1lhbCZ)d>v-P{FlZ@_o%`MH=C^AWVm5-4 zn6;ot+40Fc-v6rgrM`VXlw$U3ERH>L?_)&&`7?}DBa1pt+*eSk&36}Sced3Fo?9MS)Ke!O zvCHb|^uCMUQ&Ur0)~sK8JpXm6oo`y-q?Kmh6?H@VUh6Ecd25lL9C0MM(#|_1KJ45* zi=yAprpWg`)>-F%d_$M|^shlj<|hQqJS(%}{fnE6k1^|<{OA(3|KNr-4z5KAv~=Iv xGoSAm@$tOSvvlIHS2(xxJl{rOd^}+N%k*jwSGWUbMh}q7;OXk;vd$@?2>>wL(5nCd delta 799 zcmV+)1K|A91EmHbiBL{Q4GJ0x0000DNk~Le0001^0000p2nGNE0Q(BK!;v8re*)S` zL_t(|ob8?AjpQH-8&y@HIjVSciSz|Dc)8Se!p#{fF(JO zW83$gy!NBB767uq7=asLjKB>re@5VjC5!tDA-v!rKy zGBbZ6)QmBN@comP$JeQH>Ua8g=`+=CNfW2e64W!4evXEkK29C+J?D8=^?N0|=`A50 zgwp5h@AEwWDNjFNWiix1Q+0DRX+!C68J84J9asCa(`A~rHiEm)$6k$7e;@amT3vUw z$6xFxpyC;~ZSJ*-B^u+Bt0VqWJi#E>m8G6x~G@aXp36! zX+NViCM7Q!d&(J6@r>ypNM5RBQBS@6+*EZ((;cXwjM8)6Thk})$IPD5e3~vr#I-X1n%}7P8lC-nh zb1ik|Qorud+OL*&xYu%NZW2wGL$NZ-VbOGJdexm18%`?QsD4T7f0oQNX`8j{qt3$J zM$_C*O3#x=Gg?FKlt@yK_R?$WeMSlo>rx91x#h&D>~0Is*wq+&4BTkXW2qsR3EmUS zR5g=nI+vkh(E;fqzBgKd3OB3AQjc|JxtV9Ir9QQ$c$J=$v`IzwwRE-geoC8WI-M4^ zR5nRHmY7b{t+{utb*W^nZAu5(s$X~8lceX})ntL&Xd39@A*kcrM&O2Q0COBiPaR+pKA%taTGkkI{~iGV00000 d00013p1*eyI3H!$C)WS~002ovPDHLkV1jRXfQA47 diff --git a/inherit_graph_112.map b/inherit_graph_112.map index d18c349d7..aa32a5ab6 100644 --- a/inherit_graph_112.map +++ b/inherit_graph_112.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_112.md5 b/inherit_graph_112.md5 index bafc9a579..c82db7f5d 100644 --- a/inherit_graph_112.md5 +++ b/inherit_graph_112.md5 @@ -1 +1 @@ -c363a8b1b0d53836715dc71d44451d31 \ No newline at end of file +19eda759b8d54b97f5578a391340ec90 \ No newline at end of file diff --git a/inherit_graph_112.png b/inherit_graph_112.png index ee5441b8b181137d875c95b07cd8b8242c06d5a8..5bcc3261d0de8c762d51de3812f1a3d5e641955e 100644 GIT binary patch delta 691 zcmV;k0!;n91>FUZHh+>yL_t(|ob8?Mal;@ChEcC$bdt=IrE;F2oy9X`75a;WQm{dm z0L$-lmun2RP{eCKY~9s400000004BMwBUZfe-Y7bgfrl}EX(qfmVKrLM06vf?>;U8 z@M2$_fyd*a>k0tQxpiILvMkxUkIudTPz}ThrUl{z(*kjVX@4nhh`>HXwmr0IYF?_<%6c-N6BVOTeW`1H}+9R#Htms-TK+rJ{ta)Y{tR}$2G*) zjTBF>z7`Yb40qZQv>yqj9m<^=eKq(j=T2Unqx^nIkt}c z*4Fb{;M$Ok6$dvCQ@^|^y|Ca4EdQbIdYCnquWZAYoVomYoZL86K9V!I&P|5kCZ@5Tw+=W=fvE|nPPFHa23pp z^NMRVD_~j&(*kjVX@NMwv_PC-T8bN@bzOV<0W2=c^Z6{+6~$Tl_Zt8J000000000` Z<`=;gF8zqB&Q$;a002ovPDHLkV1kIGStI}e delta 658 zcmV;D0&V@>1-u22Hh*zRL_t(|ob8?MQNu6{hHZ{9n1p${R4)_2ESaIJgdY$n!j8YB zM4``f*K1-Y{)pd7wj+)Z000000Bnge;c~gW#287TM#F>C4ajh0zbs~XU8ur%Q95n z$o*DjNe;D~@}Z{&0X|ul<=1EASy_om8{E1RTE#Xh&@-SW&KTqON2cHBr_xj3@_6gK zRBx$`N94(CG^|<87^J@Cb)~kK`lN-*oKrsBt@HJG{pGLe@_bFZCpCbnvc2c6=ea)h z&@u)iWyxbpc7Ji}mUEn~vU}^bxGy!>d(Qn*b=^-5daSo~`_)$K|9SqC>zkbSNvmIz zr#ZlyW8h&t)x>$06<`mo7O^EyQ>2<>;9)#X-1?rsI*YnW3z*jHw&>j&D!Jj7`nAf^ zM#XY&xv&x=iwaqH$-<4gV6D7d`?in**?JB&<(1k}+kdZAJGHE?xm({_ahF!(HLLYp zdTrWKc`ekI(=!IS`}XKp2{z%uEr=6T(X^_k7N>_5CD?Ilal-$Gkhw4(l4cn;_Q)X4 zFQmA71&2`ez^!LEA|%bjD??9UIU6W#a_535YB$HN-npL@#92wp+p3Y!HH&xdX9c%z z%t-j%5r0z)PhdG4=oL!OeOOM!*@VXGy(Cmb`2%h}gGCrwjWG9)koOFh^9#+8wA9~5 zrOJ>X%HJT)pc|4_3O_@D_2AaQEr=7`f;hn~h!fm`IKeH56WoG0!7bT+&Uv2qYzI6j sx7#h7mlbF3-){f_000000Dv(ceZKzA9@iTy01E&B07*qoM6N<$g4FOzT>t<8 diff --git a/inherit_graph_113.map b/inherit_graph_113.map index 290b36373..af6040bf3 100644 --- a/inherit_graph_113.map +++ b/inherit_graph_113.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_113.md5 b/inherit_graph_113.md5 index 8b2eda227..0c2f3b5e3 100644 --- a/inherit_graph_113.md5 +++ b/inherit_graph_113.md5 @@ -1 +1 @@ -0c6ab0ee5db9f52b15c87ae65fe4fc70 \ No newline at end of file +938d46b262033e04b7a7cce6031a125a \ No newline at end of file diff --git a/inherit_graph_113.png b/inherit_graph_113.png index a4afeb3e1fc4aecb09e9feeb1b59ce6be882734d..0836b57f5c0295939bd611392f467f0b1a22b3f0 100644 GIT binary patch delta 676 zcmV;V0$cs&1gr%iiBL{Q4GJ0x0000DNk~Le0001q0000p2nGNE0Hbv)+L0j@e_=^P zK~#90?V8bT!ypibIjduIlI+n9vJ}b$mAXe?k}0}CCW!k)ga{Z6cfdLSCq=Qr#>e^h z9mW^~00000FdhmE&gb(d5uHXD1IDu~%b&IO*Dw1B4;VXZZ{+wG-%8DI-ge+EPXvOpvt3q%64KqL(iz04pK)k$1WlA$6AJH6Kl zqnzeg*HyIruz&vbdiEWW1Y}_o2@ySiVYy!)E06t$+o`&m<6}=@%Kj~4*Grw>>YrFy zY2RC65eX5QbzPson89J43!SO|a647EC*;TMD6zk#?UMFO{Nq#8_ZGUOf16&N@ty1( zKgtft<5O*H^}U7UwESL14(8W(nBH>K1rtx;vG z?=7%Il5j9qGnkC+Z`Ey;mDm{$f@|$hwXs##;-AtwPQ=qq$r}pSKBt{EZEdx|?Vq0M z3zKOe3tJ?afmkZxXfMWWe*;nOzWW?XBsJl_w!PVqv=!+FWI0qM@zInjX6LXX$-O#* za@41rnWwvFwrvk;MdCiK*G7mQ%L?2ins%|MOE;3Qdf|0qGruLXz&`$Y{=OzuMG}AA zMJv6R6|}5X8I7t)lKS@2o7zQ5#^{VBszhSU9N~NK2fDrI%!aCTdgH?pzNMEHaHhwR zsEZ^aQa6BOS%G$OIMj=zgxZ_MxvW4lYSRtq$6G{_7)KaT_Tp_t@(yDOE|6|O7Kj97 zfk;3Why-Lw4qUI-Yfn4C1l;fUXn9g3m&--W7ytkO00000VCNrt&Y)xO#M`p~0000< KMNUMnLSTYMFF36L delta 606 zcmV-k0-^n^1?B`HiBL{Q4GJ0x0000DNk~Le000270000a2nGNE0LFsbHIX3|e;Y|e zK~#90?U~zc#2^qw8I&?o$@USYft9u`e|=rCL+2K(bqUx0Oa#}y}p%FAAZ`- z#13OjcR>J@V2n}Qw(ZjO1T6rFe*zPO<$;O8^1#Gkc`j>WB4UqMhlto;n5U)wlJpTw zHL+xHTd>wnX_rGH2G-i$&#%|N-E~nrDt!%zNNW->aR&j~yk1fsLKJV|QaNe?2^RX+GS; zBx3!-)2{?XubAf9UboK|K%|iCd=9mIYBv2d63L;indxIc>Z1oNFl!M{T9b zmy{`uGgo(NvD}mHuM@EyhScsu>3M1WEoD;m - + diff --git a/inherit_graph_114.md5 b/inherit_graph_114.md5 index e1b748185..3296d7e57 100644 --- a/inherit_graph_114.md5 +++ b/inherit_graph_114.md5 @@ -1 +1 @@ -ead5d03e7a95828acb90860f92561cb6 \ No newline at end of file +dd0ed674467809ddb88a1d7365a87454 \ No newline at end of file diff --git a/inherit_graph_114.png b/inherit_graph_114.png index 52822775c8f62aa66485b4192291e7e3da2d9e5b..aa6751ee1e58d38fd2169487ef1a6c52950574d3 100644 GIT binary patch delta 753 zcmV(UAKo$@w7#@fe3=c#Kh9|gj0?RNnP1Druyi%B7 z{%L&B(vMQQ&ZKVeV!=!~zcpL9z(jw3+Ly0AI!O15=zY`HLQJI0{CK(j^W(mL-@E%c zbgbn2zKa?1KSqiDkeyiULT&f_(wVV!+;S0Flez(lwe9C=nx6XIw(Xnae;&)dFg`z0 z{Fk)v6GUk2`ET_3WNp<>+qL7iM3Z#iYVBh$CXqj2wf#u3FXhAhW?xJ1xGf>JyWjeH zsHgu+yYG;2TFs;}TEtCEq`mL9we<8qHg+uCyGw{3zoEsLRnmRWSt+(wP4#QkSvACb zjbF;haTA$I-2jztX54nlf5JRxu^vj1Yy8h0cj;KlCMq^g4NBuCwUMfx?w5Axsoza$ zOZu5>YmKiZu`8w2hGg7w!JqkHcvL;Rm)<~Z{h4fdcCGeh%tJsb8|qt z2g3uAg5gmq(yc%J0?()v=^oL1W2zHrs}erx^VXKa*+14bidEI_f1apq37^z?*6&<9 zzTfV%xpmadq&{kuqLn^{sa*;u@hpEN)Xk*QlwN2lft1+MHj_f63#_fsx9t|=YZIqs z7wMj;Un!bo%8l8QtkfS3wKHkY5qJG7dd4(Q7srr{#<$b& z<{mcSX*sEsTrx@L5-U%InzQhh<}W9$HT|*yfNnTYS`BHxVP678Nv-W(SJS8E0=AxOAXa0Qmd|VjU<$eFTxoFL zsF*Mf3*zHH`g&L26-J{9qtn&@y&nZvX%Q diff --git a/inherit_graph_115.map b/inherit_graph_115.map index 7b2617db1..e6e0544dc 100644 --- a/inherit_graph_115.map +++ b/inherit_graph_115.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_115.md5 b/inherit_graph_115.md5 index 0d3573229..53d8aed21 100644 --- a/inherit_graph_115.md5 +++ b/inherit_graph_115.md5 @@ -1 +1 @@ -deb19b5c2c9c5fc42491f7367467d109 \ No newline at end of file +ce33cc7a078a01dcabc19454fb100d86 \ No newline at end of file diff --git a/inherit_graph_115.png b/inherit_graph_115.png index 54e4646ab455058ad897b66c7ca1b2ba0c4d590e..a6eea202f1b75a9ab1cc8d1fea3ad1d1b2b85976 100644 GIT binary patch delta 444 zcmZ3-a+F!IGr-TCmrII^fq{Y7)59eQNEZXK3I`jI+;xI=FSZ)e=i zJ*vRd`gT=v$)w#L;vG|FDye0#zr1|+WNnwoPp0Ye!a}cW^gS64Ha5!&DFF>&m~voO zLgY04w7N3_%%?aN|Ge7dAA8^of7(AwccB*#_Rh4vy{&gD)2s@+`65mo*J|giVdY^- zvtojxvIBoUrB2VSkG{OGb!FPClUM!9zC7CF?9z41(74m1@OPNN%svC-Vt?h88JA0s zf4UKRfBCDZTgR2GmfE{}{@0wVd}&?h%;P3XN*7(PmR6tgjQv`>YMol?(UK`I-oK20 zy+umQh{aW3~r1;yqH&5Ty|LSC0dUNLP z8vm_^#a^X%O}%`Tg7=?@=2PAHJSKMC8kgmEK3iX{Pkj<`_;Sw4&MU8O2Bqi5+kW1{ zWX~&;C^j=(VVaZfukOO5%#*c^i@9@VPFl}(X^nEiG6b5m{AOwF`74Y(6^6ks|2ke& gH;I9QuOavc`~EvZkG0u+65~Mvp00i_>zopr0Jw3+ng9R* delta 549 zcmV+=0^0q>1Fi%iiBL{Q4GJ0x0000DNk~Le0001`0000a2nGNE0O-g1r;#BQf8$9+ zK~#90?U_+-gdh-x8Pa3)Bzuo$FJR)CI6{-2qkZxedk^VDgP{nBILJi*FWIaNDF5Qf z%(zMc000000B{Tn4Z|?J6VaoG7;rzd)-Pksk8gVm2NBVOh(6Dg1@6o|&tFQZ58t+O zN{2C~xgcf!&2b>a!15OFVkt}q8Oo&!*@fNJLCn{-2SEnSR ze+wD5!J0d)7s9ttayw#gT5Dr-N+Mc5q22F~*<;_~ajqSn6Vp-Kmuqv*AC9Tr0ZaAP z>Qm}(w=Nl13rqOk3d4Te9lIaq>|xv4d}22$c5TkSJ-_|P9PS3U4#z1?e|y)!KhJM- za7y@YxzM%O=F(Jh1YThGF!<{q}t z&E}L+s=(5nt4HP9D;$=xXU>*7n}lzPyJinfTLn!Fj&K;u&r39wj^j)>VzBI#M?xcK z0g}_f)t94oj?}eUkV+Nyd+2Mui#HG7xkP&_3E$h!>1ff%Ie!h@MV^!t3@^`tIPl;1 z#gI_N9|cZ%F?!~LTp)Y{alk2oIN+2(9B@h?4mc$cN3!}J$MH-Z04%JW(pvkilzMj1 n0&a-b`qf(l000000Jt8%-s@(4)K)cd00000NkvXXu0mjfZ#ed` diff --git a/inherit_graph_116.map b/inherit_graph_116.map index 627286a4f..f75e2edc0 100644 --- a/inherit_graph_116.map +++ b/inherit_graph_116.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_116.md5 b/inherit_graph_116.md5 index 5fd27f90d..a51f5fc0c 100644 --- a/inherit_graph_116.md5 +++ b/inherit_graph_116.md5 @@ -1 +1 @@ -f61bec0b275a0f997d5a826ce659eff0 \ No newline at end of file +e2c84a0a9cd4a523593ab3ba97ccaeb9 \ No newline at end of file diff --git a/inherit_graph_116.png b/inherit_graph_116.png index a3b44c42f3e5f8b3a2caa021f760470280331459..b19933ec9adcabeecfa18ad11d039c1f75d25593 100644 GIT binary patch delta 570 zcmV-A0>%Bu2Eha&iBL{Q4GJ0x0000DNk~Le0001_0000a2nGNE00#w;nUNtBe*yMM zL_t(|obBB0O~Wt{24Ejz3?}I!EKn&kRmuV|NGD;B;|HX&96LTIclI@XAE_d7^Kp)^ z{-A;o000000NPMmaJ^nXi0CpR71R}&;3ldOYiMDKKD>d@k{0I zU8{2`hP^#rkNPw7q32YiGKWkb;@1AMy;Lk7e$w;OhDqORZM@Q)uNHr+f710zF)xkV zV-BiO|Mdm1+cVANM^o=zyBxzVCp~D0000001o*DLY;L(5NFz0{5;XwTvq_A2(59ZLfOz66x_&Fpj$B>`dxnw?G) zA%qY@2qEOoNO<7!czlS+XA5Nrv0|R*@9@}rctAuxMdZszB|_XdHvWz0^J%LJAr36d zGR^a>*1b9FLP$5z_{p%)_{p%)fB4C;(D(;LT8M(6m$|gYB<$(MbEG!U-ttT8YT7(%4=wKw zKs^7MkOH|$OzDBDOHnHW(WZ7DTHf6-4|`G@t)op?X*s2bMIBOpirhAHH?=k6dPn$@ ziwq0Q^OHJKA=M}zxD_=1f5yAC5~r8<_pkw&LWYhl;fzJ_Cnv@eL~f8TfhEc?mR2BxQY zvLt1|qFqmFQ>jbZJvy)C#?Aqr+tYfpbrqQ?T~nck>5Ox_t9n;Jzpr8+e3z>yR1&D4Nhw>bA~JH-ZR}9zr`=12+?5JLxzRMPlkoY zPlkoYPlhGB;a!%+Qx8H+c)ecHx~TET{(U1Mgb+dqA%qY@7zpW@AA&)lROG2yzyJUM M07*qoM6N<$g12{`uK)l5 diff --git a/inherit_graph_117.map b/inherit_graph_117.map index 83160096b..13d6d0f79 100644 --- a/inherit_graph_117.map +++ b/inherit_graph_117.map @@ -1,3 +1,15 @@ - + + + + + + + + + + + + + diff --git a/inherit_graph_117.md5 b/inherit_graph_117.md5 index c1f042d56..05c2f9597 100644 --- a/inherit_graph_117.md5 +++ b/inherit_graph_117.md5 @@ -1 +1 @@ -b3786ffd79ca890d9ef8aa19e18d386e \ No newline at end of file +073b6a89fd72223fd94e97536d0eed68 \ No newline at end of file diff --git a/inherit_graph_117.png b/inherit_graph_117.png index 02c57d6b271ec7e861b5e99db4f1444c4e8f2b02..d0e6da9d92325b1d47306474ef9d1e47b0b522b9 100644 GIT binary patch literal 14427 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 OM_EB#zDm~Y{r>~jErAdK delta 669 zcmV;O0%HB!aHItxiBL{Q4GJ0x0000DNk~Le0001+0000p2nGNE0Dvxf50N1he*#%a zL_t(|ob8<9ZNwl9g>ls}I?2s*OPw-7J4MhurUxDPy=EEYCvp24Tx=Ve~A8^PAxemhpA$V7d`7D03G1jfEr?ABch+5xIS!8 z)u(>PpG)PqPs)zgwo+MgelET1s~I!3z8_Mflo`c)s7eO*Xg&W$bE zR<*8G^WMo(`H&d z7B{`9C!NS2s_q~S9Shj{a&lcv(^%B0yNeM<;6k(p9Ma+4& z_#NRaS_HF#-6Jt4Hs{s|OSQ=ewSE30=E7)*L|96tt9!WPzDhNca|-*bW74z5jJlDz zkX@6uvxCSyTZoN=^xrb zk$pfo&r{P5V1(!MnQhC8E%)!m0RR9100000fNs74TM)DhcrnWO00000NkvXXu0mjf D-k&hm diff --git a/inherit_graph_118.map b/inherit_graph_118.map index c0249e3d2..df3534473 100644 --- a/inherit_graph_118.map +++ b/inherit_graph_118.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_118.md5 b/inherit_graph_118.md5 index 8be873fe2..deb3daa66 100644 --- a/inherit_graph_118.md5 +++ b/inherit_graph_118.md5 @@ -1 +1 @@ -1559802d8157221a66e476996848345a \ No newline at end of file +55a0aec3ad957c5e0631a163f0329c89 \ No newline at end of file diff --git a/inherit_graph_118.png b/inherit_graph_118.png index b364e8e52fcc66e570574f0c79c4ea4c11adc4d5..68fdeac297af4a399395f0e07cabf673b366a8a8 100644 GIT binary patch delta 801 zcmV++1K#|Q1g8ceiBL{Q4GJ0x0000DNk~Le0001~0000p2nGNE0PH9z3Xvfce*)Y| zL_t(|ob8(Jk>el?hEe9qxJtH_#VF3&K#R%?wW->{z zqYqn=FvvMV2qAo>_!^^LoAh zIOpEOu^&O|S(c@_L4<@X%i$qp7T?gCTG8vlYvPwD)e{#k<4!^M1J9#|%|K&q4@9a-k<$B=ogryaNUFjfQi?umI!?A?#nVu!}UDuHE8 z1nFokc4&Icb4P;Zo|uP0O3cF`CFWs}67ysqobLDgnRXE3p3i4;JR799+pU=~gb+dq fA%qY@2m$gBaKVa83B}L}00000NkvXXu0mjfGeC{_ delta 520 zcmV+j0{8u=29N|HiBL{Q4GJ0x0000DNk~Le000250000a2nGNE0RQD`Zjm7re*wiw zL_t(|obB1safBccfZ^Rt%19;GNE&eFYI3X~DI`z!M4n7M4pC%*!}-6NOawexbPv%J z0RR91u1)=lVHiGC_0}R7V9PX3-+tY@U!kfuRsE_H5^&gl@-D`4EE@`Nz&y_~O;fP# zt#T}Y8Il*>B6-m*k{8_~c?(f}e|igfDX%cTrpfD{fLAyn2=lLvbFNV&|Co8vEwkiR z)xST#e%&6b5B>MIL*-b%XWO>oO*v*N>o_gO5W80X_SradZT?7+LRBAbBeC+b?VNk4 z_sdJ&nqNNBPik9i-<181DiNo}7}n*`wK+P5y*_eOSvJ&KAI17fi6J-Mf1J--#c6TQ zt*%?C>u)miinMvyT4scGxwI=hR9;~WB8JJ^>gh9fyDHsZudXl#kwVLcTHox{wWamG zCB|8MR*d!c>NB*-%$sxj&Us*o^?SC>Z$Ep?qjKUrBd5QuJ6nt8n@ELaL+p*g-rIz| za;)E+wpe?Khom#dv^=l5Uj5~KE(bqSpj&1$FT!F=iK{#~wLKMe?FsBrm$P`L^MHzt@ZdNcNPx&bc2E`D_pi00000VC5G@i)UtlPxuP}0000< KMNUMnLSTZnHTA>* diff --git a/inherit_graph_119.map b/inherit_graph_119.map index f3b032d6e..35ff60037 100644 --- a/inherit_graph_119.map +++ b/inherit_graph_119.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_119.md5 b/inherit_graph_119.md5 index a60dc185c..e565ab9a2 100644 --- a/inherit_graph_119.md5 +++ b/inherit_graph_119.md5 @@ -1 +1 @@ -e55dc1241a337a09f9cde661565d9182 \ No newline at end of file +a99b3a5ae0513ab01f94c3858e0269d1 \ No newline at end of file diff --git a/inherit_graph_119.png b/inherit_graph_119.png index f7707ab1ec9f9f2adbd3e3b36c8a265310a34303..afebb6f1a23292a6ede0f566635ee927b87fd09b 100644 GIT binary patch delta 1154 zcmV-|1bzFx289VBiBL{Q4GJ0x0000DNk~Le0001;0000`2nGNE00U5WypbUke*`*7 zL_t(|ob8+2ZQL*rMM)uLq>}UzqyYo2NhJhG9m$uga35B_WC%1#@i8xs?g0$%O1tC? zbu|<@vmpQg0001h)rskWmzS6CF~%Pn#sGh8+xEWi`@ie4Z|R3(j6Y(GzvavVp85Fr z_!C0-c|G<;bSL}1vl|3_v+sL&e|vlTa(q*;1w0&x4u}KM0dXKYAPz(~L5wl`8q`r0 zU3#HlG%h(1>3}$7qKh$p{-wvS=X1w%|I^o{b0eS6MS_z3t>pT? z^SQO%9-Bw{kcLEbF~)El$LC+}0;K28>8SKSeO)@&I<1xLXtBSSQhU8Nf7k4y>O%vO z=~Zd~u7iJG6b(C4sQRtlkSkG4gY{xLoVP$}e;Spz1hVRwlZkHSJ1+!!`>*ZgqV6nd zn=1*BWqQ>dfHTVEE^@0~6wh=Vl-gZMa3K&yx|!)DcgLRZYv*dmTI@`pk0__ZyY^ab zuCGj_=`4_&Iw{)ALD2_y z`&Mx!y4IuMX8 z6g<)A5y(Y%mfDo=W{)LFcRr8Ukn5Yne+|eJ{&xdkOH16f3dI%mc)eURx3%OM&mhA6HKo_9EdJMEiWw5cTYZbm2HwMCPimy zAbU!mX1S);N_&5n#%2_Ezk9VzZCpzGX0w~l7GV+HIZz{mh0>>cTWWrmj+e$zL(uFQ ziQer1ls=WI^)uqXR#t-jnT|3q8G^0SAF0x(89O+>Hw*hdf1UQmCrY2}JrA;p&cc9m z^pDb~dDvF3)KiOv(jU&!r_y=K=PoNzk0sKz4AR|TKC$#EC%n>4*5XT#|B{Oi6S>zE zls>heA1z^`YG(wK842JUwMf^y57+yhmiBU3eDL;$$>}xa>7`HJ!1Q|IE;kBjfan^L ztTyqEE75tpf8ZW{awWQ%>Xthws!c}V^ht{)77{&3q@H@KO=hu>PNT$Cq`N{<-O|&S z1d={+;x5via7G2{^ja%kBAq+YNnIGpVn{DyJ8>mCsY+PMid(JfUQS#+)3sK&+?~Js z8Q^tASu0b|_1F9BE^mSh!C9o6r6=8Hv3g?_TtzytSO$+1-4i2=H6ABApbta`#DVC5 zI1n8W2ciSwKy*Ny;^y${>#L+4;6Z#5-Eka$LkPbVYyl40w(VWp1^@s6002PGe+yXd U@Hej;g#Z8m07*qoM6N<$g6sS&_5c6? delta 824 zcmV-81IPS@3B3j(iBL{Q4GJ0x0000DNk~Le0001`0000p2nGNE0QMBfgpnZ>e**GJ zL_t(|ob8(JZ37_;h9T-0ouqqogDizIL8b1|KgkqbAQL40g>)qt3}-&hypI$$a2z(= zTYL~30{{R3006)~Y*=wVpWm&uA0wOr>v1}rew}ka+q$=~k+t^2TKm<{EwD0=$K%@= z^SP~i5v9jD*W4knHqJS7yWL*ue@_E^0U!xP38n+01k(Xgg6U8zN^4(EyLPqX_7(d` z^vkImg|sh2MHvo8a&XV*Q>?F2yWwZgKZv#VWh}mK7GX;JqIRWh#VkV5jF>2?aOKP4 zwQYUuZ}>e{=GYC}<@(8uPhtg*`Am&JXD>D1p*^a-#A}A+YDpfRmk>@~f2!=i`$72n zu>b8Gw-`thEhExcy8GGybt3^zdBX_%=7U3rheI@-< zA$gCFk|GcLnH3D)cRI>yd&*TN-$i%S{}hkA|gsZDK$IP)I{Ybk!yF` zZtqG^dVefLrhJwbN^0yWUpS{3t!N&;Q=uyt);M9W#%@hJ4lR7y?#?;3OXg^g&$*M3 zJuGo}K5Llj!4b#aZ?4@8@5~aYUn!;2y-Mx&LeomAUX;ej zr+ekdB{xXhGDe3Oe?6+hw?w*EiLH`)DVv;RjiaGrrEC?7Q@F5o<(+ zC@E^vy-HHqxYu%3}G~bU>6~I>>X% z>-E~x53nHj`#oAuit=)~G;;<30000000013ia#krD#m(&4#N@v0000 - + + + diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5 index 54c5c7f01..217a075f3 100644 --- a/inherit_graph_12.md5 +++ b/inherit_graph_12.md5 @@ -1 +1 @@ -50ba969da5bea2dd6a2b5bd2fc19a1c5 \ No newline at end of file +dc90a2767fc02c1e2dfdfbbeeaa569f4 \ No newline at end of file diff --git a/inherit_graph_12.png b/inherit_graph_12.png index 31b95b0565a6574b40cab61ef87c3274eeab9306..883aa4ed1f276f5a82e53c728dd3d70fc6de82df 100644 GIT binary patch literal 3798 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 - + diff --git a/inherit_graph_120.md5 b/inherit_graph_120.md5 index 1f22621b6..d24b4a306 100644 --- a/inherit_graph_120.md5 +++ b/inherit_graph_120.md5 @@ -1 +1 @@ -1fb3ceae00eb7118ddb732af06216fff \ No newline at end of file +799ad67483c6abe032a1bb1ec7cebbb7 \ No newline at end of file diff --git a/inherit_graph_120.png b/inherit_graph_120.png index 2151ba1a25b4a8719ec27e6f167ec44c7c3ada7a..337517f4590c7d72fef2f657dec033970c6f2e4c 100644 GIT binary patch delta 637 zcmV-@0)qXC1%(A6iBL{Q4GJ0x0000DNk~Le0001q0000p2nGNE0Hbv)+L0j@e>zD- zK~#90?c339!Y~j9U|-ZRIthDp1D3Lwpi=kf3rx`kn1J-j$TDZ24R?-l{!c=MB(jg> zk4*w~4gdfEV0)AIQ@!q@3GF6zx19T%KF_UtW_#{T%hg|t>sxxywe7al{7fGbm5>mT zTi5me;C5KLE)37Pzv=Vby4qnrS4U0#t#a+P)?BJftB)F8rW?(IrGDZwf2kC*p0xTc zoj{hdx8+-n^da&Yn)Rn=z10Ejwa?W;vej9tMZ5mEJ#JKcRobRyU`(c)Ek~7b7IO!s zwl0m&Bo=b*TJLX_k>r)(l{+KC>(aW?vYI;6`CW5*klL%QxztYjUUC-;8qBAgnky8o z*P3;ie{Hy#1|qeQWCYw)qR}2lqYvx$wM-R~+M!vaJq;rTp#;+n zh!7GGAtWH$O-M9vIKBH<5Ur;A;L6dy;t6e8v^%P4Lt=dprh8PX~JlM=)(j0*mQj=Bb6Vn@ix*4|H1pwPQ~KQ*mxbA&FW11Yu^o z3<v delta 641 zcmV-{0)G941&IYAiBL{Q4GJ0x0000DNk~Le0002Y0000a2nGNE0L3-c9g!gwe?Cb> zK~#90?VRmx10f7Rq3Rf&B#U%`NSP^87H9|QB;AAlNH0PJ4$PU4%e^N>4dgHeY_Lfc zV*mgE0002?gAFUr=ktfP_B28nfSGX4{oHQ1U%&1>e8^gRvetg}Qwv~PK8-Qoe#Mi+ zEL^YG=Gp+v%H?v2*1vVu17O$Se=q<7a2NmqI1GS*WYWKPthL5Dr}kWloD>@JVGf3# zFrksH8J(2gM(UhSKSy_px$Gzu|K^ zIl1xGo)~NTrRFH?TVf2-`K;AJyWQ3~aL$S6N`gub6B^Q5d3nDK%nxD0e|Dj9hUHwp zss3}HhcaV*Ym?HUbc`Xf`D~?wR=Y)Sshrr@V=^`95|Z_b<4X;xw4LwV8oK$rYHl-V zK`R|n?Q-&3&w;-&YoT^aHX^nUC!@uL_c~$Lm?3Yf)j>=58aXZ2PR(IP8B|TUQX_w) zS z(gZSAF6}oAt$OWrQn|66F*nBCsVX^jYjr4`?Z5SD+&m;(OYCwZ+K=E6UtG?RG{bA~vj0ow)A}~8gjR{@EXnXuS2%>j7&G2TM#kMU z>9BVW5t0FDfx`d@z+nIc;4lCJa2Nmq$y>72?=k@#nJ0&F&i$DCFa7}>ntxva00000 b0N5>mVn5zhiZ{P=00000NkvXXu0mjfN=YiZ diff --git a/inherit_graph_121.map b/inherit_graph_121.map index b63144db3..cc645be82 100644 --- a/inherit_graph_121.map +++ b/inherit_graph_121.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_121.md5 b/inherit_graph_121.md5 index ae2069cff..c020cdfce 100644 --- a/inherit_graph_121.md5 +++ b/inherit_graph_121.md5 @@ -1 +1 @@ -97f97adbb27be4ce32117d6a3af950e3 \ No newline at end of file +9258ba8216456486d9e5b657590c6dab \ No newline at end of file diff --git a/inherit_graph_121.png b/inherit_graph_121.png index 92e5bb91a8f49fc96f2af10ba8dd33dc3ebb3c38..80c3ace821d3fb8eddf439a837169dc82a42ae27 100644 GIT binary patch delta 577 zcmV-H0>1s~49El_iBL{Q4GJ0x0000DNk~Le0001)0000a2nGNE0GbGx5s@Jje*yhT zL_t(|ob8zJZNnfC#W~b5I!X4Zxs*C>%HGJ_ZG#Mu|1@sYvQ zWLwI^$mX{8f3D8lL&S*we^#8_cwEi3aniZuo^ER~M)!9ksF%yu6C$@S=Uh@}?^s-I zy>Uj2at)OFclJ3zBvXqet3UrUYBvW*OOpwzjx2~ca zDN-V({{xB~-z17QCCd8i;{X5v0000006rn!@%;S!HH7eOhA{w)=IQC__j#Vb?)$#P zCxsBcg%Ey>GYf!ue0+TTJdWf0ecz{`xH!*K-5>yFa-Qe$_V)H^|I-9p05A=L0)Pkv z1ppBU3IHOO4T=yxy>0F~PlHn3sbe#3-HE9|5#MCVoBnt_#LCiwVq*xwMVnS&*^xpE z^w#Sm78D_bzyIR>_v5MkslV~>)OJg~@p-j!YVFJQ)}{J6HpctodQ)Y#lpp`)_;mG- zA-i}-A--v)?d$jB@%V3lynXGvlX@^p_2%lY9goXQ)!mAejhr%D%c!-#w=QoCNuNeJ zv8A5WIi=qJ3gDJ%Wxo4MDfY{=QvQ^)Fvj1!Hye+T)aFhv3+ujU`mlr%^o(ryj0t_jyq1oY^^d%Uq4Zj-!UiNYRtVv`or#=eE`x zr$Ie8n)+~YY?LaKgLX>l0rm8$^aiQ+cB!__t(S9ND_S;ECd$2jZMAn*wphH|F$Dm8 z#6}9stdJ5|n6K=@7C~_wJ_8|Ug*JF#i}VQq3QGq?P0s{C3iY6v^-#tdE9vUL$fP&AGa--&A^5+No`* z`DvsdrLMc|rj}!Y;ptONVlCw$X#pRloYr%D<>eZF5kR3>B3b|a2_ISE5R002dQ*&Wc?$V^7g6ppi)Ky3cU}YMDHfuL(cFc_nHx9 zNik%kpgfSd2{I-1$eml70JfGvwWYPpnmsMYb9G7E-m~^&C50@Z9u(Y^r?)JMgqvzd z>6n%*dxRe;wwGk=Tpw5gi+2D-bdMCJVYHO%TIek-*uce-A6KJ0C`P0t;4|=}9!Q@6 zh%g-#+KWsUUk6%cCtsNk3T?F049^czY`fILod>oK3II|J`4}2U)|@N1CSB&(Lba=< zryMQ!&TY3`o05E&?4z{HBU7|bErPw2qg$oRBkjsDO72}-7~@FAOSW6nl4&qa`y_Er z%lS2lwYFUpTfB$^Q)RUJ*aNOqvfhW~9(vlov)?$l3JUK%P!GK$6lllo+b2rzCz%KL z_PVp=-V)cASZS`IGE#7*#ii?JN{)ME)7o65gyx~I&R@-*bm z7UbUCYbnQ8!)^LB5=>P0!qr5ZgM`F7mx6ef%}cUcyOs|MsT(!xfAV?2v+XI|r%y<2 z#0V^b>47+Jq0v+LJjn-45owMnuavwLky{g#x=F-v}6xuwn-Hs#9W z-c(BcP%gK##0QqCJ&pzSYEE@ZRqIN$yQhvG^=|Dt$+lC#;vH~_W~%7^1IxKlg1QbN zX%i?T;cv~<&HV?KC7iLUdethL%4G?VJ^>Jcpy;Hep#nZJ9~5}d{-Nay`1pU!2L)IY z%YkS*C`QY?bK9kBYxZ*_->G9ci8M#LT{}<1$1&I2Ba6XdTKhCg=3QG9;z*)fW#p~L zQofLoZjbVDuI}r+`}S;1j}$3pNYAxzR%sPis$A-IBYk`idJC8yDWvIf`p6q*<>BDa zBZ{;#Qfw6zT&GJ)y)D(H!3s(Ocj?n{%$1&NJfyiYX9k3}kMDCOYq%IGv}NA42_i?P zT&l12SgNl01%Z_QN887#GOS`gC@jdl<9%G&H|JPw5>9Pv@41roTE%7h1b`;fM~d0f z^BsVXX-p4_+0yeJfRAY)eF7i?K>+48602t2u`+IVKHYi?R oUet^M0000000000005it2RmfC%|;AyWdHyG07*qoM6N<$g5mirB>(^b diff --git a/inherit_graph_122.map b/inherit_graph_122.map index 3bbe09b39..d979556d2 100644 --- a/inherit_graph_122.map +++ b/inherit_graph_122.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_122.md5 b/inherit_graph_122.md5 index 353bd1280..8f15433e3 100644 --- a/inherit_graph_122.md5 +++ b/inherit_graph_122.md5 @@ -1 +1 @@ -27e35bafb060befb9022e21f42d814b7 \ No newline at end of file +b99351918de942a696dd0a7e476b2279 \ No newline at end of file diff --git a/inherit_graph_122.png b/inherit_graph_122.png index 01351fd90c160462d9f0c69abab84b7513eada8c..e53c66f7a1bada57238d0bfb5052b74b22ec87af 100644 GIT binary patch delta 773 zcmV+g1N!{%3yTIJiBL{Q4GJ0x0000DNk~Le0001}0000p2nGNE00ZhnG?5_`e*(Zs zL_t(|ob8&?apWKjhEe9qxJuGU8rYewX=k^AOCfpMGOiEb6B)t@TLOUv`+qZ;*cc0e z|CPWd1ONa40002SLV3aEa`{a}?`JpzUYl*(z8;Uq-?Z#kUWtg_iRjNbw*dI&BZTmo z7W^mB$nAFP?hOEu>-EZ(zYX>Se*hH_C~yq~3S0w$0@pyG4GRXKY-u0GeWd&Z; z1J{^EP!DkF+rl1)MH{{CufS3Qtx1Qq_AG!1k3otDu30LAa!5bjS+-XK5mV3d0^Otb zo4C}b=NI&|utbWV{WGgID~-q00*%|dYNJ%IEppm6xwcxiw8aY0Agev;rOR+DBps(UVThRv#UIJRHxg8(umCa^%Z+3TfW@q;M zfg{zkk_v9A)%+ zy+@-cI^sGGaziQg-C!{ICBE*C)@RC|IoE zh$vXB;D{(#!B%i0`)0sY+RpWU)E>-TbDUOi$rEPs1S+MBl|_`q-1S4SEx5Mx@oq~5 zn9W^d6`Y9NekIq(|DLu!?Pv1$v}K*+CbyebPElF=WyO^iW6?5n-UnL&`k1?VaizuB z^xVyy=vzcGsJ!LL?@FmX>yyiqb#ck%X~)ev{*@0EtbOvjylo1yn zBeLb}7wVpK7u7*)2doiuSO1tkjv6U$!t6WoR@1o{CO`7(kY1(qx zk z2>yja_tshIx{a{C!PcRvuj|Ig^|uLRD&<6b>{ z2Dq~3It*$MFDkgKCbx;Z2*)`7_s}fx;IA9_{>skR(c|x3R)RMH97Vhpm*W6%-`avW zeTurWva*5W$Bq1_Ga=_(o4T;xJpG!?k%_-dJTlk)KwZp1azS1HX=m_^tbVW{_lw|! z61*?KbpQ~-uIu=03N`2A?=K zIajADUn0=z7F=ANca}QFG}5qQ^GgUhXG4+LZCnGvK1I#ClbHDWmn^znh4?rNg`>$i zXR=(~n03Y;>%IoOY{3EhKY+ZZe)5S;-XzXxPsL2%vB@948@!K^2sMY`Lzt^qG9 zxV-5WI@_5jqwaxLYL>R-T-8|srpl{JuwB$RUnbU4IGA(I;6)3rDjQF#_|Smjnvio< zy0%sJZ<1D2a6tVZRtU*JX8D?PO&B{fr4?ONB5EgAa6}X=R&YcVELLzt6s*jL44a#q zHshcM7>!1*L#S*t8Zme2w#*7{eSO_#97IM8heHg9L)T#t5fKp)5fKp)5fKrQ&;A2= Wr4a(=9-+bj0000 - + diff --git a/inherit_graph_123.md5 b/inherit_graph_123.md5 index 995f9f7be..c3687f0c5 100644 --- a/inherit_graph_123.md5 +++ b/inherit_graph_123.md5 @@ -1 +1 @@ -07d8e0f5a6380c3992f296dd94ee993c \ No newline at end of file +75a238693711dbabb65ece5a4c8bb744 \ No newline at end of file diff --git a/inherit_graph_123.png b/inherit_graph_123.png index cc78175c3d73735ec6463e5bddeca91d82c57f6c..5206141befa4080abca4cfd67a92f10852761b53 100644 GIT binary patch delta 1037 zcmV+o1oHd41d#|KiBL{Q4GJ0x0000DNk~Le0002B0000%2nGNE0GCkZrja2Oe*?xz zL_t(|ob8;^m82jLMa8pWY$TJ%X3$9y!k#mE%$G6r$K;{=T}Nh zJr^E7k*-0V>X@4E_hj3)tj|el4(oHyP209j+qV68{8TVf19ON4^*-fMqi=jIJfC`v zkEv@VpHGdJl>S_(bl^&JPPvrc__d^bi--huIOXkAAa#Aewoi}LYkW*yf8$KEDIGcb zxlrYCHB)*+!ZJ(liA9>EAFXb3*!g=v^w1F_QSZ|Ol>@m=&gJe?o}~VGWJN%>MJ%ZA z-f`0UQ>zo84JzqJ&rv&E){4p1C6QBueu#|JHPdYzfZ_YIYiH+jbjA;zlIg-#dAXV; z9$KG>dis&Gf+6)@QYW{pe_UQ{bIa^`Ts*eJrwLD#ddZf(=t`DQOj*;4K6}9x^iR-IRZ1aeS z2lZ}&q(&o)meH#=muN`UtgC#4xF>&$bl-4f6^?ygqWjCv;9^O z_fwZ}N6V<>&!$Fg|6LLHezfj@UY60GZ4N=&aYWqv(Ym91T1I=dIi&&oL;OLp^e0hw zwv0;r3~Yq7%M&c4Idw~Xuf+0OqvH<1`vJ@` zg!kiamQiU&SVghKe-J@^H_NCrJ@RzRApHR5Ku{+*^QE+?o8#xeGTxCPgLb)aMgu|M8t>vtp)OqS2N(C3U z&ue1j3iTaD?s65ZsWfNxl(b)ZSCQN2THYD;oLbTsF->Dxe=}QIQ)_f+d@rY5PM=G} zNQnA6b?=P@SX0~QW4Lzrgt#!sI7iTPrV~pGc~QL)OE?cS98?n z_PJ(yrZQ6J2)*j8Ct6cefld7p=d^{>{@RC1?!DEVL5A>t#K4-Gf4$UVDpk&i47sBS zKn>kSYVJBTWA{5b<)ygOhy>CMnSR7P-I@w`ApHR5Ku`m7AgF;k5Y)gND|dS00000NkvXX Hu0mjf6h{d4 delta 564 zcmV-40?Yl82)hI!iBL{Q4GJ0x0000DNk~Le0001?0000a2nGNE0O2fJ-H{;_e*y4G zL_t(|ob8!WZo?o9hHbQC>?FO%vyApv6JDEyyPwYUU3 zn~SOf#kk8|$fz5kAFFX<#^zA*Dgzp%haJfF``B6^E$ zGZ9XB@6`hWW8uB0`~5z%JA+sNfA|MP2+V;9fjJN%Fz2))WS%{J+BMJmxHDra!t{bj zUZ4igbKf9MUK>xJrxTm(>3Fimq~k5WIsaSVmtMf!aiwwXe_3N`Or&=k zlJ1|RpDyLN*ZoDzl3Q3G5<0|IR?iDA_V3@guon#5SRlI0&}w6@$Gi& z83!1cnFvD&Uqtk75DORp=iI|O1^@s6003}2egN`VS8(N_M~?si3IG5}MNUMnLSTZ} C!UR45 diff --git a/inherit_graph_124.map b/inherit_graph_124.map index 44909e310..d11c62b9a 100644 --- a/inherit_graph_124.map +++ b/inherit_graph_124.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_124.md5 b/inherit_graph_124.md5 index 0fe48cff4..d99407690 100644 --- a/inherit_graph_124.md5 +++ b/inherit_graph_124.md5 @@ -1 +1 @@ -2f79094bbeb699d593c72e018218b203 \ No newline at end of file +d4f299eb44ddb40ef5b05c060f5e0702 \ No newline at end of file diff --git a/inherit_graph_124.png b/inherit_graph_124.png index b0439f2ddcfe9dd8881207513c38e71d0b17f048..6d55d44f9ca0d11e3248a7ed2b41c9884ec8a2d5 100644 GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^?LchI!3HGv?vc&}Qfx`y?k)`fL2$v|<&zm0nB+ZO z978JRyuEX`v_(OHH9<{1b;+c)>9apYI0ki_-r%ZKYA@KqVbt*GZ``%1Eb6m&H_wt! z?f`;YlM9aj{`*g8;`NTCj5(#T^@nQbKjagv>^xCEf6@!5zQYf7PG8z4va2Qc_L*Jl zE^h2UxAj7=feecw6p6a1?6Q4Sq4a6{`TOe(O=LFeZ+Q0EebcqH+Bsoo|9x~h5|Q1z z_1pb2-7>zWD~BFNNxouxIAg#4H;KH(8;#}VtG_S$RlLxwKBV~Eo)z~#d_40hnU$d}Wcd;h&bjGU|lO?rZA3e)5d@t%N*>~-}&40eU(~o=1VlArvP2j%!Z2r-bhc9k^yJ?xX zqV)EBTaj~99u`Dx`5QTX!VLGAQ*HL&zEAyEc_g?g@r?7KhuI&q88%nNSZK%}b`(HE xdz^RWMxVFJm{5EFp#%^6ukXz+U=aIx zw+#RQ00000o>XQ$9*;jMrLPrYzF{a=~)yUa)_eWjHC&XELeOxqYU&*#%u3b-Z5 zacuj(SId4))&c+tj1hzZ#t6aye`5q;xU4az^s#F-RBx0OdQwW&PgIr~V>vLE19hIK z*|jWKrRO})k59A*HFMdS(Tiv^OEf(rm>DDG26DPAd(W@^Ex*^&l6E-_R6nTvlu~ns zljte6aQ$kvV=?2_G;`X#AUC}=l!L;h^Y`p7a(_z^hlsI*Y1ZmCdSxeR)@HDBr{se*e&(E*C`EB@<2(c8GE$%>5Q2%u6TDTZ)EQv zQ`+CJ-(y(TH(jfztjEpN5im2xm8-=}?@Y$I@6w&Nu5Y17a{V56O}XAEGo{OFI@;cy z1(I!%9zDH%&~DRs>#@LOe`XwUPm;wBRoB`rN?zJqWfDE5yB#qAZJ()yBXzx*ix_t| z&AEh@yO6jONxLH&wDgQaPrVgdyuqgT0-`J!qA_J_2YknS)%{a}F)jiI_zB!J2!p9H zQb$`+7}dg^TU)hpXG{YnsBM8LH)upll)kKP-xIj$8>2OB?+3xee;B2qRkd{K;;7Ii zDl|)r#q6f}J*Qh+rX8DB7+4+)X@9i!wYaUOxn2HR9WJa&6DsC`q%W=CmFb?c+6j?1 zUDA8@ZXL?DZHwJ>@6P`fw?(*9A*<`Q>S-P{kF#-?nUQlRy-_u*Hi@nKqHT8;+L_K{ zW^{AY)^T$y-Sq4jf54in^=xa~)*4~P+)Z~1~kYYB54 z$c0sLZhG_uURtLIPPeqIX7rj6u$Ddz-rmSGo>B7DybmH(#{I69-%4u?uct4X5HM+3 zYjG1L1Z - + diff --git a/inherit_graph_125.md5 b/inherit_graph_125.md5 index 651dba0f8..038d41e40 100644 --- a/inherit_graph_125.md5 +++ b/inherit_graph_125.md5 @@ -1 +1 @@ -3fc418a2b45e81e60114ae2066f18bf1 \ No newline at end of file +11b3b4967de41f1322e308c32d3574bb \ No newline at end of file diff --git a/inherit_graph_125.png b/inherit_graph_125.png index 5d3f006f8915c1907535a1ddbb4f27902e64ebaa..ec9a85d699396964bcb9bfaa966b1b9e06f7563c 100644 GIT binary patch delta 1000 zcmVdKPLUxLe*>XO zL_t(|ob8*@jpQHgW9AUKw>udi5LYKUbbs;}G$b#*Dv!mz4kfa2(gUQ00=6 zU&B0#8D(#8P>QttQp*AAeNyskn8zyNyXVt(wZ>`Xb!v_OE?!f_QOFI+dAB~dy#v-E!|gc+dXwzEqrS@u9}6r=~CP%kJP4;C-mw%e|6tXscfaX^xKZ< zs6{#&2l0fAo|!naq_S~!$yuXQ##tjBjYE}uN-dm~J4z~BjxIU%Ypg$|5kLFZGO$v5 zrLwiurSzG<6yj&!vlwU3RJNA7lw77rA^xIsUXy5G*Q+i5nYMhq+Iq<`DMoCGHgAwXxs_-2%HcgxPS8!z< zVN5wpWt0@I(z3W|Y|<%S$HPNyk6V8frVHOGuF}PF(%7Vze*)Zd@7Zz=jJctwjM4HG ziP|n_*`Y1xpoH6b${c!3bZ(;W44x83NucFK-`N-srV8J&@FltKtLZh*KS!uhe-x(k zl&RFX1FE5N(%4F0ifaB0VkD+BN@Mt`aolU^cEBrBg>NtiFiM~f7$r~#j1s5=MhVmb zqXg=JQ37>DKKCh|b1mfnH{|(z2Fu@!a#@z|ZQDNAb*(NG0L!v`^_Bqu00000%*Q`( W;5xh*m(v#j0000z#!ccnA1d!7A+Elh(q70yhkxe>yYe3B<{?$@#kWy&8PNr zwSG9>`=W7L#Dn@8_>DWd4zI()f}LLnTMWO>%`1(S#-;2b@wt{E6@LyXenHJ^*u zRpTeM_LNTxx|H}{{a{HFB_wf%FOxQ&c<0J};cEQW*roTa?@PS#SYfh*Iya^_*ZTa|e3&$^e*&By&}*Twy5MOrg|>x$C6 z#2+>0xu(6OsV|xLObj)gX)m<)(zRLSdIUJA2UBCVgMvMyP5`b11lo|1z1vkli3d{y zfr6=lK*7{NpkQhsP%t&(Q@r$d$^i6aCs6PG!~Oh+2LQVAt33b!8vp - + + + diff --git a/inherit_graph_126.md5 b/inherit_graph_126.md5 index 6129e45f8..42dc5be37 100644 --- a/inherit_graph_126.md5 +++ b/inherit_graph_126.md5 @@ -1 +1 @@ -d5e1496e8286c84921f961a8b3a33083 \ No newline at end of file +3fddf02f0ae8cd7f58a4aa866fd8a43b \ No newline at end of file diff --git a/inherit_graph_126.png b/inherit_graph_126.png index e857e6de97dd77b36500e122405141d3b4210290..8978288a24d585972a6e6b602215fe65eb5dab1a 100644 GIT binary patch literal 1939 zcmV;E2WP)Otsjd$P9*>av1Ra0^UunoEnXuVdzlY&oHcHS$B+bNP^tU+R?Bb~>r}Q?JJqq`r=sE3)N;7Nol- z<{qxC->a`ZeW>NwJ9HtIK#2<*;#g!(3sm^ob8c z5fNof>_~nHnochz%4;GqkI>~4nJ`zzBdbQft+FLgSEX>{q*$0M6t*ZR3a?^YWK^|NJ~& z*BWmY14PK3~>)V2Jio@=gJ#+xh(LO z(m0_@9DoAK5}(J8O-e4gl8fBxL%fl9y=q@?M4KLlFqLO|7(wz)d2Q4A&Zp_cP&N;` zbgiSVcwLsGUS8YFtU_4%MjtJKckkW6+faB^Y1{=chm7{MDd$R#+pxqPN2X=2$KVpz zti)eXHfsg7eKt)~AD&*ZL)Cn0vz=ypAQ&sRg1k@OmCdxdcbRl0TdW;b@cGU^dEm^3{s_Qo2^@jK z9fkW1``)%mQ+f}?fwIG^@rcqKYVGq z>W|mJX(&7m{Xl~b_=D%!nE}* zww?NzE-Xpw>ie|mE^@ulRed(aFza%5l^1GVt}m)B09ydgu5RcfrNTQ3IHQ5b6tJr^ zex_r{xiZFWIP?zCHZG}Li}J*4y@E}@Rm0PNrr)~Ckc`4J_Yvlt1Q(Xn&Db%}!?+C(6JIqd*SD|t%3yT<1}^{)Hdhr%_+6qbpGiMf)mWE**QCnDxbd`UI( zz%Wj+`kW^>SV|dlCB9@YyjCyt>3a0pbTO!pN3SKyc6o7;>-aF*foXfvPehb4Hu6M788hA|KbcJWjDtpKdwV-}2s7K>-e#`QAei#$ zp+>$aitA-rUfkT=3?39wQ508V$Kb0diYq%iJJ{LTi5&_NfVA_8h=_=Yh=_=Yh=?e4 Z{{ck74X=rbVp9MB002ovPDHLkV1im9+6({y delta 448 zcmV;x0YCne56A-{iBL{Q4GJ0x0000DNk~Le0001O0000a2nGNE0E4fz@{u7Fe*t|- zL_t(&f$f*uZNo4OMMl&DuoO2J^+p%-*k3Y0GpHFD# z;-sDx<{(kqGj&UF$as`WRw_| zw}Q>JLc}^vE2WV+dcl$7@}iwpm=YL|3V~<}foKYWXbOR73dyb>=XpLd4^TlQnse@p qh~5X}0umTw?xS-60001b7V!h7#@u$B6r`vC0000 - + + + diff --git a/inherit_graph_127.md5 b/inherit_graph_127.md5 index 3a4ee7e6b..7e81e38e7 100644 --- a/inherit_graph_127.md5 +++ b/inherit_graph_127.md5 @@ -1 +1 @@ -61032f2252dae83125be9630383dc316 \ No newline at end of file +037db60667258a1f9707dd5a14f41bb2 \ No newline at end of file diff --git a/inherit_graph_127.png b/inherit_graph_127.png index 31affd59a8a77191410002b65e7df9356a437684..4b58a1f3611e480920351c640bafb3cd821a299b 100644 GIT binary patch literal 2007 zcmV;|2PpW7P)q?=5}{=)z?+$obEdP00<$35JCtcgb+dqA%sYw@+($WR(2_+_W2M)hDVYl*G8k! zCEq%lu(r1LVw$E;`PM=FGaiq>$*0O-R%96Q$H! zzIBiws1L3SMx&8iDP-`BMk7on6W=mgv1iX7tgWs2mO(tRv9W>icwD$G=~xRPgbV@( zS3(GJ0D~(bggAh~l@LN4z~I^frBvbXuG=QVz{i-oZnMvJ>@~RNJJzQtH3I{QB(nqV+}p^S{fsH7Q?ohAPuST& z$81`!iLNI7Z_^K^<4EeUv5l&6DqEKJjXLcn4AG8DUm~zUDRs}ZxN3RvTWfvK`uy@@ zU6%Z|e0dw4WxtD-Z7HkIRP8#I#Rc_k9dw8=D=AT)6`APYWgWXM_A=xhbZ)r1Zx= zj-exI8$OUqn@QL2s-8B81=rY&B#*RysWd~^S2nSaV+=^9pt^>3Y>tz(fX}l=Rqmv# zv!|=$AL7}+Z-m;XO?2@pwi=Nu*EUlflVo#Q*|K#eI*V=qG|^wzPEmcPnoV^{>6aWw zQjCplV)V&Zs&E!uW9a}AHpe#f*7F2e^@-^V7QrHEJ+W@xR-Q1hNN?+-xujFy^ zJy%;y_RXGseA3nQt=QmH8{`JcY zzkO@94}B#pTk6qEb_iqL89DrK@ zmJF*n0gY*EAuUi>&wh-Zc*%A@`bs#s)GvNRt1O@48dvT4ypvmH@TR(?bFPvs-T4#h zhl@X+{OIN7MZQ%ldgwv-*txgy{`3_&LhzM5&K|{* z5LuNws+z9WCCsZjvCTBtB%xoW!DevFrkB#w_`3R}403!>T>)?f!1~I0y*CBkPc)8b z;1Q*;sday!$)>OL!&mZnc|*(e&fsD>`&YKDt`1v$w)N)A7cJM-)l{dc{<^yAv`J_- z;p71|`Qm^&zH14OCmILSIlcn$HvkP_Q@p`|p|6DJE2i}JYJkMg`hK+u;5>lyA6(RH z$t@gKz``iVTfNejgO8eSILW9iee6SwrqRzmla=!2_Ls@0jc=nF#m z--|ZN+Lj))#ly{}_1cyvaZzNW`SH%$YFQohlWzSa+O$Adk6-xuTv@iA?6OpO5+`ML zSM+w(Vmm-TXf)n3uKYFyf4dF z0p@32$+NTVbWU>mN5ZD5ozYLa_mgO^T=Tf0Y2;K-HK8WpI ze)@?$gAcAg@>7JwW?S?Vdzcm=gb)WXxDrB$0~lNhA;bX;u7nWcfYKXUqtU2K9b|w^ zr&He&S~Hza=_>=~#*G`L+wKdlNs?Sk)AaOYGI1)35CBM$P pg%CmrA%qY@2qAAL^` delta 856 zcmV-e1E>7g58VbKiBL{Q4GJ0x0000DNk~Le000270000p2nGNE0N7FK7Lg$oe*+Rp zL_t(|ob8+4k>el?$02iNTqWDbb&#f*RB$ub$Gs#~Yy+tvz9-)>1cU&IkMRG!>>6w& zuq??~F$Mqt0001hy|H1#^?Lnjt^FFI3;;PUm&>^D-A^q5_`F`P zKgO6}e%qT7pE&2#6#}3H=bU*we;#k`mjSu}APS5aEDwwrEDwwrEDwx$60Ehx+P57~ zz+k8mhc`{~Caz=<)>?BMhdGX8v?@yiPyAu5^zcd{X2fSWOnKL^&u@?Y4gZfFr{u=Q z;_8??H=GMsMv4;IDVhE?J9_iv$Bq)h#iNe>(CN2_$7h>Qc$|_G8>>dge_UV8$S4^x zLS1Y0j;+m3bV(fzClS4--l-5C*2Y|NNk?DS&(u@trQ>A4R6{C75FF(V$e zh^671Ln>sK>eGWTwb{{_Rnm!G-l&HhN=8n8Z?7Cird<&6#4TaH_63V0H}>Ml(J>6u z;dPw8oD7canlX0t#Omn;f3?Gq+kMC#m&k27m!k)#k9$pto&X;^irFz-&yJWU-i4ZQ zPZ>VEYdbLF3XrGH1=0zyJmQ{s#?UFPQ;!;jlniS3W>>_GSmWb^1TA_{H60prJjWcp zexv1cK{^4tpt-Bl-H563%2e5=->>xx2yV$}tgW!PxixF2e^t)vb4C`8dpF(g z1XcFf62_^;rDRiKT_faEUm3aAg~v60t>vsSwCX&%8?nDQu}N#?V4QI!Was8L12tu* zrQ>qWlUkqYJTb+me=VazxaPyqdtI0J#4XI|)uc&nt7*|vc3LCL82S4+WOsrJwIw;= ztkk3u)cMjSmZ`CNe>^N2j%YehocgswN!eu#&WjxdHGYY~YNZC$`f&SV4@+%1YfL{a zRE@Y+ap_XTnwL6mDW=rT$&KS15=XC+@l#{Amb3N(A3MPEbWbO=lKWX+`f~G|MbA%S z$UbpR-zt2<999GA1XvyzF<2fLF<2fLF<74Di{1Tx@2Lj>E?J(>XS6+O#JAf`O&I_H i000000001h|NH}8E|7~@c3o@$0000 - + diff --git a/inherit_graph_128.md5 b/inherit_graph_128.md5 index 2b7e947e5..40e95d134 100644 --- a/inherit_graph_128.md5 +++ b/inherit_graph_128.md5 @@ -1 +1 @@ -96d33e3c29df5255ba455f348f11494a \ No newline at end of file +2c9ae7987a32db791623afc076ae8f8d \ No newline at end of file diff --git a/inherit_graph_128.png b/inherit_graph_128.png index b440a70acf665f832fcc6eb3fecad22117f2c267..77374b757921bf1226b7fb90525e11cacd67b027 100644 GIT binary patch delta 840 zcmV-O1GoIV2hIi|iBL{Q4GJ0x0000DNk~Le0001`0000p2nGNE0QMBfgpnZ?e*;NG zK~#90?V8b%;~)%%QRd3HO16*dAWbo;;AXCmdr7L;22w$MPrmW8fF&$}9R6=+XKhU2 zH^>s$3IPBB0001hV^CUfyieU_LIF%V&)7@3!nmT8W50i0F4eSzu;fuh*Xt z!mn-FH=|sMF`5eka}#3>kH_O%fB9vA767WiD1kd*l)xP@O5hF{v64C#^w0wI#SDyQy9+$4Q)XzQHCH-7-eec~f zw_T2|mhqR219u)ZD84+GKtx}{SM7W~UY6xcd3wH$GLMUf2H=Mnz_29 z;~zq38VAliYS1NoYYN`$XZz&VjJhYI`YrX}s;Ad|sCdc{&cA@y)W3Z=*7H`ly0r9r zm`63E9PJH`qOD(RIl%p$mVOWOXcE3hK5ex%PA{)xb^o(?O%+dhBwTS8)1|tlGLFvN zrm02$UO&0^xSF}TwDfDvf8!C%!}s0}np>B1uBlVn7FV0JpO$fz)YE83JLKc#IdF%X zr}RKBG;6e%L!%Gt_Rq>&8D(uEHAB4?GaFtFgm2&u_eSaAWiIH8d!w`tac54Kdsn&{ zB_{K{^qxEOjShE5TzYAn%W&C}*3Fgg^~rtlo2$=x`Cl4?y?fUBf1R|Ql$sU`%#2cU z6WkOnZdz5XjkLX%FG4-i<+Ogc>Xx>XyZ2n17MOkeUUThQIMb^Vt8}^6FGAModh5Je zhIA88DRuYKZ>~oZF1*mHcVxmv4^L?pzNPM-8%k=|&g5Z3Xw#buyFL2vxu!JVeRJHs zg@^0uHEU~4%XBl%e|y}UpCijLDcwFZa(8#Ny4$r|T30jeYH!g$GF>ihuhlRm{r8SQ zZoYkULb7y`f27|YeQ2bc)yAhaO>H#pzvzJZaN{YhXh{$Ax&fGlw>Qd>>1Qz1HW0pn zJ7AQ+9WYAZ4j3hHM{%Qbzu$Z602A_jKC|UTqrBa2W?}#U9smFU0001hsrU!JJit8d SDM=Fm0000cXtTbV&8Xnzu%wwf42#~fW?4F01HF{SRfL>0+9fgsUq>-lWomoTgJMt zh$MhTO(fp?pP#rt+@9)B{fVF&wUMLrymQyH*1m-7%d`@__wGDT zQTzIQp67r4ar^2EiQ73lsbkgn$ZbpAOv*-zl&>6=Kc)6144G~;9PMp~e-dX8d)#ru zh{1hXdZQ9aoSTz;g%|T`Yf*bXvy;#s_SHl(THPtTTH!Snwrl*EK@a;~rkhdUrV(~1 z8=UPeN$>?kQbFm>(;PoTIGAn# z%iBZ}t#>H7W9O)`+0)k=URESr9Y~v&<5Rv`5KOn}<{h5`UKMqbTxDuX{k5g}mZbtz zX?S8mfZN3vVAGD!@5<}6W4H_ttGdwR%u=m zsx3#A(YZ>u_avpcM6MpvQkt(Vzt#8gxlJHgZY(L(O zWkm9dtRlE2MN)EcdoMwtj*}aIaYaV!Vp-zphWaBb>3(rrYY9SWJEpbfHG(B0Ne_Cx zi0}EW8-24ZM-uZQagP22rXGx3o?uxVe;1~w8!B38hvwSl39UA- zX~r^3M3P#hOAx4SDKS!swDxjK3z!xOcM-!ImD@+U1cBPdCAA}qZ8I=E-2fXvB!C4X z0W1&+V1Y;g3q%4~AQHfWf7A$mcsw4-{wI-a+xC4N$7kxlI)c|{+qN%$6aWAK0Kj - + diff --git a/inherit_graph_129.md5 b/inherit_graph_129.md5 index 4272568a7..d16a26128 100644 --- a/inherit_graph_129.md5 +++ b/inherit_graph_129.md5 @@ -1 +1 @@ -45ad0e4960f0f5a90370e6ac93fa8587 \ No newline at end of file +1177e82f8cd81fe0354b2e9098109ea2 \ No newline at end of file diff --git a/inherit_graph_129.png b/inherit_graph_129.png index 549802642dade73d1a3709296b371200dbba5f92..fc76452b8382e893da78c2a60434fb1a08a0a86a 100644 GIT binary patch delta 1020 zcmV8 zT(R7Wo~dDu<0v|hqq(%qcLEU>m_p33-uuTZ-X9)M?N7bOpQ&Rt=cl3^rN5NawO`#c zr_56QR5`h}p|)p4#IW9bcO1v#m8yvN*xB7t@9}5q7^mAz=_t|9g(|N`e=}EquI}UG z;r4mn>@dQq? z3x8FfbTrFN6mwca9af@jfA=9l$xL5rTT&;ttWs^9>$KEWjh5NX>Kq;%0Aq+n*cnK5 z_Y&o$khn(g@>gUj!`5_*wdF|wQ}V%(0GMKUghe;_Om1bQ=QUG|*1=`CVP{%UpG}8z zyfj6L<+oNHF}>@u+mOKe0`&^4*aqT;J=54)excNMj}*Zb(-d3Ve;_WKs-xEQ$r{9y zUwU_~)OfGtsaT4dCp^*`O0E-bQ<}ML5F4u`=b%QHBqD~D6dB&MR*K*Z8Yo>9HEmG) z)UBnQR>X4&G$$`JjM=o(6i2p!X8NRfE`g?TXPD`0rYVkW1Fh8_@kv)WmT4(NJ4J8? z4Yl8wXoDP@Jz2MPf7o8XxY`uKS5aWaG{q5ZP@+pR0;}c{)ZT<-ieT;cETt*dd_SkD zr><8ZmjIYzx@@gp69(=&tE7f^&!3RI$LS0^!+M{!G{tuULjqum=_0H&oX3yn`G|<~ zvb14K{$&e;+G5!u0cFIV3+j?^HCnhQ36?c%3AuDQZu+2fe`?+N!zwM0d%jhc9umAF zm!?;fJ}5oB;N}L*kk8SZw~nwBBcGU+mdhE+^v)&FP0U^~!osjjMw$Rd zeP-Dq0o5f+jx&2k+wgBEJs#_f5%Bg zK~#90?VH_k-5?N!L6b64iTg+gw<$`Hen56Mqt2p0jnEdS@5@x($ByONK9 zl}?lb000000AO#l-|%=merv5idL#otisLxGjWJ(t+b{nht@Vf2`ft0m0LbS&&rhY) zAGhsI#1>;r^@ISRV2n}E=ku-of9Q}40HQ#|V0s{8Fg*}4m>!52Oix!4YptW(l6{ZN zOu3E-Mq)5MVj|XB|NHUV-Tk5V(7*ogq3yf4p}ul+OdacAOKyxisMmdWKe_Q&;Pzt& z1+BHZt}AQX{(fE8f9?LZZFBLr@8X2|;^dgx7ZO`6Mu)TgPQ;3mRKb!{(B#G~e>s*?SaF0SdCo4vb-~9DBD+k{Ga)t-?*eDajtM`u=G}2r zgpo&ZKcnJF)EGNM9G#`nnQ)>&Pb87LqH}?AN?(NR1G#Bxx-}X!Lhh@+Y`C9XCOCAQR7h!=M5da0z3m2HTer9|xb()%5X zMQQI%wfDp|*RC8Je_~2BIfY$}SpO8k)><0G?oaN%(8I#DyZYyr(A7J^y#Q$&BB!X! zwQ5QhygB=8SV-^sEVa8z0q+Eup5a_ibO~!xkdmk)0mgEF-i0NGuIk2vP##^t1X%3=tFI2tm@$ z$obzYtBTjM<#Ix)es<3mmPxzME+bZFn~|7O+;Q!mx&3j4Oo_jPcr9CqnDYmv7HO&C zEZ5FR-3A*kV<*5mY%vo1>{9UT!j>Y&T5>J0oB-1U5rgT0h{5zg#9(@E3p-;>%RB%` z@_N03?QbGJj^q10&(G)cSv@HLs2s=f)jJ0O0000007l~n^;b;?HP|nJ00000NkvXX Hu0mjf8FT|* diff --git a/inherit_graph_13.map b/inherit_graph_13.map index a351c1491..99a843ed4 100644 --- a/inherit_graph_13.map +++ b/inherit_graph_13.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 index ac5f0420a..b7d3cd28b 100644 --- a/inherit_graph_13.md5 +++ b/inherit_graph_13.md5 @@ -1 +1 @@ -2782f925b2c1ca36810815f7dfa60dba \ No newline at end of file +77d0f7e2bdb8500775032139600902ca \ No newline at end of file diff --git a/inherit_graph_13.png b/inherit_graph_13.png index b4bc912a4da446add7dda49e2901ead11cb04310..72306f2cfa659bfe95a6d815434aebcf74532df8 100644 GIT binary patch delta 1049 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 AB>(^b diff --git a/inherit_graph_130.map b/inherit_graph_130.map index 661856ca8..0bff54608 100644 --- a/inherit_graph_130.map +++ b/inherit_graph_130.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_130.md5 b/inherit_graph_130.md5 index c71c64475..134729a56 100644 --- a/inherit_graph_130.md5 +++ b/inherit_graph_130.md5 @@ -1 +1 @@ -0ae9b60750d9b7f5c578cc741329af44 \ No newline at end of file +36a4cbe482569d9db1135b117ed2d178 \ No newline at end of file diff --git a/inherit_graph_130.png b/inherit_graph_130.png index b0708cfef82171de290aaf4e4ddce7a6f22cfb1f..8d4aaba1cb0532e054ad346fa718abdf920aad3d 100644 GIT binary patch delta 1000 zcmVXO zL_t(|ob8+4jq4x~g~7UI+)B2O+d-P5gez?y`{Ww(uzlG3-G9;t^MdB1^}OBS-zcfU*~my{GF_|AJ*Fc?PLKEXWO<< zW6Zzvx{GNKoO9I$0g%EuXV!JSf2?0RXaS%Im=>r5rUmMNX@NRm+5)V#!Ou0?Z}B}X zbTzGiak&?Jq|Vv*owOfEGqug9fk+F~A!b@@?eEK9f8HKiAA0vc$F}9{ABuJ{{ZvB7 zzB^}5n^gU=c2a#4TOJh=(^_lIzVE-U(8ch#9YbI2-Txfh#u-9GIw<8aY%+4|+!3R0rhT0Oc_9s57!QDk71#WH|H1Ow5^^VP-Xz6mL+v^+oEdY9H-=36j3tiRfBJxnc)?7Id@Pjz zQJ$WK$axYZt$}i!^KwkH);{1OUQb)f2<3$%Xb3?me3_*WQi#_c^gN*va=2b4j!)_X z@!Er)7p`{%sG)%~+&-lb#BapTIaf&=y~_(n(2)E6S^6MGwRzfFzqs7;!n-InV~L}- zKA_UI_CR8Cyk>i?e>BuCaiktw;(IF70|06>T$NX?n+WbatfU5Q&-zE`gA~J=wnvUu zTf>OPOffV(RoDX2#Nq_f~Krve=m&8^pQ4X z+*pk$rL#HZhov`dT=UIt)`RIyYYhF4J9k;S9gt?~^Z?8WObgTj(*kwCv_Ks&El>wc z3)BJA0(C^^K53nEEp-5J;r)IG*I!J#EX(({ZJ+D9Ru=`p9m}$O_0|9Y00000fHXfM WE?Aw`<)7^U0000v-P{FlZ@_o%`MH=C^AWVm5-4 zn6;ot+40Fc-v6rgrM`VXlw$U3ERH>L?_)&&`7?}DBa1pt+*eSk&36}Sced3Fo?9MS)Ke!O zvCHb|^uCMUQ&Ur0)~sK8JpXm6oo`y-q?Kmh6?H@VUh6Ecd25lL9C0MM(#|_1KJ45* zi=yAprpWg`)>-F%d_$M|^shlj<|hQqJS(%}{fnE6k1^|<{OA(3|KNr-4z5KAv~=Iv xGoSAm@$tOSvvlIHS2(xxJl{rOd^}+N%k*jwSGWUbMh}q7;OXk;vd$@?2>`LG(DMKQ diff --git a/inherit_graph_131.map b/inherit_graph_131.map index aa32a5ab6..d98faf5a0 100644 --- a/inherit_graph_131.map +++ b/inherit_graph_131.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_131.md5 b/inherit_graph_131.md5 index c82db7f5d..166481820 100644 --- a/inherit_graph_131.md5 +++ b/inherit_graph_131.md5 @@ -1 +1 @@ -19eda759b8d54b97f5578a391340ec90 \ No newline at end of file +a88bf85c1ed8f2ae20bf23838e31542b \ No newline at end of file diff --git a/inherit_graph_131.png b/inherit_graph_131.png index 5bcc3261d0de8c762d51de3812f1a3d5e641955e..b78be19541ee657c1ae46cfb553536e08809d25d 100644 GIT binary patch delta 798 zcmV+(1L6GL1*HZdiBL{Q4GJ0x0000DNk~Le0001;0000p2nGNE0F5vTNRc5Gf7(ez zK~#90?V8bX!ypWXQLbZjlJ3zBvJ{sIde=Srl1$MBGC|xY_b3I7un;o&zq?#)Oz>|| zBrtLg000000302P3(n{BD-peo5Ci7pbUJ-|@4v#bm$(uUy%Eueo-8mkkH_QFIrkox z{WH21?|pYcU~atk?smKVD?bg;e*&Hy7#&atMhDb^(E)W}bUPrT4-my$~@vB67>J{C-jo6JJ|HNA5d5&Rye#pp=dp{akYGwP@z*e=qfYd_6p0 z>uI18UbP-(s}o1fk)-Zh)6Nm*f!S>^E|w_X z8C^?=X>Ct}nGLH1!Yfcm-P1j5NGVZTvCoLQ(OG(FYE6f8yc8)bnz?ifuNGcHK0AAo zOnZ)>xY4aCG}5)4gcOQKR5rWf7!iA(efr zv63EJ@x9lP#%EzQH!?+PYYavk+lu%?Lc$eWNKdk$q4oEvG2l*tB&SR<-QLsn@;a^Q zNn2iG#uTYimP*aNbbB#$@3r;8B-4{xe|Mx5DQjTw6{uq_%cR%jmHQq}QUmsz|6v3INWzbzR-E zEZMq`&b|Op4a5ni1>ywL0&#+Ae<^N=z&=Fey!TVuB>MN1@P)L`S_~aI(*SM-wB~y7 z#(V$z}i(YN2OzR^@(XF*;tzXjqAAMw&BVM;3u`ye$Vnjwx?lk4xv5iBitj5pW z=8EHgZCj~*srIx+F>b6Re>X_#)B4_yyY}3gV@W?bwvPPP*7I86+K`MD2Rwua(_-q~ zy7VT&!u#nGS{o`!d#1#>6&T4SfCZ#ur2(dOFf9-#m=<&5Jo}p}@Wz}tuZYzf(v&!R zrO`=WcQiFEJQ%koQggfYUTJhv*9E^@?c{!Y&gPjhHFDGZmL|5lt4>dVp<31#N5c4VsWEz70iqCifc71U|I*$0&#+AfjGgm zK%8J&iW{PJU3>ZgEH29P`7G8I#aa6I8vp - + diff --git a/inherit_graph_132.md5 b/inherit_graph_132.md5 index 0c2f3b5e3..2f0f02d05 100644 --- a/inherit_graph_132.md5 +++ b/inherit_graph_132.md5 @@ -1 +1 @@ -938d46b262033e04b7a7cce6031a125a \ No newline at end of file +daee4925690b5cc45db5e3c81f92f972 \ No newline at end of file diff --git a/inherit_graph_132.png b/inherit_graph_132.png index 0836b57f5c0295939bd611392f467f0b1a22b3f0..a41774c5460d47fe4a64fdb3a881f2f526755f7c 100644 GIT binary patch delta 762 zcmVxvFDylFpN*A|_~OVTP!T z00000;6uy{kH_OnM7~=%0}#r(uD|BBPxFF^e2d6W9hU%-xfb)m^Z6|63P1wewk_+r zTFX8v`vOo5#0=Abm|+?aGfV?wf6hQetj8tn*LZGpnu^&BdTb-~)M)#@2i+IrbEr-D zhn^XxK~2me^8T3D&*ir3wr}&;RhDwUt#@?!ABwH+tKS@BGt_^V9benH&PPK<%p$Vv z`~Lpef@GE*L#XT9Ja(1E48=A-Li~@#WiQ3&SpR*oH_OlG$9*GHWtvede@Iu2)2gww z>J70ox*&6KZfD0b`Vgh*zpV#siSM@^zP9#J12r*^9t>^&&-Pl2#aH*?TWcRRC^F4x z*-QHxCS~E3LeHaA&%WiN(lh4_tETYI=e{!EwGcne#iZu6;L4tMFX&se`g}S2F+=ZM ze3}vRMndac)6ZC2p}xh`f0Gld6kkRb^0KgL0u!OuGxvaP3ZY@ohDIHw?ca^5#GEqJ zrrOg0!Ro>^1Ev8n!!$Gz^UUu$Lm>wG6caOz1tz66p)Tel)zG!Lsg=5^{hVg%=v`xQ zY|NArwR)n_)e1djr^&S|c(p^Q_1yV)#qLnrxN{6#HZ@SsXHKD1f9huHE?kS9vAe~< zm4BUsdTvJTcc-br&@molj$To0JNwGvm<5n_>ZWNgwJ~#3J?{_$^WKs)$<3&dx*3x)shO4<3Ng@! z?QEEaF0$rYy$LBzP%jIkyU>N0Th6n3ff(e&Gy|pqF~c+(+_|k sUayz4%qeEq-%|kq00000001=Q4}96S2>FyOivR!s07*qoM6N<$f|ZzcE&u=k delta 676 zcmV;V0$cro2CM}kiBL{Q4GJ0x0000DNk~Le0001q0000p2nGNE0Hbv)+L0j@e_=^P zK~#90?V8bT!ypibIjduIlI+n9vJ}b$mAXe?k}0}CCW!k)ga{Z6cfdLSCq=Qr#>e^h z9mW^~00000FdhmE&gb(d5uHXD1IDu~%b&IO*Dw1B4;VXZZ{+wG-%8DI-ge+EPXvOpvt3q%64KqL(iz04pK)k$1WlA$6AJH6Kl zqnzeg*HyIruz&vbdiEWW1Y}_o2@ySiVYy!)E06t$+o`&m<6}=@%Kj~4*Grw>>YrFy zY2RC65eX5QbzPson89J43!SO|a647EC*;TMD6zk#?UMFO{Nq#8_ZGUOf16&N@ty1( zKgtft<5O*H^}U7UwESL14(8W(nBH>K1rtx;vG z?=7%Il5j9qGnkC+Z`Ey;mDm{$f@|$hwXs##;-AtwPQ=qq$r}pSKBt{EZEdx|?Vq0M z3zKOe3tJ?afmkZxXfMWWe*;nOzWW?XBsJl_w!PVqv=!+FWI0qM@zInjX6LXX$-O#* za@41rnWwvFwrvk;MdCiK*G7mQ%L?2ins%|MOE;3Qdf|0qGruLXz&`$Y{=OzuMG}AA zMJv6R6|}5X8I7t)lKS@2o7zQ5#^{VBszhSU9N~NK2fDrI%!aCTdgH?pzNMEHaHhwR zsEZ^aQa6BOS%G$OIMj=zgxZ_MxvW4lYSRtq$6G{_7)KaT_Tp_t@(yDOE|6|O7Kj97 zfk;3Why-Lw4qUI-Yfn4C1l;fUXn9g3m&--W7ytkO00000VCNrt&Y)xO#M`p~0000< KMNUMnLSTYGvN%cr diff --git a/inherit_graph_133.map b/inherit_graph_133.map index 4d6f0c0d6..de1ca1b07 100644 --- a/inherit_graph_133.map +++ b/inherit_graph_133.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_133.md5 b/inherit_graph_133.md5 index 3296d7e57..ecd4d9bff 100644 --- a/inherit_graph_133.md5 +++ b/inherit_graph_133.md5 @@ -1 +1 @@ -dd0ed674467809ddb88a1d7365a87454 \ No newline at end of file +db88b626a7e04f2364edfa5b4567348d \ No newline at end of file diff --git a/inherit_graph_133.png b/inherit_graph_133.png index aa6751ee1e58d38fd2169487ef1a6c52950574d3..bb4d04d947bbb263b175b41359ba40a722ce69fb 100644 GIT binary patch delta 956 zcmV;t14I1x1;7U(iBL{Q4GJ0x0000DNk~Le0002V0000p2nGNE06otvdXXU%e*<+% zL_t(|ob8*el`g~7F9Y$TJ%X5ge$j$o@ckG`$oGe1t z;q`j`F~tpS9NP`>yWKJHVNQ5CNEzxG6d{JA~)_ z^4Q<-cj{bC{n#5irC&>|ZK=;1dzwC%jC-j*js0AEX9(Srn~5d3DOz*ve^2Lrd3fx~ ze8O{K{Suw2-?8ITQuazTr|OpIF70pFW{Le+8?GO*x<_J2xHW2U+)Xwnep6=MBxJj} zmq=~9wfdy-J*rcLKxPtS)>=f@fYk3ht2^#RjqZ{9&H&6wjy}+6{mAewMJ(LWGD6>3 z=n`(toKuQdXI!kS7wUxA^v6<3PJ9emgXIjK_Gm#Jh*i5nlu}}(OF9xEG z-u4NGQ#ncQ!9s>+DCh{sfZ-M)0;ictYQOc*-XnPDkSpx_s{K8Uf0N9l#nIk%Q?K=N z{z$roTimevpEHdIVzV{%IUALQjRfu_E;U+uBSq|{K zJOcMH_jY`#f1@(UAKo$@w7#@fe3=c#Kh9|gj0?RNnP1Druyi%B7 z{%L&B(vMQQ&ZKVeV!=!~zcpL9z(jw3+Ly0AI!O15=zY`HLQJI0{CK(j^W(mL-@E%c zbgbn2zKa?1KSqiDkeyiULT&f_(wVV!+;S0Flez(lwe9C=nx6XIw(Xnae;&)dFg`z0 z{Fk)v6GUk2`ET_3WNp<>+qL7iM3Z#iYVBh$CXqj2wf#u3FXhAhW?xJ1xGf>JyWjeH zsHgu+yYG;2TFs;}TEtCEq`mL9we<8qHg+uCyGw{3zoEsLRnmRWSt+(wP4#QkSvACb zjbF;haTA$I-2jztX54nlf5JRxu^vj1Yy8h0cj;KlCMq^g4NBuCwUMfx?w5Axsoza$ zOZu5>YmKiZu`8w2hGg7w!JqkHcvL;Rm)<~Z{h4fdcCGeh%tJsb8|qt z2g3uAg5gmq(yc%J0?()v=^oL1W2zHrs}erx^VXKa*+14bidEI_f1apq37^z?*6&<9 zzTfV%xpmadq&{kuqLn^{sa*;u@hpEN)Xk*QlwN2lft1+MHj_f63#_fsx9t|=YZIqs z7wMj;Un!bo%8l8QtkfS3wKHkY5 - + diff --git a/inherit_graph_134.md5 b/inherit_graph_134.md5 index 53d8aed21..660fd0e7b 100644 --- a/inherit_graph_134.md5 +++ b/inherit_graph_134.md5 @@ -1 +1 @@ -ce33cc7a078a01dcabc19454fb100d86 \ No newline at end of file +9c6560aa73b33fad08409b1a54acb700 \ No newline at end of file diff --git a/inherit_graph_134.png b/inherit_graph_134.png index a6eea202f1b75a9ab1cc8d1fea3ad1d1b2b85976..0f2492f11b666988b35574907ca20ba5e541b02c 100644 GIT binary patch delta 875 zcmV-x1C;#51MmhRiBL{Q4GJ0x0000DNk~Le000250000p2nGNE0O2-RO_3oKe*+~+ zL_t(|ob8=aZsZ^ghU3*9qbKQk=2D}aV0)IFVXl&WLW+B?-61Ekl6SAC$IaPR}j%R5&esi1b~{d^CsT!x33fc6dcE~ z?fcF?`xC4M05jmcU|Hb2U|Hb2e_&bQyd4k``+0SUXbF3UI&VHfwG%ee1fS=rYFDFq zgndM`o#&~xXCzp8!Lpb+Z`x|4)ii&0t>=E`pQUFl?YR|A(yxUZyJWMbKaI^b^Ioe@ z)BoLgo*{_%lA?yR)o9AsZRuK{ms8!9{8`?*+p`U64;frp zs?+G?4u38BOXG0;)o8wJf1BH*bxN(hvxgV%VMFQ0K-*SRw$xeMmsVTNIGR2s4Xtx$ z)h^=jhL;pzSRh(6(oi*mpf16U^O5fINs$4`m zVT;C6|6I8x714s^WZn)_vM*ATd18*nA-L2z?%B0$l}@PD*h5t6Wsa1NXw98Xk(x|a z-m8Pv5*1JNXv~>4_3}D?&vvirzvXwVHJRr&cwgSPVy&^2h&X!&J99iVnddfGi1eED zsBKlF!Gqu8v}-H4lwK`MT^lr>4dFVyy$4DA9V=Sjx$4OG9=CK9^xHSW-6&=u)n-~_hfCC$WNx}^1?!|YxF%C4mLK+3Mm0iV3=}X zS3=}8{j|C>0?em475}{2tqOt>jKBZ2t&yBvkuXSbGtCLs#%Dz0>CuuYFW$e5 zf4xOY`_&g?d-5QtWc0OBQtxtUtarko1$<8aUZU&|2#@l}0 z!eq}YlPESbTw$7%?yv5`qs)`Fjf=T+W=>kqb!m-q!ZHM!wESji?D;E - + diff --git a/inherit_graph_135.md5 b/inherit_graph_135.md5 index a51f5fc0c..2d3805a87 100644 --- a/inherit_graph_135.md5 +++ b/inherit_graph_135.md5 @@ -1 +1 @@ -e2c84a0a9cd4a523593ab3ba97ccaeb9 \ No newline at end of file +1fa0fa2de57326048b1d928505c3f7bc \ No newline at end of file diff --git a/inherit_graph_135.png b/inherit_graph_135.png index b19933ec9adcabeecfa18ad11d039c1f75d25593..ecd669be74307c78a627db6eddd6b87e7679be64 100644 GIT binary patch delta 928 zcmV;R17G~X1f>TdiBL{Q4GJ0x0000DNk~Le0002N0000p2nGNE04^A8j*%f0e*;=c zL_t(|ob8&?k=!5*hS5&SNF~=tI@qQ>TR~>hM_zWTNCR8JI#0}aH~|7Az~=v6ZowS< z!j=(6&H(@b00000R))fg`~Cith`vUM0l=Eu?e=fmw!g=^A7LXR`XZv={bT{qkI(1x z$2s@wSoh5dJlnRJ3j&}g+qSvaf9v(F{x(1h08;@c0Lud>0Lud>0Lud>Xn=^=-)D!2 zE@e-Sp-vD^bm_#;bfflt7qu(VJimFxn$l;^-20qjdzC7DtcH}f?q-<<>PXDtPjh+f9^MUC#B`p$rw6P$e_we@R;S24J7L`n~RXTc;K8o4T@ z;%=#~R{f(sZCbQl0hN`Ye`R@X{V_5eOWL(M# zQV))1=%fW6^f^E{1eWJgD?uqezK^dQ@`Sd}YVXocAf?4wRy~wzfBl@@6SHt=wF8+e z*{g9_82g;7m8GkRx)b=+*__9xQh9UbmbB>7)ZSeBv((;P|6IAn&KCT`YVFuL`+8|o zPoR@L3>vA+HEGdYs&9@|O0&OiNw4(pkXTBzHYuBWX;N7Uj``>zFb9`#63}7$fPwf98KQHL2$gjlOBl*~jOz*xO?tGJ~BV+M3jJhh~_x9%Ij7ujQCC z+{X|rP3jxt)}<ADa_6ZavL106x~$c zt)J+$(=sH)La&saxlOZ%Es{PYhh@^x(sD%_c34(oux8rscE}tejRUuu`ca#0={Tc9 zF60h@6S#T5WL@b&%BM2f+j(iBL{Q4GJ0x0000DNk~Le0001_0000a2nGNE00#w;nUNtBe*yMM zL_t(|obBB0O~Wt{24Ejz3?}I!EKn&kRmuV|NGD;B;|HX&96LTIclI@XAE_d7^Kp)^ z{-A;o000000NPMmaJ^nXi0CpR71R}&;3ldOYiMDKKD>d@k{0I zU8{2`hP^#rkNPw7q32YiGKWkb;@1AMy;Lk7e$w;OhDqORZM@Q)uNHr+f710zF)xkV zV-BiO|Mdm1+cVANM^o=zyBxzVCp~D0000001o*DLY;L(5NF6;3!vFvP diff --git a/inherit_graph_136.map b/inherit_graph_136.map index 5bc42e56e..aa21e9786 100644 --- a/inherit_graph_136.map +++ b/inherit_graph_136.map @@ -1,9 +1,3 @@ - - - - - - - + diff --git a/inherit_graph_136.md5 b/inherit_graph_136.md5 index 046721efc..564c7d53f 100644 --- a/inherit_graph_136.md5 +++ b/inherit_graph_136.md5 @@ -1 +1 @@ -0f3ae5517379ee308c8e4fb9219e0606 \ No newline at end of file +7ba8f907efbc9d38cb8edb159c6b3b2a \ No newline at end of file diff --git a/inherit_graph_136.png b/inherit_graph_136.png index 3235bcee260793021121d50af41cbe00ca7c4291..3064c5749e6e6998d943edf0d4dfe5ce19b6f76d 100644 GIT binary patch delta 880 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 VhdOD90p}qgeH|lsiI&}~e*qUdbB6!` diff --git a/inherit_graph_137.map b/inherit_graph_137.map index df3534473..44276b061 100644 --- a/inherit_graph_137.map +++ b/inherit_graph_137.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_137.md5 b/inherit_graph_137.md5 index deb3daa66..7e0a6e7b6 100644 --- a/inherit_graph_137.md5 +++ b/inherit_graph_137.md5 @@ -1 +1 @@ -55a0aec3ad957c5e0631a163f0329c89 \ No newline at end of file +d805cf3c2202633f05049950721dfa34 \ No newline at end of file diff --git a/inherit_graph_137.png b/inherit_graph_137.png index 68fdeac297af4a399395f0e07cabf673b366a8a8..4aba2c5933219f2d0dbc7dd9dac0aeada05b3c8e 100644 GIT binary patch delta 864 zcmV-m1E2h-2IU4JiBL{Q4GJ0x0000DNk~Le000230000p2nGNE0OiAoaFHPte*+px zL_t(|ob8(3u^S-_g~5|DQpxQj9k?mR6=WuT>-DGi{>wrP04bNtJ`8&)GQpk*nLol<;6yd~^=FbNNBCiqkah*8bE|yHb6v@f|hZ zDl@HfYi)`oXzGvuJm>W&B)Vtn8-beB?$+@XZT*_zMv2_=Ol5|?Q49$WEN9(X+(^~c ztKaHX)rh()qB7I=EH~86e?#uNR7TO6+tf+)x9sHF<7lqcP5VQ2Mrwao4I_q!2dy^% z)Vh>wO`Y7fsMXZ zeIK_S3e(u24uLekz;dRY9v)aNFA_UF zsec;wIkdFaLI6&9f3QMKYxed)y1dk4-I1w>nloijTael?hEe9qxJtH_#VF3&K#R%?wW->{z zqYqn=FvvMV2qAo>_!^^LoAh zIOpEOu^&O|S(c@_L4<@X%i$qp7T?gCTG8vlYvPwD)e{#k<4!^M1J9#|%|K&q4@9a-k<$B=ogryaNUFjfQi?umI!?A?#nVu!}UDuHE8 z1nFokc4&Icb4P;Zo|uP0O3cF`CFWs}67ysqobLDgnRXE3p3i4;JR799+pU=~gb+dq fA%qY@2m$gBaKVa83B}L}00000NkvXXu0mjfLxhe` diff --git a/inherit_graph_138.map b/inherit_graph_138.map index 35ff60037..e4cd557c1 100644 --- a/inherit_graph_138.map +++ b/inherit_graph_138.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_138.md5 b/inherit_graph_138.md5 index e565ab9a2..926069ccb 100644 --- a/inherit_graph_138.md5 +++ b/inherit_graph_138.md5 @@ -1 +1 @@ -a99b3a5ae0513ab01f94c3858e0269d1 \ No newline at end of file +baf81425b8023d9822a8d7a69b5c41f5 \ No newline at end of file diff --git a/inherit_graph_138.png b/inherit_graph_138.png index afebb6f1a23292a6ede0f566635ee927b87fd09b..dc85a2d12c7e57ae54030e2d34247b4e1b02851f 100644 GIT binary patch delta 687 zcmV;g0#N;h3CabK7YZ{71^@s6jW7yGks%a+0)I(FK~#90?V9gx!ypjFxu|1wlJ3zB zvJ}b$mAXg2BvW*OOc3`Il|v4jKgWUL{iLckM#l?&;s9d|00000060427o5-McOv>| zAqI@c>2&(F*8Z%^-uy~L^g%>lda}UCJRXm4W6bBe?8S5rYi)HwU~H_l=61Wil%E=Z zXaSQ0(*bp0I-m|r2h@S-3Lql(x-~s%;b>|)zjIPMtEbLgmL;m5hUQo;t-weJ)Dbfs z5&i%9RcnsnUaB#CC$*aE z)M__1ZZC5^k&(`rz9#iKNa|mk-`yXPTJKcMbVu!2hqV4$sY#PsnyaMOmZRR*yeW4A zpGvQzeu*y0-y|~9m86rHMMtP^s4PY&wM8|aZ6%jq#Kl4sjTD((`;sQ zOt+9&&$&t|Ju2k1%*He$ozLFO<_yK1-pD<|G^5!Z)0%FJlyA5&RXWq9SI{1q4yXgu z0d-(Hpbkt2)Pd=MIxrnjC%8{{y4##BKVpo(<;((}`S|$w6GHfTJ@!R(C;Ps$8w7l_?|XQE zdwctGd{eLmJRFD)hy&39aUeP%4n#LWj4}Hf)KL{(dZBtRoTUqW97ogVBy6@cE;$hC zfH-8Li!pxwrN^)5bH{W4)7PbQBcIPjf|C8Ms6d%ZS)*X*L|Lj#fNRcZjPgMVHW4Lee(`mNoND^W~? z^`b4JD5t}__F8SOwUhc%TD)0=eR^$Kfl|GHr?j)T ztybH5`>B1t)W21+onUhqh(i|XERdTzDcZ|H(Fb??R&gb|)~Sf1JqkPvs|Kc5Adag@ z*Gg@L%++6sCq_FJ(OFu~_vS%o`>^D@7Hre&Y8#dmJkjS7$VGRS+LZ2Qk0nWWK9AUt z>zl)W4agJzcLQHbQ`OqeJ%hD>WGs3pwO6v4dW)vTE>8cYAg`wzVa1Z9S)bE>Ec(v{ zdG1wufV4`IG=09Z(zJR)o_m$P5Sk@PT0ZA&SPAll#AwO)$|XsoKBsMH`!5CCKHc3N z=&>Y;E9#8+f49icTy&^x4nLtJsikj#bN|LC5v9Jo3#DwTp zD@me8<2g|iOs_y3h%Q4dFD%h_Pd;^(ZIUY{MQ3RsdrF^Xxu(`idw-V3W)ye7d$mk$ zTuS?9vzyKqVG-RqP$Pqd(x-b{YJQfEm&Q;-(CitB-t7RCK9#BUGvdEiR)YPRjxsM9 zg00dYsnVwzJ2<{K3;RBQo%Y5jN}udK53-5Q!hm!1kJ6`k*jBI9Q;UVtAI{RJ(s|0~ zE-O)wCDOGF(%oP_vGge?ywXk9;!BVJl8X)#xz`kwKDD18En%W+X9SZO3E&&GNY}d$ z*ZZB8_HtN!@b-qu={4o)rBB|#^m^egHwtKg=o*o%Ht~)t(RsXo;2wQ)CAyjFmOCh_ zO-A7KNsA>G5oxl4T;B`e=D^t()*Zb=(Z-NWKS)`k# zC*5YTdSew_MLMup29Fcn6C;Z?9w$1W4@3vVf#`rZ5FHQ)q66YUbU>Wq=J4z5tE3&^ zL3|P2aU6d`2)`6;0S?)=?Oodj0000006@=w3s~;(H?JFo00000NkvXXu0mjf0U|0G diff --git a/inherit_graph_139.map b/inherit_graph_139.map index f4b741d6e..f4bde6062 100644 --- a/inherit_graph_139.map +++ b/inherit_graph_139.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_139.md5 b/inherit_graph_139.md5 index d24b4a306..d15693bff 100644 --- a/inherit_graph_139.md5 +++ b/inherit_graph_139.md5 @@ -1 +1 @@ -799ad67483c6abe032a1bb1ec7cebbb7 \ No newline at end of file +608c0007f120a3a46aea2729d66c5943 \ No newline at end of file diff --git a/inherit_graph_139.png b/inherit_graph_139.png index 337517f4590c7d72fef2f657dec033970c6f2e4c..2e8b402dfc065bb8b50638cb7b4bee544fd60fca 100644 GIT binary patch delta 713 zcmV;)0yh1H1<(Z{iBL{Q4GJ0x0000DNk~Le000210000p2nGNE0O;NLH<2L~e}zdz zK~#90?VaIq!ypWWq1Q1wN#@B?IZx2e;u*3E{Y6R%U@Qw^$?v<%HGnP4@-q>Ra&-;> z00000fOF&Xj{E)o<-Nbna0YptSbN%Sl87p z%TgTs5cUNCG7u|J1H=l{0I>o!e^eJ(z!u)WJ*9jRLJ;(X&eWMT4`3^xJ^OZ*FI~`@|1GFCTQQ;f7RRYGrF85lu;i?H zkXr5dK7{bEKX1prlzeRO#VPsG9PBz-Ed`>e{o3^$d635xD)YeOyy$`BqCM zB#}DikThWCEZfRud;Q|}pVMAzmQ80`3TKR63d_uz2Z_4q$=f~2`<{fp_OW@y|K4L! zFXCR`M$K~6*l{knhNl5re=GXlZF}0Beo}1po~y)pwxHVMj2#7hDFD=9sy2XokzwKc z^j=0S&^Yax5^K+@naiFvxMMd0qyaz;5GzoFS+Q#WMh(1UR;*XV`VDGQtWxEJXDShN z?(YG;RneMy8W52zADmqxSUUHTO$(TuSxby6fty((xMlxnt-#qZe>t;qL%ramO9XrN zu{5(ntQ{OFj85AU$G0fb$Ys(1=jN5bNt6i2F|J<@oDtJA>&)`O86|>NMH(?HR*CXK zttEn5xl|eebYpgA&9S`jxC)mM>y>joDOV000000OkAwWIrYhDR{CG00000NkvXXu0mjfx(QG- delta 637 zcmV-@0)qX}1%(A6iBL{Q4GJ0x0000DNk~Le0001q0000p2nGNE0Hbv)+L0j@e>zD- zK~#90?c339!Y~j9U|-ZRIthDp1D3Lwpi=kf3rx`kn1J-j$TDZ24R?-l{!c=MB(jg> zk4*w~4gdfEV0)AIQ@!q@3GF6zx19T%KF_UtW_#{T%hg|t>sxxywe7al{7fGbm5>mT zTi5me;C5KLE)37Pzv=Vby4qnrS4U0#t#a+P)?BJftB)F8rW?(IrGDZwf2kC*p0xTc zoj{hdx8+-n^da&Yn)Rn=z10Ejwa?W;vej9tMZ5mEJ#JKcRobRyU`(c)Ek~7b7IO!s zwl0m&Bo=b*TJLX_k>r)(l{+KC>(aW?vYI;6`CW5*klL%QxztYjUUC-;8qBAgnky8o z*P3;ie{Hy#1|qeQWCYw)qR}2lqYvx$wM-R~+M!vaJq;rTp#;+n zh!7GGAtWH$O-M9vIKBH<5Ur;A;L6dy;t6e8v^%P4Lt=dprh8PX~JlM=)(j0*mQj=Bb6Vn@ix*4|H1pwPQ~KQ*mxbA&FW11Yu^o z3< - + diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5 index 66ff8ec54..aae462e4a 100644 --- a/inherit_graph_14.md5 +++ b/inherit_graph_14.md5 @@ -1 +1 @@ -b875445f60b6081047ab632d0dd612a5 \ No newline at end of file +630a653774b3419d0e6451a721abcc65 \ No newline at end of file diff --git a/inherit_graph_14.png b/inherit_graph_14.png index e51008011cf32e9a2fd8f3a292728c17077c0efb..2929960d49e6a0b40a5f305e6793368dfb5cc09d 100644 GIT binary patch delta 817 zcmV-11J3+}1-AwviBL{Q4GJ0x0000DNk~Le0001_0000p2nGNE02$V!x{)Cjf9y#_ zK~#90?V9azor^cYqAaif2zPBfhk~+z!We@V2Z5`()%B~RwmojU>BWSmKtO_ zsTL+Vgs@sdmUM2c>KtWj4+&lmF@yBp|Nl$NtbS z9aG1{(Za1aN^xVHgZKVh2&tVP$03Ao<>~oR7LyB8xwfeqN_wf|DlyVGe`T&(eM;!m zs7GN+$ku${DYeb%lX`FOI5f0K)ssN7ZxIjaoQ(xZN=ehqo{}M z+Df^#isqiz`li<9_Ce{Je|oKVu14lbO?pgivvls9+-ka4e>bI#Qfk`B4=L3% z^L4UoG9-Q2HK$GAA-Gkiq7+ zK~#90?b_jS!XOyN@w{Hg=p@~v8@Lqb1ikAX{i0KJ0Vgp1;H8HMl)wui<^Q|u)nJ6z z_!uHOO#lD@C?#&g@pya{k+&_1!TuZ$hi_xdm)-W_?j#~_BJ$C$EbQ6scKe*B>D_L7 z3f00GQ@tSUn=xj(TrN-ThYf1Me?Ld4ppH;M9if7{U585KX+@;VK6A$2vW`-lhRQu~ zJsik+p0_SR%~r>A*Jmp9Ni9?&^84qu+xPq0egECtzHN8x)S6Q2P3a>hXKc;>e8)4^ zPiX%f!Nt!tMC4)Gh;1*o=Xri;cej@|n{R6J^_^NnsNU4)6{0bAX@9=sf4O!$SCi?l z=5jHOkl%9(1K`nbq;g=$*f#rAgZdOW@%YN6`wh4G!*Z8c8& zHT7Pft;+P*+q+6@>7w=Ha{BAx*sGkWN~V+2i`vk*c1^zeQtHipUa`mJ^jXrM@59iV zv2#?P{$iit{`z#cb~`q9f9hk`j*&8U>U}x&ruLV!Z!Q);p-$~gHImqM%bqT%Yavt_ z2u>W+AJh>ls3TNRH+-lx7Yln>cujIzk0?gbL~i71RY+)X(R0%Q~<_*Xz~W9t_p#bgEVi00000ps^of W=6QWPHUe4z0000 - + diff --git a/inherit_graph_140.md5 b/inherit_graph_140.md5 index c020cdfce..0072a3c45 100644 --- a/inherit_graph_140.md5 +++ b/inherit_graph_140.md5 @@ -1 +1 @@ -9258ba8216456486d9e5b657590c6dab \ No newline at end of file +ed38f12a41d1604d50a2d724bf20f44d \ No newline at end of file diff --git a/inherit_graph_140.png b/inherit_graph_140.png index 80c3ace821d3fb8eddf439a837169dc82a42ae27..f3eb3886fc5f9354bdd6cc074e8240c452144809 100644 GIT binary patch delta 594 zcmV-Y0jAa^e{cwh7EA|33#J321=DdU(GqP=_{7GSo~ve#8XJ1p z$<0vFh5?%~fGMoCRsH^x&%L-*rk$0Pu&uSpHX^EiaJZ3v5ZOdaM1P;K-fxf9$G*es z*0z`}ss5>QX^b2-6*+#D|<+uAg7#pv(3^Vwv)n#!&ocCugHC=pOS)<3F5Suw+`L z&hftu5UQr+Iuh&_SdGgq${u2C_O0Dmrk>0ryWS0J~KJ4+V20uXHj z5av0+_5e%=L<^<^q6O0d(SqrKXu)(OPY>30?P&)9)oes-t^HO?DBTCx0>B2X^>efh g000000040F3*m%sh$wSv;{X5v07*qoM6N<$f@b*)qyPW_ delta 577 zcmV-H0>1s(1jqy-iBL{Q4GJ0x0000DNk~Le0001)0000a2nGNE0GbGx5s@Jje*yhT zL_t(|ob8zJZNnfC#W~b5I!X4Zxs*C>%HGJ_ZG#Mu|1@sYvQ zWLwI^$mX{8f3D8lL&S*we^#8_cwEi3aniZuo^ER~M)!9ksF%yu6C$@S=Uh@}?^s-I zy>Uj2atq#D diff --git a/inherit_graph_141.map b/inherit_graph_141.map index d979556d2..da3ec6850 100644 --- a/inherit_graph_141.map +++ b/inherit_graph_141.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_141.md5 b/inherit_graph_141.md5 index 8f15433e3..62875147e 100644 --- a/inherit_graph_141.md5 +++ b/inherit_graph_141.md5 @@ -1 +1 @@ -b99351918de942a696dd0a7e476b2279 \ No newline at end of file +55e0eda9a1d16e4d72c9834b4580a53c \ No newline at end of file diff --git a/inherit_graph_141.png b/inherit_graph_141.png index e53c66f7a1bada57238d0bfb5052b74b22ec87af..16d950d1f1ad3bf9fbf6bb1e4893bffe968734fc 100644 GIT binary patch delta 778 zcmV+l1NHoi29X9KiBL{Q4GJ0x0000DNk~Le000290000p2nGNE0NkWGE0G};f5u5f zK~#90?VamwBq0pPadc%|C8=kdT1^FawM-4$%H$If%knT_&oJiylcI!&j4>Xbmf{=$ z000000H6fL8IQ-~FA;rTp$q_Awr%?#=lzK@i0GS${+*)|0NvD`+4FopbyWeNgMHuK zwr$C>uak8FKn*xEFaw+!m;ufVf6TCyGZTH>M5@WxZVP;JsWZm|Zpi_T<6zZ0qtBM? zT4Jf08Q4b5nThE4C(aMcQ~9ai@!zdwDP3~)bLpCl5*&G{K6B*e^pa}hu4ErgS|Fmg zWwn&{e;>#3mLI2mUI=IDuIVDtpH_16Qhn~#OR9}KbILYD!;pTEoO2%^f5q%b=~(*k zS43oHc5bd^OhOmQ{)8W%PirvK7+isvGtV+Jq?X$rr28YeZAl^3?>nQi%{a@Dwf&%! z9;0%!?2(hZq9Z#eG&7GZqdkWjt}d}&C7nxUqqAsD9(SfL$*J{wg+rkFHluVSQM;|+ z+-B7BdT&R12EM1Q)^@l$f3J8r#G?r?gV@Zx0;RpE#O$Xn-#T#S2DBXt4m$?68Ndv; zaAs?vo3%DLI;?vAR^k@Ud?qu6Zh|({oEd|iw?XNS`%d@4tz)e16XMS7LlC*Iau!23 zYc^=r=W3he@E;{tZfpHk!~>0b2hc+3W{V9{GFsCkeUKu2tqs#sfAw2XiDxbm4x**d zO^xlr9c<#sg&;`P=O7-NF**~Da#iSNj}3AkcF1ftskPC1fSztIW`FEa+cazY!b`zebuPnirRB_Pc)dd&`rtqHEc3^;FOH` zli;%0jMYLnx$T$AV5DtQlX0g5sB?G$1cq25Y7U{5Yp{ef!(rC|+YDd^I5RK0ib7z=^_ zmB1zh0000000729dBNp!`AtOcXE+01n{C^^9*@W0wCq=2iHP2b=+8K}0Qlx3gz%Xb z{3p=J?RM+#4FHkr^~#pN4fX>7e-#iYa18_sTmyju*Fc~R5D|O43Lg4&szCDr&<==) z0gP6lCH?Aes~*+TI}y#^xskq-9Ghqo*t1-{Vf22liQ>XZ&mAJI75ptiri-AZ@9CCyt!-OTBeK~e=yU=Np^72+`i-k?B%=ie>s5nF4!n2^=*I8o`tiH0S6+a1WE4`)Rhw^@^|-TLM=QW@HJ0 z?xA^*mRs?9+_#eOTBJ;!;=%eXA3=N3`f=bDqhSpY=wM!D?q~&4Ja7#J3S0w$0@pyG zz%|81()0No=?4HTMSwM=-YEW+4Os0000 - + diff --git a/inherit_graph_142.md5 b/inherit_graph_142.md5 index c3687f0c5..934e87743 100644 --- a/inherit_graph_142.md5 +++ b/inherit_graph_142.md5 @@ -1 +1 @@ -75a238693711dbabb65ece5a4c8bb744 \ No newline at end of file +5ac596c30deff3f34378ff5fbde0b7a3 \ No newline at end of file diff --git a/inherit_graph_142.png b/inherit_graph_142.png index 5206141befa4080abca4cfd67a92f10852761b53..51635b803fb41b29308ff51f7abab27c219d50ba 100644 GIT binary patch delta 1137 zcmV-%1djWW2=oXciBL{Q4GJ0x0000DNk~Le0001?0000`2nGNE0CArc3Xvfce*`H> zL_t(|ob8+Ijoly+g~3W0sbu?z(!iB&O)eo)>PUWV72C%;zZ|i?yqRIf!}+8r*AKxk zJ_ZA4odW;>00021fK{hLHEz&_iyeeC=GH$3<4dXxA5&3pfAURYoyK0iNy zJLi6c=Uzm3vhO>4KwvHQeRuEgfA25nH-T6H_yR--#DNHbI1nKaXDJbS|FR;*Rz7!K zmJk);^+8#BaK~{}-8ZAn+Vi?pPY85ECPMH1|9{u>;q}=0*#Fnxt=D3)r0!20m&(Xd zQ(mmiHRYz_qN-yy$;Ijxy!T&*pWN~J`#6p-=dZ`-xsaM6t`rMJds<1Ae-~?WZ(LM$ zNHAqM=19PqT<6@2n6*O{WA25$6C^#MbGo{FidZPy6TUF#F$bESK?`Ie)bb|AhNT{; z+e10L$DnGr1T4extOS(4cc|hREr%-~sdDcmK<9{h!ja*o=VQAzmTO$Om~+=gd#zG= zwLN35oKm|rPfpl}D58nH`tT_0G0?9#~IZt@YH#e5XkZ7OR0cWIf>uQYwE__~z%2yJLd${S7>IKV5n8igmFlR8;cm+?Ic_1snP{?Ltpb|}@sQFv$gNRo zUeDu#T!g2UsCE~_q6MpzgVuPYbHWX|fuT3?7A#mTIf#|fdOXqwe@(FX33G(Ww`9TM zc(`}S2?gYP$D=*ZC{h-zo*blJ$PjHg;edSaxL1r8ELfvCxS};D)R0e1!f&SBJ(ew4 zH8}|Htr^O-eu>m=K{gtJk&emc3t%OE4u&h;Sw|tzO|?b!zSLj-tDA>%Tj` zJ0)jKY8lH~epy6#CaNb{uzIz}600ZG##H-DF>}JcW5T(QDs5}xw0hN$t0&BV?03!a zEZDyZTlP`U`@^@=n$>GYJ9_Jo$}#&oA?4ez&DO+i_2NL|fA=Jt2&ogU)z&0w_3A<6 zh{85I9vOOI^-9lzDZksa^olG!VNH@+lewbRE7q2j`?{trE$yE~CPXhzYn?Z<)1o-m}<#WPyh3}&`z24;K06V6_PdK<77 zYdxV^5zcy0Gfkn^#CKv+gtHvNGo8p%uICw;{3fh*@szHY{@gO0vF7ajvHD8KvAV2c zvL_s+#f78Mm2x*s_JrVGEGxp5dme2pD?*?Lh!BVaM-c*XAVMGxLtt zIWrEhFfSrJj^mGW?x#R3U;(ym`;d+S000000O;c%w$s-{Yvv}J00000NkvXXu0mjf Do9`(X delta 1037 zcmV+o1oHdz2$2XOiBL{Q4GJ0x0000DNk~Le0002B0000%2nGNE0GCkZrja2Oe*?xz zL_t(|ob8;^m82jLMa8pWY$TJ%X3$9y!k#mE%$G6r$K;{=T}Nh zJr^E7k*-0V>X@4E_hj3)tj|el4(oHyP209j+qV68{8TVf19ON4^*-fMqi=jIJfC`v zkEv@VpHGdJl>S_(bl^&JPPvrc__d^bi--huIOXkAAa#Aewoi}LYkW*yf8$KEDIGcb zxlrYCHB)*+!ZJ(liA9>EAFXb3*!g=v^w1F_QSZ|Ol>@m=&gJe?o}~VGWJN%>MJ%ZA z-f`0UQ>zo84JzqJ&rv&E){4p1C6QBueu#|JHPdYzfZ_YIYiH+jbjA;zlIg-#dAXV; z9$KG>dis&Gf+6)@QYW{pe_UQ{bIa^`Ts*eJrwLD#ddZf(=t`DQOj*;4K6}9x^iR-IRZ1aeS z2lZ}&q(&o)meH#=muN`UtgC#4xF>&$bl-4f6^?ygqWjCv;9^O z_fwZ}N6V<>&!$Fg|6LLHezfj@UY60GZ4N=&aYWqv(Ym91T1I=dIi&&oL;OLp^e0hw zwv0;r3~Yq7%M&c4Idw~Xuf+0OqvH<1`vJ@` zg!kiamQiU&SVghKe-J@^H_NCrJ@RzRApHR5Ku{+*^QE+?o8#xeGTxCPgLb)aMgu|M8t>vtp)OqS2N(C3U z&ue1j3iTaD?s65ZsWfNxl(b)ZSCQN2THYD;oLbTsF->Dxe=}QIQ)_f+d@rY5PM=G} zNQnA6b?=P@SX0~QW4Lzrgt#!sI7iTPrV~pGc~QL)OE?cS98?n z_PJ(yrZQ6J2)*j8Ct6cefld7p=d^{>{@RC1?!DEVL5A>t#K4-Gf4$UVDpk&i47sBS zKn>kSYVJBTWA{5b<)ygOhy>CMnSR7P-I@w`ApHR5Ku`m7AgF;k5Y)gND|dS00000NkvXX Hu0mjf3u_57 diff --git a/inherit_graph_143.map b/inherit_graph_143.map index d11c62b9a..4a27a3ba0 100644 --- a/inherit_graph_143.map +++ b/inherit_graph_143.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_143.md5 b/inherit_graph_143.md5 index d99407690..8b9e99651 100644 --- a/inherit_graph_143.md5 +++ b/inherit_graph_143.md5 @@ -1 +1 @@ -d4f299eb44ddb40ef5b05c060f5e0702 \ No newline at end of file +a50058db2ca55b1da0c23dd2381d5819 \ No newline at end of file diff --git a/inherit_graph_143.png b/inherit_graph_143.png index 6d55d44f9ca0d11e3248a7ed2b41c9884ec8a2d5..d3c15412f29213dd6d504174a0e94f1204bd8a3e 100644 GIT binary patch delta 638 zcmV-^0)hSN1cn76iBL{Q4GJ0x0000DNk~Le0001u0000p2nGNE0IHsgpphXJe>+J; zK~#90?VIg!!ypWXk*{NPlI+n9vJ{sIde=SrCz&D(WP-TA+#`f95eXA`pSxUR*(U^k zEdfrA0RR910C<1MHyn@0Pa-<(5e(>$Wm&G)+F#f9;a@~V2O|1z7Z&K5`~Ci7jQMhH zPomkd)~W{t`o>yoE|<%bec2%vfAHo&G=L361K2<`fX!5*A$rC% z8t8Rhi>_50`Cp?sZoM(l(W^Y#%cz*rY&wef2A>NPLi>?2iS;Zni)vV6(pW!ZU0h0Gz_$FTu;JCf${{{ zKs102L<87NCmP9(uby6=v}Brzu)Fakg}>`=+|P*P8A0#L%MAcrh3w_UdCq zh89iB@_|e<5ZdKqCb4V`FPaUF@-agx3NhW1JM}{)?!VN`C>UcVR1}R%%}+7FERLtq}zemn1c;S?%gAuIZ;uxUf$EiF{EP7+dFql zTNDIX6V%jGmrPolKKoOIV^Fv04X#S1_JSQ8Mh%bt#$B7rqCR_f^DOz~4j{NSx#0Nk zzyE|LUhhcCm{S^Cf2el;Lq5UE&J*SHC%tg$JN!`R^rdYgyIOK@pV_tU;>P}STQBq) z$gmhfk*JHxF55@-6-uABpTED(&_rgV{)T6t-8WrJtDO^e_TNXBBN5rXTff~e(=Fp` zx^n1Yl;kV6hcouuf0M{tywO-*zWV#3U&RZ}>O+dp?OAc}!^bm!G_@Xnh@P39n{lUi z=eBma!?`A5m+X>DpInLOIvXBkyz2V%^Oes`Jzs8GlOa00SmyuT$z0*}{!+(f1FiSe z#=Y`VZ%@y-Ccp2pd+VlYQ5NrhF - + diff --git a/inherit_graph_144.md5 b/inherit_graph_144.md5 index 038d41e40..3a4f0ccef 100644 --- a/inherit_graph_144.md5 +++ b/inherit_graph_144.md5 @@ -1 +1 @@ -11b3b4967de41f1322e308c32d3574bb \ No newline at end of file +a195cee30e25305746a7a9a143d4c36b \ No newline at end of file diff --git a/inherit_graph_144.png b/inherit_graph_144.png index ec9a85d699396964bcb9bfaa966b1b9e06f7563c..6f39c30fcadcb614421a04456b32cd06fb584fdc 100644 GIT binary patch delta 576 zcmV-G0>Az22gd{i4r2Ej^xQzTpuP+LrfGU7qQ?xxzOb5h)>3}%5G9A(83(>InqsMw>4mDl)V6OC_ zthH7BB<6g!b-h)l18F3)G@I#&=>IQl_wUErWBG4%6E~%+ zXAIZh&&<}^U2`vy{5ae~C^~oTe!Gde_VC)Z`P7uGk`|8nw33P!n{%(Of7UUap;BY} zadZ885Gk*mg8i8OTkM~Lw!y`VXKL)MJpuQdlOnNF#5ZB{w7aLy-uXro??TFt(m zl9myfj?Hvu$uO}p(*yT>ILmd6)_Ir8=LoYohLl&StXJ9-ap~9_XViM+4hOZw%4bXY z?SUoJ?I|BUo8ww7xxGlsf4#knUy4_o`Eqee^Dd3iyFctaeWWs>2;oGNgd!uY)ogZ{ZUGN9-swW5Uus|Xbk`W0001h7N0-zYFCIllJ3g@ O0000dKPLUxLe*>XO zL_t(|ob8*@jpQHgW9AUKw>udi5LYKUbbs;}G$b#*Dv!mz4kfa2(gUQ00=6 zU&B0#8D(#8P>QttQp*AAeNyskn8zyNyXVt(wZ>`Xb!v_OE?!f_QOFI+dAB~dy#v-E!|gc+dXwzEqrS@u9}6r=~CP%kJP4;C-mw%e|6tXscfaX^xKZ< zs6{#&2l0fAo|!naq_S~!$yuXQ##tjBjYE}uN-dm~J4z~BjxIU%Ypg$|5kLFZGO$v5 zrLwiurSzG<6yj&!vlwU3RJNA7lw77rA^xIsUXy5G*Q+i5nYMhq+Iq<`DMoCGHgAwXxs_-2%HcgxPS8!z< zVN5wpWt0@I(z3W|Y|<%S$HPNyk6V8frVHOGuF}PF(%7Vze*)Zd@7Zz=jJctwjM4HG ziP|n_*`Y1xpoH6b${c!3bZ(;W44x83NucFK-`N-srV8J&@FltKtLZh*KS!uhe-x(k zl&RFX1FE5N(%4F0ifaB0VkD+BN@Mt`aolU^cEBrBg>NtiFiM~f7$r~#j1s5=MhVmb zqXg=JQ37>DKKCh|b1mfnH{|(z2Fu@!a#@z|ZQDNAb*(NG0L!v`^_Bqu00000%*Q`( W;5xh*m(v#j0000 - - - + diff --git a/inherit_graph_145.md5 b/inherit_graph_145.md5 index c4e3ed185..4a9644bf8 100644 --- a/inherit_graph_145.md5 +++ b/inherit_graph_145.md5 @@ -1 +1 @@ -216ca2e6a87b60a3459c3f9bd543140d \ No newline at end of file +012ecf89768e560008c2fb4b19b509a5 \ No newline at end of file diff --git a/inherit_graph_145.png b/inherit_graph_145.png index 8978288a24d585972a6e6b602215fe65eb5dab1a..3dbad98a13f69f2f6550b57b77fc903afa7910ec 100644 GIT binary patch delta 772 zcmV+f1N;1w4~hmMiBL{Q4GJ0x0000DNk~Le000220000p2nGNE015%)PLUxLe*(Wr zL_t(|ob8(JZ37_;hH=#~I!PDl0+BLPlq}E=(q9>)d(dCBgdE>C;Jf#cs^++hG4RH4 zU}FFP00000&;^ABr_^ZC44{xaAP0J?x+e}O6>SfC0B7O3J-f+c#|#S^nHUDpg&Xwy`|h8?g% zhj3x7EqZQtn``PXZIdL2im*UGY=R}CzrV2DzrR(!^*{VvdvD8^*z>XLoQ)JE_O{ww zVmIbj?--QYN!cv%vxn%xK@CLoFkPgs-Dhj4^>x~XMd!-R5e`SYj3`+a2)z4nUmjtOd{oF1<$u2>ztaaC+rITCgs;#HR z=bAA{-R~JYE^u%FRKXTuk3edAsA+Z2TUfE9Zw;suYJ z2s;?5scmEm;EXg#%|dmke(Cbpn7v56jFhf_N2EdeYjVw~jIbdsg4oI~s!0LtjliSR zAhiqCu?xYbs2N1AS`@&R`bVZgYDV>v02~hpwvnSnwpD;&fhr(apb7{Ur~-los(@gD zDx&+a_xpXM9{>~)73}qT9q9)E0000000000X7dX=P)Otsjd$P9*>av1Ra0^UunoEnXuVdzlY&oHcHS$B+bNP^tU+R?Bb~>r}Q?JJqq`r=sE3)N;7Nol- z<{qxC->a`ZeW>NwJ9HtIK#2<*;#g!(3sm^ob8c z5fNof>_~nHnochz%4;GqkI>~4nJ`zzBdbQft+FLgSEX>{q*$0M6t*ZR3a?^YWK^|NJ~& z*BWmY14PK3~>)V2Jio@=gJ#+xh(LO z(m0_@9DoAK5}(J8O-e4gl8fBxL%fl9y=q@?M4KLlFqLO|7(wz)d2Q4A&Zp_cP&N;` zbgiSVcwLsGUS8YFtU_4%MjtJKckkW6+faB^Y1{=chm7{MDd$R#+pxqPN2X=2$KVpz zti)eXHfsg7eKt)~AD&*ZL)Cn0vz=ypAQ&sRg1k@OmCdxdcbRl0TdW;b@cGU^dEm^3{s_Qo2^@jK z9fkW1``)%mQ+f}?fwIG^@rcqKYVGq z>W|mJX(&7m{Xl~b_=D%!nE}* zww?NzE-Xpw>ie|mE^@ulRed(aFza%5l^1GVt}m)B09ydgu5RcfrNTQ3IHQ5b6tJr^ zex_r{xiZFWIP?zCHZG}Li}J*4y@E}@Rm0PNrr)~Ckc`4J_Yvlt1Q(Xn&Db%}!?+C(6JIqd*SD|t%3yT<1}^{)Hdhr%_+6qbpGiMf)mWE**QCnDxbd`UI( zz%Wj+`kW^>SV|dlCB9@YyjCyt>3a0pbTO!pN3SKyc6o7;>-aF*foXfvPehb4Hu6M788hA|KbcJWjDtpKdwV-}2s7K>-e#`QAei#$ zp+>$aitA-rUfkT=3?39wQ508V$Kb0diYq%iJJ{LTi5&_NfVA_8h=_=Yh=_=Yh=?e4 Z{{ck74X=rbVp9MB002ovPDHLkV1im9+6({y diff --git a/inherit_graph_146.map b/inherit_graph_146.map index 2a0b93cef..c52968a63 100644 --- a/inherit_graph_146.map +++ b/inherit_graph_146.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_146.md5 b/inherit_graph_146.md5 index 17e5603f7..41ca8f0cc 100644 --- a/inherit_graph_146.md5 +++ b/inherit_graph_146.md5 @@ -1 +1 @@ -f3e4c828924785b1af643c4f7c3e72ab \ No newline at end of file +b143041bd9d70d0bec3e61a286ad96b4 \ No newline at end of file diff --git a/inherit_graph_146.png b/inherit_graph_146.png index 4b58a1f3611e480920351c640bafb3cd821a299b..fda20f1fe60b9754d800b19fbb0ef284e605a9f5 100644 GIT binary patch delta 1034 zcmV+l1oivZ4~_^SiBL{Q4GJ0x0000DNk~Le0002F0000%2nGNE0F7(~D3Ku)e*?ow zL_t(|ob8;;apfQoML{)TOeD@@GI&W5!c;jAuM~q9&O`EIiYY9C_;vGX?%DVW$C;D3OdcA&Yt>1bC13)d?wtX36KHRcj*Ne2)Z(8fW?ZN_pj^jAq zl~RA)vYW^)#u)a10HDMeqxOBjf0b_?VgaBj5IGPJL=MCQkpuB8C33BAJEm;)bGH?1 zPiy_Z%>BF~T}AG@F;Y0sGwC|2KD+H{t<`y+>O9XMpI2q6nH;PMnaJ&u7@D20=iGAN z&+F&hbFn2lwu+?G@kB~}zCNea>$~1JjwSU=B=|BY2fHMu9Q&41rPS@%f0ntVEV;2* zDEgC2s6JnxQ|k!{_gZId>=I~_u5b*py_rg>+m~f@C}NzUpQAuBlPfjWl1LE?Wq;f+ zq&)`hAQSm0H_n$DltA4d%Jc{1!IG}Dn$=@DEma(~^^CO2tq93XUb7shJfw!Mjm2_} z>nY}^bG5T>tiIHl{V8S;e}+9>dDb zHj}TwQ>s8QV{+HODiC=F+(Ltpc|f`X#50A+C0k@m&Zk}j{xOBfThiJh3;1CZIYbaQ zQH6d7xj8N5BDWUL)VGilEwZsO$c?A>n9L5jL96t}O0dZ0jDfF?f867mKCA?bpZp2; z=1Q{2a)@V!F_{5!?@H~=SxYaAY{?jezVI%ijmeCVdsj-uF2N#OI|f%q9h2E0fADm3 z)~9PETVzwlz`Zsl)fr_>W`ymveu=wInnjkfeU35Vc+ee@Zr+vEEV8NXKb@lkQ+Y8zX0*SVV4bL`mSV;^xQVYbVslQ2%2w=aQ>|8qLIDf8)vN zr-LR$#Z-h_Ih_#f01UzZPAa?Hn?Id(Ew#y z#=cKZ`K=tycFJwV<)BACpWAQhabgoWb)ci#PJ3E$OK90|51qzPp(~-%62=$ zMt}uxJb`$IVEUtpUcibgn_<(HmO#j|LAnCO1CayqK;%F?5IGP}@WIm<(=rYKs`>o< z^p@X5zHQsraUAdazOx4f05#jTee{k200000008ilZ&k~h^w!aA2mk;807*qoM6N<$ Ef)C*SNB{r; literal 2007 zcmV;|2PpW7P)q?=5}{=)z?+$obEdP00<$35JCtcgb+dqA%sYw@+($WR(2_+_W2M)hDVYl*G8k! zCEq%lu(r1LVw$E;`PM=FGaiq>$*0O-R%96Q$H! zzIBiws1L3SMx&8iDP-`BMk7on6W=mgv1iX7tgWs2mO(tRv9W>icwD$G=~xRPgbV@( zS3(GJ0D~(bggAh~l@LN4z~I^frBvbXuG=QVz{i-oZnMvJ>@~RNJJzQtH3I{QB(nqV+}p^S{fsH7Q?ohAPuST& z$81`!iLNI7Z_^K^<4EeUv5l&6DqEKJjXLcn4AG8DUm~zUDRs}ZxN3RvTWfvK`uy@@ zU6%Z|e0dw4WxtD-Z7HkIRP8#I#Rc_k9dw8=D=AT)6`APYWgWXM_A=xhbZ)r1Zx= zj-exI8$OUqn@QL2s-8B81=rY&B#*RysWd~^S2nSaV+=^9pt^>3Y>tz(fX}l=Rqmv# zv!|=$AL7}+Z-m;XO?2@pwi=Nu*EUlflVo#Q*|K#eI*V=qG|^wzPEmcPnoV^{>6aWw zQjCplV)V&Zs&E!uW9a}AHpe#f*7F2e^@-^V7QrHEJ+W@xR-Q1hNN?+-xujFy^ zJy%;y_RXGseA3nQt=QmH8{`JcY zzkO@94}B#pTk6qEb_iqL89DrK@ zmJF*n0gY*EAuUi>&wh-Zc*%A@`bs#s)GvNRt1O@48dvT4ypvmH@TR(?bFPvs-T4#h zhl@X+{OIN7MZQ%ldgwv-*txgy{`3_&LhzM5&K|{* z5LuNws+z9WCCsZjvCTBtB%xoW!DevFrkB#w_`3R}403!>T>)?f!1~I0y*CBkPc)8b z;1Q*;sday!$)>OL!&mZnc|*(e&fsD>`&YKDt`1v$w)N)A7cJM-)l{dc{<^yAv`J_- z;p71|`Qm^&zH14OCmILSIlcn$HvkP_Q@p`|p|6DJE2i}JYJkMg`hK+u;5>lyA6(RH z$t@gKz``iVTfNejgO8eSILW9iee6SwrqRzmla=!2_Ls@0jc=nF#m z--|ZN+Lj))#ly{}_1cyvaZzNW`SH%$YFQohlWzSa+O$Adk6-xuTv@iA?6OpO5+`ML zSM+w(Vmm-TXf)n3uKYFyf4dF z0p@32$+NTVbWU>mN5ZD5ozYLa_mgO^T=Tf0Y2;K-HK8WpI ze)@?$gAcAg@>7JwW?S?Vdzcm=gb)WXxDrB$0~lNhA;bX;u7nWcfYKXUqtU2K9b|w^ zr&He&S~Hza=_>=~#*G`L+wKdlNs?Sk)AaOYGI1)35CBM$P pg%CmrA%qY@2qAAL^` diff --git a/inherit_graph_147.map b/inherit_graph_147.map index c89e69839..fe1841478 100644 --- a/inherit_graph_147.map +++ b/inherit_graph_147.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_147.md5 b/inherit_graph_147.md5 index 40e95d134..087df7727 100644 --- a/inherit_graph_147.md5 +++ b/inherit_graph_147.md5 @@ -1 +1 @@ -2c9ae7987a32db791623afc076ae8f8d \ No newline at end of file +b461338b70fc668223e1e3973cc24007 \ No newline at end of file diff --git a/inherit_graph_147.png b/inherit_graph_147.png index 77374b757921bf1226b7fb90525e11cacd67b027..094f586505c21637bb50669a9c79c2b1b4a7067e 100644 GIT binary patch delta 622 zcmV-!0+IdB2K59XiBL{Q4GJ0x0000DNk~Le0001s0000p2nGNE0H=Wa=aC^4e*!8= zL_t(|obBA(al;@G1yDAVGE#}_aZ?&9NNS-5wL-qg5X@r{3&L>EPi)D97W;a!6emgn z0002YkHQVl=ktq*9(NQ2^UzxVgxfyD4Mg-HqVF*!!Nkg8agO8YTMA6c7^Ae-(S09- zYk@b0umBsv0&EBiux%9)i0E&df4jx4VTny}71mnTW{B^Kn{fsTPU()JlyPn=^NuQ~<&;TWj|XS%##Fe+|d<-#LEh zW+zeO9rG0FEK1Gw;Z&j)$@%!fcK6?rSXgFx0%9%y3hDVsE^Bw`vJ8#tGNmIee+i7w&kI;P?%AL`a&UQFwL#1t3&#tZn zgED}<#&?-y)_K;&Q<0ycyN*bo+A+bS%Q z*C=F`Z>99CGmWkDuoS3anopWD`s{ON+-GZXjW?}JN`8vezwhar^L_=7B4PgN`gaz0T z7GOhIfDK^*w&WFDW6a1pU=rtfCif-7lKS_S00000002w)1q1X@_R|=z0ssI207*qo IM6N<$f~f5vo&W#< delta 841 zcmV-P1GfD21kMH_iBL{Q4GJ0x0000DNk~Le0001`0000p2nGNE0QMBfgpnZ>e**(a zL_t(|ob8&?k>el?hEe9qxJtH<>mW@rso-X=k9$d~*alKTd{4gdvVbKlfgJvCW@l|o z;5Wz;*a`sv00000fMZZvaJ^oC64A#9Fu3Aq){MF*qxvoN->RqAeW-ZK5YE4V*VMm#IM(x4xVp6T zdzeQxqa5uGj-st!YdOIEotAzN^Jo&jM?P(}HBK+DV|D+tcuf^gc_dtM7SpA=r817r z+@`5T|6V`2_PCn4y0r9bf6n6(%)|HI4w_q+bFQgV+7?%vw4au7mDJN{M?2)>-NveTN!0-A~i$37Bd@O4TNvt4);ds;bku9i+iKA4smBrmwQ*b z86_t3y!4(s^NkL7M_hVoo6B(7lGe?Y@Ab)j@tdp9dHG)&gS~s!fBK!Yos^mu3(SmC zaueJXEpA#>t&Oz3mM=m*(&e;%x9XO*le_m^n--XT`(AVHS~%0I603B%)-OWV>3ZwD zT84BJPbqcx(r>Ou6E3{as&{0P0MsMf6aT`o1Y`gF)7_XGjex#wYuB2TUu8$?P_n)KQdh|ZLifZCH?n~ zKyJQ$b3(Fok$l zfjeN7z#TA3;0_oia7S^YbHCqv>Hrh+d_J?~MWejkZf0Tt9{>OV00000fT{QgzC6G@ T?I}qU00000NkvXXu0mjfR{oe? diff --git a/inherit_graph_148.map b/inherit_graph_148.map index 46a08b41f..204b876d6 100644 --- a/inherit_graph_148.map +++ b/inherit_graph_148.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_148.md5 b/inherit_graph_148.md5 index d16a26128..fac92873e 100644 --- a/inherit_graph_148.md5 +++ b/inherit_graph_148.md5 @@ -1 +1 @@ -1177e82f8cd81fe0354b2e9098109ea2 \ No newline at end of file +b6f36538bc165b53c81085ce211273dc \ No newline at end of file diff --git a/inherit_graph_148.png b/inherit_graph_148.png index fc76452b8382e893da78c2a60434fb1a08a0a86a..e3928ff078a2f221aa7e68818de08733f14a14b3 100644 GIT binary patch delta 1002 zcmVy&pf22u7 zK~#90?VI0mj!ELx;q3wObEd}pU;=}e`SC#0I+~afqEcPpdN@6sOMH9_5S6=t(*Pc_bT1n z8bd{T46LO|s6!@BNSEt#rNrzHQr&_T%;57DHJ=YraT~e}_xXUTVw| zesSl+IrlO@Ep}SQMB$RUS5+WtpNHt7|QyJS_7OnPQH zqin`=eQUlP{VMrf`s{2rf2rA{W>%_SQvOTM>lwN)_oYpGZ39o);Mdw(PYYTC+;T7O zeOlto=_g@FdW(R=e4rk&OnL`Odoqda(cAv4K%@+M3+2v2EP>@7sAq^sbZoW8B!~DHr+9C5HP%b_II*q8;;b*d?4;;+PD(8! zJNB(j0(XyQv2;)JfBwB!L5ZDSv%2-+h)=hMoc_6Gg{1~5GjKzCm!Pb#^iFJTka(HjXkq!{NG7>^q&p0 znY30CxI+~#r(Eysmn^Q>tcr8TtVo^XmjrUJrR{(;CYO6)3y2h`2O9Q$<)_pU>`20dQnlmXFas0000000400 YAMFq>{0UvyL;wH)07*qoM6N<$f?2orx&QzG delta 1020 zcmV8 zT(R7Wo~dDu<0v|hqq(%qcLEU>m_p33-uuTZ-X9)M?N7bOpQ&Rt=cl3^rN5NawO`#c zr_56QR5`h}p|)p4#IW9bcO1v#m8yvN*xB7t@9}5q7^mAz=_t|9g(|N`e=}EquI}UG z;r4mn>@dQq? z3x8FfbTrFN6mwca9af@jfA=9l$xL5rTT&;ttWs^9>$KEWjh5NX>Kq;%0Aq+n*cnK5 z_Y&o$khn(g@>gUj!`5_*wdF|wQ}V%(0GMKUghe;_Om1bQ=QUG|*1=`CVP{%UpG}8z zyfj6L<+oNHF}>@u+mOKe0`&^4*aqT;J=54)excNMj}*Zb(-d3Ve;_WKs-xEQ$r{9y zUwU_~)OfGtsaT4dCp^*`O0E-bQ<}ML5F4u`=b%QHBqD~D6dB&MR*K*Z8Yo>9HEmG) z)UBnQR>X4&G$$`JjM=o(6i2p!X8NRfE`g?TXPD`0rYVkW1Fh8_@kv)WmT4(NJ4J8? z4Yl8wXoDP@Jz2MPf7o8XxY`uKS5aWaG{q5ZP@+pR0;}c{)ZT<-ieT;cETt*dd_SkD zr><8ZmjIYzx@@gp69(=&tE7f^&!3RI$LS0^!+M{!G{tuULjqum=_0H&oX3yn`G|<~ zvb14K{$&e;+G5!u0cFIV3+j?^HCnhQ36?c%3AuDQZu+2fe`?+N!zwM0d%jhc9umAF zm!?;fJ}5oB;N}L*kk8SZw~nwBBcGU+mdhE+^v)&FP0U^~!osjjMw$Rd zeP-Dq0o5f+jx&2k+wgBEJ - + + + diff --git a/inherit_graph_149.md5 b/inherit_graph_149.md5 index 134729a56..0a6d24570 100644 --- a/inherit_graph_149.md5 +++ b/inherit_graph_149.md5 @@ -1 +1 @@ -36a4cbe482569d9db1135b117ed2d178 \ No newline at end of file +6de1df7f7361cb93b09fadf050e8cbac \ No newline at end of file diff --git a/inherit_graph_149.png b/inherit_graph_149.png index 8d4aaba1cb0532e054ad346fa718abdf920aad3d..64fa8645cd1fa9b927467a8cc3dfac494cfad86a 100644 GIT binary patch literal 1987 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 WE?Aw`<)7^U0000kh! diff --git a/inherit_graph_15.map b/inherit_graph_15.map index ffa92a96b..a148a206b 100644 --- a/inherit_graph_15.map +++ b/inherit_graph_15.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_15.md5 b/inherit_graph_15.md5 index 4b2d780a8..b2bdf0428 100644 --- a/inherit_graph_15.md5 +++ b/inherit_graph_15.md5 @@ -1 +1 @@ -dbbf43e3dfead5be6de68a174340865b \ No newline at end of file +192e7df4b5ff749b3ea36182dab10791 \ No newline at end of file diff --git a/inherit_graph_15.png b/inherit_graph_15.png index 48ca31cb3a29baa8811d615a20c00aaa7fe27b16..c0667c7955305fe97e8f9c9f54ac40f1781d10a7 100644 GIT binary patch delta 777 zcmV+k1NQvF1dj$GiBL{Q4GJ0x0000DNk~Le0001?0000p2nGNE0RR7J{*fURe*(lw zL_t(|ob8(JZNnfChJ8`T=p@~v8)PYz2`Y7u{z<0j0+}H0FIR*d`1m|9?;}+$7{dW? zIXJT{000000AO~=%{ZUW??m*WVGKAvr_<@z81rN2y}5;m=!1y9+L;Ar;_-NVFU#_2 z=e>w|#yi7<6vXN~$(>BSaR z5xRrW!=S9|I&}R#jA1N8uY}+j6cZs4{r|Z6_H!=|k!mm0ESZ!Ri=@=*i85(%awbx<2K*=`GKOb7frJQX72sO8e!*e{D-rF2-hG zIc^L~w-GxQ5}LTu z{iQeVIeqZuhx(agOO1mO2ZGf=onkBDOoUu*ZwIsyfCv+4A+(vq40jCFnM#DAZ>M`@ zKs}}r;TE>g7MXVYJ#q*U&N{J2>G#kF6E2V|eNXyMC}11=%)SEUfBWpl1?PSC`hwY` zF{B7%2R`%#LHeGXPI;Dl)r!Lv_=sX0PK2754MOaFwJ1@qq+GA#6Jj_K#=4-;ZR47g z)q1~%m9R0fE{Jiv^xgJ03rnHK!iXYh!Cg)5dw7}LZA*r z2-NY$39r{{OFO^>-0ycb-z&n)u4~2Eqg(iBL{Q4GJ0x0000DNk~Le0001`0000a2nGNE0O-g1r;#BPe*yPN zL_t(|ob8y~al;@GMR%E$kxJZ0#tmr3HBmxlQb+RTD%^+3mplvt#G93M&zAwQdxfrf z5di=I0000`2fG!^vV1c0Wri4VK9o`qt@WQ>_u)Ro%ok?<9w!T&ndkHQLquP8-NuwF zTI=qDz`4;{)BS$m)T;?v0Ehxpe*$s9lt3IXB@oA}`abGrMNS}#QG=%h~f4*0U7P)KV z`Np%POcXYq`v+)c&So=ZjGp_ny#cF{ z@_wezg?t!Xk- z)+~p$hk{UEclmLjOVL~Ue_pYEB{6H_`3{pgxm_KleRJr(e8*1Ed#CH%ax8ah-`pH2 zxl`Lp^rprud3F}KJO|N!~s(Raln*7955vi zNAUE0yWK|W0N};Ol*X7}BDzk{0#1lh>M>gb000000C+$C0kCzh5fOyz?b84N002ov JPDHLkV1j<~3km=L diff --git a/inherit_graph_150.map b/inherit_graph_150.map index d98faf5a0..d8d403575 100644 --- a/inherit_graph_150.map +++ b/inherit_graph_150.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_150.md5 b/inherit_graph_150.md5 index 166481820..7261b137a 100644 --- a/inherit_graph_150.md5 +++ b/inherit_graph_150.md5 @@ -1 +1 @@ -a88bf85c1ed8f2ae20bf23838e31542b \ No newline at end of file +0512eecb30f2275c92ebb12d28b06b4b \ No newline at end of file diff --git a/inherit_graph_150.png b/inherit_graph_150.png index b78be19541ee657c1ae46cfb553536e08809d25d..156223ccc3ca876766152260c8ff24e21fc2cd2f 100644 GIT binary patch literal 2013 zcmV<32O{{1P)9F&bT?p(2niEKK{L*Dxd^Q{J>B){Q(gV| zelX1K?&?#gs?Isx_2>c!A%qY@2qAnPxJXU~zFVwHl4sv1143=jT(aK{`O4J!c7YA%u|8!k|kCAuYn7 zO9&w?!k|kCAuTehpsUon6>`z!$Ii=?HyH;h+PqC48Y)SHZn=VoRN-1{r*uOqbHNbH zlmf|mWSjUCtIkICrb`GRsSyjhN~!<;%IBxASDml=U;gcTtxA`=^mWHJ875rhRh8LA zu8UqF?NKGOX}c0TKDJ?Mr@G@%-)drKHpXnnwI4_Lpp?3yJ8e2Herv67IA1<4&Q0Ue zWw+@fQ669FlpGdbCE-u<65V&>%I?d+gCdldD8{D)t!{kMY2584~XJ86j!~Z z^zTx;4iQP)NP*Pwo3#8`awHH7x?M4rs;)x_(&dpFu4wyBs4ML{WF&{O+J<)QPn6+> zww@}sahI+etpXCt?iQcdCdMbcbGXBn_{e(YIvRuwN-0T3f?D1#E-@vYFuw zmC<*Gjd;+tEvT+aZ(4|Ll2^Cjx#^SBCbw!wqpIt!A9}d%CT05a&Q^Y#3==N$s>&?I z!h+6zdIY(8ZM2QEh(k_SvuWf>wA{Yuu-R6%A~>p4af^Am}^IW%kW? z#P?okv#>7Tj)%TIbOi}rB+FBFV5#>0{xWd>o he&-$ld!{aJbh%&Uxb*s|w2r2K zzjOsxPx{?M--$-oe5XKs?}auE$dpHD7s)2KO-$oUK1i1*Mwjd1Ex-epPviW`-9KRa z?oCj*AHWJ+gRa87&T+M|A`MVKe(@Hz;&I>m=sWUs)pvjh6KQn=+_8z3Ut8s{8M)LG zS9(lWl3V||itM}77mmL1*nzoI`k@?n3BYRrwgC7ChH>0n;p8Vzsb8Wf=E&UK+zZ&c zGx&b`P8fahoq}k~Y$TK`Dzo@AU9(LLOyknEs*-ENl#h=NRl1n;2(70OZ1SWG{ODeF z;p4sPy=~v(F0HX!YkUZW-?W0p^#D9r=sUyooq{A26FxJOwhD7OFV#gd$@MKqRUWo; zp)bZZ?<< zm-qLnYXD9FIPvBgecQ_4cs9QYhtwLLOsyLsu8cD1c4e?XCAMy2*ZJTH^(TO10FE8` zTyMTv?vT|c__xd1cfZ0vZnf`pTxz*-imW|0g^r=lRlK*2HlX#v^Bix*j1;dGE9`6 z$|l=4J?R&9_Ez^5TUr+_qV7_JWFlb-YwQ`^#Ky5lpw47wrRfaxc< zt=rXvHfNW8Csq37B*ad6?A2wD0b9DNd+0N=^fKrI^4$Q_I8%sTG3b)vkZ$19HK)(W zrw^gGLASuC8(?~3Pb2l@mF${??ApX&J8VMRm_8FfZxg)_x&=)utK9txSx#f>?lql+ z@GTz$?(ne~B$+!uz#TY99Y}e>BZVcw*2to+y z1EYJ>C8TTgeVa|<2ZJsliD6(J7aU$7gpd|t&?SVB7GcmOgpd|t&?SVB7O9;`n@lEc z>OlyWmX=bh(3qvACHf8lP;bxcf^L>&7xO$nzPPv;T`5A!WLb7DwGN?VS$1xDc^S*g v%c)f%9ih+mOb8)_5JCtcgb+dqAq4mrICPn?Q0NOg00000NkvXXu0mjfG^yP+ delta 799 zcmV+)1K|AK52XeniBL{Q4GJ0x0000DNk~Le0001;0000p2nGNE0F5vTNRc5Fe*)S` zL_t(|ob8&?al;@ChEc9#bdv7T4YCxM33}H(`jSl11u{Y0C-*1?jIaeDZ zmi;rj74Lm_L11pY_wIJP{VP8Wf6xM+92gx?2Sx|ffzbhVV01emqU3Rp_BDQ|#ZaS* zJBQm@mO6J?ma2Lj&9!YF4R|`Bj+oIA(eEcN53i@nQ{VA%?pjOzl()(0uO)Twt!L)6 zS*t(SPHAj%=e-ayIwEq*viyEh4-;QoLr3mAKF(d^grJm;8vR^y?X_s;f9fyweSAGU zU+Zb05?-|)W~&oN&5@+;Thq=F=7HI5FfNuR^({#1PkEG)l%8$Xs;N=T=tg(!UZnMh z?P(8cNlVPC?eO7sq}MBTV9Nx)1nK@eTjpE9 z+_91#Tk*Zuk;Z3XH8(OvYHJKe8{3NbLPEk7TS!l`prQ5msWISAfh4C)G2PzN_3}Ec z=}B8&V#XAyQkF{1b-jBrbnmtG!6eg@T7P$>6e(+9?-i(HF3Y6XKphwzP$#>PxL&WCI>3b7@AqVR*61#mOE)n900000 d00000iyyVAoJ-PH#V-H=002ovPDHLkV1nwrc6$H- diff --git a/inherit_graph_151.map b/inherit_graph_151.map index bc3e35990..16020432d 100644 --- a/inherit_graph_151.map +++ b/inherit_graph_151.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_151.md5 b/inherit_graph_151.md5 index 2f0f02d05..510fcf6fc 100644 --- a/inherit_graph_151.md5 +++ b/inherit_graph_151.md5 @@ -1 +1 @@ -daee4925690b5cc45db5e3c81f92f972 \ No newline at end of file +8f719c3092b605ff4dd42ed77b06dbc6 \ No newline at end of file diff --git a/inherit_graph_151.png b/inherit_graph_151.png index a41774c5460d47fe4a64fdb3a881f2f526755f7c..8ba95e555f5b4ed629226a8fd58a4e0487dfbd14 100644 GIT binary patch delta 862 zcmV-k1EKtZ2IB@HiBL{Q4GJ0x0000DNk~Le0001~0000p2nGNE0PH9z3Xvfce*+jv zL_t(|ob8&~apN!yhDlG#*h|vMKEtxNxRUq&-FyGHomv3==ka*_ zbIyH)Wlu)Bu`G+ZLI8v;%i?agf7?^}se>*6uz-<*;enBY;enBY;W?C%djGWJW+vad zty0^sMpq+^U+gQr=yhF5^H^BA23ZPUs2;-_|q`kevMk*vp(C&}c^nv=Emi{A*t4X+T_4U=}KcjdPtM_pfud3on z_k=UbWIR{5rc10>N$1kNf4$zMCXeb_sd{PYuQ{%JFc0^oNqTJpPnqD?%A~smk{2v# zi`$OmJ#*@5$kCo6U^5>KkD4bv0;M^bhWD_RKPxa&2G)jhWJ4^0a1VxO8Y3NHQyKJO z8Y8t1h1`z-A5A-&8z}~NUZ&p6rx0h`)au1`Q<*ygoq>ClyM#||F^@NFN9W85O>PflbfqPb5O8T7%slGiEM_PJP^Kj1%57f|8x;K*t zc21_RR!Snb{T_4De`c$DN_epFfGxdhX|8ISR;Ss=+W735zDa3*EJ|HHmg;M1&07*qoM6N<$f{}Np`v3p{ delta 763 zcmVk2>u+qNz1 zx?0OVD*FOZ48#o6fS6$#5Hm~ze`3x+M6Aap?ALg1bef9U40>!M^wenkz6aeG<8!D@ z_=lbura?{2BJ%#2*U#m)>$Y$6*j1KtzpZz4`5%g{?yKJ%V>8r$mmOc*xXwpIMa&|y z?EC)y*n(u19Yd(=+dOua#SFzZKSKPE#bqzW=UD%Ju{X=l=f`~`Q)QY_e=A5=jnk^J zwCWA9GrAyiaBgSEGWrmu>A$T9Y>Dr;9lo~qQ3EwGj~)zd|IhYXi^W&>;ah7TH7GL8 zXxU5q8YX4ol|s*>RL{QUqS7}b&xS@FrS0F1sl=Qz z)TY|g0Kw|QGy|pqF~c-85%bLNIzu4_`VgZi# zaBR$!6194w(bWn)Wv9utD|od-sP)|Wcg5~d+PHHJTsAdO&u31de^lyb>MmT1ow2*c zz?FZUgL-a8?RTfC!O#j~4{L)FV^Bgb>bV)UMV(TQZD_1nzcwSqprk(37l5h5N2}CL z&7L*a*6cCJosM2nY&-kP;g|)GcIu{SFSRjqQ$6nx1M}XJG|A1Vk-8a^GO3xC8VWJc zhwW^bhAy(^TD=J=QB5xkqr1?Bm|M=XdVv_^!!!e?0WrfgAZC~b#0=BmTmWv{R?`oF tAYQMRv&<=G*WXhC000000000qwg~x@EQ - + diff --git a/inherit_graph_152.md5 b/inherit_graph_152.md5 index ecd4d9bff..42a1c61d4 100644 --- a/inherit_graph_152.md5 +++ b/inherit_graph_152.md5 @@ -1 +1 @@ -db88b626a7e04f2364edfa5b4567348d \ No newline at end of file +4f75c29e3c5fca5de05da035ee15d635 \ No newline at end of file diff --git a/inherit_graph_152.png b/inherit_graph_152.png index bb4d04d947bbb263b175b41359ba40a722ce69fb..567e7c984bd8ef21b21407f27b6c3f5229ab17f0 100644 GIT binary patch delta 820 zcmV-41Izrt2e}3ziBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e**4F zL_t(|ob8(JjoUB`hQ**`bduYn8)PXV6BOtk{gX^_3uJ=0zg#GazDSdjY`+h1I9s-9 zQf4ShqH_QM0001BG!!>nuh*YM^ff{muzxO>%eVLbZ`k%DzKMvwi0F4ewZM^hyxVq+%X;$2di z)^^tz>SVF;qdP;BWm%f;FDIw;t#ap5vWu}Ci0Cbpm(JJYWm(?ZMGF)2Z5^F~|_t{aiqoreuoEiE5u{4`MwZ zNy#?tDCV4^la21UmDF$`LE9e9;a5|anB5GQy`oyJGqm*BDrcrBAJaoOl}NT_IB1z9 z<{CZL3Yhq?iwvr5R#v_SiDJthGsJtCG%@yo>XmEqy1^ zW$NJ)fDpAvb_Qy*vf1U20#3%j`a|#8kxF2=1m?iWfH}K$GR^g!nb)z7Ko=*&N1TtI z-^A3()^d_sLdz{Z$(6`R%5$V8Mzs=~){-abb6hzw>tgF}R{Ueae--zZd!?)Tt>r~r zSsa}?I}}>at$K6iq-;;g)J8p$g|$*G%s6e&l@W#4rE)p#x$732_oc09sV&O>4H$ zWm~D1eCA4XY7Uwze@)4~vz7#NlK)&vAT1GUEl=XeslC5vE_P`AoKFo$PkInJEJR00000007`%`~!5qPN^yfE@1!w3IG5}MNUMnLSTZs4v`oD delta 956 zcmV;t14I0|2EYd)iBL{Q4GJ0x0000DNk~Le0002V0000p2nGNE06otvdXXU%e*<+% zL_t(|ob8*el`g~7F9Y$TJ%X5ge$j$o@ckG`$oGe1t z;q`j`F~tpS9NP`>yWKJHVNQ5CNEzxG6d{JA~)_ z^4Q<-cj{bC{n#5irC&>|ZK=;1dzwC%jC-j*js0AEX9(Srn~5d3DOz*ve^2Lrd3fx~ ze8O{K{Suw2-?8ITQuazTr|OpIF70pFW{Le+8?GO*x<_J2xHW2U+)Xwnep6=MBxJj} zmq=~9wfdy-J*rcLKxPtS)>=f@fYk3ht2^#RjqZ{9&H&6wjy}+6{mAewMJ(LWGD6>3 z=n`(toKuQdXI!kS7wUxA^v6<3PJ9emgXIjK_Gm#Jh*i5nlu}}(OF9xEG z-u4NGQ#ncQ!9s>+DCh{sfZ-M)0;ictYQOc*-XnPDkSpx_s{K8Uf0N9l#nIk%Q?K=N z{z$roTimevpEHdIVzV{%IUALQjRfu_E;U+uBSq|{K zJOcMH_jY`#f1@ - + diff --git a/inherit_graph_153.md5 b/inherit_graph_153.md5 index 660fd0e7b..c95454f73 100644 --- a/inherit_graph_153.md5 +++ b/inherit_graph_153.md5 @@ -1 +1 @@ -9c6560aa73b33fad08409b1a54acb700 \ No newline at end of file +3fad01a03479816cafea264c7d692a9a \ No newline at end of file diff --git a/inherit_graph_153.png b/inherit_graph_153.png index 0f2492f11b666988b35574907ca20ba5e541b02c..7e9647981d9af399ef4dc6145bd159af0bd68db4 100644 GIT binary patch delta 1042 zcmV+t1nv9q2A2pSiBL{Q4GJ0x0000DNk~Le0002B0000%2nGNE0GCkZrja2Pf6Pfl zK~#90?VH|h`*F^FUE6;7ovgJV*4n@I+ybDSecwNg zF@LUYZ$W+HoKtrQfIB$n%=7tte{0_w_yT|`2x>4L2x>4L2x>4LO9i#HZxu{6`x@se zwW&Ss-e?-s{$$TI`NwgP`f^i z=WL{)*b9xBYBM&k{`q2dQfn1E9);+`7Y^3imrG;n_}1T_Qgz(U~4fb9pEj_N_3D1D1aUzVRXN6ytA>uLKGl$r_UKdWi6Cd4uKiCax{(sUBvH{*OVC>I z6B71}ur;CvorFD3-z8CE zZ~pLwI^i`Xq^Zx&Dr+tIe99+Hzj8qP0j8sQrfx}3CA!sRr;=k_I;eYMg}|)^wjW?R zmdw{|cEJK`lVdKtV9)S!(+cyZlP-do{E6^(Rpp{bymhOdSgB*spFV!N8G{-o2^R z{3+HV!Z delta 874 zcmV-w1C{)j2=E3WiBL{Q4GJ0x0000DNk~Le000250000p2nGNE0O2-RO_3oLeult)<5Yaag{fm(VfSR)NCf@J2uM_|j9LKTk z`_4Z56RZUQGvK^nS>U{2S>U{2e_7zX9S{-wd3A_r344Y*Z$3e_6E@QXpXaG+SEG4^ zeMGdK=c%@5Bv^UDvY0t<+G?cLG=Fxj=YHm&rDrYexfM;)uZ0`CWV5C}jmj z|J`_=A&B^rqK359Xv)`Z=~|zcQ{9#PS>C=zr}UXC*CO>-qgiTOqr2ALe|*fE{<$%d z9b8)rLc)fq_$f{Pw(*lSDvq-p_wLKxI&Q1J()@bQx5>)8ZF3!-TCmiA{Su|J7cIIY z^?73EysJ(?!dky&7$U)K+gc*@dE*i`j9i89;!3TqUj3u4xIEgWpmlR-G%vRnR;6eh6{x~eg@b3TVJj!|R{@|7&h81woJ`gs5WqH)fYsGKg&U4#m zws$G#wYp*|@q`Qf7J9EDqj3uxR=5aXL8BIn7c0_LoK>csHRjHne^TH|-_~oYTtqry zi^fv_T)8C`(Sqb;-VRf;FH)0vVvfckxYRlB*|ltyPN>z`LsaTzj+BmQ&7Dn=noL&S ztAo`N6;JhO%$YUy@;ZLccCYEb<#((#nddfmU*5N3t+ADeIC};=b38Pe=Qdb~^qTaj zZB?VegWuw`3G)M6f9>{AYUi~I_ikY`q+aHI^@K&zeB7NKyfu|@yXP$h@lq;ZR61cv zV-GE#MF#(tWE^Gg3d2mk;800000007{Y|G3}Q?L A!vFvP diff --git a/inherit_graph_154.map b/inherit_graph_154.map index 05a202661..8feb4613b 100644 --- a/inherit_graph_154.map +++ b/inherit_graph_154.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_154.md5 b/inherit_graph_154.md5 index 2d3805a87..08aacfd8b 100644 --- a/inherit_graph_154.md5 +++ b/inherit_graph_154.md5 @@ -1 +1 @@ -1fa0fa2de57326048b1d928505c3f7bc \ No newline at end of file +72fed2b55b66c398fe536b6847675464 \ No newline at end of file diff --git a/inherit_graph_154.png b/inherit_graph_154.png index ecd669be74307c78a627db6eddd6b87e7679be64..db9731fd5d3039949c6530efc3c0b8624b9636b3 100644 GIT binary patch delta 1003 zcmV^=qf2B!8 zK~#90?VIn7+#nFe!AcpaD{W1dwt+;cBj2`)OC9Tca^zzfn8CvzGw&yz&e$9t z%)5cbZ=C}G0000009*+lp19p^-@W%AJ%Ry1lWp7nJRXm~$8+DpO5Xbq@BPnqVF6H$ zAI`a7#}jXY-&xnSdNcsk;(otJf6p(C;{c#55Iisi1P@FB!2?s661?|syRg;TuW_%^ zHf#6$N^})`I1n=p%(iW;dXheK+XOVGGCTlkg7@D4{|V0@ugA{Eeuu}>Yq40U`cygB zMhZ@Qu|9L#q@HVdKdPP7SW)E}AYVL5@ZNu!Zd2v`c-yuw=fm=T?g(c}f6v9D(H|*P zd$B&3wwpTU#Nyo7F*w`jQE9TIsqx_UL2>SV&_+iqMov3dcpfcL$?(pNHT`MCqS>G0 zKj&WVNvdx%XLsim1wYCIicQ%iX!l2RiKH1z2$nPjw959mfzgWNY&#>(ejy{rRs)p` ze`d<&e88pZ=3)usO2wSIe|9$0<=WHErloz$Z6eG-^(9SerzN)w!`Y?Doh#k-DH-UJ zdr9td=Gm3RGMm_)!;2?i47Chzf!yxK=u{KWXg5PbYTDulKe{8-Mtj9BqQwi$k zF|LD8VkwT5xiPh{`HmP9^`_LqIHjoKhu5IDxhiI&y23QhF^09e--xJtX}Ax7^JRn4 zY`$9U^|BsY8Yc>MFOBqpQjBQx9Wkb`y<8TzFit7dKeQg#kDR)kX|{*WcXsRXEaN1l znzcaFQd`UBD_zshe`r0Pahy_g_tJ0&qovI^^|!NHk0tj{UF$JU67Z%Kn4)`z@5xA8 zYOn^=X!hT<;77u`s9S+04KRiI3?D8fI9qSX#@EHP;3=<3D_;j_kJ%*+C1mc)nBGWZ zyh5K^U{>%PQWjgv%1YT>b9P-R`#&bPJ!$<}F}DwJ9RllWpv>dyo+yfQsRB+b~CGdu*ZOiK|#=yJ?1X{ae(bDdo?+aJHmSEK%{ zn9lGq(No{(;Rr=y{XP2uS1MfVLfMCKcECBzE@^;GAb4O32p*UMf(NF6 z;DIS1cwh<$K^~Zb+=pM+wPhRtG~rF~%d&jFUa#NJ=d(vV0I0Dn%V+Nx000000002z Z_y^=7P<9Jq_XYp}002ovPDHLkV1mCR=_&vK delta 927 zcmV;Q17Q5{2c-ugiBL{Q4GJ0x0000DNk~Le0002N0000p2nGNE04^A8j*%f1e_BaI zK~#90?V8b%+#n2w(N4-pCD%tf*rq&NL1xlNUUsWU16#p5Pt15Y0Rkkz=Ko%9!5sX; zmJvqI0RR9100011hQf;b{r;1PzD9@vz?$3b_HWy^zsI^CVIv~?BBI~@WC75R&*$^U zIrr;W_st1B+qRht0-z_`wz=2qfAy{YHb4siQvoLc%L69>%L69>%L6B9fQZ=NXNQO` zWlxTwP7qFX>BP@;qxO9lwJXs)!agE$`@W0qxdK=T!1Aa$fnP#nZ};%pv7Y-I{*GO% zY0tf3WBR3VW9Mv^^e3^oWZp~lN%~KXcZSd^dRSJ1UqU72<8phf56iype@J*OY+s@? z_M0o066>!-bF6KN?oxZhF-!XA#_)DT1QlBgZGR$p#@ zXMN~HR8|7#=GvszpsD}pjJ|9|jqaZM&VZT|oP8p-^=pP#F}QFKo(Mr7DcUQ>oDsdaMeqOLNM`Ug_UqUoGKYY(7$ZD{Dw^bsQp%1Gk#`QJZb)IHN-@ z - + diff --git a/inherit_graph_155.md5 b/inherit_graph_155.md5 index 564c7d53f..c98e58df4 100644 --- a/inherit_graph_155.md5 +++ b/inherit_graph_155.md5 @@ -1 +1 @@ -7ba8f907efbc9d38cb8edb159c6b3b2a \ No newline at end of file +89b37668ba579397a4e882d868c9a325 \ No newline at end of file diff --git a/inherit_graph_155.png b/inherit_graph_155.png index 3064c5749e6e6998d943edf0d4dfe5ce19b6f76d..0c5c0dbf679954a3617ffaf7cbfe14f3f8d3e034 100644 GIT binary patch delta 801 zcmV++1K#}h2B!ugiBL{Q4GJ0x0000DNk~Le0001|0000p2nGNE0P^7&xsf3he*)Y| zL_t(|ob8=$ZsZ^ghRte^(UbH%bE#2Iusuu8FjvX`N|j;wu!#*$cps_igfNZ)*93T_ z5&-}J0001BONa{|kH=RC;d_KLU|yDG`H9Q^#swjS?-0VjJ}v?9OFcMup3kSPD*zDD zx~{Y=OY+{I&b|P^2Ehs3g5U&he?f2pw@ekBA$;tdnc25^R;x|xc3UwtIO9&cYA2@H zwvAO!(q^vByD(Me1lK|>I70}(KXLi-eyTk6JN_)am+~c7KX+ZTQG#PH)n=~ET))Q8 z%h@T7Rqnbs*-dx}A%wRnr*yr4-nQ+nJigw`j&P>6nlBpdk&?5QYICdIf6`};FGTNS zaJJ1FbeYyI8o75M(PsyHN6SZ!oh$T54wcMFG=2&=qT!2Xdyaod`}IglZS#^fi4=p= zLt}{2(^d=G?a_Qq(DWtd_S1T=EL!VCEkDlM@ieQ%c=k;tbDo*DIE$xT-I_14UnQSQ z_s(XJnmz3-)!Me&0<|~hf75zt#a&yCb5`rMvewmq%b>J8OY)pEeb?g4EvIz=G*HW& zGf-RQdbfWy5S#+617yYkEP-hqxTSk=*0wGR3mbq%<frRmtN~a8(>ibqf)ls}!3o@g-~?{TE{N83?db=Yl-KK(y_XHn+`r!d00000 f00000fHD68SGk4^Q%w3X00000NkvXXu0mjfujGa# delta 881 zcmV-%1CIQs2KELaiBL{Q4GJ0x0000DNk~Le0002P0000p2nGNE04nXgvymYbe*-H? zL_t(|ob8?6t=u3GMopA5Qpv4nn_9Voq!!n(tvD}OvJhhiJp6gjdC3}c;T!BR1B{eq z0RR91005A2VZrP5`s1AY=^+N773;eG3(J0o1^c{zy&TO_f88A2x%P&A z=CmK{i#}?%4|zPw8LnO+%aFvf5>y>)l)8;cR z)+r;{8B#-&d2Ukce}U_ndfm(Bn1&jBixV7}FQ7}OudB7h=&9EhQ}zh - + diff --git a/inherit_graph_156.md5 b/inherit_graph_156.md5 index 7e0a6e7b6..920c9e92f 100644 --- a/inherit_graph_156.md5 +++ b/inherit_graph_156.md5 @@ -1 +1 @@ -d805cf3c2202633f05049950721dfa34 \ No newline at end of file +4553c1bee674b9805f6225814a398dd5 \ No newline at end of file diff --git a/inherit_graph_156.png b/inherit_graph_156.png index 4aba2c5933219f2d0dbc7dd9dac0aeada05b3c8e..66b06604973a2f9931a6459869d6406815d179dd 100644 GIT binary patch delta 781 zcmV+o1M>Xk29pLMiBL{Q4GJ0x0000DNk~Le0001?0000p2nGNE0RR7J{*fURe*(x! zL_t(|ob8(JjT<2lh8Zhmq>}3+9k?mv3L>SC{IRRJ23&zRzlbpAa~Qss_mNKLh4t*f zy*C5wCDzD76$&d=p?`PN$hwcCEUHxbbn5&iDx7TAf`>-9$| z^~-Mi5TQY9-P|Ft7g}recsxGZe=h@k0pJaY5DW(*1jB&{!Em+`A<@T)R5SanpH;$4 zzW5j_LU(dzpR5v&e_wol^_ml#=IJ=L!%gjeb9Tq6HtuelGs&E1No^)-=2@bz z1{_v{;fO`T9f+kui73(9{;WWR1+*5z2%*g&Zlq%{9EcDM=aeFx^;{14SyqG)+B+-H z$8sVxr9`Q>B&8)`p%SIi5;gAkO6|Cq!{imkxXkX@KIMYa0wAAH7?a~ zo+DLGR{H$a#AjF{9oukIO>C{0YpW(INf5JDyJQ*3GLg_FHQ6PblTf zJ%2^<8I~1cjM_3RV@`W+DV0R|+Synx9fR|6%1G$4>Vkb2wh-Z2*HUKz=@<+LA_T*M z2*Ge5LNJ`*#^ip#_w)m7!1MX^wg*LcyWN^O0{{R30000008GU{#o_&$wrs%@00000 LNkvXXu0mjfj%9rb delta 864 zcmV-m1E2hp2IU4JiBL{Q4GJ0x0000DNk~Le000230000p2nGNE0OiAoaFHPte*+px zL_t(|ob8(3u^S-_g~5|DQpxQj9k?mR6=WuT>-DGi{>wrP04bNtJ`8&)GQpk*nLol<;6yd~^=FbNNBCiqkah*8bE|yHb6v@f|hZ zDl@HfYi)`oXzGvuJm>W&B)Vtn8-beB?$+@XZT*_zMv2_=Ol5|?Q49$WEN9(X+(^~c ztKaHX)rh()qB7I=EH~86e?#uNR7TO6+tf+)x9sHF<7lqcP5VQ2Mrwao4I_q!2dy^% z)Vh>wO`Y7fsMXZ zeIK_S3e(u24uLekz;dRY9v)aNFA_UF zsec;wIkdFaLI6&9f3QMKYxed)y1dk4-I1w>nloijTa - + diff --git a/inherit_graph_157.md5 b/inherit_graph_157.md5 index 926069ccb..85132d8fc 100644 --- a/inherit_graph_157.md5 +++ b/inherit_graph_157.md5 @@ -1 +1 @@ -baf81425b8023d9822a8d7a69b5c41f5 \ No newline at end of file +8efd367e0a7b1956fd6c9e7806a79414 \ No newline at end of file diff --git a/inherit_graph_157.png b/inherit_graph_157.png index dc85a2d12c7e57ae54030e2d34247b4e1b02851f..992e90438f655666fb435ec60d2241cbe4369800 100644 GIT binary patch delta 932 zcmV;V16%yc1*r!iiBL{Q4GJ0x0000DNk~Le0002n0000p2nGNE03MWmuaO}Xe*<1g zL_t(|ob8+8apWKjh0V>Cah0T=G_~Uj?rL!j+lud(GlU?7K$0=MZzhv9X5|M)Mk~X% z0RR91000007?qF~e13lZ2_bykAqIe1*!TTkTJ}3F2qAog5dQi|0$^HrXS;a4Uba#I zn2_T*wte5T=YBbB0bp6+Yyda`e`f>02{;=7PAuhYA^dpLVP@a@S`tRmvNE?iTRI44 z8WiVwR@L)pbFCI&%ThBN0C%G1Y$1fNzqC9)pDWM(Pd`h~<+M=ssbkJYi5h#kHcM^h zY}K}nvLR^$sE2&1Eg^*PEmSETU!TwO{8pYGUu7{h;Si@qqdih6d$~6Ee~{~Eu1<^X zl6^qq5=L6wlxv`F+xEk0N5@K|)b11dY9>@>wrv|LxuKy&vpw;H;W~aIBi-XCqULO) z44_=N(}H$;W(dKasCgtz!bqKjp6!0s^{)L;q>LM8DEzwr*v!SydDa*_N4Wts4qlr9bhwTjgj<0&W7~3rwv+^ z`XaXy$fAv$zRPZWtW{rv$$qvH@y(fOYm7zs_k=#7Xw`1L{YbJjPEx-H^|g_`Gf6LZ zZH;N^1M0yOGg_Z$e{hE$>Ae|tX4|&@={FZn^ytt+65?owAfxt4FP?fvaIy>a1PPTM zPU}dLD6RC`=^5O$89S~odbRY}q1vDsT3OC=@o#L4`cll6YqhLqkDn?nX>;vuAe_D0 znNH*SR((>_hSW9{?n)9vC0mqDX)>i{3|eyA+DPjC4fmP)dT!0Rn(x$J%OYdOo%8Gy z$@e)et$o^RXH>9)1OO+NSoP2Seq5Q=+waK|&V~U6MgU*v2h*-ylJ7b2tSedK%KV?%nmWEKlYBy(?SeKlAIS=nP$R_o;;9f8}V7Z6_4h zuagsdD}D|t=~Ziv;a;jSd?&S<>(pvDHEu6+J&}>ln7$_UIY{bXo8R3Zky`Im%ydWX zSckO!TB%8sTAHh**OsH+*1Rcq0-s8+qkf4l$=@V0(v_r>m_KC6r~}h6Y^A+kw?mEuOqWPcN0^Svw5Drqiq`G7 zWIEHiqdK`0YN;bkZu50U^9{9n-9mah#lS1N6!4#&`fBN8_+s59RxY3xx zbfIsql5tC7W276DTB)q$2-9q4b4<68SkJjiDLpFWw9LjdBc0FQ%jOKlo!-bj!Zf4V z9MhU^i50000 - + diff --git a/inherit_graph_158.md5 b/inherit_graph_158.md5 index d15693bff..02a23ff84 100644 --- a/inherit_graph_158.md5 +++ b/inherit_graph_158.md5 @@ -1 +1 @@ -608c0007f120a3a46aea2729d66c5943 \ No newline at end of file +5bad5166387e325ec986b9ccefe0d060 \ No newline at end of file diff --git a/inherit_graph_158.png b/inherit_graph_158.png index 2e8b402dfc065bb8b50638cb7b4bee544fd60fca..beaaf5c40544211d8aff2bd19bddf3c9673748aa 100644 GIT binary patch delta 748 zcmVtcS~ye?8Zlb8y8u zG$+Nj&wdI`%5jZnlI;d6rFLSLPAwm~cBRCsNG4QD)~2F_FD2Jw{=;m?XQb9WE+#@L zfpwLQ6iTnBRw-*qEuX8D<5pQQ^h{OCk6b&Fs)R|7UnSR6BopS8o0v_^(cF+PwqHJ< zedlsBK*(NfX7u@-;)~0#e^xOusa}qKJKWIjH)eMn8cW@6rvy3WTBSA>1)GR)ky2Q0%uMBert6Vz9k5j`fQ>zX#%W$L8Do)W1J_D_1B6e|9TY%(qCK`K=Kp zLe9-LZ{SF+T-+FN{)Rih6{19Ff3KO!nOnIyG2q4unJ|*v(lJ6SS11Ofh;Kve#>9MP z^355!mCF?a^LaA%+MM}45SIyUQo2k=YvuBF#Kc@%I^snbVzySU5fNLC!91Kk6Sid5 zR;$`TgbX0GI-nebLhe9>pgRyD=ng~(x^uWOx!rCp{Qwj2cs!irha$XQuhpCZ00000 e00000MDYj7v>uj=Um_*|0000Ra&-;> z00000fOF&Xj{E)o<-Nbna0YptSbN%Sl87p z%TgTs5cUNCG7u|J1H=l{0I>o!e^eJ(z!u)WJ*9jRLJ;(X&eWMT4`3^xJ^OZ*FI~`@|1GFCTQQ;f7RRYGrF85lu;i?H zkXr5dK7{bEKX1prlzeRO#VPsG9PBz-Ed`>e{o3^$d635xD)YeOyy$`BqCM zB#}DikThWCEZfRud;Q|}pVMAzmQ80`3TKR63d_uz2Z_4q$=f~2`<{fp_OW@y|K4L! zFXCR`M$K~6*l{knhNl5re=GXlZF}0Beo}1po~y)pwxHVMj2#7hDFD=9sy2XokzwKc z^j=0S&^Yax5^K+@naiFvxMMd0qyaz;5GzoFS+Q#WMh(1UR;*XV`VDGQtWxEJXDShN z?(YG;RneMy8W52zADmqxSUUHTO$(TuSxby6fty((xMlxnt-#qZe>t;qL%ramO9XrN zu{5(ntQ{OFj85AU$G0fb$Ys(1=jN5bNt6i2F|J<@oDtJA>&)`O86|>NMH(?HR*CXK zttEn5xl|eebYpgA&9S`jxC)mM>y>joDOV000000OkAwWIrYhDR{CG00000NkvXXu0mjf>~>J0 diff --git a/inherit_graph_159.map b/inherit_graph_159.map index f065fbb9f..460b58d8d 100644 --- a/inherit_graph_159.map +++ b/inherit_graph_159.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_159.md5 b/inherit_graph_159.md5 index 0072a3c45..b3cbe9bab 100644 --- a/inherit_graph_159.md5 +++ b/inherit_graph_159.md5 @@ -1 +1 @@ -ed38f12a41d1604d50a2d724bf20f44d \ No newline at end of file +898fbd8249bdedacaffc3b40446c33f9 \ No newline at end of file diff --git a/inherit_graph_159.png b/inherit_graph_159.png index f3eb3886fc5f9354bdd6cc074e8240c452144809..322bbe66af73115fe9ef89ff310218d34554f44d 100644 GIT binary patch delta 663 zcmV;I0%-l&1fK;ViBL{Q4GJ0x0000DNk~Le0001u0000p2nGNE0IHsgpphXJe^g0C zK~#90?VImy!ypjF@1l;;NxDZj$Wka1RO%l6l1$MBGC|x=RD=NL_-D?3KPhUsxaVj5 zdSF6{000000QAFt;Cw#6GxNt5V!(WyPN!dE%#Ry;^ABR?4`%)vCkxEXR)@K^n)HHtQY46Nj zmSw5Vv1MPO(f~2dOvB9oFF)>n9*T#4`tM8HC3;J*C3fyqo>b11mQY{i>TW@FaZds> zKb726+rD3xXuWE8+LPN|9bQzvTUR-E=mom%ENHLSfCY8pW zTiA9kHIvdFdTXx5r#6qP#n)x?`wtQ|=gX!0@RXW3u1zX?Jw2`ED!CTFotwWjXDI)O z2{jQG_do&7D$N%7>m+_We*`A%^{6(@sB#RR!SDpcsID}*#D*(Wq%sa+8X_2^CA%4( zW?K9TF}pqq>P=&}0<>HauHCv2!Y;n;!8~e*r`Y56+VPgsRqL7+>)4hGZKyO&NoA?I zLA6^PV#l@I<1!MJrt!a%(S~O2L`qFVq_fm((waj3MA+T_xHW74ZMI^yYDaCQ@u{7& zl$cJk9bpe=>c+@nP%cYwb000000000`#~|{hsgGzSJusC z7EU{kj&npLwM%O$7DsJqe;G$&i{rzRXldCkNO9zy_`LbF>Wr f000000C4jQ;e>C9D06D#00000NkvXXu0mjf|Go@* diff --git a/inherit_graph_16.map b/inherit_graph_16.map index 1c534590f..33424e59e 100644 --- a/inherit_graph_16.map +++ b/inherit_graph_16.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/inherit_graph_16.md5 b/inherit_graph_16.md5 index 35546f993..0759adfc2 100644 --- a/inherit_graph_16.md5 +++ b/inherit_graph_16.md5 @@ -1 +1 @@ -708bfccb17a732a7ede42c15bd1dead1 \ No newline at end of file +b16c7e2d1d309ca021129b3f687b0262 \ No newline at end of file diff --git a/inherit_graph_16.png b/inherit_graph_16.png index f5bcd58310a1ee82bff1bbe528a47aab7486f039..9ee79e72c7d2265e5ab17abe69710fc5123ec037 100644 GIT binary patch literal 1834 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 Zkp=&n7_XyD(*DXHQzI+GDg)OS{{s?w2_*mk diff --git a/inherit_graph_160.map b/inherit_graph_160.map index da3ec6850..5137ee983 100644 --- a/inherit_graph_160.map +++ b/inherit_graph_160.map @@ -1,3 +1,9 @@ - + + + + + + + diff --git a/inherit_graph_160.md5 b/inherit_graph_160.md5 index 62875147e..290b90280 100644 --- a/inherit_graph_160.md5 +++ b/inherit_graph_160.md5 @@ -1 +1 @@ -55e0eda9a1d16e4d72c9834b4580a53c \ No newline at end of file +212fe7819caa3abb80c04749353c6997 \ No newline at end of file diff --git a/inherit_graph_160.png b/inherit_graph_160.png index 16d950d1f1ad3bf9fbf6bb1e4893bffe968734fc..054d6f7227a05ddff7bec356851c2a555f4ad73a 100644 GIT binary patch literal 4374 zcmZ8lc{tSF+yC0jE>k2+MhMv(9?F(2LbgiDPWCNZ5r)DL$zvHy*0PPkL}M8ZlXWcd zWEo|~8Zk4*zEj?Le!oB7_j>PhUFV$ZEcdz2xj*-Ik}WNax!8r+0RZ4Kxouz#01UqL ze&iWedi}iZ=@z|Vb-iP30G$3?O0bog0KhwFVxVXH>>X{|H^_GRIorl*V~t#=__N2l z#=4-9adX8~>1R`dy_@4d@8k*!`(1O3{8%V-O!T|eU>eMq6&;>gCO7`#dH&o7i(qK4C zv}Jo#j`pjh)Cn>^Eb11)g- zw6h@qipS>WW0-W?VBgt4oCjP(ofE1`2;(O2_X1r%eMQxE4pvQ)F#&s}O=+tuSEYDF zNkPL6;c`mGQ13u@^y^;8?WVJ-77U{{bRVj%0)*PB9!Zr8mA*e_b+6+?h+Y>5>9;t!o9zm>BuOUV2&{xXlpSoBPbIuf>3 z6x%oP876=}kXU5bvJr=*n0}-wGPP*T@_}VLb?~-uR4lLb>h58hi$h!{Z|zR*=&|qg zURTA>K1D`BW~G*{hB}mCB&fw0IwBLLk7v=*6n*zXsd6;tT?~DnnCs@HF3m(WPnAlB z7ng9&&Gv+a>!=Ih$^5$4onQSovX4Vc3Zn06iXaNM4WqR7!?Ki+ZYA|?ZM73kM0@|J z9J9O4J|Q7Vg@fqth(;E#3lqge@cSDW%o^#%LbvwVuJysVYB{g%r9yaL&vTzwE+XPO zmxQ|yJ&O~HbUNBP8n?aqyziHsx3K}Xj4zCNyEie`T1=kTEj@bicGv3Dc_)7<*~$y@F;ATK4w>W&e~k0~zE=v|d7pcg+kXr(@iyzNg0r2m<)Ei_2m<}yO#>Q>GYdpJ z&^F8R?=U1arKZPzf6FLy;q$PGfDty}R!69ojy70SfDV|cXN&m79J61(KtK|Otx9Ep zkXL;2d=`a7&tgut?q07mO_8gVCM)j8U6ii$Fdv2esO}baewUkz`;VQOZ$=7WNK9V-%Y_sNE4@?{w^%6Pr>s*;88Av2M5Po3VATfTNtXz|M+Wvze#F( zdVxZZDqoyGu`gwvnA0yzW6FuJBRDY~*bkYdfo32w&{L9%TKMnxuLVZTm!GO9<7Mwf zpCj+o#S9*a0c_Ub+0&zB{&lsTe%=hX#~{qLJa}*>nc9q;1Xknl9+v)z zKHSyg+Q74em2Zvs*n!RD1P)?IQ*>qu5;Rf&9g)6cPq+(ko(*yik=oAxQmJnsd5(`@ z(jb|6_|471;X$QsEa0qRkbgZJ^T9*$baO`>(2t6%7eymI*mr;fewL;+6w->t5m4H3 zk=kC5R?xf)!^d(`1*akxx;M4wcs#?xwZS+_(i@TE=jgs!mPIAizhk&?lTC_t8*OA; zgy$1JwQxHEIVJ;Ms(CO^YOUYFZV%gTjKsrI=ynUigLm~?4WzHIXr>0-c)le9tOF}i zPyd|Ag;b9tPO6R%-!ytEuA-2!jfSj51;>-+G|%Caf%U266>Cmv?qKnFbwI4Lwl<@) zG_;T|tl&%vI}CYlqEd=D6~1dv@GXnP4L{kx8A=&9iA6}2S#$b6^|O}>0pS9Gwqm-X zZXqcHSrpUrhf&@EF`s7}W*C*SEXwx+HDgX-^H23XTwNKvy1FU`OU}62**K_)=)|z% zLVzM_Bl4jLE{&HQN9oca&J?X*y9k;n{p#ixcu8ThB_o3`H8nL?;U#$JB$>}~$^kHd%OAF|8^039rIAOr4(##eZe zLC2kL594FS96nghrj#cJF-x+8U0dKAT;yd z)gX>1!{CFQDsHuKrI`)sSf#o-LxT+B=B) z(e2_Gf-A}n`c^^p%t2gq-eCCS7q}*x zA^7R?X!#xUas9KZ%F2BCnOhH9_ZB%sa&`ylxG&K>NFE-3i4E+~@^5);nw#<ZMNp>+`?Cg@h`vxpVx}kYPhs8NeyyeDlQQ^uuMH4qyahV=)Q9eEQ zTNS{w?S~IOB7KOAvI;7uu2Y2KDb7^n!z49P4HfT}$8?7Y$>3@7P%+NnS?iPc%|Ogp zomuPW5Ky2ie=ORNRkC1uq-M@iiyqO5BAq&7N@3R&+t({qPtzCo64B&%vB%>B-Sfrc7G`4u_i=Jx)zT!*uV-%}BA|;CrY5j*^w{ zPzn@P7%E@`ypDG3m81NS*xi#u>MDUiJxIQe06%sy7n>JDcoEUQaPqmUtcgiU%1TO> z;dy~B@>}2jDkXWfqCTULL2aSWgS{q%oiS z5Is(CRc zgdczXHpwX*$6#j$jx6yCjJen4@!05?NukUEv3{o<(mh+hX!glLf#{1O<{YR+#xUb8sLVc4j*=^6UIuT|DalSKi+;`z=28 zHmyw90BW7_YUfm-3+J`w6F)H(m){*LfkX`?e~%WRU5*1mKanw?t9Gze;g^vFJ(Wtf zZv+2*B1ABe@29&~{r<#MgqF}bg4OEFP?e*qp8l&toA;;x}z3KLx82i(|6~;k? zs)ck&(yV|pdwkBx!Uf=Sg}9{YoQnur`*yRq!x}BqX2S7xNhG8&prdGVw5DG8pVmxs zyKL)|JodVz%W`7BQ=4oZ@?5K@NWr$VG6cB|RGsHqe}AOjjvj$u+mTY$Y&@QInUYJm z9=eHcIbCw7H)9VlV?e}%fVi^OUP^KMsRwNndsW@Y5zCsS*ve>gHDPHP&&3Z(+70ue zBS3;s10Q>-7|ffv-hU`Fr=xAhdE9sh_#&T>CoWLX!VupUEmy@IzQ4;)hP{Fq7G!w8 zy*#;%2z?|~S4uOEfK9IVd&uL`;Mk;$-?N6{6YA>;3jtQ7cn~!2pSp=hM?+(B-CpYW zM6OF~x3W2YB^sjZ&e#l0ES9TEtqDzeij-^P7c_##J`*gdNthzq@e#(%sasWUvDNcF zUO+ro8ux(VMBoWHYN|s-(th3(b5QJEzWZuk#K{igKCC$q{nl~$1NBfGaj%iMQ5(8} z8r?EIM(k>Bc8$p`azdwp@Yuui4q4VD24^kkEWfjL-2K@IA^u=N?|d)Sv;it%!&j-d znrF2C$YP)ND{S*o<`~8Yo1=FMJ^d-LCpToCqRf(eu1HKT^Vce$s(s=2}4J)R{7SAA}qTv1{aM*gW?eld=MA zus-=Cd4XtFvwbvtJ(Zr&b>&CDHAoZ4ZeEM=TGZ=P>Zo|f8Vr>;0vTC7qpl?xeabVM zhj32FSa+q;2k-l-)?&@2k2ymuna*B($fn%j@tQAzi)cpmrQc=U7Tk%k+K%#5E(jeiHgWtSxbhBeK$qoB=JCb>myRvN-)2hz$C)cDKBAO4*$p(neS_yYdh z1tVXslm$J_BGR-An*{l+wyuDYh0MbCsj#aIlu3bcY*jW+=8*o;0hkzC7}VWzj{hGb)U3?_ delta 779 zcmV+m1N8isB9R6miBL{Q4GJ0x0000DNk~Le000290000p2nGNE0NkWGE0G}-e*(ry zL_t(|ob8?KZ6qNK$8mIJTqUVzn_5i;ceP9n+sfn<5zF#0V9zk-|C6GGhm0{Eo|fVq z00000005u_#Tk#s<1Z0?U!e>DT()idALspvGl=M$i2j|U5&+%Qo!RqzK6O{?=}nHktd%$bSk_b1K|%TxKO-|^qAWhq^9^>gW(j1nAqsXlY$=Jb+k>8|M_(Vtdw@=|^7)k~_4J9El5L&K1MkeqWLe;>u{NaTVm^05ZGo+T=9;Evtxot@y)$co_vduWlkhT4w zlpdpUwCs_SyP_jICp0sUETcV#8m=y}UL~DNWuvobO&)iqF3G9&dxb-w`Zl97p z;M``^@_KJadIr9yt=4w9e>$&tIK-m~FoW34yaJ`YsKo52E#EqD<_5GK3JyC4wi&<- zw{T`_p_{cfI6AC){Z`@@&U_{_g>Hg2)SMZEowq^hj{8pc!L4Jg?Gxh8>_ZT_uW}Yc zH)}R%)#qxPT91dI!)#=w^!zQZic8BYlt}e60=Be^T{ZP>E+Q5e}lI z&`pi)!5wVk$%PvERbS!@!^@_p5)--_CEc26{zwa`t;_BCuWdf=3d z_>9~1E_O&0R)CvB5Dqym20qsGs9um0NV^;1~@Y?1DqL{ z0nQA}kUaqI`+lY#0I+zyUfHs&Gw1$26#xJL00000006+H`~bbBaT2T8J0t)A002ov JPDHLkV1iZ+Y-Rue diff --git a/inherit_graph_161.map b/inherit_graph_161.map index 41f006b4b..a49d31249 100644 --- a/inherit_graph_161.map +++ b/inherit_graph_161.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_161.md5 b/inherit_graph_161.md5 index 934e87743..0c4f3bf6b 100644 --- a/inherit_graph_161.md5 +++ b/inherit_graph_161.md5 @@ -1 +1 @@ -5ac596c30deff3f34378ff5fbde0b7a3 \ No newline at end of file +250adb118dbbe46721f27b3590776f76 \ No newline at end of file diff --git a/inherit_graph_161.png b/inherit_graph_161.png index 51635b803fb41b29308ff51f7abab27c219d50ba..eb5a996fd9b135d390a0229912540a248cff9fef 100644 GIT binary patch delta 1135 zcmV-#1d#jm2=fRbiBL{Q4GJ0x0000DNk~Le0003X0000a2nGNE04ZhXB9S2#e<(>r zK~#90?cGgl6iFBd@PDCvadzt2gSK`$)jeI+FV#Ky|6m~9HC6pgr|U^o^-KmJ zA|fIpA|fK9ai`)t`u+Y95t;T8e@q={t+y5z7a#kM!$r5-{ZVUu)OQ?2CL*%7yuAD> zy02w;(zJ;DUR_xA5(L2?0Oowh;X-Tut5WK!?>LAO`~u)^bjPj)6q=ctDLtCH+1S{? z_V%{#FmjoinnJhR^&JM$4oTN!P;neYMBgw05s^1cKt$vX6A%%3leh?Nf1}-Q8~1N+ zZWhrzkrkyBM5GpN=7~kAUGI_sfWlv!PlY5PVDBcI`G;~?fGe$ixVv;geefMmRpK41 zj80GEm26B3OF(e-<-C!Sx~VvjF=8U?^jd#G^xf)2Jpa56i;sczN_<%`!qV z9XG9BmN-qFC8=K4GS@cKI&PNdj56w6nSOU!;*UyeqX>m{p7=VDO|md0r1;OK?XvZH z68w7((*Ujw-{1y-LkbuGm{0)5CHbT!3e!a$@9d_|AHP^l9l&M^e`gbC)_PgX;%hOk z^`iT-cIJ2+Hc22YE}L^7e?3JeqFSs0WvyFP^65O3QzDq#0_K&%5dfb7Onxn%s3eG* zsCs%3O=dR3f0sCI+D=*!wyEbboyl|li#~Tr2`rDs{{=6~yU!DN);fWgKU}z^fvci0 zP~VfyWNKvqTH)6Gf2w>cIn4AJUi^6ycy3+KrE~dEMx3r~=1oX-UiV2->k$w&S5rDe z*|*khl8S3AWlm?x(ug&nDwMefba--r6aPKK!R@~u{Bx|+6TzGS^VmHFGYSOVrCIg5 zl;ASzbUOEN=FI6lZPekeOqS_a(Q)P(UFDft)!}@n#ZY#9f0euwI=ssjK3wa?7o?*` zZQJP2s;A4BRPX5DI4*+oBDe+M{nz4wbHg@T-P|$>P5>;i{{aK zE^TH>YI)aqY>t&wFUtaSSqd2eWf_$uJtw|@)OOx_HhMj!0XzcmXyJ+c7T$(eV|E)p z=^{(JlQrrtf7ht(wBy=7-{sh*GS_-GWj3<3Q^q-|QsX;MRhG`G0e}?%D?8qZsBm!{ zk`R#(>^KgVE~}3K?f|$GeiQ@y@X>c%L`}m4l+*25^$tMacN|1b#DB*@MBXp~5s^1c zKt$vX6A%%3!vsV`-Xz`yTU}kPGLG74$_F!(tgo;0MSH=hF?J;&rPLa}e1qYhq_y7i z9fPYN2ySYv@A-~{$V5cee8)gUL_|bHL_|c@`yVims$>`U%a#BD002ovPDHLkV1kPP B5yt=k delta 1136 zcmV-$1dsdk2=oXciBL{Q4GJ0x0000DNk~Le0001?0000`2nGNE0CArc3Xvfdel=yU@i82ckl1-e=p}Zfmi_e0z?SJfe3*(5Frp}DG_@AvLeM+K6hP~ z5EbF|L0Nim$8l8MH>1tk^SV?|2y{XwLht?mf7kQj_1O8?|JUEG*J81x?oS<;%E(bu zUaZYE<)-4Is$(|E#p)Kk_g{ve-0}JQIF2vpugB-PkeVT`6bnUrT1k}`e`|AZTvT;P zFl9LANWhs~=iG~!wL=wS?uES*Bt4;Xy1ILcSSZ^QzA)!82b!Ki3uGeH@+QWHr5>o; zLpi+1plY`SEW`1v1eCsasNxtchbteca_=NS=ZJd3k>RH2W4kt%Yh1aQbJs?Dtx|cl zJ!7t%QoA)zPS}Uz+zhugfBUVO9hc7a&bE6VSWjK8_0-0Er%4MItARLVJ>d%EzO^WN z8}9P80ueUAEdZpm~Zp$z^ZXv>%XtH3f0-Ff&kkUEGtx;-T z&*Oqzgr}9Lb{E5<1*?>U)_A0I!VS5Bp*QgsELbf$h?UWLJkkbDf3WxobA-vaWWnNi zxOd121>}3jqdm_kQWmV99Hd^z5N$c(fPC+`SBw@cSfe?(qBSSfkWWm)Z>HQmmMvH{ zISB8q8OpWfgafv1yB>FlH47GH{Tw;rmWzJX9*Y0 zsurocu!IO9G~Hl0e+J^15TP}z*R}4JyFeOZga3(XYUg2JKYVGlkqPueIzdOD= zC1*@(8OvIJSwwgyswY{ndbP(At0&dQRQpRYbHcu3!nuzsZENDRdexAtC(M8Bcg^uE z*uM!|_EFFK!?)6!)oVsOdh3wNG5b0p<=d~#*2Hb~;y~l~eOtd( z!Zte|8G2y#O3#8RzuUC*iYz^0O_ExZxuVr8)|Qm}x~45H?VmY`QM-2xt5;n)t#&Lb zTNmZ9jvW&qjw(~D6tH^9qINi*34|sKhT{k=+k#*mh_I2FE}B&^DME_^u-K*(lOh~( z@syx&(e%LCegV%0 zGY+sYFCsjS - + + + + + + + diff --git a/inherit_graph_162.md5 b/inherit_graph_162.md5 index 8b9e99651..a927fcdcc 100644 --- a/inherit_graph_162.md5 +++ b/inherit_graph_162.md5 @@ -1 +1 @@ -a50058db2ca55b1da0c23dd2381d5819 \ No newline at end of file +8f676f2277f1b1edfd577906e86f72da \ No newline at end of file diff --git a/inherit_graph_162.png b/inherit_graph_162.png index d3c15412f29213dd6d504174a0e94f1204bd8a3e..c331159441b20ed6eb5c6e8572ec4aaee5dcd744 100644 GIT binary patch literal 5101 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 P-vP!~%%K(fE>ZsnJVW4i delta 639 zcmV-_0)YMPCx!(fiBL{Q4GJ0x0000DNk~Le0001u0000p2nGNE0IHsgpphXIe*!y6 zL_t(|ob8+Kal;@ChLNvhbdv1R4YCxM33}H(`X`wp3uJ=0zuY5)FA)h7c%QpmW7#JJ zek}n`jR61v004M@$Tu91$4??U>=6v;k7Ze|*4kg!_TgVdLl8^pK8I$J_UHT_5cJ@n&-=N%^^0B>KZ8<}cLe+PI|JD4|Jtf07K?_31uE zuK0RKD#p|UrinD8I z-0G-g^^~*KuEuHxxTY;`e>7*76000000002I Z9e; - + + + diff --git a/inherit_graph_163.md5 b/inherit_graph_163.md5 index 3a4f0ccef..92668043b 100644 --- a/inherit_graph_163.md5 +++ b/inherit_graph_163.md5 @@ -1 +1 @@ -a195cee30e25305746a7a9a143d4c36b \ No newline at end of file +8ae0ff363f74221ea5e1ac507230484a \ No newline at end of file diff --git a/inherit_graph_163.png b/inherit_graph_163.png index 6f39c30fcadcb614421a04456b32cd06fb584fdc..cde724da574d9ef154d081f364ddc35bd9b67b6c 100644 GIT binary patch literal 1660 zcmV-?27~#DP)NKi1IJV>s#SftgH z7&hRk(tuthH?3B|UK0u){c{imFS+!jmw4DidMRDDm_Hj3nurof>O3zyGJSb({=S(v zZ|D1g(w*7a_kKHJe|f)sGcN!U5fKp)5fKp)k(p3;tgfz3Nh#-D1VjD_g5dY1rKMk8 z$B{>;(|I)rg7dE9AUC9xzpSmTZAJH;(i}7|rTn(Ku*hevR_g}Cuqiy4^1J_V!$dQONAoBNdrk{DM;y8$iYKsYx zh-iojk%(xB36Y3s$Vx(Nx7#+FDMgmp%6K1jJ~u=~2q7TEi7WTKW+fr^`~6hMH8DA) zJvUWo;`y%&HF3B~B)0k$LO@ChDW&sRY+}hwL^Nc*WDXy<+il~1^|k7;y5mjlCbeUV zQ@5?Qm8FlQ_mL$|Q{1|9nl_fK=by~NQqeT(Q=g0O*Zr?Pj@#C?ts80SV$}5;_kK)F z@s}A(+_}?j=ViPwyNGtX{eP(#KJNGXkL_2F%erlPtlJK$`*g?T=_76bX^+!U`-{e( zCYC(spH2!(#WdT|vNF0~-46Ff=}J+x?dWm3e%06M`c2x_QQJv#4s67dCbptVDVc43 zsL~`boBi49Bki$8+O+YWnf&Z4^8=eEX%=m>>^6$@r~U$ojuvg5_fkfPS=cJoswnwP zeT1X0=(bB)&P5gHZPe6pGC-9jMjP+PhjWsK^Mq(4dFV<%+miaIQ|Xzf3=g*{S=nWq z4QXT4m8DtPXrnG_HOp+{1LZ#ITCK}Bf%gEMhY&}Q^33pezt_o- zMjI1i4aAkIu4k;%x;ZiNJb*U?Ar=KN1K(;t#wcdf0FC$ti#}L59>pMG6XPFll7r&nay#FIpbuVvyQmg9_%NAa8 zQY0Dj;^oJ+&YnHIzPtPN^7i&CkAmO@0G|jcdjJ3-j@?Gr4B@@O(aTqgF3r_cjT<3S zc|INt`T%YKxDn1YLx}ewiINb0RsW>*5tzUsE@YnN*3BlniYq z%chpglwWko{UU9cN?04qgGK)|fX^B`LM*bJS2Uqjv7{FfP~OPPRGw#9j?4E%7;02P z%(66D-X*ls>?bNqku?-;w&yFB%tS;(BQ-*-`!ZU*kD6QT@9W?7dOh@dJ=b9n5fKp)5fKp)5fKp)`Qtw;nidiVC16+p0000AzI495f^iBL{Q4GJ0x0000DNk~Le0001;0000a2nGNE0F&c5Ymp%oe*yeS zL_t(|ob8z1ZNwlDgjtj_QpxoZr2$K>i4r2Ej^xQzTpuP+LrfGU7qQ?xxzOb5h)>3}%5G9A(83(>InqsMw>4mDl)V6OC_ zthH7BB<6g!b-h)l18F3)G@I#&=>IQl_wUErWBG4%6E~%+ zXAIZh&&<}^U2`vy{5ae~C^~oTe!Gde_VC)Z`P7uGk`|8nw33P!n{%(Of7UUap;BY} zadZ885Gk*mg8i8OTkM~Lw!y`VXKL)MJpuQdlOnNF#5ZB{w7aLy-uXro??TFt(m zl9myfj?Hvu$uO}p(*yT>ILmd6)_Ir8=LoYohLl&StXJ9-ap~9_XViM+4hOZw%4bXY z?SUoJ?I|BUo8ww7xxGlsf4#knUy4_o`Eqee^Dd3iyFctaeWWs>2;oGNgd!uY)ogZ{ZUGN9-swW5Uus|Xbk`W0001h7N0-zYFCIllJ3g@ O0000 - + + + + + + + + + + + + + + + diff --git a/inherit_graph_164.md5 b/inherit_graph_164.md5 index 4a9644bf8..4913e3c19 100644 --- a/inherit_graph_164.md5 +++ b/inherit_graph_164.md5 @@ -1 +1 @@ -012ecf89768e560008c2fb4b19b509a5 \ No newline at end of file +39dd7594c9b3605bb6a9db31eec8c6e7 \ No newline at end of file diff --git a/inherit_graph_164.png b/inherit_graph_164.png index 3dbad98a13f69f2f6550b57b77fc903afa7910ec..c568586b5d248042c229e13e319b22389e4a12d7 100644 GIT binary patch literal 25505 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 delta 773 zcmV+g1N!`-#{r54A&F2X=>m~5Qwf6gVyZ!iOui-;P^iD*dzs`gCHA)3 zTw*uoSML~<+DX|g@w12M!9fi~^e|nduH9#A?L&EZ?aF*grlg!N9POzkW`A$1&8>cM zj6sQ=m_IeX^e|*eAhGswoo$SH68`FN`B-D8^x4@qbFf5MW9Gj+_;C2b*&hGL<*rwz zx9yVcWfSZwgRnInwZPpTsVR~hiT+!DNiZtf=GK5*e)QUr>W`88$|Js40!xJLnF4xV zByzrlex-a)-Rq4GIeVoMD1T*#YYa;Juhq|9#FqrAH~ri$K*=sauB>&}p{0{s>Z+}$ z#pjwaNZs!lJ1%f=093&iVUIv+dgO>G()RZN1Y3c$XducwSP}qL>|U@n`2^DSmDah^ zA&qyU0{b|Ki61eMymoO!~vQXlo8TCgsCtyKh4DS$QgkAF&obU!5R!d1CT z;Ge{B+T=(9bbi&Q?Ttu-^iL4|YfY#V?5JsV&s$irqi+qU6Kr_aEn%0#wjX6 - + + + diff --git a/inherit_graph_165.md5 b/inherit_graph_165.md5 index 41ca8f0cc..df6172cc6 100644 --- a/inherit_graph_165.md5 +++ b/inherit_graph_165.md5 @@ -1 +1 @@ -b143041bd9d70d0bec3e61a286ad96b4 \ No newline at end of file +992de7562607773c12a794e41331441f \ No newline at end of file diff --git a/inherit_graph_165.png b/inherit_graph_165.png index fda20f1fe60b9754d800b19fbb0ef284e605a9f5..75ee98a18d77640dc6f107cdb37b406187520f3e 100644 GIT binary patch delta 1234 zcmV;@1TFiH2-FE7iBL{Q4GJ0x0000DNk~Le0003z0000a2nGNE02KFzM3EsBe*}q1 zL_t(|obBDcZyZG!2JmM#e90ZI>=i~^8__rgin|CT7Zy!$KuLjwB6KcM5Q6gPfP6?1 zrTq`!Ku5t9R=T6JThxopi?w1uwC-w$^$! z)Gzz{`#3r}@|{K_D=RA)3F< z+j*}|?L@ZEG$uQ5dYnznI_H_k_WW(fR?RIvKCi#2Zx$BbIuisJf3E?bDBw*fHG#-0 z&wl)J;{cv1r63|!?c}wHJlCIXCw*zzwrTG4I8)s0ai+Ls?W)%y@7$6;+xcy^Qt({d z2&Q@R=5-aXO3Ws6b}^63YvS6CFkBLm3pxm{D3P}TOce06$o*gJdcoz*TsF6hSg!JI z^Sq0A{|wL7W0A|pf2%fP`pC~#QEskQbH|S!;qN zU#poaY;!a{nzmu49%<`xaZ~v!CRIL{Ydc00ZN+$Xejcx%e?O1O^78KE;qargdDnW=iD zrT$WY;P7w^V7vo-cJjqzr8Z8(ckyUCu;6)AwmaHae;)$>;=zLvfYC6D26M;9>w(t4 z`_7B<6+PNc(`S|}cpmk+sM#9E@jn25@|_12o2H^xg#SGh5%mTO9uf5h3my^m1`8e$ z^#%(b5%osyF70SE>M{@NiCOrE^hNge_V{~gXV?n`PboFV)8E)l~@-M8>{zAR;0nA|fIpBBE;k1BtfzbO3pZ@Bjb+07*qoM6N<$g20Yp`Tzg` delta 1034 zcmV+l1oivW362OMiBL{Q4GJ0x0000DNk~Le0002F0000%2nGNE0F7(~D3Ku)e*?ow zL_t(|ob8;;apfQoML{)TOeD@@GI&W5!c;jAuM~q9&O`EIiYY9C_;vGX?%DVW$C;D3OdcA&Yt>1bC13)d?wtX36KHRcj*Ne2)Z(8fW?ZN_pj^jAq zl~RA)vYW^)#u)a10HDMeqxOBjf0b_?VgaBj5IGPJL=MCQkpuB8C33BAJEm;)bGH?1 zPiy_Z%>BF~T}AG@F;Y0sGwC|2KD+H{t<`y+>O9XMpI2q6nH;PMnaJ&u7@D20=iGAN z&+F&hbFn2lwu+?G@kB~}zCNea>$~1JjwSU=B=|BY2fHMu9Q&41rPS@%f0ntVEV;2* zDEgC2s6JnxQ|k!{_gZId>=I~_u5b*py_rg>+m~f@C}NzUpQAuBlPfjWl1LE?Wq;f+ zq&)`hAQSm0H_n$DltA4d%Jc{1!IG}Dn$=@DEma(~^^CO2tq93XUb7shJfw!Mjm2_} z>nY}^bG5T>tiIHl{V8S;e}+9>dDb zHj}TwQ>s8QV{+HODiC=F+(Ltpc|f`X#50A+C0k@m&Zk}j{xOBfThiJh3;1CZIYbaQ zQH6d7xj8N5BDWUL)VGilEwZsO$c?A>n9L5jL96t}O0dZ0jDfF?f867mKCA?bpZp2; z=1Q{2a)@V!F_{5!?@H~=SxYaAY{?jezVI%ijmeCVdsj-uF2N#OI|f%q9h2E0fADm3 z)~9PETVzwlz`Zsl)fr_>W`ymveu=wInnjkfeU35Vc+ee@Zr+vEEV8NXKb@lkQ+Y8zX0*SVV4bL`mSV;^xQVYbVslQ2%2w=aQ>|8qLIDf8)vN zr-LR$#Z-h_Ih_#f01UzZPAa?Hn?Id(Ew#y z#=cKZ`K=tycFJwV<)BACpWAQhabgoWb)ci#PJ3E$OK90|51qzPp(~-%62=$ zMt}uxJb`$IVEUtpUcibgn_<(HmO#j|LAnCO1CayqK;%F?5IGP}@WIm<(=rYKs`>o< z^p@X5zHQsraUAdazOx4f05#jTee{k200000008ilZ&k~h^w!aA2mk;807*qoM6N<$ Eg6n<$KL7v# diff --git a/inherit_graph_166.map b/inherit_graph_166.map index fe1841478..fee15f495 100644 --- a/inherit_graph_166.map +++ b/inherit_graph_166.map @@ -1,3 +1,16 @@ - + + + + + + + + + + + + + + diff --git a/inherit_graph_166.md5 b/inherit_graph_166.md5 index 087df7727..f9ad6a693 100644 --- a/inherit_graph_166.md5 +++ b/inherit_graph_166.md5 @@ -1 +1 @@ -b461338b70fc668223e1e3973cc24007 \ No newline at end of file +fc67a1ed60fe13f9d257b1f3d956f5bb \ No newline at end of file diff --git a/inherit_graph_166.png b/inherit_graph_166.png index 094f586505c21637bb50669a9c79c2b1b4a7067e..a02f7253787b22119373824da7cd8cbe57ccf4ad 100644 GIT binary patch literal 19195 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 JPDHLkV1ji*AzJ_d diff --git a/inherit_graph_167.map b/inherit_graph_167.map index 204b876d6..c05dd60c2 100644 --- a/inherit_graph_167.map +++ b/inherit_graph_167.map @@ -1,3 +1,67 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inherit_graph_167.md5 b/inherit_graph_167.md5 index fac92873e..ea1d4d0fa 100644 --- a/inherit_graph_167.md5 +++ b/inherit_graph_167.md5 @@ -1 +1 @@ -b6f36538bc165b53c81085ce211273dc \ No newline at end of file +022e4a30620eaed462c5cb83ad1a1a77 \ No newline at end of file diff --git a/inherit_graph_167.png b/inherit_graph_167.png index e3928ff078a2f221aa7e68818de08733f14a14b3..599f26897afa306fc13e1ee94e9efe3175696724 100644 GIT binary patch literal 124536 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�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 fwk@~K?nu_0064Ogusy@6n_Jx zNklv!{hPz?Y(~+;S2!FvV4UQKH|1t$4=h+H}C!5>)Zn1n{{2^ zopXQUwil7^gb=zr1VBs(!9AbPmw)zUfG+^BfJlLQAX1Y6xb0Q{E@BROuV|)C0sy+4Z@ptZLDPMB^bJsN+ zB`Ee%W2V@p_|-BWDVt~KRf6ncJ_qmpkL9g&z5l*#+mH6+_1+dkSwd^RNPmonOU_;>_tMVMlt4fWv&C9k-=-ViF_%?p|X6 zW-i@piEZwIjnNj965{XfwTab2>7I0KwZmXtC4ms-9GG10bK)EIl7S1?#~H?S z29qMCP%4Ydm7nEG(`qGlT=s{FYLDB0Hq0*fHA-c1@w@WW?|+nQ3IBGx@wHU{nYe8x z&Cxo!y+pySg&0{o(Tm$=(iTQcJU261%%l)0gDWQ<;{3+sa-Uo7B=?Oyvuga`NqY33 z4YQfFRuZ^F6)vY-@9dW>uGp-KbH}Vmo#U4Ta<8TBfHWqTdteKQ6sQLx1?quFfqEcP zpdN@6s0Shi>Osk#lZFtk^aB9*`T3b_e-Y`jEMM!ozCWMO?oI)4WLcJv(LMkG00000 aaO5BD5H9=)UD!kb0000 - - - + + + + + + + + + + + diff --git a/inherit_graph_168.md5 b/inherit_graph_168.md5 index 71ddccbfa..3db164971 100644 --- a/inherit_graph_168.md5 +++ b/inherit_graph_168.md5 @@ -1 +1 @@ -c901ab1aae64444f3909b9c147b036c6 \ No newline at end of file +7765ee7eed89ca520f75a66b4727fe64 \ No newline at end of file diff --git a/inherit_graph_168.png b/inherit_graph_168.png index 64fa8645cd1fa9b927467a8cc3dfac494cfad86a..55ec311cf6f089aeda7b5ddc09594f5348cb52cf 100644 GIT binary patch literal 12038 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 HG8b}N9~JjUrSLxlq?5wr|CrCW(x^YA14lt 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 z z4_fY}M1^ZiGE-w~bl{XKLtCSB>oDznF+f?P1AK~Zu2IS)+zAw{i7o!!@Z5Nx;kPrO z3A$Ix5w(l@-AaQjFa`1ZY)#A+?ojfyqGt43Y=8ubnrg8+NS$V&6D&cED4^JqM9Bqr zmMc0>LP^sAEmlAS0JZe?cg7YnBA5$dtf}4H{MN6mfIGTM;i@6@CmA3E!N6ux#^vA5 zi4!FZ#K#0QS;Y6sC10itc|l@CF$*mC?&SP&wCfF}k)-JK3r$AR>ZPTnD%z!q3i+7T!p6qQ3}1?{?o9RW-o*1s zCee)Y{6PG(ML&ztUBH<9KQe`Syzw9)6esH9qx$~}Rsn^imMXA+G1dV6Pa)3|U(m&H z&#mY*-s@6P_Omb9B=m|K5q4A=REXKP5U zC9lDMSPNrCbjExLwR!zXj$Cb^V@Mb`Kw5;0OOaxiJPpQA)Pt@%MRrp2JZxCK@2F!? zdZu4J?l3>SWZ**2k*G3%V64&Nr4^{&k-OFaNJuK=a&aI( z@FeV#pZ|D58Q9FDSQh|TfBBIkbpJT`mB-sY0l>XL_o)LxJyc5Ok7K>wydPRqzgDW) zd+etFFXC1ylI+l^rH!24al<zk9rJI<$ ze7AKG&IITgC`bgnDsNyd{rmLZ3pKGu{*3Ov?NI%h;~oD9xWmxS5uPh@+9M7S^XFk1sgCaFALp>n-oq;ZWBzh(->-I3&?YO)kSkvvR(JRMjQ9wsvuIA6)3nMWi$ zB}IKQL#F#IvT1=(1zYHo9v(0R_|Vg;-aDpegrX-|Iq)y&4;{O90`446Q literal 1987 zcmV;!2R!(RP)q002P<1^@s6%hNON00006VoOIv0RI60 z0RN!9r;`8x2Y5+DK~#90?cK|Z97P-l@Nab<;sXScBw&mL4<7UsMMx0AgJz9h1QT6P z%I;<^O2EG${s-nbZUWwnCLkDvL_u$f2lo zF3f7MmLt*(9rAR;0nA|fIpA|fIplBddVEG{nYR!SZ45e!k5WozT{_>%89 zx)_Z{`|~`1*moR6U1+T@o;-Q-m+AMmmKRb=9Z*Vr++SEk|I73IEP%tlWMx&AMFo>+w_1UcFIEaWS z5*#3ih^P_=2qGe?!~uech$;Rd>%PN8A$q*doaXmuLY41$P=%!v&UN~!<;mEWKKyz2d`pXJ|eKdXwRZuz>`ZDlku zDX*%|CgqyM)ulbE%AB=bsU35ty?o}5AGJ5i*-%Ptm=-p@E`HZqZ+O4_x_EDz$<(tg z7K!@Usw=Om&JuCiwg-Ss?bD^4E_E6@=1#Zrm^=OGHO1WY*{pj4ZRMHn6`95*6~AP=QZ?pIGvTH`CXS!9%#4#1L9L@eq@N&>GD()9JeJ%khqWr?;(N#S2PfUS&AFd{BMvEf@+~ zEPXmO&IX87Hgr*sp$!tDI(}SdYy0tx(wJYrig{??8NR2(+az*dvP zM_S|b!g+n#NpObpYrjtL$7fdGi8Xhm*41Yj1)DzIrF~3hVWDl4I^xe_>a(+(jQmX< zJ(NMA&~%K^hRZ!3S5w(t_X2x={~DLCKX@6By?9$IJO$u33}+1rcwcK=6c5aT`r+K$ z*okLtzZYZfm`b5fOSey`+oX#4N$RR&pnZtxTm#U)mnOA$Abq^nrETlip}zn0r{!aZ z4j=tW?^$2RD*zS&JfVP_8n~-IP<(r8PMzr`&>BliOGmKt$Cp6I>3gq zP3kzi%vG|(nS5q)(oI_1v0dBsmZ!6(b#MA?)_S*<=W5%2@VxpNzzF~+iYu6)@D_kQ zD6U{iRLHr*J}tX`SKCA?FTLC-HywDn5^b+dKC>yql#9buRo|`KHWJ&#G#1l!^|hC~ zJg2SzxB{);Tly0FbB%coyrF;x0NjScwq61WKO%ElH~W93TcF<%Ie0IducT4c~E4zf$hgq2M7VA|k3Zs2N0gN@{Wm8uwC&He)Ug z!(ax8x@WBPaT6F(N|;N-k<1~cF83p}-Nz6L+Zbc06UB+SG%V2%5K1YrM*>X$tXfCi z`{mD?%Icy>KGX7SmnV|MTuMi@hnS?FTT^$(_4Ipnzni?4h_5Jj`nA;ZL{gYb>4Q4SD57}LH!*U8RI zDPt~$Df*MtTI&rnin?X$PK-%4y30MFB2JqQZL>U)Ddy6!L_32hGda;@a&wQ(@krB0 z5YKuNPU4B0L{gYb!;#DYVZ!ukg|4rq%OMICb7>f&Kg2{tL~d|^AR?kl93Y5@s1gSV zA|k590fLB#Dsg}yBBDwhAc%;lQtf>Z - - - + + + + + + + + + diff --git a/inherit_graph_169.md5 b/inherit_graph_169.md5 index bc982c05e..fee1737c3 100644 --- a/inherit_graph_169.md5 +++ b/inherit_graph_169.md5 @@ -1 +1 @@ -ab5896e9da4c1ffaf3ba7a377cee84a3 \ No newline at end of file +2aab7ba65d69a4c8e7e4f5894bd103c5 \ No newline at end of file diff --git a/inherit_graph_169.png b/inherit_graph_169.png index 156223ccc3ca876766152260c8ff24e21fc2cd2f..713db9018410fcf37574e0bc047196ebed2e783a 100644 GIT binary patch literal 11483 zcma*NWmr^Q`#wB$D$?DJ(g;WjH{Fd$cb5**snk%?C@D3Bl)?Z*gF~t`$P69gfTWZR z@!vf6^LswMAKpF39COT$wbs6_b>(>`8tAFtBW555fk5{(HB^j1AS`R(t4)XxoCzSX z6$O6q9kkU|K(}|Fk}hZ_2*d``R8cYsD%e|!3}X&>Cww?A&g)L1p%n3PSlF_mel(`h z;4LzSibT_L=koQL0C7&aF4o>`(rAEn;0U#$;hWm3w-TD#O6ST-<|MjC#N-uJE!jyn z7F)~SV`S7+T142ond0L&=>;JndGEx>mq`tAm>idl!{kzIxyec zojs84+CTB#JJ%a)3CE<2=yygS{Wf5Nh6r>^Lnn;)E6hOQa4n&LJUv{`w=3u2O6`t9 z!@Q8WP3=!G@!kwG^Ew8Pq_Gy$u6yv*Y7F*rktPs zhE$|!%GSR;{~vcb=YXVY8Bx<5U4+p=SGhw;nB&y956vl61$xk0?(mwuxri?5%!KIU zv}uwjxiE55lh#Vr7Hb#*tD-rYeknzQmJ1vyz1xk)3VH+pdJh$aGJPh1)}} z)6LfQJI@THna~-cOxA|vqG*}~bN8VTXTs~w?YVAarj+Eot1pz5;IftOGCm?Sj9JO? z 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 delta 1997 zcmV;;2Qv8ES=|qi77GAD2nGNE0CMYhQi0)_f35-Sy}K2qA#HbK%G5j33MTZkkP`RO9&w?!k|kCe<3Zxpi2lLEi$U0tJJy`a?#|+&dZcH83!ra zyiFe(DoKNGxq^pO;aY2_bVDk0!4S)o0?B%0oA?u}&PMg7O9&yU5evFXssH}U=clh% zov->|{_T6MN|(Cyb;mXtCS2rImDxqEi(Vn^Q6;l!yAnG-wqa_gy5msaYGP+Lf5vRb zwI4_Lpp?3yJ8e2Herv67IA1<4&Q0UeWw+@fQ669FlpGdbCE-u<65V&>%I?d z+gCdldD8{D)t!{kMY2584~XJ8e-u}}r1bAnyABaa+em@b@SC*!SaKu~3%Xq~ma48p z2-4+|8m?&jO{gpFI%Fh=vf74r>`#>8g|?n5wsDuPJSAh*$C%$1hC)~CG(<1H^|~SQ zrrV^8wzIL@ zarEH@+pMZ<+PXY!=X~;Wz2mqVsE-*z}6k>x_m;~fOc$#LDvJWjU;10Vh)4U!{G%&2x*ZdK{xi&k}(jwE~>sm zC+VT@G$(akaCkuo>HQkIe}ro}+Ai~vZ}c6jt9VWUFRtZy`P2RC*VZy8Vhq`Ls)!bJ zhhA|c4X>Qhw`A9_Unv|~Tf;sDY=i=`nc)nT(RYT8c+j;isIE$HT8M3uSGVA~>66nY zw`xbDs_U*FdbsW;W%}~YR(_id6E5(8ZM2QEh(k z_SvuWf>wA{Yuu-Re-#aEyq?$a<{;=h&1Lq@cf|KzXtS^`-;RgAJ#+;LT_np>c3`RY z{{Av>{+k@++5-0Cr_zgqA2Fb+}zv?*t#?Le)>)rees=wXv=IQlq)K;_%mIz zO$=w5Z<;~n;OyI9 z>UaOjur~(|D&QFaGtdCkaMtMBpzn0wcWex9Hkb^TfA{yPYXD9FIPvBgecQ_4cs9QY zhtwLLOsyLsu8cD1c4e?XCAMy2*ZJTH^(TO10FE8`TyMTvDX1LrZP;FoysQLH$CYWb@o>GSuA~~8$Q#^ zpc|u$)2DzmZ5XZ&Ir zWsd<{x~hBVGqUtD=mPTH0Mj^Ah+Z-1lHrhU;L|my&&a0_p|?S|z^5BvdSXu__2iZ8 znuP4y#9%vYLfe==6F+Ygy$`wtO)IP1{R&x5W9sfTorLf$9|P|2u?;Us+mtDP`iwh+ ze+jy-xHeMVZyy<^^FA`kxCybv7%Kp5*XT2D4CdnqLI~*tqkGdOq-*qjn@!>egDxS7 zVPG8>99|%VkQQOkC4`U`VbCRnkQQOkC4`U`shvohOeSsWK?s(XmQt(Gn5Cs9`VIk5 zZ_n$3ZkA;i^E^MkxVRWyDMHF*S#~b9Hx8j>S$1xDc^S*g%c)f%9ih+mOb8)_5JCtc fgb+dqAq4mrICPn?Q0NOg00000NkvXXu0mjfi$>mO diff --git a/inherit_graph_17.map b/inherit_graph_17.map index 268e313fe..d21a60e84 100644 --- a/inherit_graph_17.map +++ b/inherit_graph_17.map @@ -1,3 +1,7 @@ - + + + + + diff --git a/inherit_graph_17.md5 b/inherit_graph_17.md5 index b183e6f8a..f3c2dfcf5 100644 --- a/inherit_graph_17.md5 +++ b/inherit_graph_17.md5 @@ -1 +1 @@ -9bcd094548a13130bcbf51b9a5788792 \ No newline at end of file +a86c6cf12b6d6bcc524f42f4ebc86a67 \ No newline at end of file diff --git a/inherit_graph_17.png b/inherit_graph_17.png index 6c32b74cb6e7881d78966a8cd11f8bc3b20b2250..e99d975b0dfa7c5f7d3696698f555767555ecb55 100644 GIT binary patch literal 3798 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 E0PT7_6951J delta 889 zcmV-<1BU$89sUL(iBL{Q4GJ0x0000DNk~Le0002U0000p2nGNE0MZRdM3EsBe*-f~ zL_t(|ob8+Kk=q~;Kp~SdQpq)v20Y`MJaz*~A^GJpt`FtMjS?LPD_E8fS?|rM8q#<1*Ah z!iRB&hjUq$(JH`19NL2bw8qRpy!Ze9!t(9+vGUme@N?`sl%19$v3yTVml)tnXYMQu^kOD@Bd$u6fFgc3e`s5#b#nrJm*?mb8%ETV$4A zOR{s@_E`98Wn0c&X}z<;e?cLDfSCt56VjT3H}GqLfhfQT&I2J9fWQzBGV0u6=Fmtw zr)e$AQm*#i&UzL##6U((#H@#dsqO1r{WN2lW$d%_k|EZS4(3u1cX)OIaazw&Qv;Dw ztHbhCI(+W+wjb@=QIfHj7OqW;mxy_l)I3=~C>B2h$n7K5HfKK9e-}wBLm9q{rA;Xh z`*5y(*q}+RZy|eo9s8L;ZhtXiKR+l*moJeYrs`|^Po?}@(9}SrN!GND^=0`m?&;ej zZtt~Nx9qpJFRO5}#WOM7gE&_g9)vkpqp))EQU-GGHHp?cS)du~;XFt#7H=Tu`h{AO z4o8=|A!m`fxArKNp*65r9G`korF4i8Er)u1JR~pm)5P( zskWU}nAk(MMpo{9sJXYf-}U4r4+;USsP-T;=QowoYO(jKPn!m3pxQuQ=|&vEb@x5C8!T1V8`-0T4(o(x1;~PdxypBxxY``@N?g00000000000BQaL&5X~lFu^=D P00000NkvXXu0mjfMpLXc diff --git a/inherit_graph_170.map b/inherit_graph_170.map deleted file mode 100644 index 16020432d..000000000 --- a/inherit_graph_170.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_170.md5 b/inherit_graph_170.md5 deleted file mode 100644 index 510fcf6fc..000000000 --- a/inherit_graph_170.md5 +++ /dev/null @@ -1 +0,0 @@ -8f719c3092b605ff4dd42ed77b06dbc6 \ No newline at end of file diff --git a/inherit_graph_170.png b/inherit_graph_170.png deleted file mode 100644 index 8ba95e555f5b4ed629226a8fd58a4e0487dfbd14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmV-p1DyPcP)?kM-00006VoOIv0RI60 z0RN!9r;`8x0~kp}K~#90?V8zf<1h?{Nl(hyO43ILwQ~9ZbE&#BAk%HlYk%HlYk%Hkl zl#zP>wBu$b-@2_*+pk7fBaL6|E4}D-T}ky`sm~kQeL9pU1#_Ziq~80VzqmZSpDIuN zkAHLTrF6;F&t2DKl%U8<^_e1nQp7DRQh(@ubd; zwE)o2MYBKQ2en;Gq3Wfj{|Mu%W~9Bn!$vA3Nzm?(*7Sk;oR^%49rOx28+1S4rp6y}jO~CXeb_sd{PYuQ{%JFc0^oNqTJpPnqD? z%A~smk{2v#i`$OmJ#*@5$kCo6U^5>KkD4bv0;M^bhWD_RKPxa&2G)jhWJ4^0a1VxO z8Y3NHQyKJO8Y8t1h1`z-A5A-&8z}~NUZ&p6rx0h`)au1`Q<*yzC9C1T6$9RaL)}7 z)X-D9HMp|9z{YcaCMq!#0 zCvaSb^Q2Zt(%?p4P#lHB7-`QmI~eXh5bnY7z(~RHz(~RHz(~RHWEW1?>$RmG0J!`8 to-EHA>E&`UQw9J4000000001rd;>H0y+twaGVA~V002ovPDHLkV1l6)sYn0- diff --git a/inherit_graph_171.map b/inherit_graph_171.map deleted file mode 100644 index 2aa189afa..000000000 --- a/inherit_graph_171.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_171.md5 b/inherit_graph_171.md5 deleted file mode 100644 index 42a1c61d4..000000000 --- a/inherit_graph_171.md5 +++ /dev/null @@ -1 +0,0 @@ -4f75c29e3c5fca5de05da035ee15d635 \ No newline at end of file diff --git a/inherit_graph_171.png b/inherit_graph_171.png deleted file mode 100644 index 567e7c984bd8ef21b21407f27b6c3f5229ab17f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmV-91IGM`P)U*!Cm7iHN?4 z=yyN0z>#>pUVof(zrwZ;CtLB}n=1s4h4Xq%K%-#$$*mqbKqpa95@*;=TuHc z^s!=NCg0*+Qkm9v*BI(#vGJojLz87$n(pJ++$wW6P8G?(7}T7Mi2nb@?cw!Qd+L9D z%)OSo2+{PdlXmEqy1^W$NJ)fDpAvb_Qy*vf1U20#3%j`a|#8kxF2=1m?iWfH}K$GR^g!nb)z7 zKo=*&N1TtI-^A3()^d_sLdz{Z$(6`R%5$V8Mzs=~){-abb6hzw>tgF}R{Uea75A2V zrK|d_^+wNfq2IBn0B5rx;Kayjj}>lT~$rLCx~ zs7JDR@34g<3P)k`sotN^@pG@}V^QfIIASpOIji_;bVXOb%Ac)hzAl zwKT&`Yqrp3Td9_O=1OyF4w@=W$-T3d1ap%ATuLA<5o#?@;>fAJzh^Ey#onb>iHvqa zE_p^;Mk6gxvYr%Zu-g@Xupg#~WIdQMAwCPIaWW3G - - diff --git a/inherit_graph_172.md5 b/inherit_graph_172.md5 deleted file mode 100644 index c95454f73..000000000 --- a/inherit_graph_172.md5 +++ /dev/null @@ -1 +0,0 @@ -3fad01a03479816cafea264c7d692a9a \ No newline at end of file diff --git a/inherit_graph_172.png b/inherit_graph_172.png deleted file mode 100644 index 7e9647981d9af399ef4dc6145bd159af0bd68db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1047 zcmV+y1nB#TP)|h`*F^FUE6;7ovgJV z*4n@I+ybDSecwNgF@LUYZ$W+HoKtrQfIB$n%=7ttYu_690)Q$AYA_uLYA_uLYA_v3 z1+}$r6-+hz8s{ptsXgxAXd2Z1WY0AD$8nJQamGxwxjIW_YOn@kL2a%5|L3<~-w(Bi z{`;@F?}dDc^^YCrY^0#r3yqm-Gd8dO`C@ibYZW^lh3LZ<4%XV2OJnNze0?0pOS^x3 zwq2oIesjJ^jE76iUTDmvc2ln@z8Lem26xBYk}BH|jmbGD-kA4==^ZH_DRxGf4{1a) zwK08Nsw8}o9MAO&cpkSTHMY^Sv@wD~-OD6|F0Um>k4JJlBk79|wjU8{W$oPLOZjov zPES`cpPqdyMI=+-xx7+tDr0?fzW9End``W0H)G}ONoU2uM?ro2k*Z+isvDH* zN3N~3no_cuCFkOt=g!=f_%dQZ8-s^0U_!()^$O&w2EE%~1q3w%?Z86d%7E<$n2zc} zohu1D1aUzVRXN6ytA>uLKGl$r_UKdWi6Cd4uKiCax{(sU zBvH{*OVC>I6B71}ur;CvorFD3-r_I^s)|~jT2ij5B_ZWzj~QjH zTG^B9mt-by{_ur5;WZ_ssn5(5Y%8g5Y%8g5Y%8g5Y%8g5Y%8g5Y%8g zqIGKLTuna!VDtU`9c+IK>TTP8_I>|+KA-AN0dSXX+rC=+00000006*j`~xudOy|0c RXNUj*002ovPDHLkV1iy8_Cx>x diff --git a/inherit_graph_173.map b/inherit_graph_173.map deleted file mode 100644 index 8feb4613b..000000000 --- a/inherit_graph_173.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_173.md5 b/inherit_graph_173.md5 deleted file mode 100644 index 08aacfd8b..000000000 --- a/inherit_graph_173.md5 +++ /dev/null @@ -1 +0,0 @@ -72fed2b55b66c398fe536b6847675464 \ No newline at end of file diff --git a/inherit_graph_173.png b/inherit_graph_173.png deleted file mode 100644 index db9731fd5d3039949c6530efc3c0b8624b9636b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmVD{W1dwt+;cBj2`)OC9Tca^zzf zn8CvzGw&yz&e$9t%)5cbZ=C}G0000009*+lp19p^-@W%AJ%Ry1lWp7nJRXm~$8+Dp zO5Xbq@BPnqVF6H$AI`a7#}jXY-&xnSdNcsk;(otJ&o7PR0H7-nJTL_W4@?2U15=n1 zy!UUru+`eHaj()gYxny~bQOF!5Hk(Twr#9>l0I|W1T>~HJOFBf_ul{i3C|y|$Ii!o zhsV-uu~?}3R5{m13Ql{mK6Bfoo@;nNs-4tWQRNvRUpz_h-hY{HQ|0}5+qN&~!}5Oa z2xm&q#iG$4DO7v0K9{zeI_AXU+}ANU+vibfvZSf;;Pydr?tRckM=M57J6CufEm6tv z&W$zwX~d%0pW{F0UhYY%Z!>3i=M)7$$^(i`*(GTAM{|j!8A}M3GzGNE_PK%4isNiM zBh7vxBga+)l?;Do%I18)rRwHl3FAt|oVs>4)8*RJ&Zeb(%WWdeK=ma}YNsW)3&Yu^ z$(<|R^(h(Xl6y(+bLQEV#4?-Mox_VKU<|bkZ-LzI#^~(>2wp^O(LvPp!IB1;qPgI6 z+hCk+vJtn^u5LX}-LK?2w@z!2;V(!H>#-H83BF|id&Yg=(Xlp8>Vn^Gr&_xfJ#4-f ztj9BqQwi$kF|LD8VkwT5xiPh{`HmP9^`_LqIHjoKhu5IDxhiI&y23QhF^09e--xJt zX}Ax7^JRn4Y`$9U^|BsY8Yc>MFOBqpQjBQx9Wkb`y<8TzFit7dKeQg#kDR)kX|{*W zcXsRXEaN1lnzcaFQd`UBD_zshXg!{BoKkf6(r^c(rOh|>x3gN0CHGHV>oHCe@TL`* zqI-t#$w*sjum;m;_TRMNN5ZpcS^|^!VoK`I1TwrbJwznU*p@Rq1g}g>5kcs3%r0rDDP41&T{GJs zzsgsm{;ZhJ@G;R--{|28MPmIu`vF%fT - - diff --git a/inherit_graph_174.md5 b/inherit_graph_174.md5 deleted file mode 100644 index c98e58df4..000000000 --- a/inherit_graph_174.md5 +++ /dev/null @@ -1 +0,0 @@ -89b37668ba579397a4e882d868c9a325 \ No newline at end of file diff --git a/inherit_graph_174.png b/inherit_graph_174.png deleted file mode 100644 index 0c5c0dbf679954a3617ffaf7cbfe14f3f8d3e034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcmV+?1K9kDP)i49J8 zAF1kuFpdG&1bC$q0RR91003Z1hzlN%$5#m9dxSG!UY2F~iOc@R1tEm*5W>GcE&=dM zJveus&!?>`01(l-uCy#m^4_1$z5u`m!3o@g-~?_#a00hX6`Ub_?3|g|w|G{oP3v}B zF*G>iPP=L+rr5TPRZr4puFbnJRptcOLM=E$2){pZ`SE_LJoP*NEWMZVC09RpU9(Yw zV=vWauFYJ(#?Q;yDUDU`x;NQPcnKkdw<)J|y?@@e?X5h%-ph_~rnQMhj-4y?M-G+DNi=>6IHKW;W_yl*Nc;6j zN^SF!HHj31(?es3($iK8+U?PNP0;iu=JwNiuPj>YL@htg+VM22#CY~iC3Bvcwm6HY zT-};4v0o*hOZU!ZkeWU1EY;e!+5)vV=F@s<#a&yCb5`rMvewmq%b>J8OY)pEeb?g4 zEvIz=G*HW&Gf-RQdbfWy5S#+617yYkEP-hqxTSk=*0wGlmOxiuN)jvhr|x|JJR|b)X&x>jjt(S zyh-1*?2VG+NybS!o^CTIk$!sjD1GzjQ*5u6xoYF&At-m$7evSR9Zp@&G%!N?c6T{m zYMhSmtK4Tx>Ps;@zSNYNSxMid??-o(y^Ei4bI%Z l-v9sr00000004k7{{dIIh740o`Y`|i002ovPDHLkV1kaZhjah{ diff --git a/inherit_graph_175.map b/inherit_graph_175.map deleted file mode 100644 index b11f077aa..000000000 --- a/inherit_graph_175.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_175.md5 b/inherit_graph_175.md5 deleted file mode 100644 index 920c9e92f..000000000 --- a/inherit_graph_175.md5 +++ /dev/null @@ -1 +0,0 @@ -4553c1bee674b9805f6225814a398dd5 \ No newline at end of file diff --git a/inherit_graph_175.png b/inherit_graph_175.png deleted file mode 100644 index 66b06604973a2f9931a6459869d6406815d179dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmV+u1MK{XP){9y+kUt=5z!YB z{qE-$*ooKc^+zf7%WnG+p+Rfi+##?RT5I)qJU-el1AGDC4Tum72OmfLz~Zuk4zeZSq$ zrF}kMLidNRQ#NAc*z=9K)TYl??$|;$O2!~T@UXfBB6O=A9lN~sSq&rT~JOYP1wS0a&6skt^4623@| z$Nq;g*DKQMZ!9LlStiz(HaJL+r&TKJNh_b5q~l&uF}0?W@}t(yOj*LF#xKb+iA2Jh zbd$4*3Ei9W#q}%ZbF8m60;KHaM#h-W9AA8X^_ml#=IJ=L!%gjeb9Tq6HtuelGs&E1 zNo^)-=2@bz1{_v{;fO`T9f+kui73(9{;WWR1+*5z2%*g&Zlq%{9EcDM=aeFx^;{14 zSyqG)+B+-H$8sVxr9`Q>B&8)`p%SIi5;gAkO6|Cq!{imkxXkX@KIMx1>GP-=bJT;uT*nmWYJz`_7(7RaWbmK9-)+A=Iodu}O}METm;SS}rd^Kr^Z=(6g9eHXS6;aS&GX94LL z3d2nmGdi000000000?#XrU2{hGFH R!4m)g002ovPDHLkV1l;2ev$wH diff --git a/inherit_graph_176.map b/inherit_graph_176.map deleted file mode 100644 index 24e0a2dac..000000000 --- a/inherit_graph_176.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_176.md5 b/inherit_graph_176.md5 deleted file mode 100644 index 85132d8fc..000000000 --- a/inherit_graph_176.md5 +++ /dev/null @@ -1 +0,0 @@ -8efd367e0a7b1956fd6c9e7806a79414 \ No newline at end of file diff --git a/inherit_graph_176.png b/inherit_graph_176.png deleted file mode 100644 index 992e90438f655666fb435ec60d2241cbe4369800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 937 zcmV;a16KTrP)*gdl`Kk}&Eet!N5A$;5+27p=E_x)d5_B$;IA$)`o{`yD) zU|M)*yLi1`wo(9?kmESEec!X^emQFaU|Ha705}0>1HcJ58vsr$n!o2xb}-=XqAu^JsIe7GTR#GaCSRqULNNgs;D}JU*W*&;3t7OV8!BQ1z)} z&PItEd$~4CZRTv%wvDnOX#=Q-e5oxVgzzm?DIH&*&-46No*rLiF*V^3r$wVZQYd@5 zHusS0XRc0*?UH>!;}S+%+>~peZrk?5X-CIOqtxyb`f4UrX0~k`E4iVeMYBEegW)=U zA|u`7C!*$TqYR*2xYL4mdu9m1o~U^wOu|U7Cm{EmM@vVqol$3m9$llhX=GGpww^Gl zCYeIj<+P-_N}5aOdY|Z=z1o?sq`5^)PM24otcZCSS;{DK*~Xe|Bv;m&-E0|5E!WaY zYV`E8#yP-)m)Zb0p*FLvKq-XNccJB;TAyfehaTy@8Fpsdw*Kii7f$r(&_WX8Xon!9_DL_EdPZ=v z3-tsEl^#y(NRlY6^xEke+_f1yt}lAE^w^==pcz_O&T{c@Y>WC*%$94ltY(j&DlKVq z?QI~Oz1o>hirG(nfh+cxtj0PUdtk5 z#+~!*6Up~EEv63mRR-A{eE1T)!XmM63&JJ1x5g2Bmhpp*#K|?&IW)J za5ey(AQL3Vad_$gU<%&vH+hb9wte4C!~g&Q000000000002bvxCuZFn$dvUl00000 LNkvXXu0mjf#iq50 diff --git a/inherit_graph_177.map b/inherit_graph_177.map deleted file mode 100644 index e009968b7..000000000 --- a/inherit_graph_177.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_177.md5 b/inherit_graph_177.md5 deleted file mode 100644 index 02a23ff84..000000000 --- a/inherit_graph_177.md5 +++ /dev/null @@ -1 +0,0 @@ -5bad5166387e325ec986b9ccefe0d060 \ No newline at end of file diff --git a/inherit_graph_177.png b/inherit_graph_177.png deleted file mode 100644 index beaaf5c40544211d8aff2bd19bddf3c9673748aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmVe^nbZ06N67Akd zRkL6FS{x+#;-aev?chic7Ke3Rqvo|(bF44Dm?{$jnG_Qt5&i$zG4@<*=Gt`Gie1~04bB=$aQL#C0};KXeBbf*d0p3+ar<~1Gl?lHAzwn za!E(L2yv70GVB@RCsu@8%TVmMAtSbOxni)rG>-L)JHH3wcE{%1{M5fcdn;Ec26ih} z%(qCK`K=KpLe9-LZ{SF+T-+FN{)Rih6{19Ff3KO!nOnIyG2q4unJ|*v(lJ6SS11Of zh;Kve#>9MP^355!mCF?a^LaA%+MM}45SIyUQo2k=YvuBF#Kc@%I^snbVzySU5fNLC z!91Kk6Sid5R;$`TgbX0GI-neb?m&c~I}jo04nzpLbGR|N-EJ-Y02A - - diff --git a/inherit_graph_178.md5 b/inherit_graph_178.md5 deleted file mode 100644 index b3cbe9bab..000000000 --- a/inherit_graph_178.md5 +++ /dev/null @@ -1 +0,0 @@ -898fbd8249bdedacaffc3b40446c33f9 \ No newline at end of file diff --git a/inherit_graph_178.png b/inherit_graph_178.png deleted file mode 100644 index 322bbe66af73115fe9ef89ff310218d34554f44d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)YC>rs)Lp%W6i} zXByblG=Ar4@6245WvR}wWnZDv05Q!>!_5CLKkj}Wiidvs?@QVxdP}b*cJ5T3RL+!^ zP+#ThZb5W$PXaSPmE2U@zF(H*Dekvz%%w$H&()WEtgB0sH>M{?OQ^4;?HYy*Pp!m; z^16RTrRS0Sp2Wzxd1J@5?6;P=np7I1<4j^lGh@FtGfl5*a%4h7%nWoHor4Y z7QdaFzcgnk|A+}S5f=AA0nIAS7WnHVemn#w?DeQN&8Tt=p26@0#Hg+`xx|JmRHQNv zVHzSBq$Rrz~O-W^`xk0sC9Ad|{+~YD5m8S8(lhKA|?L=>c+@nP%cYwb000000000`#~ - - - - - - - - - - diff --git a/inherit_graph_179.md5 b/inherit_graph_179.md5 deleted file mode 100644 index 0baffb9bd..000000000 --- a/inherit_graph_179.md5 +++ /dev/null @@ -1 +0,0 @@ -cb09a7d23c59997cef7904c0803a4dea \ No newline at end of file diff --git a/inherit_graph_179.png b/inherit_graph_179.png deleted file mode 100644 index 2cb46dacbb514bbe6e075c6194b1a2f8adc02a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6450 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 - + diff --git a/inherit_graph_18.md5 b/inherit_graph_18.md5 index aae462e4a..2b8152894 100644 --- a/inherit_graph_18.md5 +++ b/inherit_graph_18.md5 @@ -1 +1 @@ -630a653774b3419d0e6451a721abcc65 \ No newline at end of file +5089a21c89697b3dfebd7eadebb5746e \ No newline at end of file diff --git a/inherit_graph_18.png b/inherit_graph_18.png index 2929960d49e6a0b40a5f305e6793368dfb5cc09d..e10b2f63c83d4b6831393355d2ce9f5891a8a49d 100644 GIT binary patch delta 655 zcmV;A0&xAe2A2gPiBL{Q4GJ0x0000DNk~Le0002R0000a2nGNE068H3*O4I=e@sb4 zK~#90?U~Vy;~)@*8SBcpO16*FHV`Q_QNl@A$K6w^*gnEOd4(o`!5$3W`#vd3z?k{L zGhx8a0RR91008Vqbj9s<`za!CBg6ol&9W>X-ur)X-4ESJMBYT?_j$4a#_@bU|2XG< z#dR-1vEse&E(l;G-h20WJYMRTe*szmriP#ZP!JRV3W5Saap|BCc{x#@rcV+1`piI1 zM_fOP*3k?N3jGjfcqk!+!+nT|3n7^FWx=Xv^!$#tU(2Oe3b>A=S<`deWszgz7r_e>@$g>!S}wp&YYT)qOa?i$Ud zl%?mG&-MlDmBK72W^=66e^MNCG>sWWYs!#I<9e|*@7A`Qv-iC&>CXWwC~rcK`~rmEwP* zlq+9l!wz`}iXGti-y6~=00lt-pdcs!6a)o;f}j9UWKW;&_xqVT0H)z3C_)H-opbL4 pv;dsWvMe8?H2?qr006-E;uD6oy_$ex%&!0d002ovPDHLkV1jHTL8kx! delta 817 zcmV-11J3-H1-AwviBL{Q4GJ0x0000DNk~Le0001_0000p2nGNE02$V!x{)Cjf9y#_ zK~#90?V9azor^cYqAaif2zPBfhk~+z!We@V2Z5`()%B~RwmojU>BWSmKtO_ zsTL+Vgs@sdmUM2c>KtWj4+&lmF@yBp|Nl$NtbS z9aG1{(Za1aN^xVHgZKVh2&tVP$03Ao<>~oR7LyB8xwfeqN_wf|DlyVGe`T&(eM;!m zs7GN+$ku${DYeb%lX`FOI5f0K)ssN7ZxIjaoQ(xZN=ehqo{}M z+Df^#isqiz`li<9_Ce{Je|oKVu14lbO?pgivvls9+-ka4e>bI#Qfk`B4=L3% z^L4UoG9-Q2HK$GAA-Gki - - - - diff --git a/inherit_graph_180.md5 b/inherit_graph_180.md5 deleted file mode 100644 index ded545208..000000000 --- a/inherit_graph_180.md5 +++ /dev/null @@ -1 +0,0 @@ -a82d23e5003868f3c9328b7efea2806a \ No newline at end of file diff --git a/inherit_graph_180.png b/inherit_graph_180.png deleted file mode 100644 index 1d51a7a73af53bd7bf3345d98a681346267ad7ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmV;a23GlrP) zA|$zZDwv)NIf(7S;w`)v@m71xzu+;Tf#R*@4W+L+hy+WkrO7)U!j{cuW@mPHW@p~_ z{eGZyf4wu$yUjkGot>QkL_|bHL_|bHL`39^ls60pgHuYW^D%;<*|D;+@=NR(npj#| zIwc~!KIo9aU~uH;`IYhprPO())ZK1Eq8T=k$yG$oiwLg|Dzhio+{KF*!-hgLX=i5# zTU%SP!)R@NeLZ#vlz`36O$-JD?Y_B=V<94%2~4g;L;*0l5)lQ!n6~AYab1%(%V$+48Zv<4xt-$}z>MTQ8SYrw-fqs1v7&&$xV)N$y1C z<)8BQ;(pzB-QVS9-Fmrh*O*-5bt%KfXIwtY^v(DZK^s|?y}TXHmxsgQq3z}4>aLrX zb?dqEHr+8z>Ts>!^*EgnakVXz3D%8>9J-yZTF;l2Qirye*Yj;fx?6T#*{(5|;&uIA zRYJtowoKm%Hb}RCuYN|CWazU#Uv;=1>!ZvzWwbqS>`(S1WIv{<>^gP29_ypbHf6Lu zkG}sMg0x)g@YVY1q7`MTBX5-#*Si!VF1AYjO5tHtnJK2cm0Vo!Qi!->od4*_)kh-I z-NyQ6tE1`deyVY?Rq9u2PuX?1%0*3Y_fw54#`#Zbw1AJK7^4N-v`*i#`ijd|ZYEfxX!}WWF=sxff zSDiSk&Tk0coj8&8=H{*la1DEVPXN5zS>>Lzy`63I;K@{PF(zGnF7bxwKJXD&ojA+; zeDac9%NL*PKGQZ^Id$rBjjbw{CS^6Pqe&Sd;;M=>beF;HSB0DD61XSH-PxFJNAJ3e5_4%`B7Zh+sfKM?V_XU6w=>Y%|>zgDu zRkzuxJ=hD0$u$AfoIsBlkFodQ0d6lW{Pg_k)6XC>FTfsvK15)-^j^Dl^5o~8#A)!) z{rm6zb?#iu5Rx}b3A756D|JTg?_>MkJ^Z_|0RY$XWGX=4v4~TmRMg+S_4@WU{yu#= zW(YJPm|Q*Ua*XSwkzNmPUA~OnvuE*SZS8#pd?mnD0P_IG0D6`p{#YH2-VPtB+4A!8 zrAhk*gbbUD7z47?*&#R-+ zhrND(5x}Y_^*aFDgRYsNn>Md%Dni>n+w^<3Y5jbRadnBs^rn_=4uaS%Wwu;3OmA}K zZzt*A>N0f)6!%pv(_z=QxBmoi2f&?Mi;JgaJiZF0X7)*v>1`}iYtXe-S!epa;+s>x zG?^w)w_aBM9x+<7Os)>(Tv z2kTDQ5~Hht$yFo78~{XZ#GVGQ{LX(DeB9Qv<(eSd1TREgi!}{kx&Af@%QbG>)PpXc z2jafazz13yUEiX!OMq;;emG-$h1E8+O1Ho1e+W$yYaU}vY`JRKx&?f+WUHnMBr3CY z3;1ZsR!#S3I^MNBm*d;SQYWsiFu5A|n5wVs6o*7bKBn7iJ56C-bsns_#+^#?v|+bE zBy6ctYGRKIoi;Psa;-{iU9~1TB7urhn5HlGh=ge~lgTxeM3zb%6kjTdER{H>0lNi= zhyq}8B_axd$(4vG047%=q5zB!w03rOx{QNn#P05H>=3-z+}w;E0wv(#!-vLw#^k!S zwG|{7qG>P~3}S~sL_|bHL_|bHL_|bHMAY2>WF(F8^Z-G800000NkvXXu0mjf=7~#N diff --git a/inherit_graph_181.map b/inherit_graph_181.map deleted file mode 100644 index e86d48ec9..000000000 --- a/inherit_graph_181.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/inherit_graph_181.md5 b/inherit_graph_181.md5 deleted file mode 100644 index 7f3133b5a..000000000 --- a/inherit_graph_181.md5 +++ /dev/null @@ -1 +0,0 @@ -eea7d736fb14890049bc51baf1b2a5df \ No newline at end of file diff --git a/inherit_graph_181.png b/inherit_graph_181.png deleted file mode 100644 index cde724da574d9ef154d081f364ddc35bd9b67b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmV-?27~#DP)NKi1IJV>s#SftgH z7&hRk(tuthH?3B|UK0u){c{imFS+!jmw4DidMRDDm_Hj3nurof>O3zyGJSb({=S(v zZ|D1g(w*7a_kKHJe|f)sGcN!U5fKp)5fKp)k(p3;tgfz3Nh#-D1VjD_g5dY1rKMk8 z$B{>;(|I)rg7dE9AUC9xzpSmTZAJH;(i}7|rTn(Ku*hevR_g}Cuqiy4^1J_V!$dQONAoBNdrk{DM;y8$iYKsYx zh-iojk%(xB36Y3s$Vx(Nx7#+FDMgmp%6K1jJ~u=~2q7TEi7WTKW+fr^`~6hMH8DA) zJvUWo;`y%&HF3B~B)0k$LO@ChDW&sRY+}hwL^Nc*WDXy<+il~1^|k7;y5mjlCbeUV zQ@5?Qm8FlQ_mL$|Q{1|9nl_fK=by~NQqeT(Q=g0O*Zr?Pj@#C?ts80SV$}5;_kK)F z@s}A(+_}?j=ViPwyNGtX{eP(#KJNGXkL_2F%erlPtlJK$`*g?T=_76bX^+!U`-{e( zCYC(spH2!(#WdT|vNF0~-46Ff=}J+x?dWm3e%06M`c2x_QQJv#4s67dCbptVDVc43 zsL~`boBi49Bki$8+O+YWnf&Z4^8=eEX%=m>>^6$@r~U$ojuvg5_fkfPS=cJoswnwP zeT1X0=(bB)&P5gHZPe6pGC-9jMjP+PhjWsK^Mq(4dFV<%+miaIQ|Xzf3=g*{S=nWq z4QXT4m8DtPXrnG_HOp+{1LZ#ITCK}Bf%gEMhY&}Q^33pezt_o- zMjI1i4aAkIu4k;%x;ZiNJb*U?Ar=KN1K(;t#wcdf0FC$ti#}L59>pMG6XPFll7r&nay#FIpbuVvyQmg9_%NAa8 zQY0Dj;^oJ+&YnHIzPtPN^7i&CkAmO@0G|jcdjJ3-j@?Gr4B@@O(aTqgF3r_cjT<3S zc|INt`T%YKxDn1YLx}ewiINb0RsW>*5tzUsE@YnN*3BlniYq z%chpglwWko{UU9cN?04qgGK)|fX^B`LM*bJS2Uqjv7{FfP~OPPRGw#9j?4E%7;02P z%(66D-X*ls>?bNqku?-;w&yFB%tS;(BQ-*-`!ZU*kD6QT@9W?7dOh@dJ=b9n5fKp)5fKp)5fKp)`Qtw;nidiVC16+p0000 - - - - - - - - - - - - - - - - diff --git a/inherit_graph_182.md5 b/inherit_graph_182.md5 deleted file mode 100644 index 82c4c4654..000000000 --- a/inherit_graph_182.md5 +++ /dev/null @@ -1 +0,0 @@ -487a2f686830b29eb69db3e1545a32e5 \ No newline at end of file diff --git a/inherit_graph_182.png b/inherit_graph_182.png deleted file mode 100644 index 74f497f3a53be81721059f0753100059e742b3c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22201 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 CaHEv~ diff --git a/inherit_graph_183.map b/inherit_graph_183.map deleted file mode 100644 index 502faafad..000000000 --- a/inherit_graph_183.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/inherit_graph_183.md5 b/inherit_graph_183.md5 deleted file mode 100644 index 8bc009da8..000000000 --- a/inherit_graph_183.md5 +++ /dev/null @@ -1 +0,0 @@ -71f74899f13c29e8ec3817ac166500cf \ No newline at end of file diff --git a/inherit_graph_183.png b/inherit_graph_183.png deleted file mode 100644 index 2de710617980646f2bcd01bae2a1a87f42ff6fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2736 zcmV;h3QzTkP)Dj5jLz=0J~YzKl92baPfI8jLNM7Sf#NPOITmxE^4ot5=|?6n`? z4}_lmIBTuFPtWhH{Py0zhyVZp000000Dw7Ay$1mFbnDiw7nM?1dyfOCX}{k;FxNfT zV<5m>D5b6{rSA702T&Qo9cheR)L=%lzAf91DG{_JnA6W0~wT3 zAOA7ekGI>_+x~05j$O8mAvA7R|FOsA+qXu$=6h=VjRrha1tc>AkZ*Z-t+jq?y}3NB z8}kLZ&=^8&{pTE)xvjL_VR;xM>LJ(zmGuZxQ}pTkVXDH1_CSW-dE{XRJzlOM zCnZ$V__zrAbrI}=408xXEoQ{AZMae|HH=e5DPw{k7ifV(J!bh+^cmYntFer)0iYZ+ zdmvFs3MJ>FXYDb##*@;fnQpP&Ws}pct1pxz*aI1SLD;n%y4$97IY#IrYwU6P+A3`q zZIH$RfDK?~53GnUzs)Rq+X(i+iV)D@LK+7EHsG0={eHiHQEPp*$6&BrM@L7``~$~Z zu(q^G?v`77yFvgaa_IcIh%-LVNc5TXW zV4=>=&gA6er1vlY1dy`_8uFDXc9laOZ%-{@?0avh{BX+HLt`vGwwU8?QQ~>cxElxP z$n^wmNeScJ^227}3q8b@TN1gXlyYp}A+~d|cFgR7hQ_4=Y{6yf(!@3PEA2Pb&z1u4 zl$hBAGnJcSXjT5$CU=ZA(kEL=!PHP?X209*YBbYC%Gjnpjyaz<^f#nlhCjLQZ5b4E z#yCzZmHZHuoS!YK66{Y;PowrDxIJxr-ddd-&Ut^n{BVmh!o6m^xfhaq^}RKuae$6o z|1wi36;o3F*jIko*N5%j%*{y`#gs=5wK-*~YAvd#afa8s-Ojn*e6P8$ZGTt0p>|y3 zv@M%$rSuWgziT|D=f<^fjdl?)H{iI^5G5%J*L!{I%xy6jlYRY!md8Ihp|SYdNWBZk zcRXv>WM;qH?LJOX46jd5PoG+E?w7jkdTm=CnCoo&Z3&}B;_urDemk6uw1ixg0@DG>M_Ib`L~MP{kqdy z9lfi+*n1eg^|ef&H=*Ni zan5tydZ@pCDRN!?L2g_sc_<>cCLKUyt?I4RY_~_MV+rY%wb#n266}2!3quzYV=suN zEXTaA*@ta8My+$>Ypb-~8g9O?Up}~y>sreVE%H^Rm4#1~vaLO+^v3zM>z=d6 zI^B3*fA0AUc~fh-Dd+Nv7P*k&|2HMiE0OcQBdpI?@NB%@7l>>R3c1>KwU<&=($%L= zY~{?DK2u99xRz7etZ|N)h+yB4FMqzqTO5zx)1NuNknbyz>vAryJ^6a5Cx2G||C*~T zLP`*_1vFc`C8ddD`pgmAmT&C2{fd*66?H zIOmLDk8Jm_;g`Ok_dd0lJKN<<}m_g)nxuQeQE(B)UYEeDVO*sOh5?VHfP zG5goB^cpiM=hxgn_C0Gsut&BR4ld=@Pktz${@d^6_@$d~C@nu#B5&ybr*1;G_WtJX zq3U`!&h6W`f25SU-?9%g6%hNN)l?T6d-PdT%K0_7FY$PD&FVh;xme7->N9bm&*knl z_0HWx_2&5t@&zq&Q;WPOA6=CFuNK+Hw<%zp8y>G4%ABu?Rl})8Hn%WJm(p8BhZye%Sc|Lk4;4JGnpt>vG+#|3P~s)M~L^kiv`_ETo$=6HtS zzxE%2UmdCsMC60sM= z79H&85*TZYV=l*nHhNu5oZCfA+w44c|Je7`vbN7`(ZL>Aie48W=Xl{Wl;d{oKfGtE zV_Ms1M$R6XSc{okOgbR9Uvp+%E8xcDrRVZDlcjxTHq7jSM5%YB)JjF9wv*d$?bJz1 z70}eNw5S9c({HS)KC>7EdmvHh;+*XZ>iW{Awv`$*OM+C+wp#tiw9)cB*KBL5&n(0l z?9a~5nskVDdHncs?;!w);0*RBCnr;m1HeRTR+pqw<#Id|?2nF)9*D?;4r2i@fto>> zfW92ujROE1zy(@hCYD?fjC9WY5$u7Phz*LZeiTaD?e*Xj;*rJy5N$3GIoYI+ZRz`` zBG?0!jmz)azQDtJTP4L%8{_pUZN^kv^zApU?3g3xSk1me$1tuy8Dr`Dry`95G+-;2 zYreKEhuW|`VxPKf<9c*IrD$1+8s}>~&eXa)OWi*OGkc(cmQRjO)z0__rp6e?Gx*XH z!7=@X>h7#*{}{~dffZ<3sB3uLOU|*Sj(h3*#~|1PE6^$!w@fRfjv>a}g76%I{D5E& zG|=<*!xnwJa_FgTxZWSzZtOLV7)#$j6~P{8z?A~2Rl?R++P5TNl$0YbQR952j&14t zry|$`jii+3HP`ztV3w5Q_33>;Yf{2=)N50bHO3MCADRxc3l%Vvim@a&9Bo10u5D q?|Tmc000000000000022!T$gZWiGz11qz}70000 - - - - diff --git a/inherit_graph_184.md5 b/inherit_graph_184.md5 deleted file mode 100644 index dd3ca1252..000000000 --- a/inherit_graph_184.md5 +++ /dev/null @@ -1 +0,0 @@ -cc32f6cfa5d7ba49c445a1c326e8bdd8 \ No newline at end of file diff --git a/inherit_graph_184.png b/inherit_graph_184.png deleted file mode 100644 index 0df3b74adde87ed88c774dba44da668139045200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 zcmV+n1@roeP)f+0~2g4h^b?g08%&7KY%+iA*52VWnh4zIsrpeRjfdO`!Ns)*YUI8v)}W3=X^g> zm3xl;-q&vZJNwxMh=_=Yh=_=Yh=_>FNpZp6-rk0)ZpH{h{k5~Ra}Ya26XWrCLqvE! zkaw#3V1IxA*Zi_)N>5l#UTSP2|j5tkHzXA|l2=ec`1bFBS`{^-@2XZTF)}O8e+ze`2_Cpljo~ zzCNDmE3vb5saRNC3yrFJ&yW&TJ^fSG?gQg%Z$zC^mGM`2dAWvL0^C-`x+*>Z@NMj9 z)GZN7w#bIg=6%W{`#c;DjmwMM7S}CX-_&niKc<|v?YcgzGS`h!w@+=d*p5|q>_cDi zPiA^`d!`?6&+)Sk@SQC29u(^k{1tTIz)ZK(S-beV{PMD&#m}~Fms@(*F-`ko>bq{e z?DtIzUYo48$4XU$PLl+=LLLr>r?<=5=fz_2)biqbu5HujvUaAptm>BDw$EaJHtU(j zF>TuPJe-c`k`5d5u*X8}O|FT&?SjN9>0W47(r=M+Hx3#F`I-^ZZti>Qg{ zbI87KiGAN%XIH!Vc1)qC4np{IIlxcHFW|?^Zven!0aOJ80D_ZZTt$Gb?YUkH9<;*p z$)k&F-+bb{UF?TrSy9TjV=^6&e9o8|oBVyP%oVZ=UvD-PZ?}E$F-_o0>@Ngz6T1Kw zGsJ#S7HbN?mg_W)>o&Hc7vwx2MbGCIcNayl$v9nP^D)MAgC(w9c!J*_AL9F$b}pYz zS;&7=7Ijz23LJbsl22QOXlXK;Y(eC$Hhsh>hFy)>WE|5rKBfSw=D}_Ity(YiaqYYy z=TCHB(*pT^ihY{KE^C|mbj?<^k9FC7XKBhNmy6G?%WnYg0l1fcsHeq;dOgr)y1?cE zplRI@8H)W>jpHjz$ocNFtScNrCn-4bqxQt_)&8BU`WglI(X`7|V zzBbtx8()m%7XWtw+?~wy>QZnEz#RY^P#mAUX|dA(t-q=`nc8&^q1v`>R9(5Y*(THj zHDBAMFvSEUHf2HQ&)#+U0l - - - - diff --git a/inherit_graph_185.md5 b/inherit_graph_185.md5 deleted file mode 100644 index bc7d8f8d9..000000000 --- a/inherit_graph_185.md5 +++ /dev/null @@ -1 +0,0 @@ -c03b8ed8de973a0023af6fae987fad06 \ No newline at end of file diff --git a/inherit_graph_185.png b/inherit_graph_185.png deleted file mode 100644 index 75ee98a18d77640dc6f107cdb37b406187520f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236 zcmV;_1S|WAP)dN$NA`}_MiIy&;5Mk6aLD;Nw0zSE!*dGArsaUMiO-mu^iQE#x|5m9fj z;1N-8I4O8h6uFqD71Nv>5p~N+!HeVAYFuB6&orN>tK7Oe$6*w`_TA#*2iF%CmOBYJ zC6rQyZC`oJYK%ng*HVal*#XY{vAFo20GDMl*-%Q&=^%I?z;C{DquJ*Ckv4f9MNw{l z_So!L)A+o3%jU_;v#4##-8N>`^DI+zoXxd!@gC$I?{bwVfVvTetJlKt`+H&dmniiM zl)9vVIcGsUQA(Zs$@ZszZt6Gvoqb)@HqC8XQJHcy#VtCYGPW_=T-~;^!i%ElF<+j*}|?L@ZEG$uQ5dYnznI_H_k_WW(fR?RIvKCi#2Zx$BbIuisJuK}MZ z;7uqsfygV*e*ALd0G=tOAR<=n$=q z`E9jQ@Lb#org`$_brr8l%qDYoF^|h@;@XWcToREBItZ>Pk+%U%6!5gj{a@^Q!R5_d zHn)pduJUd3yo-4M4A0eLk;})cHe&k7&sI@xu2yr$j~?OgJ9qGSclTWl+(QsNNfo!! zBBw;YydH)hH%g+Rqc~o|*|U|8^R?knMU@=8IG;9Fcfb@BJQphw(_>i|s_aht$j?^M zd6*t)sTyCanJR2^G(DQOVWu8w>vC~Z`6?z=K9_4dMiXttcy)drub)4U$@22<%8EZKKxG9 zz0uP1WarF_ZEDwznY8m_+2&UzMw4r2`yP~SRMfqGpC29`0JsI41=4jeLF&*bBM%ji<6HW?V_C~b*Szce+JXPY@=H{YZ)L(WT@)V7&bM0Kc z2d-9uUp;(y7rrgdD znW=iDrT$WY;P7w^V7vo-cJjqzr8Z8(ckyUCu;6)AwmaHa9|Hg4!GjTi(J+bzbH~T) zf!4qK&WrLDJ=#vwXO=8@9`(7X*&4?2KLCF6od*@0rlMAa|2-5D^#%(b5%mTO9uf5h z3my^m1`8e$^+xV4?PxUWG7svBS@?(aMfUdg_w)u1bd5Z7=0000 - - - - - - - - - - - - - - diff --git a/inherit_graph_186.md5 b/inherit_graph_186.md5 deleted file mode 100644 index 636200e52..000000000 --- a/inherit_graph_186.md5 +++ /dev/null @@ -1 +0,0 @@ -f5929cf497c10bbf3ea825510e5bb1ab \ No newline at end of file diff --git a/inherit_graph_186.png b/inherit_graph_186.png deleted file mode 100644 index 6f5780e1ce811fa6396bcdd907eafd9339de90b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12843 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 diff --git a/inherit_graph_187.map b/inherit_graph_187.map deleted file mode 100644 index 40a2f36b1..000000000 --- a/inherit_graph_187.map +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/inherit_graph_187.md5 b/inherit_graph_187.md5 deleted file mode 100644 index 0eba6888e..000000000 --- a/inherit_graph_187.md5 +++ /dev/null @@ -1 +0,0 @@ -fe7c5b698f887866ab3649c112111fb1 \ No newline at end of file diff --git a/inherit_graph_187.png b/inherit_graph_187.png deleted file mode 100644 index 7033c238ae2c0880737a331057bc55906e9db52b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26952 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 x6dea$fY*|ns`>c%Urdhw - - - - - - - - - - - - diff --git a/inherit_graph_188.md5 b/inherit_graph_188.md5 deleted file mode 100644 index 88a5bab01..000000000 --- a/inherit_graph_188.md5 +++ /dev/null @@ -1 +0,0 @@ -07eb14d1a2d92b2f5fe3549703ace1bf \ No newline at end of file diff --git a/inherit_graph_188.png b/inherit_graph_188.png deleted file mode 100644 index 42e5db3ff5db22310ff598e84cab73f70e8625f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12626 zcmYkj1z3|`_&2^WIz_;sLsBV~ln?=xj?tYW-CbiyI0aNhIt1Cs0m4QoFhoG%3n(=t zM+pN-86E!z-{0^3zvJQpw&$F4pZnbBuFr?(hWd{fXxV8&AP|GrV+~^v2pk4{8&OjN z@5HEJEr1`CPCAb?K<5`P?&Yw)HR5@Tk*-UAcnM~G4?F&pVh6P_nKA>=Hdmx(dQ zRj{w~z$)2kYeah%oA0ti3PdQi)yD@7Ww|!&j+j=hG#F4%lSMvOq>MZV8?Y+!@8DHS z?ImN{rtp2Ijk}vm-1mr$yII;j?~WtHm+Z_pl(f_K6>rxBr*=ilm&;ViYpS#IV~|z| zo~vi*ikia+;=&g^B10uav1_3L>)|c0yd1DR=c+REA^_iPRqfcttYq};u9)tZYgSzy z_BCIa(&j^S3ezB|gy#>szt)^}#hHiM=#{?qe1*A+e|psIYa(^=iAk73eni=x%@52~ zgN(by?H)23U_kB%RYoOUyhk((%T2DehS`9d z*4n-sE!C|Bfs7t^ZQT{i%&Hwf5qklhUPle{_?Uf{Z+^b=Vb*GHNoES3w?pHsm-0oF zoxeD1p1L5JjIBG`5#FN3f&Hlrx%dIGE%!YaNzue1}5W{O2W^Y!Ba`HDA~EnqykghK-XUz4?*N zvI_`-Fn(IEW1E^yN`{DIJJr39&&hzzlu6jB57qdQhV<)S60UD)m|T_Qvm~bHz&F}0 z;jJ*}T@7;F6fl*3x`}7spusZ)EifqOZ7xSOuypW50sd9!aO@q5NHCk9OwB)As!@&j`d7n~6^?zPs?qUTtD}n@ep&{M%&$?z@1Zl@h z(o~LedKNs?_?~8bevc5*4cVBwZZSz8Rt)o=XrRfJ^(LFJqf$PC)TU+AgzqNRo_SUi zheUqQx0(wXQ3v^s$T`vLnD_~Tj5=tk(Hwc=u~N1iT^xX6@|LGW-0j}B1WR1*7&eTW z=I;2|5$MuLoG4T9LnMB4BOdQQzOiNba-jsoo#gQS@8AOVefVvU7FiDo`Y`^&pqgQU zKjbPDnvyUs{)2I5?`wZ@MHi5sCBMJIge!*ODG`2a@@ON%Wurfagq?TlwNAf+uHUic zkddQQdi^M~dU)?DMP{G83dBJJW}wtgcbbQIUrW$4<8L$(%`+0(uKfrf}SMYPqQdC1UKm1$1-b7 z)tXz@_NtK#pey#F&IuX*gLfic6jvBR9N09Pv=kG#fx{46nJMy3O0hQauOMrjSU>oK z$i6()&8MNVKwVI#f%nkU&3R_v!5wXQV$32R?uYe~vAz1*nzMt2jcAMNSrorT<#!v# zaXE>=j&?(p0p?46-@eewVBmhJ-F7gj9dqk*rks)JsyrNpYz!Syp?08@_ds2nqb|rX z`#1T^v}HE?XY-lw23cN%7kVvvI+MUD= zJ1u6wTJ{&t%pgii)qs5r!5l2MSkQ4dVKlAp)`I; zVl!l2k8bA&polri@F&?4FcHIwHv_9|hF+#!^-c@6^r0SC@`~S&TQ%r2vC&nM%X1+H z^$tbRYilf%fO;=3C!%zucHmNn2WSCHXjsxZEC;4yPXQa$4d)NrnNE>AKwuPo_ZFKU z?tTi}p0D(pEclt+CUSPGuf_4g&yEaJLJFJ&f@}2OhU`|(M;S#ClMCnRQu5x^c}I4u zQE>&Gjg&(TRYdqVd*RrmVe`VR*) zCs05N_=#`w+8qB}rw7Zcu`V+O_3rE9HCSco!w`8UW@#MIDG0A4B)0K0l>4?Vi_tZI z#sYr9jL~qilWRDZYB;ekoj$bvc~vuY|eE^L9yfDJBT@*A4<%}fD>-n z81k)9FVj`q-S6Tmz`{|ZC>&~hWuQg1ZGorzle?GY3{P6p|z z-L9K2xfG^+~kB=)+|awUfhQ%w~OU5+BcG8;8m?d{mzZvCdYbT zwLTeHcXh&q7ltgOZ^9fw;+OK?5MSBnpv#T4eW#jjpBsC+J}!06-?LWowT-C4Ppl~{ z^Txv79*e&R;uBL8rPB4$J5|EJ<1ocx53Kz6aJPOrwjdt{DxS_g$#|Kbo2-9S&1Oe> zi9GchOq12sQ>ScSwt|_tS!bbK5BQg zr+`XQDp5#WSQc}XecXbHbYv}bL(Ue;noTdDdc+W!mDs8x37lzJkQo!4pdx}4lM1Yb za!cE?B$#umkKF)9BjqZ6KT;@|>i%af@7?8fSWV0+#`T-EjAENeJ3=DD*3{-}jbjR? zk;3Kadlg*fYYbW$1(hcDoY-qma8O=j4${hr{Fu75n5@3_>$k#scvgyx2c=V!e=64} zH(VPvgd@Mu zJEw2T`JRUkKdENM9N|n7PrSahSgEO?OoND}+L~2F3}^Odxas0q1$`Q~ zQ*O66LKugG>2$>D!*=vMS_iPKs-Ue-8re5dp%rooM&87S=Kdy81*8Jc?ch7gEsXyj z)HKi^yuz_hcF<`1Noo_RaNDT`DdJ&L6qy~!_-0o1M+Ig9ndX82?tV`w_VFD;xeqaK z0K*mvZu0KEa*H!ZIDA+})0D`nS3P(Yep^(Oj~#$B``ZPKs4s`7r<>rDRg3~W#kwA^6M)(ASt)I~*21Sz}NVTdWUFP~2P z9X~-!0S4(=US(H~;Lz~vzn>KKD@d7@(TMR&zldu`>_njU`m zzq~1&=U2V9q1Qgja>i@re782a8CWQl6tHqrzOeZ_**7|;Z=k?q$$m9#RVmbyLrX6m zttmZdGqv6bB=}wJP<^7fREb>U3+USv%s0ZpP&tUs=puErjIBX^60WsF-sXh)EU3oe^xT_RdX7nZt+69z9{d zQl!7RzbXpxxYcT4xQ6jbW8wh9WAR9>o!}S0v>cIVuZa2V(>^JeMqA^6u=~;2veg*2 z#&!^fRBv-^;jXBfGSQGBZB#qu@C3JTy?zu-J_tiae@K)O$1(69(03}c=jmIIOgIbC zu1?3#=y4b^?2+mJ{Nec_@W_by*5t8}kba-W{YwIy4`2S~XoWg&x5o3PG6|#-h&4cx zL819DPSWjwarB#?q9(Luwe(=z!@DV;Y)9R{FlKZfyCFh#kr#qM<&Mf%;rGa!MAP5K z%GxrSn)xiQ_4quG`P03!%m8hKYDLMdwO!kK7G#zVI%C6CL$nT?h!M%(c=FAXGPh3w-a!@<&8+f*GvN+LlAJu;T2)jO?{7f25d!i~kG3EYIbi%~7ddcWjM0Z&{T1`gnJB zO~!G9dZ=sl$jw)>NHvhF`qSPmD#c`!Q7=mao36m`di`gu^5|?jNZDu%5LHO;Ar(9*$PkmbZ=TA|HZ(>#UoIK3%UQgO1t z!8PLbF&6KRC!kQ5H$$E+1tO2D@ts}WQJ`ti46OqP%oJqi`erBZ=X~<&SLP_)UG%VX zH-#s~!Q9&r8;_O(sWq$W=g-rnpyaK!{t~dOCUuIh@0*`{g^vRpjhUlXp^U(<@Ew|+ zkRz5KiAOp7%P^5rtNp~f@U90GS7`i_L8`TJrk_F`pFS=4?A4;e-|kP&<9}fRZEUki z{Cw5&k)yW~BkM+56`9xN@npZ3+1x;3+OVbYuIihLOa6d@D4v6P9BnIQUi)@&fzG-= zZnvFTPT3=iRuYK`AS=_YXw(0GGeA9r=ntrKnA(cqhNS=%&sy3OIv%QQB; z@CLCNakxGBz}SgC+cj|MIxw#cJ4B_pr9L8sEOT78h4NnMhVsqgRT(*5HXgFAVsB>* z?G*`wUUlS}z-=I$3y9>8(t)Qa2|K#RZLTfcED;;S?WS~BD|jgg{f0`sSIn$Rn!JD6 zgntKA;|N&jMfj(E#YQ-a`*4y@j9_;M;}B_;jV z=+r;AZK0Qrjz%KpUGnULI(G$4qpspAfV5#25Z|biIqDmURE}xoYAl~OT=d^rck7az zx{AiPyMJFOUWX@;anf|jGDmrlH$|Ji@txw|L4bJzCJnk7Ku=zzWJ9DUD)s4uH6#z*dM20Fy-G`ANTnB!v=Kr0L5=Cq8lP^~~(c@Zat2lLgA6^_kME~ct+p4IV zn~l|*7e#3drzh)yX&V<$id9o6P{WRV(VUFaA(y9(RJp&!1##p+MmUyiEXVuXTXjXPd}PO}*gONmFT{<}XPExf!lAZ1HwWO{mf>e@a4lXKW{ z$wMO=f5AU}sy}LuV~nEV&xxg!gJcy9E<|V7e^Hg2P9F`Oz@22m?!q8ouf%!y*Y{0s z|LW;N9=r1+yz|j65!uIE0ceH4B8$mEm$e#nWUTPteX~Zg$Chv=*MT?o*CgtSzc4^W zu1w-+Krs+PgnI`9yz$6@RgC_Ca?Q4crJG`TlOa^Z;rYBS^-K+1axe7T#C_zrpbsgMSV>K`Rc(hPtmJQ@1 z_<^}sYJ{8msrI!GXQw6*FB)$~X!_lSdGjAMozk8KZ*l(O(n!%*ti&AhIwk@hYsB z3#H=Ha?GfPMu#&_?uVd4bZ6E)J;mjv0`oY`ehnU3e>A2`6|t6oHh%nmSRM3aok*Uf zssM2VjT=Ty6$c+N_I-h8!dPMP;smOSgU5M3S&8|{_c3+#wrczC^LZ<#fPUB;w;k&| zPR`M_6k!&Zo0@0*E_UUGakOCb?Wt5X>3+XLS^GXTULWgiQzU!k{+0@;ovo{}`U<_o zJ!nB0%6B5O(D7;p;pKxAicj8v&evigB68Kh0^3UFcLQWpB2 zMRG?z#LqsWJ5yQcH16DRR360o_soR!#iW^TaZ^a})NM~UZAkheSfkVF_)HG0nvI;c z{k!aI?&jRWn^iBEVw~(T9-+lUYrUhkRa2Oq5Yd4*R~j(enpP8 zK_cHhB7;$Pk9I?I?r##jEH@vi607VS>Dt;tIqgDf_)KqTIJhZ(IQb;-tzKKrnwkMM zXU;CxmDYz@LZY>6NQ# zXgTZ)io$Yv=4Ki#t%np^*>HGGzOuI0d1dqC8+rPbjrJ7-?)S;LZlutQwI7QyI;v_Y zH%t?#+rUE{ezY)A5G$=w2a~mz%{-pU`j%xSl@CvcGDtt}FV}+}lh@q^{kU(!UF|bh zxgTjYyT7%XDhR~P@_Jx4cOxPc(&Q(E3CG9BX@;XvT~-$JcFt(@ao4+e2ltqLHOZ5G zf^=;2IT$pIl(aV6r#>Q{rbP^IvMdyWt!51OKx*6-m+r@z`xc44svWTlgPwbrGl^RLMY3>+HcrkH?*9 z%2J-Cs^4Xz3%AHgddf}1HEXY7Ud}b8O4;{ugX{;J1r;C5*!_LuOuRyv>PSvc=&+kb zyKsu3KLS}&Qt~?Z>sWn>xctn_bGdanX54?Eh%oofLgR$Vo367^(?#*KchJSxkGMNh zx%x5Z7S%*VfZR^6f55_!yLIWHIfq(gwq3wc%Y24tX-~`gr?IE)1*7+k&KRm#mkE#% zKMvI=4ZoVQ;eHWb)jgvV0e{(5kx#{`v&JOHYy?Wp0b+l%y((y>jLd{}02QVESWi^wi5X&iFylykzeU@=awHY1 z?@=DK;bXVFXVuh-BweIL#Htt-<*Kw_@Itk%eGp?;f!;6v@}RqBK0#(1_+zU7qRuFyvN>&!|LA)B%veT*H;d;K=4P{bLb)s(Ga9GAYW`=B;@ib(aXa zcVwXt1O)Dl$#Y;GvC>(0aZ^Y2Txs0I*rpGL(;RBAhfRyUpHcRyXdTc>QQNe-{*5(d zm{)}S(T~$6_nHYNuJ+@=No4NYDkg<@!2i3Ivfl@aK(LJnE*rFyz{D;|yN_J_&4bOA zn-7Z~&^sq#E!Ugc3EEVU2k8FO3>3xzn za__xKEwtA}bQyUy47Dq+d zDXc#9&XCBaWPb2P$FZ&42auynNWFWC-&Ej7NgJ4HkH6h^llyC&`3(ysIV$008zyLF zAp31iDChmr-_xGcpr8_~!qUI13CkYSEPjDi>9Q50#z%R0*|=W(mvx1()0n9M>O?f|4h2u$4uP_={qo^K>9OIp-!d+ zg{Xsa*=i@JjfuPM1I4f>d;u7#4mwERuaax*zEi8w0=r^7Q z8>4c)lcu?OuCk$?1~l6UtR=VBeI-9R*$S6m?3$g|8&rLXJ$ccFZ4dnNI_#uqSjs2d z`oWCs8UM`RBtFpDS;UOjc~S9~@1LH;k4rR7)cG`C4*8U(E3ltW^CFteP9uhlKnB5l zwaPucZT0t)fB^GNhk69x>1Ma?FT>4;v`k$e%dk_L_6(hnNOO{ z-_MjZ*Xar1x3F`Kyk_7vIkVvzznB}q5kyg!QJd*J?WI5n;mIxn7D|sMYeS)ywLp~& zBbOsvn+pnWZrzN#VdtT``_i6EaXH9zYJ$Hh#M1a|S>Vz&Fau8z+clwPxsm6nqt z!dj!N@&pI<-Fvb@Xev;!)N(OyZ>fH}KH?a;;&(?;;*3QoK_M80X;xNYytb7hbZ{B5 zXJw>WNhba-L9;kaNv29Cvi=Ae(Xs-7KG`3l*m0U>G8unGD#k)th!OS zq}(DOtb?QjPR>F|RF$RU3IX%J5@9A{rCBS&r1Y+rm_nkA77`7$xT2q!!u5)l$E6iD zSP;aRR+>nv1j@Ql{IIa5`gX;edDSKC9OE+;ob4(bHZ$CeTxjx-))gwU=-RNA zx7m;SJW~UTGV0kj2{n`Z@Ui8hx~ppB=BMR`%)G*j`arh45>P!Fb?VlB9zvq+f9q#E z^er7l^%Ds0I{xP~1{M=NKa{>R3As88iPD9vf8pShH>ZeYF0!B4UN$kqe@MbqdSbeN zFYG1HCxU&y=>@uw!)s{vEaz@B;b&c!F+ z|8~_+kkRPCZ{RNZP-jGWs?#WdUVJ)O`=1sDl^@(HOIh9;%P#ga9X*cm{TcEa7-@n4 z`XA8o1q7qxYvLW|+s{Im{{+UBDN#momT4;{`I1@Og40ncE=mjwW?u}dal-W^R0J*i z#gk>Ky&4Gm7OI=+!frlqSnrJM(G{z-zeK1fvypxEHdhbNLTU3{y&ouw)q(Paflx_n zBa`*kHw!JS3oMaC15rU5cOHo{pQwtUzX$bZ>f%`*0t5VeU}<$5j;%Hnv!JamAOgAp zEwTk|PJ{qu)PJRcIdG?Jvc@)7I*H8-cvR1^Cqtg~D$v+`#XiP_Abg^onhu~=Y4K`# znT-||0~RWN37);tl0<@tHC@HUudg5cXmsnPLwX`Eqrbival*;H28tPImlUk0+e*r9 z=~nnyke<<3U{W?<(&38`j^Kn{?e3O}T(Sx81wQKrK6`S}thK61dXd5jgX~;+Qj;a# zE@KPj1k5;r0n(-g_`*x%`)dAgUEkNoVwJpFkn(fdoU{X-l*Q1Mrdi7eK*mT<4>SH0`%%uILZN~3Y+x+Xlxt@mJuQC~7XaRP z>_&113_(D(Q$nnxoISsFT)W1d6)g=Z;JltAe5h+IL9s;xl0ybWINKNQob%9@iahfb z*y0gsego{rFv^0p6==t;qDNcW0f_FQ#@P|-z_aUITp4S_k-?qm*+<;Q!0T+*^-Usd z-MLC*r}k{a+Qxh-F{|aI)AHR@T44Xp?}%^tLvqsO-{T zc|EpAX;=rkOrwZ}yS#A5HxDT@W}_7tLQr40Cw!y;B#X`MyX0k@7U+y0P8AstfhFdA zK}(74-tK3nwDSm!9LPXgh+&MT+Mq^f+)W)YRLd=$ULN7`gL~i&EZhEv`Ung#VxaHt zBMVmi#*+_gyLpxUh30FYn!JVaBWvLr43L7=kYUd2*B|#js&h-|Hy^TG-vs;=a*ej6 zma-+YW$M3<sZ&ed#b;X-Us~ZMiIF&P5M9 zjMXlzk%gnpA_evB&0FB5R;QRF^xkLuUlDZO&_b;vF1?0Q(bZNZ4GQLzezFh;cwYbx zafEv2ydSDtGV3*o{L@fvRpW0QDLy*TY#bd!TE`ST~Hlkt^6q z9HiXwvVitfLaSetZ>eaQV}Vf9taUaK=@zIOp;!yN}4 zRNdvxn*@T15hrqCd`P)!6TpGjD<{rm)JQ$Vd;(ywj<>mX`o7BRU+&m6-AdnZJWU4F zE~MM>J7~4EAg6C#l_ghbu9 zO)w_rlzy+aAlCofCk94Nf}kz~oPf|{&R-csTsTODijWv&WMav>kRZ~tlsC@EMAyK>~JP?#OiX0yT{I^~vn`?~k^R*|vog;5Gn%Uu5 zLIL+EM$1Gijp@T^GtL+-J?T=ZYVXyAz0wi2=VH#JqeRUSdpJK|jnUP5Hg}>k8Nf0k z1W?bw2Jh=Xt78q^dyc_VRq)ASOWW(2O#2}pr>kA!hUnsX9EC*H9T4~*6s)g{njsdb{vT(N+Z`QGKYZ%0M^p`*j{cu!+I22sjP~E zeQq1*Kl~KU=?X}P(M_64Z``t@xExN$6vDIycr<?URYxM^#7 zd9T&}MCBZ)?@*7g|9SgqAN?`>Axs>I*5FY;M%Cx^&N%4et<6{KpF$jwB524KCWvv? zy4Hy4g4hM1DWY!@e{01QL60<~b;yOWsSED``-Bl&{(<7JWq*jOa_SM}nZ2MLNE5Rf z`zFi%JHWteTX!r)cgzOfxPkLBxyK}!Z|S`(3N$iXmIQzxwf)m^=d=sbl3J+xBFzPB zX;@SpAj7#mc1WP`B65$_D7ACg15p1V?@|4&wYcSiNX9|seVa@DEUk&ImXp(MiIq$u zF#wCLa|wiwC#V)>6>9Zv>Sk(=JOyYk2fym?ETt5O)qrXsTZWyg(j~}pC+>dY}&<BvpG8-y_6xgSK z@}PG|VW)vOl-%oxV`**(jfr_Jb_CKT+p3Pbhqjf5hOkSdtjGX#OYVN)LQll?nQWK0 z+PC1LBjjM4P_3^%BeMId7U#CfF-Ga!IC8T{P>PdNh_b%1|5sm21U`^+bftC+y-cn zS1FZ@?n_KpQN2ucs3R)``PG5|h=<`HyzD)~2?z!TU|DY#;knLtg!GCqIabxggtgoC zb?-J`mhu9kaaw#1+oqqy)>Kq7_mQQ_6H|`HhG&sf+=rBhe`{hSRgb#kRWcsym9@9G zS5EvDPZ4`2(hKnN`1zL${l3ryWAD-`6?W-J^3Ypbr7Ag0GzdhCzRKwx$iKI}Qj#{N zlnQL`%Y4@hz0CX1s;wIpX~QbPm`lvB!N9(Xvz%}&{|{xA@5ayp+kgMyk{m8b!8g$V zCN%p&8Fs^EHVc5G<3}`Y3O)Tp!s;(IsS5bEPhM)cltKzEt;vE!oo ziM;k_U9BeNWsi2X5sz6S>E-+g!u~?}J3t|MN+nP=H1m0tDZh1Mowp{;Z2ZX$SYKHUvn}~7W-Kgrm;O(_uy?z4aW{C$3~5r) zUceloJnUlUdp8MiEF$-Pki2=^)@%M4?9}J(G|?Pwd*8(dMCRHm9wU`<(H)Zpx?{`= zW}d4_Uw{ieqOr>0m>AXouwDNTQ<(YZxAiEFy1XCX?c_<=pMLeo`Um?<F*iv!GOdXa(x zk?AMAe=0^-_Cwk*M|2#G#|vS<40;$YnBm=Nv43JH6LU{(K6@=&D762n5XeAuMRsLzzA2bNU;E)Kg=Uxp$0{Y`7vd| z;;YqyWg)cQ&Drm0o!Bcc14{s+cH0qIlQIPpNnWqlN|jLp5voT_^Eo4tQ2hF#%uWH> z1>M=MkyPE_U7c&HVE5pwj(ti?Hv6K?_D8NjlmDYnz$82_Ppvi{0v4J>uKxM(|El?a z3EBVX{@X$~U(@MiO32ufF#}v|;)*=LXNJ6U^=|Y&Mte_Uvn3Le|DPBAv3;`*=KAAb T3j@GENr1F8^)=8B9N_;Si6D0x diff --git a/inherit_graph_189.map b/inherit_graph_189.map deleted file mode 100644 index 0f6e4cd26..000000000 --- a/inherit_graph_189.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/inherit_graph_189.md5 b/inherit_graph_189.md5 deleted file mode 100644 index 49e8183c6..000000000 --- a/inherit_graph_189.md5 +++ /dev/null @@ -1 +0,0 @@ -cad7b2c61520c3279e651c9b767dec7a \ No newline at end of file diff --git a/inherit_graph_189.png b/inherit_graph_189.png deleted file mode 100644 index db24c3b41557f9b69f0fdb0964acb6105ef7f3c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 zcmV+=2-^3FP)wtJ~y*7J1;;)L_|bHL_|bHlBm`J&@yc{n=7qjp!Mpy?i+L4sTP6I@+qahZXE-y z8j~GOXS3Ph!i5X1!=M#;`0ydRuCqROV&Yhch?-!sBcfGcvLm8ZV6r2kRba9sS`nq( zv(0?ZO`&%EOm;MD<_Dzp2X@Z1)~|kF;_Jv{M?|Z@WJh8srC$9rw-2AUZMXe2f44nO zsdubgU%as`CRc1@&xMw2ZnOO~w}qTjiMUI*E;*@~L{Lf{>qfaA_rGhck8C#|_uGcd z$0_y3o=^XwjV&i8mYmpZuaRwg=sA^$JLY^sv1LcIQ2IZ9?Rv+OZ0Wjd?dvY}*hi}9}5`qtO*u_UQ+*L*LS>`08cwccv8b@_%;yRo(9#GP`R#8c}vkE>x=hb_*W*DK_>)YesrxLt!JIhgE7jL-|- zF{7;^7u8eht#RB~S+xf}O1`csahEthA9iDjXcgG9BWlFg4Nh&<)F^W)nCyresgZov zp3r>QjU}R0IM%Z3y6&vj`eKV<=qRPsgUx31v~?WPEUl|nbB>&^Y)NzTrf@9TX{|46 zt@+JRGJFEdwPs>)$NG{(${WAaiLpeOdYmnZ zg|MAhN;xk3_x0=lZ1Ir-u5E!!0JQ%9GQ`f>k{nU2D&5%75B9J%G*z9o%85zTp`M>S zy>sJGe+Z4M+bup;z$pzt0VlHyU$9yug-dDSn3i_0u}hI;XC|#F1`=}Wlsu~YuLgek z`!pWE@jiY(bM6i_UQ@tUzkII(8gTF4IMnU0*?s#(v#RHQZE0$2c}{7avt?J~c zF46i_xn?(oQgyb7-RFb?&YgLN$G`o6xBmF?#!qKI{Yz_H1@JM#y0Jgs*;CD@pX~4N z7i}(-m~PQ(%Es6T=vrD z>WMa|o)D20Cl$}o?aS&{0Ji|#vP>#o4Bx2g*aTkJbHnFDS3K!|cg5qXuf(b;CF_rE zWsQ|<#$&#&r4}tHWpT;Q*VUACZLXBtAE?IwZUVS@{Xn0G!aJ>FD#5oLQAlEN?F*#c za#dqls2C~r=S(ObJ1<)d=Ibi$*0#kZyCo*HP+whEj{rPs9Y<+7w>iZuwKQyzl(_RC zM(g@xNsA}M;*uS$gQOeJTgOtX{?_MJ8j~H(lBAYJ>sV?on6M9l^SeFsXwRQlyW5xtT>Y$zqgc#mgHEnQ%XI+i*KT*#$LV`G=ZASLWOkWrv3t( zwJhs2bS&9zHk+qd$g|L4%Tg^hq4{t$mPnXVqsuk;zB@xYCOe`TF-JM2 z$hpg9Dol1nR7Gs^tDP*F>}VGHFJrbX3NU=$_MGjp>o{9Esj-bc7h0~l&GysW7IID{ z;x^~v*&c_Ud+h$PIM0s6OId*7RQi=BuZx^L`V5yK^*YV03^EjyY8$rryy)+rAh2ae;-z*6 zr - + diff --git a/inherit_graph_19.md5 b/inherit_graph_19.md5 index b2bdf0428..dc72271b3 100644 --- a/inherit_graph_19.md5 +++ b/inherit_graph_19.md5 @@ -1 +1 @@ -192e7df4b5ff749b3ea36182dab10791 \ No newline at end of file +5ccc627e9b070d66f2c10f27a89847e5 \ No newline at end of file diff --git a/inherit_graph_19.png b/inherit_graph_19.png index c0667c7955305fe97e8f9c9f54ac40f1781d10a7..677d9ac5e115a06c0b30150206023e91e69abeb2 100644 GIT binary patch delta 1326 zcmV+}1=0GC2CoVsiBL{Q4GJ0x0000DNk~Le0002A0000`2nGNE0I(Qerja2Oe+1-7 zL_t(|ob8?MZ5%lahNa-jxJuke8ZfXm8E^whA*m#NO#WmJI$0m2L{gOIeE=h#*&UJ6 za4C-Tt`h>kSr_^3+Nc*e?R&8^!3vD(!crdrQ_T-)hCL-lr~zV z*R=Z0^`+EK%eVXWr_4OnjTH|0fVGbA->>WX-}(IbK9^FuDW$flKGgiBfA*_JZj0(O z#|EXH5S~{;nUoxwgIa5wW0U&ck$#k}ks6O$J89B*8X_4w1fMlp&8K@dNRLkme4<-UhBV1>cNL^Sh9jJg4=qhDyodEn7=14~|@?ITn<*)8~~ZAd;bHrtsN^x0>C2 z+Rfib@prUeE!!L$oNIf&e?28btCt+Dm5Saf2KTsSn|dwR2E}&oe9Hy`l?OIf6nM(? z?h&yJ{Umy2!0D?foB}b6iSg9>3 zqBOAO=nO4MPtjIejyoY!?$ighfG$nFRC#1i8cC6ba{Mg$lD8+3f59oomVKvke=v6l zY?YE@MiN=NW<(ZB9sH7PHNAdC$zauY4!dYWOiPY*3chbZew@B{*48K*^2=TNPHEe7 zDYfN8q4r>UmS3(8B(LLgvt>YA45rs9c9kFA#-WD!Do0+k)@oQP7TKDsn7b*J52v5nKoKh{$Nx-o4&B zvc-!JzAblo7=NTkrMQuCU7mBEA)t4AFa1qd21F9tfwG4n+-&@z!N)8LO z?3u4}^gfwdf7x0}0$O@q3u)P=*EM9x_C^2Tc}wk;W|~|A*^-)avWJBPl;f|3Y?C_f zd3!BgHdX%HN)nvcB(t?y$sr+o9BrS&hy=8D-h*sYT2d+{<=wjEzy<-Z!sNfCkeFg1 z0WI_7zL#)Oa#&mso`H*HJ8Lwv{pb?ds`cR0*fO9ce{Md4=S+@O+u=d940l|18^`Se zT3cC{+i4x|s7B)|_#_m6mTXsYNGa=Di~hNtlhkM-@Ff9S5&{jj3+NIfH(Vn?X0Bh6 z0l5mkm5M(qM+Ee&vaZ+eNour`4eqSwHJC#wC0va3z0va3z0va3z0va4eb(Q1wdRh7bfCyg#`ns-PA%yP>d;x&P k-&h3z0000008H=)D|w(8LoXu)00000NkvXX1g=70g8nCM6951J delta 777 zcmV+k1NQu{3XcXMiBL{Q4GJ0x0000DNk~Le0001?0000p2nGNE0RR7J{*fURe*(lw zL_t(|ob8(JZNnfChJ8`T=p@~v8)PYz2`Y7u{z<0j0+}H0FIR*d`1m|9?;}+$7{dW? zIXJT{000000AO~=%{ZUW??m*WVGKAvr_<@z81rN2y}5;m=!1y9+L;Ar;_-NVFU#_2 z=e>w|#yi7<6vXN~$(>BSaR z5xRrW!=S9|I&}R#jA1N8uY}+j6cZs4{r|Z6_H!=|k!mm0ESZ!Ri=@=*i85(%awbx<2K*=`GKOb7frJQX72sO8e!*e{D-rF2-hG zIc^L~w-GxQ5}LTu z{iQeVIeqZuhx(agOO1mO2ZGf=onkBDOoUu*ZwIsyfCv+4A+(vq40jCFnM#DAZ>M`@ zKs}}r;TE>g7MXVYJ#q*U&N{J2>G#kF6E2V|eNXyMC}11=%)SEUfBWpl1?PSC`hwY` zF{B7%2R`%#LHeGXPI;Dl)r!Lv_=sX0PK2754MOaFwJ1@qq+GA#6Jj_K#=4-;ZR47g z)q1~%m9R0fE{Jiv^xgJ03rnHK!iXYh!Cg)5dw7}LZA*r z2-NY$39r{{OFO^>-0ycb-z&n) - - - - - - diff --git a/inherit_graph_190.md5 b/inherit_graph_190.md5 deleted file mode 100644 index 2c68b5903..000000000 --- a/inherit_graph_190.md5 +++ /dev/null @@ -1 +0,0 @@ -2bd351c82538f4ec9a258416306e4ae5 \ No newline at end of file diff --git a/inherit_graph_190.png b/inherit_graph_190.png deleted file mode 100644 index 18851872610f90fb06f5f596b9210d70ada48d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3952 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 - - - - diff --git a/inherit_graph_191.md5 b/inherit_graph_191.md5 deleted file mode 100644 index e2e903a26..000000000 --- a/inherit_graph_191.md5 +++ /dev/null @@ -1 +0,0 @@ -196c5136fe85107f522b157e659f3313 \ No newline at end of file diff --git a/inherit_graph_191.png b/inherit_graph_191.png deleted file mode 100644 index b88c877fd4887a92edd2129413a9985eaaf6ea29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1906 zcmV-&2aWiNP)&9qVK^M_iyZ@{O-lLov17-6 zD(+hsD;T1Xgb*iU$3V$@4!~k@2NNRo)^Iq)jvYH_Je-R-Ive8=8&%r?fR_;u=L`)}X_AIv7g^+s6i8mhLZ zUrQ-(*k9hB?kiGtKbvCk8N1Fg)3RLR(5*{oyh9|?5Mvxox6G!`sgAqWOO^b6m(>Q| zArei*p6#68VHUS_#g2U{^o(?9Oo&7iDcr&M>N3aRD~_1ohgAu2VPRosmSwNT2!_&< z=lNSlj~@Ldb{sLZJ$B`*%({t=y6d`@sTvFPq3!R(s)U$j*)}QVvs<@rZ7m2&&(hKo zvMl=$z?w*iuH9AJi3T4r6wfPPqw2WsG1C~E;?Sv^%lE;D+Aj0l++3S+P-2#rmSTs{ zI#naB+isdgcHP$1G`V3qv0^(@UU!~J`7yi9oMk2=n&6}gQQ}nNaVbm$^$8OqQQ};Z zUdU$<`-oj;BBF`t32}CIHppi~Uc)Cc8c%jw(*{B+vSDUX6(Vc%(Jtz7>~zZ zuI1x8zG9&pjlPtd^A$WTf#=r?99Vcv{1Q8+l<2&-TgT>Eye@TzV?6U&hhvCjZSSJo zuz53{0B~Ss1-l?I0|ETK9KYw$wv-w*+4GhVi`~2FUD$MA`7Uv~zkIh=^|_|)a+x}D z7ULU_$E)H|m8&Y#_E_<_sva)&^>wGdcTo;DZNg4S926P$=fKS(M-G7jy4x#LnkKud zq-XL_vraiv#Rt2KG5DbKAbDNATppS>sh_I+kgMT%Nr-g`q^cp-B^O|IBX3F$s$^*s zd($SA+DHwKsb`bdU{zmN~)z`;ynzXZ0349iktosa+o22L060Nn=b^ZHdwjG0`o z$o9<}+qZ61*DP*V)vsKpsvf@Y%7b*7bsJyt?yRjcbo) z@%#GW(d7F-H{iQF_u}gMTi+}ln$bCbFu>0*pN>18Ccph4+_eqg|1Ezm^nwT}iv5nV zE^j~OeRN;DP^Jyl*r$oM>bHI4RowIIR~X;+$j4W1y5m6sYy)r&nh8mIABzfL`34iUWjxVQk|_4#@E#t#qSVF~OL0tcnQEka@$!1~sLNtDfV zf>pndrS5t@XIE{<Da1sI$#P|#oMoo| zdwaL|2f#@HCl7rhH)S)}lMiq}tl-huu@TwoT|!ii(WN@+;v$9mzPCsG0pK`*`&JE^i3e+?y3QPt8^E=y-sU0d}z z+ZA={Vys$4rf#*Frr2zlz5{Oa&bX`Egn0h^`BnlTN|nvhTdL$)^_jZuY5AsQ)^(dz zOM02a=F0RPaF=(+ZLCU&qtR#)z+%u+iF(Sl!G?P0SND}V-Sd3Kqg&rl?~IrA?m0xF zE~raFrrpG1x4yjJCULa2Oqb1FaL9P3m=K8~P&I7ZZe@|ngha?LbE=7OinGi_9@!)! z)!m}W$}i<}bz-Tyvkay9YXd@j-Ur?x5;f3WnyP%Flu sP{Oh-`!RM5L_|bHL_|bHMAR++0b_7%(2joEfdBvi07*qoM6N<$f;%9!*8l(j diff --git a/inherit_graph_192.map b/inherit_graph_192.map deleted file mode 100644 index d20624086..000000000 --- a/inherit_graph_192.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/inherit_graph_192.md5 b/inherit_graph_192.md5 deleted file mode 100644 index 0a8c9ec3b..000000000 --- a/inherit_graph_192.md5 +++ /dev/null @@ -1 +0,0 @@ -96bcb3b1c78827208d01493b375a09b2 \ No newline at end of file diff --git a/inherit_graph_192.png b/inherit_graph_192.png deleted file mode 100644 index 5c12dc49f53b72e4e068932e72a87053899ba259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13744 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 YOn;eVe~tiN!J<%mp`}#%{LMfA2W%GSdjJ3c diff --git a/inherit_graph_193.map b/inherit_graph_193.map deleted file mode 100644 index 8b4d93ab4..000000000 --- a/inherit_graph_193.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/inherit_graph_193.md5 b/inherit_graph_193.md5 deleted file mode 100644 index 1e82b973e..000000000 --- a/inherit_graph_193.md5 +++ /dev/null @@ -1 +0,0 @@ -94da846a16dc6a4715fd9647570ae118 \ No newline at end of file diff --git a/inherit_graph_193.png b/inherit_graph_193.png deleted file mode 100644 index fa7da5eb01c373e9c41bc11ba4cb6b78adfe4a7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3478 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 nOiXZhbaZqxg-8D - + diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 index fd17d9bbc..9bb6b69e4 100644 --- a/inherit_graph_2.md5 +++ b/inherit_graph_2.md5 @@ -1 +1 @@ -84ed12c0ca3760942df36b6180ab14c8 \ No newline at end of file +ee844dcc0a6293feba0d5e53da33bfb6 \ No newline at end of file diff --git a/inherit_graph_20.map b/inherit_graph_20.map index b6e21efb6..72427b03b 100644 --- a/inherit_graph_20.map +++ b/inherit_graph_20.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_20.md5 b/inherit_graph_20.md5 index 7181b96a6..26965dbe3 100644 --- a/inherit_graph_20.md5 +++ b/inherit_graph_20.md5 @@ -1 +1 @@ -1e170f1459f2d50ab49cd851b97f57f7 \ No newline at end of file +f46a4e3bdd4afc84ff3cc566649f58e5 \ No newline at end of file diff --git a/inherit_graph_20.png b/inherit_graph_20.png index 9ee79e72c7d2265e5ab17abe69710fc5123ec037..257b4451fd55e1acec78c9910bc7b0cef3530f4d 100644 GIT binary patch delta 1225 zcmV;)1UCDs4$BE4iBL{Q4GJ0x0000DNk~Le0002Y0000%2nGNE0G$j=^pPPHe*}O@ zL_t(|ob8<3t=ljRh9#q8bds}37YLA<3}k^8ouhA=;+#3+KDkg8-6)c}`Tu~TwPQ(? zESj|RyT$+j000000Khz0|HSQf`);lM=wS>1BXJzZpU30z<(~WIUu3QQu-5);XBGg% z^1~SO%RTYtFem%It6KxWsNC=Of8hD8u^j+R4IBml0&o}r2*6 z9lAPNnMvP(3Nz&fgI^Wr%KEQt)p`>iGQkaUB1h_m9tWE}@$qs=L&Nf0(_c{fgnY zRcbS(jgoqdL5e9&lax&Jrp4-}v{`y>O+P|qq{bswkNZ#pvWP?&W5&#pV>X@9%spNS zw|}ektv6y0Gun-br6?!0Y0xbADdB4U>xD{6Hd?fiTE4C+r#TiSb-VA2fR9Lo;iNd+ zm-AS=ep=#RS7L8%zfx^ef7+mw&Dn+sBZGQMmRjk`t%6aHQ*D=)rM6MhcJ6$t4LHJB zVB=B&q(AE-7GbVLE=^i}74FKwVJawb0Bt9M6ZQcq82|*9jxa0kue2t$e|1F=Vaz-) z=@dI9`s7M%YW8zx8CME$m_kx2>RHLDoMTJitMtDHHHQgF)=TBv%TiEN)@XUG=6 zzR-puXX3=<|L$+O&jM0)r>^Bn{zIF`9D8R%sL*ExZu#5>WQ|rU zWoN8^F*{?n)%2+b343RvX-ejX^K&r$WA|EaTeVQ+@m#G|s|m%G{JT+PwWvX1%2hJ$ z8%EJ+X+5>2;Y$8ff6DJGInb02)8eU|OSv><^IHAWlKiihcBN>(O6KRb++4RswDD6e zZhGUAvtKLPP*v2fJ*j@L9&J=2jHZ@~BZp6sn+VkRt5kiQPY);$7fPRUcE-w3?9D9( z&9F$ImXc9!l%%Ymo1eF$rVkW5Tc%sJpGru5O3@N*Ty|jff3#&~rhMtAlFQXK$VCut z%G#q(;35t);sols&jjj0N(KOdOGFrB>Q`V!Sh>+mzh)kn9$dy@dLl8ot~fbI`bj{pTumJmyK-%5N$vf1QpY2WODWX3Br*3=sBc_ypz)-t84HaG$SL0=g{00U zjk%}pFtuJ@A`I;DA}ldcxKjIEy|a!>X&cn2JVk`z8k~h8ZF72y27}G7{O6a z)K)3rODV}X^*YXPl4YpnM;(`1yG8|CG5`p4i!if2SyDi1e;tNR z$z}phaUGD70YCr_0{{Uy3;+b+FaQvUzVz?=-qH>Lrr^zCwr%@-yOV00000037}T_1ZLT0e!RB00000NkvXXu0mjfarshm literal 1834 zcmV+_2i5qAP)5fKp)5fKp)kvX9*SXo&)DTFu^A{a{7cs#xqItC&W z$J7Nvh%-WnZ$bn^Nn=u^PB@YjGo#U{%{VAgJ3BiVkH?|IATl-x9RLwgOqdjjh;o<| ziHLHT6p4s(I-L}SIMPuR?^AcTOFQu{cBkmENwA5G3(Y_CB~hQr}` zwy32`N_k^E9-qrE3z`&(x?(sSh7N%o+uGW~?(Xi9<<62~ehOA}<&iy~J(oRJpU+>Z zm|i)l`>u+~Bwmw!l<{#ss>Uihcj_{em|UHMlq@VPgbslmn@lE!%bg^}s^nGlVO2k{ z>f>x#o-QF4B~gGo|irs=w_j-#!l zQuYVN#XgBr7PM@hy zyiA{CyGl~ysT*J0+xcP>Pi(PMI%0iqIZ2Ay6f66$Zk1MjY?91$+3I$@O7zRsAMZBDZ4zVMnTv1Ur_W^-RRtL)LW-TsKiHlAnjcZD@>kdD^8E8f%ZvV1|G((5uW`$cQ5U1StSTnm@fB@X zw2sR^-26sM4OP?BRK}!wLiO$TsXsRRJotF;Gbz>(A_+0^r6bg9nM!}G?|a)!ibNiS zDjdXAu*kUXkIg@q%#~uyRm_-UYbxbqi%sfRgQk4-$L6Q!>bgw@Ns6Wikm`rnk+XRY^rOz!8 zt}K5qpT!(5LSi@ro|6I(1Tg>b>G{%)iCW<0_Y`gUDBG9qH$-bfTjTgTmyJC7B$hYj z#{iZ9yefdHeE8lIOoUPEV}GoZr0Baup69CNAh!Lu>1BqXoj&iNPVn?oU|%^x`X*ew3%CQ@jgc1;C2}xG#Z6^g-d5^+j>r zc~BOH!=XTgvjJ5b_k;VwTT70s7o|y=zAQGAHUYLkxb?+b;&%X70bI>0&k*m}l5z0nZJSmB-Lk6v*ouQ^gv=!0$&T@@6e(3iP|z&w7hEO z0pNe@#aM(i!5@T(OrLLJ^W$Sfus$8U3 zNs+x=M8$NKW1Cj3R6b8hR-a?8dfCPn^RZBzn)L7LTD5e~r6{SSn6&}aeeu);q_!sH z$Iy*!(z0OFuF&=N2BNM>V*1?Xk5Lr08rXh2#rAvRZGEqt(#7|Vxy~m=m-hx^@8#-p z?-zyDhkJppbUrD@^3|d?dbwgaPNLLxJ}ClmOfP-*axobawI``Ui|O|>tM*aW%Vomk zmuYN&5r+wps2xdMDXM%WkPy9GOol}5N-`;$Xwu8&a(_e=m)<5tA{(o#tD!@nmM|&i zu%JOIDdjeR3!&p6KL&%rp1O=lF^9ceq*_~B`vbtW&~Z?ElBzxv5jDl6NJNywq)0@R z!=y+=l%p-Qj7Fn2 - + diff --git a/inherit_graph_21.md5 b/inherit_graph_21.md5 index 865727ac6..329ba1b01 100644 --- a/inherit_graph_21.md5 +++ b/inherit_graph_21.md5 @@ -1 +1 @@ -4088c282c9b88880dc8e6762b7f8b376 \ No newline at end of file +2da79e68c2d7b76660a99376b9c06272 \ No newline at end of file diff --git a/inherit_graph_21.png b/inherit_graph_21.png index 44ebe780180675842dfe284f861b69fc2888ef86..768aff5621476e0c283509a39f97bc76baf2b672 100644 GIT binary patch delta 861 zcmV-j1ET!C1>y!FiBL{Q4GJ0x0000DNk~Le0001^0000%2nGNE0KMQ836UWbe*+gu zL_t(|ob8w9O#VwEt;{Ni%RrNv2l1x(X0~C#AOQP7< z)JKRq2LJ#7002N99~Rv2_ut<8k1LD;^RTY#pRnv#Sm3??@ZNupF$qjeS&Tc&vh+0t zOv&T%aO=88@7)I50zeXo5r_d|e*|KH7=aj6i_!ZZCsQKZ1T-!cWB7-cAcSq(t~Oy> zR7XZYN5YFLsD&X z`lLQvGmcoDR{lt}b9~`7(IhfDCv#1bvT2XP$7@R*$ERs*&BQ2e(5Y!_r*>-8Lby!O zFupF+w6rMM>IkW(UQb_8+CHw&rPCxbo|*Q}ZZuN;hErAe9L3(+apn5v^ueiHvQ0x| z>^@EBcEqLKGWR;yH?=Oee-BFErSe=K7DPq`hu$5~FeOT)S!A4v($r~vx84hgu>y*? zdJE8^z%fk&F+hw!3{#vlUIBc-2ayqop}82jsbHm4C~j(6ZM~W_v=s0`9nE*su~e`U zHECci>+N=P+erZ*)G;iD?D#fb@hwO0{)l4|_@IpVbHh_x5ce}oukP1)KHq^*cj{CCq7W=`2kwW$#kkuk<>DO=m7=iiv5FcBGB zqcLU6LS%#(BWOz5vLM18v(vP5_EWa@u~`tJbH*a$3@KaTvz9O;Mx<=%$MiG}bYUhk zhFDtI&w^Po&a~FD0;Xvo28a=e0b&GVfEa-ok{g(1Sw`9cGbZ8ndL{4u5aaE3`}cmo n|3073u0{a>00000005USDIFd|lM~)N00000NkvXXu0mjfO+Jx9 delta 696 zcmV;p0!RJg2EGL$iBL{Q4GJ0x0000DNk~Le0001=0000p2nGNE0Exxgb&(+ye*$w! zL_t(|ob8<9ZNwl9h2yGYbdt_8-sbDRQ19o*pL?-T&v3h z000000K7wK!{hPzAfitTXMkVUb^T7;-qQvm`Xr*SHZFmQI2K>v`F!fS0;XWwwq;${ z?00XCeF5MXh!27#_ke3WdZ=W=aFKILp)or5FT zB=Z@F=-<-K9f!~RzW-@Yk3(BbE+ppquJwWQw{~0{TJyodoqKl7xqhzBe?bjR!mj3f z6xa6|o3-akjic3jW$8hd=<_ZjE8nv8u~|srdmC0BgXoGUT$S?&^Z-A#4W5vh)`+5KX00000 e005wSegLR~`~VjW4l73h0000 - + diff --git a/inherit_graph_22.md5 b/inherit_graph_22.md5 index 2b8152894..e57e45d92 100644 --- a/inherit_graph_22.md5 +++ b/inherit_graph_22.md5 @@ -1 +1 @@ -5089a21c89697b3dfebd7eadebb5746e \ No newline at end of file +4b483a6b9c270028b7d81c2c8af1e2d7 \ No newline at end of file diff --git a/inherit_graph_22.png b/inherit_graph_22.png index e10b2f63c83d4b6831393355d2ce9f5891a8a49d..3ac478c7f78b4385b3b5e20e112f67e10eb6f92a 100644 GIT binary patch delta 830 zcmV-E1Ht^41;hp+iBL{Q4GJ0x0000DNk~Le0001$0000p2nGNE0G{VcypbUlfB8v7 zK~#90?V9UtDv1}rzP4@qbj#lSo2<3(*4n@QWRaD5JRbjy zF&}Q(i%}hH+ompvtj)G<=61Wif0UmFXdyow8Wn*r^kYUoP! z(WAc-h8mUsFlKl-`@WBsusln9Dl#W9qq5fi|MSb;??dIG|NiIDwcoc?lSHqijU2Uo z=juuO9p(9>o1Z0EYoEeK>iYP+@B34^e|?m>ghErOZK;NsUg@|})aa7de@huli)IvE z!k^}#Vr`f7DZLlbX08oMAG5FfAfC#YITqPIF-?b8bgz4&{j5gM15 zk<*1>^jxTfztO)GAJoP&eYR8MvjD(w?1P;to{U%ajXtbA@0UA{WG@LXHe+14D zPnFt~M6^AFCkc&l23ZK!rbXd0jNEb*tJ7XD`2042|8&JWzEj+6^jD3hdt zn6P zq@}2NW>b19W7=G4%p0IW(Lt}buaR$grHA>YbtJ$S>h78aNvyrxnyQ7`&{so=R_VQx z^`^$y)b^=r)*$W#f2Km0G<_r&{#pzsRX3(7HinY#{O?QZ#k8OqviXTf;b?6`J6%N5 zUdyCQ$2Ec_&;GcvIyXyZDfD=&%PnGO@CdWAq){28KdG}C&8)gymJEMnZfH~l4vmVy zp-~Yy(S`c;dhMx$EXe(S50*!b>TX-ur)X-4ESJMBYT?_j$4a#_@bU|2XG< z#dR-1vEse&E(l;G-h20WJYMRTe*szmriP#ZP!JRV3W5Saap|BCc{x#@rcV+1`piI1 zM_fOP*3k?N3jGjfcqk!+!+nT|3n7^FWx=Xv^!$#tU(2Oe3b>A=S<`deWszgz7r_e>@$g>!S}wp&YYT)qOa?i$Ud zl%?mG&-MlDmBK72W^=66e^MNCG>sWWYs!#I<9e|*@7A`Qv-iC&>CXWwC~rcK`~rmEwP* zlq+9l!wz`}iXGti-y6~=00lt-pdcs!6a)o;f}j9UWKW;&_xqVT0H)z3C_)H-opbL4 pv;dsWvMe8?H2?qr006-E;uD6oy_$ex%&!0d002ovPDHLkV1kWiL9_q> diff --git a/inherit_graph_23.map b/inherit_graph_23.map index dbbd157e8..bf73ad8ef 100644 --- a/inherit_graph_23.map +++ b/inherit_graph_23.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_23.md5 b/inherit_graph_23.md5 index 6f51e93db..f405f4f42 100644 --- a/inherit_graph_23.md5 +++ b/inherit_graph_23.md5 @@ -1 +1 @@ -24617f061a8f1e6ed1893553e7d19ccb \ No newline at end of file +f40fdb7c0e465b5d167e84b377dbfe40 \ No newline at end of file diff --git a/inherit_graph_23.png b/inherit_graph_23.png index 3976d30ad150b8a5bce362888f5a14ea727156ae..4e6c2bb7b80af4f461cd88fb3dcf4d35aa80efeb 100644 GIT binary patch literal 2165 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 - + + + diff --git a/inherit_graph_24.md5 b/inherit_graph_24.md5 index dc72271b3..c8adbc982 100644 --- a/inherit_graph_24.md5 +++ b/inherit_graph_24.md5 @@ -1 +1 @@ -5ccc627e9b070d66f2c10f27a89847e5 \ No newline at end of file +5d0b06b7aa1c2c8eb6b6b477d13806d3 \ No newline at end of file diff --git a/inherit_graph_24.png b/inherit_graph_24.png index 677d9ac5e115a06c0b30150206023e91e69abeb2..39dd642348274a970b8d5c9619d4ee825442dc6a 100644 GIT binary patch literal 2150 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 delta 1326 zcmV+}1=0HE5U&a$iBL{Q4GJ0x0000DNk~Le0002A0000`2nGNE0I(Qerja2Oe+1-7 zL_t(|ob8?MZ5%lahNa-jxJuke8ZfXm8E^whA*m#NO#WmJI$0m2L{gOIeE=h#*&UJ6 za4C-Tt`h>kSr_^3+Nc*e?R&8^!3vD(!crdrQ_T-)hCL-lr~zV z*R=Z0^`+EK%eVXWr_4OnjTH|0fVGbA->>WX-}(IbK9^FuDW$flKGgiBfA*_JZj0(O z#|EXH5S~{;nUoxwgIa5wW0U&ck$#k}ks6O$J89B*8X_4w1fMlp&8K@dNRLkme4<-UhBV1>cNL^Sh9jJg4=qhDyodEn7=14~|@?ITn<*)8~~ZAd;bHrtsN^x0>C2 z+Rfib@prUeE!!L$oNIf&e?28btCt+Dm5Saf2KTsSn|dwR2E}&oe9Hy`l?OIf6nM(? z?h&yJ{Umy2!0D?foB}b6iSg9>3 zqBOAO=nO4MPtjIejyoY!?$ighfG$nFRC#1i8cC6ba{Mg$lD8+3f59oomVKvke=v6l zY?YE@MiN=NW<(ZB9sH7PHNAdC$zauY4!dYWOiPY*3chbZew@B{*48K*^2=TNPHEe7 zDYfN8q4r>UmS3(8B(LLgvt>YA45rs9c9kFA#-WD!Do0+k)@oQP7TKDsn7b*J52v5nKoKh{$Nx-o4&B zvc-!JzAblo7=NTkrMQuCU7mBEA)t4AFa1qd21F9tfwG4n+-&@z!N)8LO z?3u4}^gfwdf7x0}0$O@q3u)P=*EM9x_C^2Tc}wk;W|~|A*^-)avWJBPl;f|3Y?C_f zd3!BgHdX%HN)nvcB(t?y$sr+o9BrS&hy=8D-h*sYT2d+{<=wjEzy<-Z!sNfCkeFg1 z0WI_7zL#)Oa#&mso`H*HJ8Lwv{pb?ds`cR0*fO9ce{Md4=S+@O+u=d940l|18^`Se zT3cC{+i4x|s7B)|_#_m6mTXsYNGa=Di~hNtlhkM-@Ff9S5&{jj3+NIfH(Vn?X0Bh6 z0l5mkm5M(qM+Ee&vaZ+eNour`4eqSwHJC#wC0va3z0va3z0va3z0va4eb(Q1wdRh7bfCyg#`ns-PA%yP>d;x&P k-&h3z0000008H=)D|w(8LoXu)00000NkvXX1g=70g7m3vbN~PV diff --git a/inherit_graph_25.map b/inherit_graph_25.map index 72427b03b..dd995083c 100644 --- a/inherit_graph_25.map +++ b/inherit_graph_25.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_25.md5 b/inherit_graph_25.md5 index 26965dbe3..7167c176e 100644 --- a/inherit_graph_25.md5 +++ b/inherit_graph_25.md5 @@ -1 +1 @@ -f46a4e3bdd4afc84ff3cc566649f58e5 \ No newline at end of file +e749cfacce2a8adf633b22e095455962 \ No newline at end of file diff --git a/inherit_graph_25.png b/inherit_graph_25.png index 257b4451fd55e1acec78c9910bc7b0cef3530f4d..ebc7262aafe340f5bf60162d20100ec1de8108cf 100644 GIT binary patch literal 2196 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 diff --git a/inherit_graph_26.map b/inherit_graph_26.map index bae61962f..19bffbf10 100644 --- a/inherit_graph_26.map +++ b/inherit_graph_26.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_26.md5 b/inherit_graph_26.md5 index 329ba1b01..5edd4c6d0 100644 --- a/inherit_graph_26.md5 +++ b/inherit_graph_26.md5 @@ -1 +1 @@ -2da79e68c2d7b76660a99376b9c06272 \ No newline at end of file +12436021dc2253035c0a92d32a07c7c7 \ No newline at end of file diff --git a/inherit_graph_26.png b/inherit_graph_26.png index 768aff5621476e0c283509a39f97bc76baf2b672..239f621305a038a8fd5f1dbe18506be900d9c8ae 100644 GIT binary patch literal 2195 zcmV;E2yFL>P)VrYy&rHPzB66_!$7mbC5QO|_f;We5_4%o3_ac`NKotd54nce+< z5+nQW?(8%3&U5q5?7J^OL_|bHL_|bHL_|b1exmup>C>lo2q6xn2!<%NqA2dnX0w~A z2>vNw?eN279RGx3!OkIlHWsZy|N3;(cx)4Ham`a(ptA9%=H@x25u3oEC zP1jUq+s2@a*S20J&Fj_Uw~0m79=`GTwndD6HgT!y-ldMDms9T6k7JIQ#t^9GkLrg|e+ z+bOxUoo_q)v_&876tdss*awGT2<^rk$*-(Rut6mCAL1s})U7V3r4OGavT8fTd8W3A z*-pOo(aEh34#g1KjX9!@%T%m{a+c}lS=)^@*KO0aZO;vHvoBOVRIi)rWE+!99YgQ4?GHX} z#(~364!O%5(Z8O1j__eaA|mn@Y$h@#rYUlYPs6#zLzEllNIV=wJml8ta*Ky3H_VZE zxST~qMBYX}hz#K?iug&`RSa#N zP*qmjbxjX>skYlqd!N9vh>~Q0Fzz4fV&-HA!sCYCEn=XUt(> zX!Z2g%_o=Tu|ndclz0OI52VB<01y)xI82zk)6HFz(cBXW(Lgar>#o;nc7kT-cKI}8 zDl4S6>-5#$Htzll{IdORJlwVOpa9-20SEwiG=P{$i9!fmIJGP!>AcU@T_*~FZK7q$R<{`ww2{`33~c;%gY zvcP^wJOD6Eq3D ziPbh9-TJLhSzWnYCyQiwcn{*|FMhxH@xg^-U&@y@ZNecbaa0KGgT%V_K8S#Xz{;h0 zakb}=H&|R;JdEAjqLt6w-FOX`V~3WzE}{=2wo|$0zBcv7Y)%P7PdQzg-e{Ltb#=6f z&$QoWnMrqD-EpezF7JKnWVw7${0ZPZfb++%%a`W_-iN@4kk|u(`!>s5L&x0JUuWpK z8&WSbk+w#$dA)5JM7Q5`UfXut>o&)Riq$oaHZFDbd5_x8b&VmVPv^xS0L}q8w|HId zDy2jBaMDB((`ky@^3hCm!xP56}oY`>;FG}D|NL&W+ zcj~x^QtA8&$~0Zd?Gt4PQ>!njojof`05<^KShylTdTtAzO&yb~srBWl)weI52a%~Y z{?zJA?XDgc>j3Vij>FZ|`tsE3+ZQfp5fPC$4k8`o^spQeZN&WS2L};P)mQ1*QHjC{ z{j3P{Gd>O?3S;SbuJss8y=mOW(oe^dpBzMLgb-d2xi#P1YPY}{aUxL$|Y4P%VB={A0N}?2NA%3N?F(C6G6=B@{l_x z4V$T7`~0RA^E1!%UwH~>3PRdtXUo`b=(>_&MP0Y`{a5>9??KE0-oatQKn|y8CM18U8 ziy``amzZ?>nV(^CCeni(zCl4mYRu1WI1}kXU*GT`B6rNsZa9eagdLM8U(8Q`T+SjQ zB5xc-h=|A=2N5D7^2R}gh={ytZ>-N|vp(Y>N^W&^HFXG`t*)*zcPR>8empUV6h(2T zEX!*vD=X21BFars6gN}H;HxN#n`>)pSX*059SV)qkn@9xh=_=Yh=_=Yh={0*{{Ybl VRyHw0%^v^&002ovPDHLkV1ixbQ+xmb delta 861 zcmV-j1ETzs5#k0RiBL{Q4GJ0x0000DNk~Le0001^0000%2nGNE0KMQ836UWbe*+gu zL_t(|ob8w9O#VwEt;{Ni%RrNv2l1x(X0~C#AOQP7< z)JKRq2LJ#7002N99~Rv2_ut<8k1LD;^RTY#pRnv#Sm3??@ZNupF$qjeS&Tc&vh+0t zOv&T%aO=88@7)I50zeXo5r_d|e*|KH7=aj6i_!ZZCsQKZ1T-!cWB7-cAcSq(t~Oy> zR7XZYN5YFLsD&X z`lLQvGmcoDR{lt}b9~`7(IhfDCv#1bvT2XP$7@R*$ERs*&BQ2e(5Y!_r*>-8Lby!O zFupF+w6rMM>IkW(UQb_8+CHw&rPCxbo|*Q}ZZuN;hErAe9L3(+apn5v^ueiHvQ0x| z>^@EBcEqLKGWR;yH?=Oee-BFErSe=K7DPq`hu$5~FeOT)S!A4v($r~vx84hgu>y*? zdJE8^z%fk&F+hw!3{#vlUIBc-2ayqop}82jsbHm4C~j(6ZM~W_v=s0`9nE*su~e`U zHECci>+N=P+erZ*)G;iD?D#fb@hwO0{)l4|_@IpVbHh_x5ce}oukP1)KHq^*cj{CCq7W=`2kwW$#kkuk<>DO=m7=iiv5FcBGB zqcLU6LS%#(BWOz5vLM18v(vP5_EWa@u~`tJbH*a$3@KaTvz9O;Mx<=%$MiG}bYUhk zhFDtI&w^Po&a~FD0;Xvo28a=e0b&GVfEa-ok{g(1Sw`9cGbZ8ndL{4u5aaE3`}cmo n|3073u0{a>00000005USDIFd|lM~)N00000NkvXXu0mjf - + + + diff --git a/inherit_graph_27.md5 b/inherit_graph_27.md5 index e57e45d92..fb9de23ce 100644 --- a/inherit_graph_27.md5 +++ b/inherit_graph_27.md5 @@ -1 +1 @@ -4b483a6b9c270028b7d81c2c8af1e2d7 \ No newline at end of file +c5a6395180ed0fc7583cea6512c5abc4 \ No newline at end of file diff --git a/inherit_graph_27.png b/inherit_graph_27.png index 3ac478c7f78b4385b3b5e20e112f67e10eb6f92a..4d8da6cb9e1f21a2f80361ac9041d328720d40d3 100644 GIT binary patch literal 2324 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 JPDHLkV1g3(n-l;5 diff --git a/inherit_graph_28.map b/inherit_graph_28.map index 86e1dccbe..8b578553b 100644 --- a/inherit_graph_28.map +++ b/inherit_graph_28.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/inherit_graph_28.md5 b/inherit_graph_28.md5 index 12c8dd03a..8ea304af5 100644 --- a/inherit_graph_28.md5 +++ b/inherit_graph_28.md5 @@ -1 +1 @@ -961939218bcee89cc51de7012a3ac689 \ No newline at end of file +bdec5df17e44a56719c9c67641472166 \ No newline at end of file diff --git a/inherit_graph_28.png b/inherit_graph_28.png index 4e6c2bb7b80af4f461cd88fb3dcf4d35aa80efeb..8bec8e563d38b757ca14f0756125d836debd9af9 100644 GIT binary patch literal 2299 zcmV+K~#90?cC3g-bNkA@y|RP)S^N;Apt^_S_#n;rp2vC#s z5Gf7W&7Z&#aV000000000m9n=2e(xppZH^#g)MKHjUS!+MJdiCmG zrj8@W-rnAssbc`fa(H-nt^M7J_7}#Omy9v*j1v;DDrY4<(Fo^&J^?Ee9xS&G4i1J5 z1z3^GmoHBpLT`I}d)nRIojMF)Ft=~t*5ToybJ=F(SO5T+9R^DP00I~+0RRYKumk`g zVAg}BF;D#RrOGt%f4TdY;{xWifHN%HF4p7++0&LUTRZoABTsj&{O*&L1sZLhwxYE^8ooO-}%b4?92)iiC8Gqt<@Tw*)l zz8G>p<(8*QZFO+%=5Rb{d+xYW&EZ)0HOMqfqYV;ds#Y!q(jOidDs2&*KW!_p;U~tJ=$K=;M1_ao9&?+@u{DEdB<*B;^BZ&<#2uPD^qMtDP=6Z zEVe%6?6ajd(z&XkPoV8}e^1*>!%GPO00<~{Ww|E4DVQnFuxg73SPRJhh`w7!G~HL$e$#5k>`{p9{aSUpcYS8N1PW zJ<#s|j^6L5jS5RapU}@JgJtN4zpiE51Ka%JY;%3z>zYD8Xl|#O5{s|0xngr|8(Zes zGP+_2H40Z+p?rNm+D`pk@>uxFoRf|(p3LsT=>X7z4LFKl-0STBmKZgC#;o>(N6EgXMjFoxqZTtjsAd7N{1S|?ht8~+OEBA zsWY*zirqJ@66=-DH+H+!^m6jg-Unu*<8Qw5;>8>G%Fbu{yOrLP)mceTN!nS8UULWSfJr zlHvx)=YROy=?{?o-P==#kc>WoKB1&V43@rm{1jtUkUp{crd-<7A~DlLU1=@J7*`lR z8zY^5LHhNtuIl((XFt}nU){Av&lsx*l0Fxa#64O4sCZzB%)LKclfE%^7}4kx=o3mC zeXtz*Ae1^29HX+NUiHMDA%@mpYePsWcgcOUF_O9WM{REY_~%c5@5+1s+|emX=Ole! z52s;|rOvC&f4udIxn3lY9`^V52TPki;qg3D)}>Dv&)|b)>{LN}SxEEXwx=9QPids` zRlJl~yUG|7pKp06EnmJ}>$yIUaV&g!^hu{gIb42r+I%MIeM#@Xdd+_R*)Qrl*64L( zbxIp;pM+iX%R=ZAy7QTPpRi=3Tv>(=Qq1?E8{%EdecOdThrW+lw^XdDafGClHRl-h z-L^!0W2Do^^)u#QlCDd-{`w93<;}5PH5;9`R^OJQr)g)2KB0fCsd0pqYAZ{%h`}}q;rxkNczvDfdPL!mK}^S zkN(9h+y3qQ0e{Y0GTQ06@@dB6TED9teQeK4W7ADtAM@5#Z(}|;>vC-SYj4+Hw=2ff zbbRroqL1;bt&ib%mJYr*({wG{9w^tFFQoV<=3?HI(G`!Y68qk;(^os+*f)rz?i0*U z?2r4q`0BW?PM2yMv3dIPh%H}ie)KWZ_Ay*pM#$aa%}PE-Jh2t2v}QvdVtuSnZe1<$ z#+}^!`?N3m7{40&7_KZG+B>=HOfDszm`dcE=E!ZlzH*e3b7nhaJV1=pE5VZJW75>n z$1qrS@J%h`ycaTc8lkCALmhI8q=pI%0`ob>tndGbns0r#7v*~4%QI&7Mf>M?by0vO?kkfE8o;O zu^yrNlzTrZW!le|N1t?tE(d+glWE1qIV1+l4mk&L$Q%6I<*xNg#2Wexq=>0crR(NU zZ6i0G5c-&T^)XDt&Kysa0vHl~%tNcZvh*GNxt;Bd^)woQc=R#Lv&zA8X$O00D?8<;lS`EC2uj43+=@1Ta_v01&`n2>?Jq=L0?m2M1%u0ibfXZr#$IJ9nlI0~pNx z`}aGSJuz5rHk(h6kB{G_Q2=FaHk(hUjv<$|_T9U8?@k>C000000000000021^j~-_ VUwDviw!r`Z002ovPDHLkV1kL;p`ri) literal 2165 zcmV-*2#WWKP)002P<1^@s64xy=k00006VoOIv0RI60 z0RN!9r;`8x2r5ZLK~#90?cB?c6h#~d@Ndm7giQp3A*)e{9`xi%Jb^KW3lcOYK9++# zqOzOSc=KR9@?YR&LIMX55<+5pK{W9~f(JGpe1zK`NIVcSu0#@Cq|1XeG);APRdsb$ zb@lg?5Se~d|Ejuv)>QR001*)p5fKp)5fKp)5%rxYZ&+Mh+#!V66CxO*&_<)t)$w?I zDRdk*mY0`zXIZv0bR0xwlgZ>vdE0DxgAihm5aJ6zArZwT%d)co7DC5iBg?Xng%EFt zj)O>{dGN`N$K!58A&Sg+JjTk(O6V|J*|lpImY0`9hd~4YxP19CCXfHJdQb1 zA6E)F;$_*b%L-PNZE{WBW80MJq77`zaMc#BuWwUco^(L?_3qgEU|;m1-IycI`j8_|W=}d=J@#)0tV@ln04b_8P)p@$t zFlmb}_UXn2n0BeMIN7wsw`-4rJg-)iviXnHIBh}ke%@Mw2N<>87Ih*+mN!?UF#5arB;vtF+b0j_- zd@RJ)S!0WbC^pQI_;A^ch={yPe((wXb3zlLV(n8K(Qx#sUov;i^>W$G^yh^>wf#w{ zi*m@155Jb%{+Yp>0N%+q;jL49#aif?V#nO2TrUS7YQ_ZU#=;pnw{#SQx zRSZp?x9&L8d!iFxOfR>YS~w$THgCpm2pko_At^Bji3|cWsSi2KUFL3Ax!d{R)8;K` z)v>CMWb!t3)%DwynXBsLrf+`R)KRzNs^Y2I*YsJpUM}Bu_i6Ehd?5pliVTM#@F;-W z05$*s1ZIK;=K*t$*5DHe&m;TNb~Q z$1{QVrNmAFtV3Yq-Q6341{WA}m$~awGS7TWZbFx3bakC_M=K|V$+sup@!6K?)6ds{ zU!FLKJ5O)h2Vh?z+KrVb6|B! zk1&syL&ji=xjWq4^*;D?z25I?l=ksl!X#GRc&gTFZRwU{a=loe`OK|PftBxnJ-Phi z!qR#9Tm~Ewz%dDI7r?)=CSPXn;L8)Qi9dbDTeh^cbP)3|bXGod_rYtJ9LwB&Sm!U9 z=2N=-k7~-P+SjB!O|&UPH%?P^9n&P%sygaEK-Gz%9II_RbakIYnd}$8o!l=z-SHD1 zlM*jw5+?xsB?Tn@|KUOMn7h^2VeYo)W#-e=m^#~=rh!%a>&|QX+_YWiSXZ%{#?i#} zJ+Un_cE^v448TPI7vKF+elmLt2Qb26De)?R82|za|4Sjv-S)AX#?d5|+)d({50MY2 z_KI5o&H*@g=v%pE(+u8_5=R93^_+z$2CWC5rfF(whE`uv`}}~o0pK)%(;r-r^LHM{ z-=SkNHMG7wwED)b_24tKn>MuiQnSxq5!XV;U}I=~d1&>GU9xM{L_`!X4n6_J{^BLk z5HJtJ;NTNT{50f5z@|#e8AxrgwR&jfI zUsX9(=bJv*th=5nX4UacvDqlTVAjR)Gz`qcc2dp5#11tEH5O9DMGon!@X_ zof4O?Z>!7ceoCF4;>SExOEC|VUv{%mwf5VjX^LCdA$6z5RS!kGV7ipi)zSwI6Z7zX z*(v5B2cNr&zYtN~w5I*#V|~R|+}HH2(KKO9>k)frr}!}s)z>wRvk#J9c58abS@*fB z602V(rC3enIo58dkZ%%`q1r1WjV*Dq;^Y%mYW zMz04SUpGI7P8LH9L@LZfvcY9HA|mpRgAWlAdB?$rh={!7;6p@2-c|nKU_2iCjDsk+ z)z#I|A+)x-y2{+8XsoTRRqlIe@EMIpSF - - - + diff --git a/inherit_graph_29.md5 b/inherit_graph_29.md5 index 2299de1a0..536f5401b 100644 --- a/inherit_graph_29.md5 +++ b/inherit_graph_29.md5 @@ -1 +1 @@ -4a2e9a62abbbdb01edfb809e59c8b701 \ No newline at end of file +717a0b378e8312e7bed8033ffde56fa4 \ No newline at end of file diff --git a/inherit_graph_29.png b/inherit_graph_29.png index 39dd642348274a970b8d5c9619d4ee825442dc6a..e1fde03476ebace98cb66fd98b5aa03ff39d961c 100644 GIT binary patch delta 981 zcmV;`11kLH5ZMPIiBL{Q4GJ0x0000DNk~Le0002V0000p2nGNE06otvdXXU%e*=z5 zL_t(|ob8&?apWKjhGFN*xJuH;b+Ao&wt~!DANR6bMH<)&*7p)8gcTrx0NMM0GnvHL zhF>y@gpG3m00000001x#A2*!O=ilD@w;5spn9b>Q`dF6bU)c65zQ}w3=DmL(Ckp^O zJRXm~&bdEf+f$HiEX&ee5CE1~f0o7FZnvlQ(*!L5> z8*Gz(f^Ta5JM+0r4U*V!3lnr**Vz)ju;34Exc-f8pZQ#Nok;)~fm)Dw@4tTH_V7H_ zPW_JmrjFyWxtch7Ienza+04~K`J+}(>AsQYIQHb`Lax7B-;_vxOqAfgfB%sVbI04? z>$?7EkB_&u5Gv(TeRDOW^m6UW5sw$@=V+n)QLCrc7d_5#bWygq*x1UDa;s-Ond)0I zCimKwJ~ez$+lQ7fw8yXMZwnyjbORxWN+xm6<{~qtDRlI9Jd>JIPHT*uFGl!DbKdlt zgK9xCd!ofq={KZTYObNCe}vnPHSWv#qNkr~?Mcz=8FneRtYsDM3jk?9J&;U%jsA1} zXxYo@M=};?&7%3NR5D3RT5eqca!LhCA4l(qa-%c`^>Tx{k2{9M7d_5#bvY-?Ts@yv z_i`(@fGsUHA!sLKF6I8H9p%_xdp(He^ARLuSBlQnehU^ znx3P9AgRFG#IvU7XrSBzpa3$-C$qnmNEo3NCEPcM&Lq-z?;~k>kFWUwE;q*ZLmj^o zhYk`@#@dJ95G&eD1xd@+YtD9SPCvOmC0a^$=Ejtc!?lsRrZzM5@L$aKfpB)Pm|2sw ze0is?rM50ewo|9Ze{bn?BektUy4#?}#_$VwPip-a6W$jdkHl0a390>>Ji1S<`{H}G zCIdAgHTn*>fusUhlkgwkXv}1iQD``M)Pt%Shr6e0<^sINu9>=DDo9eLhm;WyszqzA zoUu^8NXE1f)Mm@A-v6z&`X7;1Bx6W+2Dg?kskN0vN9pB)e}&i1W-^J!)@urlt>#>v zQgVw{iPn^j9DTheV5+o}=$joJ8)kyUxxQPkOXpj+Y3JHG*J^2%>foUL62r>m=VG?p z0>BExGRdp$1vE literal 2150 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 diff --git a/inherit_graph_30.map b/inherit_graph_30.map index 9e9b41bd0..1745fa3f7 100644 --- a/inherit_graph_30.map +++ b/inherit_graph_30.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/inherit_graph_30.md5 b/inherit_graph_30.md5 index 1cda3f3a0..396c8070c 100644 --- a/inherit_graph_30.md5 +++ b/inherit_graph_30.md5 @@ -1 +1 @@ -1e99b0b4475e624ed776128a81a31290 \ No newline at end of file +33162b7a1cb2dd3f1fd22361651c1353 \ No newline at end of file diff --git a/inherit_graph_30.png b/inherit_graph_30.png index ebc7262aafe340f5bf60162d20100ec1de8108cf..486297540e37a8cd8a6537d08a5ca08748b60399 100644 GIT binary patch literal 2091 zcmV+`2-Nq9P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sjRPjXfUKx(}^)+VI!ovfR+Y4NKg^XVPj$b>{x{N*xStP%+9$={bIu05SRX!}VHxfb|5<+|#FD#;X>bkxHU^#UhebjaRi4fv=>NsdTRQd48 zpfEL=Oo9hQ6w_of!PeGR>M#abT3W*T`g-axXascmP$h_kh=?-9L4k;fW;iGi5z!0> z1tKDvDSA*4;*lq6vn-Q{s1!*Dh4wGt9DX57DN~0qlS6;de99#^nFH|^JyReeBEP&1 z3POn4zxMmh&sFcM{%`-Rdfl$uHYS^RZOYK;YO`%Ds{ZI3k7+-f&)Tu{?KfTD42_fY zQsgFcpxhkLetFG>5MtM|OV{h^&r-@=@3&u1-)mAW?WoGOjX@W$ZM(X(>ubhu6N{=p z`o`0@FH~)CZM$n7LysBlmQ!vvw_^_En*&jnk3uG|u56b&ZMPj#rjI`G)sKD3@p%kG z^f&brGdGz7?q#LO0WUKJAkP~@x|pU{AkEh)xn6;|GPO6vu`8v_c~C;XF$dC>+2(Cf zNd1eoO*PeO%4sR0&yv*ib)Py+O94KVQsz7;q2HJT>B?*ivV4@=m5J$wP~UPwu&pE1 zm6dMWA#D%Q-?^P*r6{4_m;-kEg*ujAW(q@=V}{;X(be0GNfn<>yfK!UY^JsC8-A+& z`qp9lnW+z5+T=S<(o30}zG7q!3@g)B@a3bfn@y%0QLeAM>bBk2$IUTc?NGhncgowf zZOqSx98(Si{p66F%mMxTx#a-AyhcPsGu~zj^Q3Fan&N6Uw|IzRV-EPkL7|7-PO@0> zE6&s^L&&u zMCvc{?;;sPp0)PbW=D&E*4|9{b*%o|I81k)1)wZe=z~$SOy84Hd zIi))}UB3z1r;RQrhpsGBy(O%xx;T4HJ|%&7D~XS!!0QmWFM$O-Z0_Fac0vLeSJMG7 zH(l$|l{2>7jJ|y2GNOf8oAj}!IAmX6Bf8HuPM3ZzeqdO9Y|q*6IA@suBEGsuhF(`Dc@41L^0EWccbp_I%M%qlLb!Cmw zFbIj#=&rj)ixg8`e>iB#%7Pa4{`H{Tc4jlvHanW@`>s{9D~3q0lWpEmcWA0 z-93=FdGUz&I&Q?ft*xz{z<~q7%4crwuES;9G393PLBV!v)&9(+*?H|Ln(rx~tF8m< z605F_Ht}_RZYry*-m$p!ruYZIWdN7Yd?TM-T*PrmoQA;50(c-L7RGpUxrw={uV_mNh_Kx@!zy$yoR<6k<0h|JGI&oM;(F`6G zx~4BD(xA5*Jqnu+gDnDP@YOVkH(Z&*$xWrPEd7<5MuUEwXN=dn|-_LZSLRq>Y%Hh zX1p%#4q@X9^~+UnMtvBeD5e^NK=sqWCx%UGk6yid{Zx@_l7vGur!@!gbYSTdt4#P35~x?R_oU!M_q`!BG{ZrGh=^u5C=e0RjP^$JWHN~v2T^d_+uNx_7;Jlco4H9|=whj( V1=Tle*pmPN002ovPDHLkV1j6s7*+rP literal 2196 zcmV;F2y6F=P)U-R~zM z+&;U{>~Ci0ck|5bvj-3n5fKp)5fKp)5fP1_Xufdz^ywW!hyy8tAxf<%iaWE}>}KjX zTr4du?Jvu6XX-d;yj1zIp?Q!H;(!q1^LSwq<)bXiYXBBf$Kj$Z%QHfVL#gAS@lxf- zQ-erlHk$ zT^GtHcbOyh@AGZYGZ7*pO3T|IB7}JSulag?zv^|>|IMFO+s$*E#$*z&Nf|nAbvBJf z)gG?#biFU;K9l;i^@XqQsgdkWIQ>deb~^35aNlcRNHp-vy}3Q*PGkbYjvvW znyPHm7Sw(xy^m-4FQ0XR^^5Hoj~BYw(@og-dmB0!!uxO6eq8@bv} z$)@dG+u5ZpVziUbev@M#9D*UV8*?PTvMSyNk<`D4n^aS`x}26iT$aeHZ6EJzYm1QW zwELbWSXgp&m`U$Q`N3>sBU1Y-e-Cao3;qC&onN;?o(ZE zOO!*AGIxE&$Q((VBf*!m+HRh8-B`2TZacT>dwtyO^HmSk>uq&1jmf5tzW15-2bVVE zz~Lr`++~jFU(Y>9_^=@n5jpcV6Pc2>DRPQW!@0#nlpE$qI2=SA1`hJzsM>&0@e(-Wg7Ou#- zXSd)jQR0Y@_~w&&@mcDaa>v{aC)IfeIfzg<4hDfpDNZiq^#V8|1wKHDZIFNjZlw;5 z#$jl=8)XpbdQeEUuWHEpgEsZ!+x{Ft*8@<^GHqgMySS>@RPQydvuPbwF?4l8Rasr< zZF|V8ZCiH@`}T#HPJAU_of9}LmvI~dyQIWAfK32^0{2ly4=D=f?l^PTr{IG~pQl= zHv4#H%chgd@>n5pQcAo5fd^7zBLIjA3>j;-i5=j@Et8)9eJz&TaE) zrmd`$Vzs}@-G6~!w!e*syLKKFz`G>?0RWE%kTz1H5CRuYEz1kR18s}r*YAD;eoGmG z6Xx!)b9WSjNZb0OjTjfCPpoa9V024HE@h?Q>l(UxVKcDjukZ2WKihu5EAQNs1@=SY z0f0Gld=*{*5+yD|;M+LSYT~$a`xJI>eJy1SwwSxa&)w*QNa#xY`sEYj;@HG$8js0+ zgB&_u8&$i+hW$f)68fHU+G@MdHnHmJXcAxB{;smx z&Z|34wQZxTU2LcQeO*2%{seFy!1?3X<;!yd??d22NbG^YeUoLbp=0jq&olJg^(o3s zq^nU(UhlfWrQ6^3K3_L|ZOe3t)i#bUHg$EmMt!$K*Wbpc^WqNx=K!2rye{{Z5=Vr< zQ3-4ZunswnWnmTOZvR+qEgV&eQ92t*>MXmO5jaMTn6xW>bQtf z>HP_+ZMu}(+MN$mt1qdYJu6B8HvrsNxFSD#elwm+9h0r8_2sG6H`>#tX3>yEGQ_oe#uWm>N7@iZN} zKHl7J_8(n;()D>=IlA{VSJUU}XdjZYVf!Ss$y1^AW12tfj#F*-)jY51)3Pz24yXK? zJcy_2=eitd>+@a5>dvpiTn%sXGm)wz_`U$HPtb(S^C1Pp)zhQ3$c- zs{1xceP7onG}}&XTaO$%B<0EHFVwbtFxlTc)+gqwJuYWiFzwK~#IP;5>qccx9f`)x zwlCUj+vbZ2=4w2giA2C}I1vp4bJZSaA`!&;RtFLF!(6q;K_n7(Mxt&xhY~h=`nV5FsKWXWARKI%VMR9X&Z4GN{YpFw_ks5M-5D^g(5fKp)5fKp)_3_0000 - - - + + + diff --git a/inherit_graph_31.md5 b/inherit_graph_31.md5 index 6aa64db5e..e6eaf7112 100644 --- a/inherit_graph_31.md5 +++ b/inherit_graph_31.md5 @@ -1 +1 @@ -df2df037d3f70a10ea578d912a1d7711 \ No newline at end of file +25cac058c41360728388d44edddabcef \ No newline at end of file diff --git a/inherit_graph_31.png b/inherit_graph_31.png index 239f621305a038a8fd5f1dbe18506be900d9c8ae..bce6aa3472544277c240a4fa83297bcf11b33237 100644 GIT binary patch literal 2107 zcmV-B2*me^P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sjRPjXfUKx(}^)+VI!n^0WA%9kf0)%!^Xn=*|9j@V{dO~=g-dU%9NE zi}m&O!(~|>j2#CJM^ip5)OQj>91%i%*DMC6yZ zK|u&H|F8ajb$iqMP5-a|yXkfP*rqX=#A{N9N?V;xV`*v+*LZZFGuc*;#kJj3ZPPVQ zQj3wB%z=D!K>6^R4I#v?WtXzHh>Ky2yi8{*vMQsx-s&~D6ucxBdk z8x&%HvDP(BwW?BDif~zyn!R>8hHfdqhg`}WgB;q8IS{YRx**F(sa=`qZV0)S6N2e6 zLS0#@_U%&l5bd2>AIn7!?ZzB1`&_7V>1C$SWjUtnjTO~#t1&gjXA*B8%S3!EJ zZ`;0oZtHSRIS{x>Avc)=>i1L20Y1D&L_~AmW(s4{Hf4=*HJe&IM15lp_`^ZLL28|> zuXs|cH_;4pz#lFj5fRbc;0J{qeu6iXL##Q(NO{PqFXa%cuNbpjKC=1wTi?^Yu0PH5 zQBD`JALL8T%J=fsLgF+e{T8R)G;^1>Fc;z4hp2lFL!q<*X4`FKAe^k9|(zq z004o_$YIeyq@J6-3<{=ybEIiBZu;wr)$OL`w3TTSOWVn8immChrgb*0V^a*ePS;eH z?zky;n3A|fKd?W>4hrmM#EMTX)`)B(J31C=N z2f*C4J&vlJq2*@p%SSdNT8OntA8U$TKI>~l_qoPt)6Urs42zHLJO7)_z22E^u14C*8mfOE09#MLf%5q32?)F= z00{vB^QvDse?wjf7@}5LK752bmt%(Dgt?hlZVqBlXj|X2(Z>ns5^LKPNPQYQo0b%gdY=P@2aV31DEg}5;)yH@ehhxTIi@BL! zZuUMXgs!BoD~di&hE1%d@u=2EUCJ7oeexm1?H}%Ze(}`uhd;_EivMr|0%rv97JyO$ z3qp1GK;ri0W8&+6Bi?OoZS52e9ST-Hb947GZ1x>eZU!F|Os7`$Z93J)t54Bk#GA`i%uV%i z#+;kI%oKEuVDi51hLCD|+vjwzb?=+(>nm2LFc8}FI4xQM!IoQrl#Jj{Zz!Dyg|RjE*y>Bb#)c>X z{24nATVw01W2oJsiQ<{d-zf#VtWCw+MBQ!ON5JK5lvu(Q1Rk!Po*;ZzKAKRN=s$hFiNeXdPgnbopPJFUr+iKcPu zV(Y4YT+=5uZQF#xV_q?@bdsGZ*l=weUyVBJEWS^Y>r z)bc9XnL<|~8cbDY^#qx8oVKZ|OUKjwy%b+uuG&JzL;Yi3`IlN=4R%ln(O@QjC&qRv zSk)!rLQZp2>$DUP^J@5cHHhUSowl21zRT22?b6FmqW}z>(Q}|F*eo7DX%3aEN zmF!GGcax{>M7K@*>QmDCelBII_V>vqZrzPLo2wt&dT=mE8}mwieCE}TWCw+MBQ!ON zYomwQX3DhF`>L<59r-0bF3chMuU|qCjS2H=uh9<* zIdy`ZVx@7*sjub~Yah6LL_|b$92AI%XpVyd5fROCP#_|rIpvM!$z;-J97MrwZEeL4 zp|h>6E#@Y9p~{CngF;ahcgwQ8Hl0p`2SwDkq9|_0j=@z?6gRiGx3Rsw9Xk{nh@A6* lh=_=Yh=_=Yh=_>d`X9rO`P^v;k_-R<002ovPDHLkV1kgm{vZGV literal 2195 zcmV;E2yFL>P)VrYy&rHPzB66_!$7mbC5QO|_f;We5_4%o3_ac`NKotd54nce+< z5+nQW?(8%3&U5q5?7J^OL_|bHL_|bHL_|b1exmup>C>lo2q6xn2!<%NqA2dnX0w~A z2>vNw?eN279RGx3!OkIlHWsZy|N3;(cx)4Ham`a(ptA9%=H@x25u3oEC zP1jUq+s2@a*S20J&Fj_Uw~0m79=`GTwndD6HgT!y-ldMDms9T6k7JIQ#t^9GkLrg|e+ z+bOxUoo_q)v_&876tdss*awGT2<^rk$*-(Rut6mCAL1s})U7V3r4OGavT8fTd8W3A z*-pOo(aEh34#g1KjX9!@%T%m{a+c}lS=)^@*KO0aZO;vHvoBOVRIi)rWE+!99YgQ4?GHX} z#(~364!O%5(Z8O1j__eaA|mn@Y$h@#rYUlYPs6#zLzEllNIV=wJml8ta*Ky3H_VZE zxST~qMBYX}hz#K?iug&`RSa#N zP*qmjbxjX>skYlqd!N9vh>~Q0Fzz4fV&-HA!sCYCEn=XUt(> zX!Z2g%_o=Tu|ndclz0OI52VB<01y)xI82zk)6HFz(cBXW(Lgar>#o;nc7kT-cKI}8 zDl4S6>-5#$Htzll{IdORJlwVOpa9-20SEwiG=P{$i9!fmIJGP!>AcU@T_*~FZK7q$R<{`ww2{`33~c;%gY zvcP^wJOD6Eq3D ziPbh9-TJLhSzWnYCyQiwcn{*|FMhxH@xg^-U&@y@ZNecbaa0KGgT%V_K8S#Xz{;h0 zakb}=H&|R;JdEAjqLt6w-FOX`V~3WzE}{=2wo|$0zBcv7Y)%P7PdQzg-e{Ltb#=6f z&$QoWnMrqD-EpezF7JKnWVw7${0ZPZfb++%%a`W_-iN@4kk|u(`!>s5L&x0JUuWpK z8&WSbk+w#$dA)5JM7Q5`UfXut>o&)Riq$oaHZFDbd5_x8b&VmVPv^xS0L}q8w|HId zDy2jBaMDB((`ky@^3hCm!xP56}oY`>;FG}D|NL&W+ zcj~x^QtA8&$~0Zd?Gt4PQ>!njojof`05<^KShylTdTtAzO&yb~srBWl)weI52a%~Y z{?zJA?XDgc>j3Vij>FZ|`tsE3+ZQfp5fPC$4k8`o^spQeZN&WS2L};P)mQ1*QHjC{ z{j3P{Gd>O?3S;SbuJss8y=mOW(oe^dpBzMLgb-d2xi#P1YPY}{aUxL$|Y4P%VB={A0N}?2NA%3N?F(C6G6=B@{l_x z4V$T7`~0RA^E1!%UwH~>3PRdtXUo`b=(>_&MP0Y`{a5>9??KE0-oatQKn|y8CM18U8 ziy``amzZ?>nV(^CCeni(zCl4mYRu1WI1}kXU*GT`B6rNsZa9eagdLM8U(8Q`T+SjQ zB5xc-h=|A=2N5D7^2R}gh={ytZ>-N|vp(Y>N^W&^HFXG`t*)*zcPR>8empUV6h(2T zEX!*vD=X21BFars6gN}H;HxN#n`>)pSX*059SV)qkn@9xh=_=Yh=_=Yh={0*{{Ybl VRyHw0%^v^&002ovPDHLkV1ixbQ+xmb diff --git a/inherit_graph_32.map b/inherit_graph_32.map index 5482b335b..c29fede12 100644 --- a/inherit_graph_32.map +++ b/inherit_graph_32.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/inherit_graph_32.md5 b/inherit_graph_32.md5 index 5d7f4fde6..34c7768df 100644 --- a/inherit_graph_32.md5 +++ b/inherit_graph_32.md5 @@ -1 +1 @@ -d8d424cf390864de852af54e27e9f159 \ No newline at end of file +e6a7c9f115de0177f2a2b8ab0cca2294 \ No newline at end of file diff --git a/inherit_graph_32.png b/inherit_graph_32.png index 4d8da6cb9e1f21a2f80361ac9041d328720d40d3..f37f40968d0b5bf0cc05fb2729f1bc54eb4597b9 100644 GIT binary patch literal 2085 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 - - - + + + diff --git a/inherit_graph_33.md5 b/inherit_graph_33.md5 index 8bfc38fb2..771199d46 100644 --- a/inherit_graph_33.md5 +++ b/inherit_graph_33.md5 @@ -1 +1 @@ -f2a2fdb548f0966dd9163cc5df64ba50 \ No newline at end of file +abbe824705e7837529c574bc150c57db \ No newline at end of file diff --git a/inherit_graph_33.png b/inherit_graph_33.png index 8bec8e563d38b757ca14f0756125d836debd9af9..eed7b5bc16d33630caf3152e87cccfca9f5bb315 100644 GIT binary patch literal 2107 zcmV-B2*me^P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sZytWXfUKx(}^)+VI!n^0WA%9kf0)%!^Xn=*|CW4Wp8h0cV>3}?e6yj z$K89oZ}vB{^Lw*1``!UWL_|bHL_|bHL_|dGME!}?)zv*hhyy8tAquT1irbUPT&(prZJhsYf^?zQ=Ls?QMHF_JZ-Nt*;bFmwcT`W(=|@g zOOcz*f&S)z_RDKFgb>@7U78-x{+3d1d%pg7_FR=}X-8GIX$-n}P3zU9e!Ob@Cb6j6 z!!;h)woui0+8)fm9!-WP1f-tF68v&Rt*19D_cz8*?CCnRVU< zh174Xb*iaWRZdG0E=y9g$1cZcTMF=@FJ+EFAKHyMkgm+SAj?O&U757q5OOUi1k+=L zy0X&k+okRy+B>&C))#$fH|BuZ>q4DNFEfQM%Q0PVtmuwgjY$=sNxU(ZnM|g&^&5Vw z*SQ|UbX!{++SJK+oTQgBH+{v(9Ozc2t>DW?O*fm`ZbaEWZaTK>vB#x5V*-9H<<(a=X1*eetC_Eh~~V_6vm`!%9`S8Hn(_)Vq*^Y!$HA8Zk;Sv zJh|1IXofl950{UKh-hx`gF+uZf;ZELSo;to^+TWfQXgXV6=N@#k8D2v7JIta^`m({ z%IPBY7x{9t@|}FOkT?#BKQA5<=Tpa%JLYCMv5wozL4n%w&E4I~RrzAE3&*9z2SQ>m z06^eE;;?8Sa?i~ugM#V*98rzNs{gK7-ELY=Q<*lgG@VRUY^v9q*4ea}_s9b83*e*#UV+420qh0<3Ea(p@xTpplet+Jd{F4}tw`0rst#cD?MmJ8 zyOcSj>zuaV1a+ySP3O>+)pp!ItgG5MeN8?kfp-gukEFos5V$Xa1w5?o?%94q0vJ}+ z0WddhkE1JRXt^1E`N(EO3$ZroV@r(a-8}}uXkpftC6O%hU%Ytz~<9$pgg>K1Oo2~ zKte#kyy|C8Uz2A7hS;hs??1q;iz!2J!rbgvZVqBlXjf0h&#XjJe4mk|0N_2%7?Q90b%gbY=NsNaVdPH4I%vW<;Qpu`%}hXi@Djq z+>Aabgs!BoD~cE=!zNbKcy#NdE@chPE_ol~=J&TgJ9}*T!yn`m#lJWLffE9F3qUD> z1);lpAaV2JA@Nn*h__o?TRVn*`+}9v+}wT)n|+6ro52SK)2UT`TbpX*)u(8_r+~Ja zPOMF=x;mP~*R;K@tfu1*#icjJ-vBNHxP0ns`Rw8%jzZ!j1YQ=v11YgE#GA`i%uW4q z#+;i`W(sYMVDfz14I$n3rq{JSZhPKjUth7>#?i*6uBoqFLc4re{086xfD3Ei$QK?g z;JA=D1>kuJ+!JCL%d9HQ&F-<<#?dBqZVtAy6S?^G9q|i*a{$h*T$4)zI04{f;;@LK z={zVjO<#t1g*mqRj@jpLiyHuLY;4H0zrTiOQpaO!Y<+cX^$n%-pfI+^9$S40*w_#y zfIm{lVQXxCb!_zwW$^zcm57MUaZpHXh@b2sN{Knu4F`q)rRYerkC(9%(-1MI`iX-= zAVcYtw)GfFy(vFK>07zyRMvw+y)mkf+qTVqRAtt;&Hh%EsVYaefAuxCH@!@bQH{kk z)~;q(U8d#Q?oV+srYbRh_pf zwyx^OHT}k>ZJSVd%qiwno2+LFO{yo|^@Me4SY0Cc>>82w3t)&uj?wu zoXUEp;41c;Q1v94UU^l2SD$xH#A;cgI z)y=WvQe4cb@#Iu*mydu)qj^(9HFb&*S3hmjyQX+er-e;71bwre#)q2rQyk1G^<$rM z&#A0u3NAN$nx=hiQ^KYjRkkN2#9C_!{d#dBw#!2~NPHiubIki*PgF?MA zRE=Z$T-!FAa(vxPYuX;FUM6iy!^NC3f9+Uvs@Ka$W5Q4H5c$QNQpTH#bv< z(AnnZCUcX#(B;F9L7^y$+hti^nNFv{gCdHpD2nT;V{laz#r3VNEo^OVr4EG#qR;t2 lL_|bHL_|bHL_|bs{Rbv(7t`!gnQH(5002ovPDHLkV1m487ytkO literal 2299 zcmV+K~#90?cC3g-bNkA@y|RP)S^N;Apt^_S_#n;rp2vC#s z5Gf7W&7Z&#aV000000000m9n=2e(xppZH^#g)MKHjUS!+MJdiCmG zrj8@W-rnAssbc`fa(H-nt^M7J_7}#Omy9v*j1v;DDrY4<(Fo^&J^?Ee9xS&G4i1J5 z1z3^GmoHBpLT`I}d)nRIojMF)Ft=~t*5ToybJ=F(SO5T+9R^DP00I~+0RRYKumk`g zVAg}BF;D#RrOGt%f4TdY;{xWifHN%HF4p7++0&LUTRZoABTsj&{O*&L1sZLhwxYE^8ooO-}%b4?92)iiC8Gqt<@Tw*)l zz8G>p<(8*QZFO+%=5Rb{d+xYW&EZ)0HOMqfqYV;ds#Y!q(jOidDs2&*KW!_p;U~tJ=$K=;M1_ao9&?+@u{DEdB<*B;^BZ&<#2uPD^qMtDP=6Z zEVe%6?6ajd(z&XkPoV8}e^1*>!%GPO00<~{Ww|E4DVQnFuxg73SPRJhh`w7!G~HL$e$#5k>`{p9{aSUpcYS8N1PW zJ<#s|j^6L5jS5RapU}@JgJtN4zpiE51Ka%JY;%3z>zYD8Xl|#O5{s|0xngr|8(Zes zGP+_2H40Z+p?rNm+D`pk@>uxFoRf|(p3LsT=>X7z4LFKl-0STBmKZgC#;o>(N6EgXMjFoxqZTtjsAd7N{1S|?ht8~+OEBA zsWY*zirqJ@66=-DH+H+!^m6jg-Unu*<8Qw5;>8>G%Fbu{yOrLP)mceTN!nS8UULWSfJr zlHvx)=YROy=?{?o-P==#kc>WoKB1&V43@rm{1jtUkUp{crd-<7A~DlLU1=@J7*`lR z8zY^5LHhNtuIl((XFt}nU){Av&lsx*l0Fxa#64O4sCZzB%)LKclfE%^7}4kx=o3mC zeXtz*Ae1^29HX+NUiHMDA%@mpYePsWcgcOUF_O9WM{REY_~%c5@5+1s+|emX=Ole! z52s;|rOvC&f4udIxn3lY9`^V52TPki;qg3D)}>Dv&)|b)>{LN}SxEEXwx=9QPids` zRlJl~yUG|7pKp06EnmJ}>$yIUaV&g!^hu{gIb42r+I%MIeM#@Xdd+_R*)Qrl*64L( zbxIp;pM+iX%R=ZAy7QTPpRi=3Tv>(=Qq1?E8{%EdecOdThrW+lw^XdDafGClHRl-h z-L^!0W2Do^^)u#QlCDd-{`w93<;}5PH5;9`R^OJQr)g)2KB0fCsd0pqYAZ{%h`}}q;rxkNczvDfdPL!mK}^S zkN(9h+y3qQ0e{Y0GTQ06@@dB6TED9teQeK4W7ADtAM@5#Z(}|;>vC-SYj4+Hw=2ff zbbRroqL1;bt&ib%mJYr*({wG{9w^tFFQoV<=3?HI(G`!Y68qk;(^os+*f)rz?i0*U z?2r4q`0BW?PM2yMv3dIPh%H}ie)KWZ_Ay*pM#$aa%}PE-Jh2t2v}QvdVtuSnZe1<$ z#+}^!`?N3m7{40&7_KZG+B>=HOfDszm`dcE=E!ZlzH*e3b7nhaJV1=pE5VZJW75>n z$1qrS@J%h`ycaTc8lkCALmhI8q=pI%0`ob>tndGbns0r#7v*~4%QI&7Mf>M?by0vO?kkfE8o;O zu^yrNlzTrZW!le|N1t?tE(d+glWE1qIV1+l4mk&L$Q%6I<*xNg#2Wexq=>0crR(NU zZ6i0G5c-&T^)XDt&Kysa0vHl~%tNcZvh*GNxt;Bd^)woQc=R#Lv&zA8X$O00D?8<;lS`EC2uj43+=@1Ta_v01&`n2>?Jq=L0?m2M1%u0ibfXZr#$IJ9nlI0~pNx z`}aGSJuz5rHk(h6kB{G_Q2=FaHk(hUjv<$|_T9U8?@k>C000000000000021^j~-_ VUwDviw!r`Z002ovPDHLkV1kL;p`ri) diff --git a/inherit_graph_34.map b/inherit_graph_34.map index 4720ae9e7..48f5f4baf 100644 --- a/inherit_graph_34.map +++ b/inherit_graph_34.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_34.md5 b/inherit_graph_34.md5 index 536f5401b..29a7c29fc 100644 --- a/inherit_graph_34.md5 +++ b/inherit_graph_34.md5 @@ -1 +1 @@ -717a0b378e8312e7bed8033ffde56fa4 \ No newline at end of file +f7aa44bf8a8b330a48d3ef9a82b8e122 \ No newline at end of file diff --git a/inherit_graph_34.png b/inherit_graph_34.png index e1fde03476ebace98cb66fd98b5aa03ff39d961c..be16e6c6451ac8601397243883e6ba3775caf652 100644 GIT binary patch delta 941 zcmV;e15*6i2eJntiBL{Q4GJ0x0000DNk~Le0002N0000p2nGNE04^A8j*%f1e`iTV zK~#90?VIh9;~)%%A#-J1CELe!kfuDTU}vt6`;%004Wxp2e|d)`fF&UTHt#c&*+2|> z!Ilvp>l^?800000U}k)ralKxDd+$GbhylQw%jNQaS(blc-mmx~@BN4O{I-^>DV?^6Gbnj zjvS>nQ?;b}L#k)59ObuIi?rWzeN(HmhU{h;2k-rlFrt*+zOU>0BR@`We|aIPP$gA2 zRYOiMwOu7*d!c@cmQ;U8^+@|7)dp_cxi)I=nS>_ckY${mtD9q!dTmXe8hxPEkCJ*c z@1aG1*Pt>II5*}bE~jaG%ZBNmNJ1?Rd+j~SDx1|arsf2_AEcPn@EKw?v`UbKSX)|R zV=wH~;3#!EXA};NHY#W>f5o9(K8oHJ zVG|`(i5Cx2<)k*KzwPxQr%l>AYcUUpN)yDr$s;#ivP~_kF`?CJM=D<$#+0sY`CH9B zJybXZz>!cJ31*@chV+l*ve(X% zO|Bhk8&lUv-|QCs7qe}MwRVPXbAp4l_S zEp?yT338zUmlijoMr$eD=n-DTaBTL_IZQZY{kGMrzs0D)vB5b>S{q*E<~AH1dz1Gb z%d*`@0;^-Q8b^<*I=Pf4g&eK9Hd6FiJz%-ei=(es$ksI+f6_jR%Q<>nDpzyVIR~Xq ziB_%-3fhYVqi?tk6Al5;3$u}6wzDW_Z|?}JOjejV!5KTN#M#?BVl1x(!XYp{Z~`zr zZ~`zrZ~`zr*@^M}es8G*0CS$tXEHzQ1h?DGObh@300000000007=$mOASuB2Bj%I< P00008rTZf_YxjdK710000005A_9H=NJs-`@MT8DapK&FOUdSeE5q*!C;F$b0|hy?-Ak3jjMj z9*@7yxj$jsQ;=*d%hFvC0G3#mf5qKyx2N{g1T6sU3IquN1rQ_v6hM#wP+-?V;{DSb zY?FP0Z)*KJ^SMk7lGtzy6LekI*%H36;16xM{*7&)`CN9LNdOpuT9A0}zkcHO@I2K{ z{f_^pj^nYpnmBqneWb|Q%+*5qqgGGpzLDoR_T=V5uD@E}lt_L|l;FMpe~}Jz$J^iQ zy8dX7kGHlED&RU1< z_u7^|HGELphn6q2$FJ#c3n1ro10jb>CUMT@A~U5abo6#SlbTXaYmA&PM)*l{-t?M- zYC$r4qQy|@H>6i;uA!!cf7^~V?#ub2r=M!=Nzv;Wb}6^4WfkrV0BJuxkW74y{&W3k z*~{riG8SjeqWP>;GD%BXZe0L!N(D+ENAHMoqcjHfa)Y{$JBGv;J?U$DI!~KHF8f1;CL|f6FAVM6S%4@dCh_ zo}+;vsleLAv!>^0pxgqW05ZuZv%i%{7@-v<+&72LB+_^9BWZb$ulWHkH^%lu9lsKX z4iZqt+K1l|E80v2Nz2x2&UR}~Ke;|7T1s~2#*~i3wUN4}HZ%0_U(EJ_aCWemS(CJU zd8e+Wwk}AvQ>Vsnf9Z20wXH(B+n~nA@C$cOYW)`z-WMK^#8f5;sr{Nfx=*e9;(N6w z12rKv`VO~&qykuz@E_l3%w&>LXgGP)gQ^*ayQgaA0=&kqnYv#pNK&PTlo1cAMQg5{ zu~5E9#E(ijf7i}tGKt34YYL66=3Jdp za*I}p)|8DLeZ3}NsD1aaVpa6mdfC2~-016}*?$_&e zqz(Y4bHCroD)wZMTrQVxVgLXD0000000000P~ksBpJKoYq|r_Q0000 - - - + diff --git a/inherit_graph_35.md5 b/inherit_graph_35.md5 index 4b42c07a0..1b65284ab 100644 --- a/inherit_graph_35.md5 +++ b/inherit_graph_35.md5 @@ -1 +1 @@ -8d3bc5bb3204ca7f516d3c05bfdc26ff \ No newline at end of file +3f0ed9bd866b4175ffb1f6a4557d8f83 \ No newline at end of file diff --git a/inherit_graph_35.png b/inherit_graph_35.png index 486297540e37a8cd8a6537d08a5ca08748b60399..16877926ac2cc40c13835d6ff9039eb89a34d1c0 100644 GIT binary patch delta 793 zcmV+!1Lpjz5T6DiiBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e*)A= zL_t(|ob8(3aqA!ug~5|DZYAj>9k?mR72KKIM_%kI(tskr0yniW^x6s8W85O?a<-_(wNxTKu9E#d=2WT=mPj^|ent!QT)&}D zDgP+`_KvINKB}MbZ&Xrme~IzS7RApI#M5P|n5`AMt>>k_srR<_LFv2JUK3&MxaGPL zKYPJq?7_@dT1dba$zF+)Fj^ykrZ?SQAhHg)g|MQqLXa+jI7>#d(jqK}?bRa>H%p4l znEH24PP-`}#{Z~Im#^?v=FvV@bt3cIQn*rIZ7YyJ4%=%sO81qvfAr+=Z=hPmrY2p6 zE8kr9dbZzCY^1g=rLJ!w_D54HRw1&Uhm#UV&x2|CoYVRR!jG$Ee6{^!GonId@i#o` zJszoTE=Me+B9aL*k}h)5g5yE$wPi@7xIF3#|FGuaBxg@@`wcZ!hP9qX)I_qF-fx7I zZ7$R;Hnnug71^|kZ_A@rWFG#NX=SNmoE1}>w46zEE&m0+2gHIb0OafM3zDN z;lF~oJV=*79Ec2v1Car7ATl6Mw(!4RuY39d7T|urC)=|kyId|}&Hw-a0000009cG~ Xg6J)sRZW`W00000NkvXXu0mjfRGxtl literal 2091 zcmV+`2-Nq9P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sjRPjXfUKx(}^)+VI!ovfR+Y4NKg^XVPj$b>{x{N*xStP%+9$={bIu05SRX!}VHxfb|5<+|#FD#;X>bkxHU^#UhebjaRi4fv=>NsdTRQd48 zpfEL=Oo9hQ6w_of!PeGR>M#abT3W*T`g-axXascmP$h_kh=?-9L4k;fW;iGi5z!0> z1tKDvDSA*4;*lq6vn-Q{s1!*Dh4wGt9DX57DN~0qlS6;de99#^nFH|^JyReeBEP&1 z3POn4zxMmh&sFcM{%`-Rdfl$uHYS^RZOYK;YO`%Ds{ZI3k7+-f&)Tu{?KfTD42_fY zQsgFcpxhkLetFG>5MtM|OV{h^&r-@=@3&u1-)mAW?WoGOjX@W$ZM(X(>ubhu6N{=p z`o`0@FH~)CZM$n7LysBlmQ!vvw_^_En*&jnk3uG|u56b&ZMPj#rjI`G)sKD3@p%kG z^f&brGdGz7?q#LO0WUKJAkP~@x|pU{AkEh)xn6;|GPO6vu`8v_c~C;XF$dC>+2(Cf zNd1eoO*PeO%4sR0&yv*ib)Py+O94KVQsz7;q2HJT>B?*ivV4@=m5J$wP~UPwu&pE1 zm6dMWA#D%Q-?^P*r6{4_m;-kEg*ujAW(q@=V}{;X(be0GNfn<>yfK!UY^JsC8-A+& z`qp9lnW+z5+T=S<(o30}zG7q!3@g)B@a3bfn@y%0QLeAM>bBk2$IUTc?NGhncgowf zZOqSx98(Si{p66F%mMxTx#a-AyhcPsGu~zj^Q3Fan&N6Uw|IzRV-EPkL7|7-PO@0> zE6&s^L&&u zMCvc{?;;sPp0)PbW=D&E*4|9{b*%o|I81k)1)wZe=z~$SOy84Hd zIi))}UB3z1r;RQrhpsGBy(O%xx;T4HJ|%&7D~XS!!0QmWFM$O-Z0_Fac0vLeSJMG7 zH(l$|l{2>7jJ|y2GNOf8oAj}!IAmX6Bf8HuPM3ZzeqdO9Y|q*6IA@suBEGsuhF(`Dc@41L^0EWccbp_I%M%qlLb!Cmw zFbIj#=&rj)ixg8`e>iB#%7Pa4{`H{Tc4jlvHanW@`>s{9D~3q0lWpEmcWA0 z-93=FdGUz&I&Q?ft*xz{z<~q7%4crwuES;9G393PLBV!v)&9(+*?H|Ln(rx~tF8m< z605F_Ht}_RZYry*-m$p!ruYZIWdN7Yd?TM-T*PrmoQA;50(c-L7RGpUxrw={uV_mNh_Kx@!zy$yoR<6k<0h|JGI&oM;(F`6G zx~4BD(xA5*Jqnu+gDnDP@YOVkH(Z&*$xWrPEd7<5MuUEwXN=dn|-_LZSLRq>Y%Hh zX1p%#4q@X9^~+UnMtvBeD5e^NK=sqWCx%UGk6yid{Zx@_l7vGur!@!gbYSTdt4#P35~x?R_oU!M_q`!BG{ZrGh=^u5C=e0RjP^$JWHN~v2T^d_+uNx_7;Jlco4H9|=whj( V1=Tle*pmPN002ovPDHLkV1j6s7*+rP diff --git a/inherit_graph_36.map b/inherit_graph_36.map index f30010318..abcbd3796 100644 --- a/inherit_graph_36.map +++ b/inherit_graph_36.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_36.md5 b/inherit_graph_36.md5 index 1b2c4b5ea..fcc269cff 100644 --- a/inherit_graph_36.md5 +++ b/inherit_graph_36.md5 @@ -1 +1 @@ -b9f94ecc0145ffdaf146aaf3939031cc \ No newline at end of file +9c11b24104c113864f00ea1a4bc6b5bf \ No newline at end of file diff --git a/inherit_graph_36.png b/inherit_graph_36.png index bce6aa3472544277c240a4fa83297bcf11b33237..ebd6ad5fa82c519a3f41c741593f204405216bcc 100644 GIT binary patch delta 866 zcmV-o1D*W45a$LViBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e*+vz zL_t(|ob8+KZR0QuhQ;8wNM_6&i*}!wPBv<~=d&U;uc>IQ zjhK_o_Mk$c-$f%WNRzXnR*p*#yH(QVY*9^Wt3=zbl>8oZsx^j4Bx^}Otqb(nxUNni z{W$v8+EvnztEYdBOXw}pe}CEH=-GmLx=bx*a|_+l^VHbfzNKSu#?H0poG^D>a$k#{ zwO})LFtaT!G!TnqXCmbor4eAIH{Dv`WEDs|!Vw+I1?du~Gdz-|HcTaCA3aK}z;Gus zCjU)RQf`PNIpd7BbV-+Ic!RQ>$yP3^PG(C;q*7n5Y{wqE?Kv5#e}1X*n;7yyRZjcFi;^?qoH} zhMc3u;F3=-rC$qb9!9R#D|CO$II|+|Wd8RyZXb(QNy>;#PsxbhVm~LnYtDyCx=f`D zPT!Ex5|hxYyhnPuf6yu`)wf5wR9*PHYaU6si)!vQ4%`RfuJyFW(TZwXblE4X{hr4u zN#T~mMR0od5s; literal 2107 zcmV-B2*me^P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sjRPjXfUKx(}^)+VI!n^0WA%9kf0)%!^Xn=*|9j@V{dO~=g-dU%9NE zi}m&O!(~|>j2#CJM^ip5)OQj>91%i%*DMC6yZ zK|u&H|F8ajb$iqMP5-a|yXkfP*rqX=#A{N9N?V;xV`*v+*LZZFGuc*;#kJj3ZPPVQ zQj3wB%z=D!K>6^R4I#v?WtXzHh>Ky2yi8{*vMQsx-s&~D6ucxBdk z8x&%HvDP(BwW?BDif~zyn!R>8hHfdqhg`}WgB;q8IS{YRx**F(sa=`qZV0)S6N2e6 zLS0#@_U%&l5bd2>AIn7!?ZzB1`&_7V>1C$SWjUtnjTO~#t1&gjXA*B8%S3!EJ zZ`;0oZtHSRIS{x>Avc)=>i1L20Y1D&L_~AmW(s4{Hf4=*HJe&IM15lp_`^ZLL28|> zuXs|cH_;4pz#lFj5fRbc;0J{qeu6iXL##Q(NO{PqFXa%cuNbpjKC=1wTi?^Yu0PH5 zQBD`JALL8T%J=fsLgF+e{T8R)G;^1>Fc;z4hp2lFL!q<*X4`FKAe^k9|(zq z004o_$YIeyq@J6-3<{=ybEIiBZu;wr)$OL`w3TTSOWVn8immChrgb*0V^a*ePS;eH z?zky;n3A|fKd?W>4hrmM#EMTX)`)B(J31C=N z2f*C4J&vlJq2*@p%SSdNT8OntA8U$TKI>~l_qoPt)6Urs42zHLJO7)_z22E^u14C*8mfOE09#MLf%5q32?)F= z00{vB^QvDse?wjf7@}5LK752bmt%(Dgt?hlZVqBlXj|X2(Z>ns5^LKPNPQYQo0b%gdY=P@2aV31DEg}5;)yH@ehhxTIi@BL! zZuUMXgs!BoD~di&hE1%d@u=2EUCJ7oeexm1?H}%Ze(}`uhd;_EivMr|0%rv97JyO$ z3qp1GK;ri0W8&+6Bi?OoZS52e9ST-Hb947GZ1x>eZU!F|Os7`$Z93J)t54Bk#GA`i%uV%i z#+;kI%oKEuVDi51hLCD|+vjwzb?=+(>nm2LFc8}FI4xQM!IoQrl#Jj{Zz!Dyg|RjE*y>Bb#)c>X z{24nATVw01W2oJsiQ<{d-zf#VtWCw+MBQ!ON5JK5lvu(Q1Rk!Po*;ZzKAKRN=s$hFiNeXdPgnbopPJFUr+iKcPu zV(Y4YT+=5uZQF#xV_q?@bdsGZ*l=weUyVBJEWS^Y>r z)bc9XnL<|~8cbDY^#qx8oVKZ|OUKjwy%b+uuG&JzL;Yi3`IlN=4R%ln(O@QjC&qRv zSk)!rLQZp2>$DUP^J@5cHHhUSowl21zRT22?b6FmqW}z>(Q}|F*eo7DX%3aEN zmF!GGcax{>M7K@*>QmDCelBII_V>vqZrzPLo2wt&dT=mE8}mwieCE}TWCw+MBQ!ON zYomwQX3DhF`>L<59r-0bF3chMuU|qCjS2H=uh9<* zIdy`ZVx@7*sjub~Yah6LL_|b$92AI%XpVyd5fROCP#_|rIpvM!$z;-J97MrwZEeL4 zp|h>6E#@Y9p~{CngF;ahcgwQ8Hl0p`2SwDkq9|_0j=@z?6gRiGx3Rsw9Xk{nh@A6* lh=_=Yh=_=Yh=_>d`X9rO`P^v;k_-R<002ovPDHLkV1kgm{vZGV diff --git a/inherit_graph_37.map b/inherit_graph_37.map index 31391d52a..771f4c431 100644 --- a/inherit_graph_37.map +++ b/inherit_graph_37.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_37.md5 b/inherit_graph_37.md5 index f61cd2654..5a01b6c80 100644 --- a/inherit_graph_37.md5 +++ b/inherit_graph_37.md5 @@ -1 +1 @@ -b9badc6767655093ce88116ad8f421b3 \ No newline at end of file +a34906e43815f91658a90df70c71a243 \ No newline at end of file diff --git a/inherit_graph_37.png b/inherit_graph_37.png index f37f40968d0b5bf0cc05fb2729f1bc54eb4597b9..ce0880e2cf45255d9db55cbebf28905c282f3885 100644 GIT binary patch delta 834 zcmV-I1HJsE5XS}~iBL{Q4GJ0x0000DNk~Le0001$0000p2nGNE0G{VcypbUke**kT zL_t(|ob8(7k=q~;g~5|DQpxp^4&0Q+6=WuTPU@StyVN$+@EFVa&_0VsV!?!r&ay&%NfpE*2V^zshpc{vFKc0Q#i<5dXyF| zBQ&=HGpgA-nQ|8)t!}LqME$)rw_@V{W}CH83sqFVqz#8v+qt!u1(2C)&(yqkL7i(i z)RfYv(Tj39QazH+8Z9%;e_ZD7Pujtic6YUDscr4OwQXqXDAlu93qmsz9)1pHwxt3B z*i7|5AsIsLEYV|E7rNIT(5MVAGlF%p&5JMC~e40Dz7Dcf2LNKwk#?vM+#$+ zLU>AtsTRfs|De1#TCp}{CcYQ#B2wWwwfDv8mTRfL)uvyvnZ#3R(3D4ggq>wg zltViCN7bt-hZ-OFx4#)5S}T&vvFvB>_2`r{m2-Ae>1cAt2v(FrcF=7(hksV^g?i}! zXQ9RQN#)V~YYBxxf3&$hD>P>3R3)*Rg?j1!T-h1}vT|kGa2M%X%6O%XLrp&{J;{*6 z&z42HHjD)|SlY0fmhhUIYo)$v!(n>DZ+`^N>7x`%i_x=eC}!gHMn$9P58WSuL!%;a zXjB9ajf%j@F4XV$druwYfIOeiWPaADZnvA67(xgkgb+dq7$Kec2lF&Hq)$ M07*qoM6N<$g2tqra{vGU literal 2085 zcmV+=2-^3FP)`MUz4lBp5USF&9Vz z(KB~k8MH`!sjRPjXfUKx(}^)+VI!n^0WA%9kf0)%!^Xn=*|7-kWp8h0cV>2GXJ_{N zfslLe?VI_{?)={D%j%rS+#fp*%7-c+7U~-bAr1*4zU(h7qW+X+c?H07>^NMMW%-E^;&|*hC?BeP z*fl83OeT}y0TK0SGMQjHoyHEMlcl94tgo-f4udkF%ZDODEJQ>!P#hG9h-i+30ud3- zaZn&4qPe681tE6bQ9H;oiHK4Wbx^2(01x2o$$aBwmv;beh_18jEUwxW?1=K9kq#vAFIx-M;A> zC+Wq=P3AzlIiUUWnhhbuj%Amo$FskslslfUKb}2TrCQoim2Db>E?(1iHL2HEjo%~| z)&6je$8}$*+F;vu+d8@)GumlLxmn$gIWXKD=wX+kP3C}oSut|J%S-_n<^>^LOtUkP>f@Mf&p>RowKv4EOQp;)NMXM*2jZ1k z=WS4k{lQwNnrc-IX(_^GNow}krH;0x03T8*a|}}0Z_I&sW!42*J{sDYN!tY>*K$HI zts~T#m2TTEZ4a@(ht|hZk-~ms4w$_!)Uot3Q|PiB)AhoNuHI@)s`yOe?PHnAWLjIl z;HP?@YaOPqwe3TjHu;W|^kU|wuNavF-O98TeEF#9VpH3NDBH(Pb(_A|$Hg&U?NB}M zI^}KJw$InP98(SiZibMX%mMxLL(2hvd5wsO=Df`m#-wS=8sltsXz>vBjXB^C2L%U1 z>tub!GqiRS%`gZ2;qnm?5zS>kD5P);-b@OyrVt~gA*H^QLae@GOmg|i=JvO~r+Zy* z&GS)C7qP#{H#95X%U27DlaTo9;t}y_?0ANbxfxDh^(HweP&)Y z%4(~3$Q`+>)vI!!EbzVnPD|hwNZb{`UI385-Qh1DxM6NGH|v5A3SGVxsoGZ60c^fq zsjI(BnKQc1Y5Pr3mp0mT4qaJo^`@|{YUAuR`IH3SEhIjY0%7a={HawT|EYY z_XHpzAYk6~b7!x~a{)taRhIW3;MT>MAvj@frj?sn3<^!_dp7zw09|5jIs>UsBTc5$ zy0UWg_#*J!ou6>$w_m36rRBec#9{exb|4@OZp{|BiV~N?N7@j=&tH9vCvh-l47Qk? z>E&kcgF@&=`Z}ZN<6zjtY8sDjebl9_-0YF}A#VO~>+|y`mOuPaK2iLKV-PqcfVTjY z5?Bzrs|OM{FCGzJ_Z#s}YinyKaNt0&@|l}E>#*52r`!xaD40&I>aVq_?!5XG&G!`0 zR?~sCiB;D|llYomZ!4>*-dtRIQ~U$qGJwlxzLC!^F5);OPD9{j0X&cr3prj~u3~QL z>lt%y_A*mw+X*Jmw_Om@z25Y`w#RMHn{4YVR@*q**t9kFnM-JwkBZ*`Yy#L^`&Pd2 zU;!tE#2En3OW>Xmc`UQ4FgLr$Y8ywJ*twZ)XD4#;**oG_02csUSh*&b1aJz#>BwOb z^``Tn&@_F?@eFfp?H#i(-WE3i+}PNV=l^&O&%}<$*4X;$*xDOP=Rsj?J9}*HC17Ji zlmPyW9fz&4_0_SpHt{oaT=2ZT&9u%rfrF+6+e!-SNQpD!Lpb( zju6c-r - - - + diff --git a/inherit_graph_38.md5 b/inherit_graph_38.md5 index 3de184a38..4ba530f4b 100644 --- a/inherit_graph_38.md5 +++ b/inherit_graph_38.md5 @@ -1 +1 @@ -3257b10f574d886e5cbe62a04c514888 \ No newline at end of file +b91ea8db141223d5ac5fd557143ae77d \ No newline at end of file diff --git a/inherit_graph_38.png b/inherit_graph_38.png index eed7b5bc16d33630caf3152e87cccfca9f5bb315..dcfe0399f44b2739f402b2367d16ead85e928f1e 100644 GIT binary patch delta 843 zcmV-R1GN0R5YPr8iBL{Q4GJ0x0000DNk~Le000250000p2nGNE0O2-RO_3oKe**VBml&mEAP(p`ScY900HZ| zre#^!XMb*%1pqUkydW%4UJw>2e=i72XyqmPb<#IvomPx2TMxP_Z$23#OwP7#y+!yY zACHk_8-dW47rZxS%1cDwpFIEgoXh9_=HIz=-nLXGiM*0JO4Rz4r={bgDW@Has1z?L zG!W5`C9Rg;zi-?2BR@~?c}KWqldD@QLrGp~ziM24w=_PIaw#SCSVZO)f49MNph|UX z+LXTQQK$CZTDch%QiF-*O=*nHR!&K#-KrhavoqrSv|^^bqbUHlR34de8Lcs6|6JUL z(SGGtM{=X}>ngMK!^HBoEW@oEt5Um1nK=0*@>;nUc|95|R)tyJBzL!=wy8MVaA?!D zwxwk)HbGn&>+!K3tBBx|e*%QX%<{eyH5Xt;3pXlI-U~oM#{g~v2ul~s+v{9)^yOZ1 zP5lmM(o(u8Z?C~0`C?+1r?*_a+t)Cq+c3)^e003$!Bu%{;gNZMDI`#uKGt*9a$E^r z%-gn@Fm3pyRY<62eroUU>??_v5_dmsun5=7!vVdx5`L+zS92S8fAw~<^o(;`wCS8u z$fgCZmiIUj+6m>#a&;XC-do-%z92{KcFwBav-euA$vL`P-jv#WqdbP87p=iQ+>-3s zpS$-39&&F*q;#MAP?N!`tfz9Fg^OCZm6Fe#xSuv?kAJx6uiPK31-Y~?O|>>O zzNqv)X+&EqrMm9;f01|@lkS$+BV5mGuu3k{{TRgc%d0WEu zyf#fOvAI_DNkclXgm!A4oo(hU`)tXSmlWVVXtung#|voi+FV2%hbS~F?@SYObqNN2 zfZG7V0_6o^f%1Z|KzTt}iW|0dUGJ0w0G8M5ReV-d-qODhAp!sZ000000001}@*leQ VeH0c*3IzZF002ovPDHLkV1huXk>LOU literal 2107 zcmV-B2*me^P)`MUz4lBp5USF&9Vz z(KB~k8MH`!sZytWXfUKx(}^)+VI!n^0WA%9kf0)%!^Xn=*|CW4Wp8h0cV>3}?e6yj z$K89oZ}vB{^Lw*1``!UWL_|bHL_|bHL_|dGME!}?)zv*hhyy8tAquT1irbUPT&(prZJhsYf^?zQ=Ls?QMHF_JZ-Nt*;bFmwcT`W(=|@g zOOcz*f&S)z_RDKFgb>@7U78-x{+3d1d%pg7_FR=}X-8GIX$-n}P3zU9e!Ob@Cb6j6 z!!;h)woui0+8)fm9!-WP1f-tF68v&Rt*19D_cz8*?CCnRVU< zh174Xb*iaWRZdG0E=y9g$1cZcTMF=@FJ+EFAKHyMkgm+SAj?O&U757q5OOUi1k+=L zy0X&k+okRy+B>&C))#$fH|BuZ>q4DNFEfQM%Q0PVtmuwgjY$=sNxU(ZnM|g&^&5Vw z*SQ|UbX!{++SJK+oTQgBH+{v(9Ozc2t>DW?O*fm`ZbaEWZaTK>vB#x5V*-9H<<(a=X1*eetC_Eh~~V_6vm`!%9`S8Hn(_)Vq*^Y!$HA8Zk;Sv zJh|1IXofl950{UKh-hx`gF+uZf;ZELSo;to^+TWfQXgXV6=N@#k8D2v7JIta^`m({ z%IPBY7x{9t@|}FOkT?#BKQA5<=Tpa%JLYCMv5wozL4n%w&E4I~RrzAE3&*9z2SQ>m z06^eE;;?8Sa?i~ugM#V*98rzNs{gK7-ELY=Q<*lgG@VRUY^v9q*4ea}_s9b83*e*#UV+420qh0<3Ea(p@xTpplet+Jd{F4}tw`0rst#cD?MmJ8 zyOcSj>zuaV1a+ySP3O>+)pp!ItgG5MeN8?kfp-gukEFos5V$Xa1w5?o?%94q0vJ}+ z0WddhkE1JRXt^1E`N(EO3$ZroV@r(a-8}}uXkpftC6O%hU%Ytz~<9$pgg>K1Oo2~ zKte#kyy|C8Uz2A7hS;hs??1q;iz!2J!rbgvZVqBlXjf0h&#XjJe4mk|0N_2%7?Q90b%gbY=NsNaVdPH4I%vW<;Qpu`%}hXi@Djq z+>Aabgs!BoD~cE=!zNbKcy#NdE@chPE_ol~=J&TgJ9}*T!yn`m#lJWLffE9F3qUD> z1);lpAaV2JA@Nn*h__o?TRVn*`+}9v+}wT)n|+6ro52SK)2UT`TbpX*)u(8_r+~Ja zPOMF=x;mP~*R;K@tfu1*#icjJ-vBNHxP0ns`Rw8%jzZ!j1YQ=v11YgE#GA`i%uW4q z#+;i`W(sYMVDfz14I$n3rq{JSZhPKjUth7>#?i*6uBoqFLc4re{086xfD3Ei$QK?g z;JA=D1>kuJ+!JCL%d9HQ&F-<<#?dBqZVtAy6S?^G9q|i*a{$h*T$4)zI04{f;;@LK z={zVjO<#t1g*mqRj@jpLiyHuLY;4H0zrTiOQpaO!Y<+cX^$n%-pfI+^9$S40*w_#y zfIm{lVQXxCb!_zwW$^zcm57MUaZpHXh@b2sN{Knu4F`q)rRYerkC(9%(-1MI`iX-= zAVcYtw)GfFy(vFK>07zyRMvw+y)mkf+qTVqRAtt;&Hh%EsVYaefAuxCH@!@bQH{kk z)~;q(U8d#Q?oV+srYbRh_pf zwyx^OHT}k>ZJSVd%qiwno2+LFO{yo|^@Me4SY0Cc>>82w3t)&uj?wu zoXUEp;41c;Q1v94UU^l2SD$xH#A;cgI z)y=WvQe4cb@#Iu*mydu)qj^(9HFb&*S3hmjyQX+er-e;71bwre#)q2rQyk1G^<$rM z&#A0u3NAN$nx=hiQ^KYjRkkN2#9C_!{d#dBw#!2~NPHiubIki*PgF?MA zRE=Z$T-!FAa(vxPYuX;FUM6iy!^NC3f9+Uvs@Ka$W5Q4H5c$QNQpTH#bv< z(AnnZCUcX#(B;F9L7^y$+hti^nNFv{gCdHpD2nT;V{laz#r3VNEo^OVr4EG#qR;t2 lL_|bHL_|bHL_|bs{Rbv(7t`!gnQH(5002ovPDHLkV1m487ytkO diff --git a/inherit_graph_39.map b/inherit_graph_39.map index 48f5f4baf..f96ed5e60 100644 --- a/inherit_graph_39.map +++ b/inherit_graph_39.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_39.md5 b/inherit_graph_39.md5 index 29a7c29fc..651b3607f 100644 --- a/inherit_graph_39.md5 +++ b/inherit_graph_39.md5 @@ -1 +1 @@ -f7aa44bf8a8b330a48d3ef9a82b8e122 \ No newline at end of file +f5efa20a20453d2ca61fe02528c7c718 \ No newline at end of file diff --git a/inherit_graph_39.png b/inherit_graph_39.png index be16e6c6451ac8601397243883e6ba3775caf652..740198e8f1fb36fb392c2f65fb111f600af213cf 100644 GIT binary patch delta 823 zcmV-71IYZc2fPL$iBL{Q4GJ0x0000DNk~Le0001;0000p2nGNE0F5vTNRc5Fe**DI zL_t(|ob8(3aVsGVg^}l$aVtq5>A+1ft{^kFkG$Abqybmpy)W4e!N3ZE1iL=pOeO}r zl30%UcMbpm0002&9f~u~=ks48dK(c8I3B0d>C1cn8Rq?ozeGfDMD$@77C17G$K#)K z?mf(V65WdTUOgaiY`pjGcDp_0f1d`#0$v=54wwVc0dpWaV9u^ZNA$GgGo?*y-&{MR z>N-?(aivE#_{y>@qeD16yYA`0KItYpBKrA@^TYB~e(HbxIhBrmb7SJf%dt^H;yW&v z*i7Y@(j5D#wrL@|Ia~t~{Th}^>GkunEWh&O^qLov8v0VUxiRG8<<=`le~a(d`bdRQ z6IUxH!>i^zDQCOJC-=M3dX%2y{IGiYn#FFHp3b>B76CE2nATo3O!q{~zVs5Nr!e;3?iT&QF53i+(fAZEOx;9<%&3(4l#J*uq! zT+Ozinh}Uj0EE>BhF4(DRH6&d{-o!f+LX>qE#ufTQ;E(w_j4{Ap3h3qx@*@GQ_nc| zjJfD)U)T(dd}KzvTeF2kxKZ27R?c2{6(@HT)*466(N@WCZCP#If5P556>q$WZh^Y! zdRK^ZN|AcWtygtY*RWdSm6S>9wpG_y(Awft6`jUGx|CVsC{a2=>1CJmJ?(Z=6`fYs zZN0e2-JI2K9P9bkA$mIJbh>VdjjgLr5}%r)XpOhlmvcM6+LS`N1+vwfNE)N|>Jj%A zN-LZ_z}|#&MJvpYf5EmYSGsJurn#%o+~hwc7OkODdd;aO-j-`gBj&nOoxRphcuV=Y z?SWpt;&RC~s+zKzx^eA~V!9IvaC{)TZ)WTfjtWEv%z@~DIS?H%2ciS!Ky<*I>^|M~ zdbNxL9FY6{p3KjR?sB=P1p@#8000000030+9|)d%cHhc&4R!zk002ovPDHLkV1m}c BnzjG{ delta 942 zcmV;f15y0E2C@esiBL{Q4GJ0x0000DNk~Le0002N0000p2nGNE04^A8j*%f0e*el?h9PrhTqWDbb&#e!sbFWWkNcBUaSfz`cz=0^C4eO%0XFY5li5HF zdcl?vAL|?d000000AOZ(oN>Kge|zsgdWZqQn#<+#e_57)VcxI!BJcf&_x`h;ECAZ^ zdcFQS=l+CwZ%(kWEQ`4y09vvve~WuO9&h=V4q5;h3OE6n9ykG*9ykG*oHdD2v`a`N`uN>vKSc|mZa(z>)vxe+u83*tEk1(Q?-oCHv`XfJ1e{XpqsZb?V zH&sJUFST7IVtb)}ik4J=NcBkjBGm?N+qpJs@0o-q;gDsVovWK;lX`7Uof>_h)sK>T zH1DBBf7hTg5;!;JBrd0Ed&`FDo=8G14twoA$|{@HGp6PQy&t5Q)bJT%HMB~Qgjicz zVq-7t)Zi#}I%gCPjW#N1e=WtfXcyIn)#y=Le2`+%-7}jvKhM7O9(X!Xh zl1;81Y8zA6NZ;%h{TH)sh_!ZxZgYZ~o#NEBwMUO7$9wnc+(>ET+R4>JNpEE>k@jCq zST0OkGE6w6wfkvZf2UTtxUAOAPCalMb%)0mat^9V_+qo>^s7S}o!Dx4me}E({pp3I zT`hH=+6i)@0hbmxqDE^e+~^Tr#Bgl(&^b&vWc{|)s=vjkz_GzONm?6TT_sXDooCWRcWxi(VtSv_F6(2Jw5SIE{ie;m?2ipx2ATq;*{)Hw&G zPKj2o4hq_f1fy@b4HFIl&jbyk%}fjc000000000002qWXp&%*1_ao+% Q00000NkvXX1g=70g8o~uT>t<8 diff --git a/inherit_graph_40.map b/inherit_graph_40.map index 9a34f6f06..ef3f3ea4a 100644 --- a/inherit_graph_40.map +++ b/inherit_graph_40.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_40.md5 b/inherit_graph_40.md5 index 421db6ddd..60430f8ff 100644 --- a/inherit_graph_40.md5 +++ b/inherit_graph_40.md5 @@ -1 +1 @@ -cfaf06bff68ffe3b49faac1a7cd1c4f1 \ No newline at end of file +4f786a9e4b13a1d51568ff3fe42e52ca \ No newline at end of file diff --git a/inherit_graph_40.png b/inherit_graph_40.png index d1627313f57ffb0f8323bf8afe131fcb90e261b6..9225b1b0168c102cde5097f1f4008b62c6796b81 100644 GIT binary patch delta 780 zcmV+n1M~dl29gFLiBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e*(uz zL_t(|ob8(Jal;@ChEc9#bdv1R4YCxM33}H(`X`y93uJ=0zi0^o%!g!<^FDXI#@NWh zypa@)F#rGn003Y#6gHerr*|Scj&KI(=WsauSZlxiwzu#iB03V$=XP#^J#oL^zl<>- ze%q7C9M)QKhrqtD)|%_}`qX|Hf8YyvF(5J^4nzjTfyjV3szpZhv;s4w&5_J7o}nTO zAHWO`WLcKcE=&RET&Rv@KnH9hBci{*u-!i&Ymfa8KgW*4dzboD;%|wK9JS9ws$Y1% zq+e_kMUHlJ83i`g#qA?0uBxKgw{kD2<#f99fxP12=g zos+U%bI;OiTgOrIWht@W>gVV>lO>WFGe^-LlJd!YQ~hI3dhEA6N9pnO!X~oW1{O;N zJ}qgm2Cg(KdB3d?Ntd%lHLj(S(taG{PZjA>_mhMrlJ%yCo&r5}U*D&geCD4s5JMd(_Ae_DH-yLW5x%~kA|+Ryo1W4GmgCG9O>F&2o!7Rg?TTn#i+ z!95EQSpy@4q*=U3mq46dMzY)@EQf8)QDp?X6qzyW?>RZ`#()_AQJXGjUx4I9`&iY9 z%xz2IN_}fvVBBZFea%L$Uuql8+Ar3Y?MAbpCSAr>x_j-FZilJ0f05cM)AQvB{n3<) zRfw!*a$@3WnV8t?o!qsh=Y1j8j4$=dZDv%6EcMQAt&bzODUr*s8sBxzvkhjWg87wBwQ1YU+ZZ^O(YAcec<7Q=2G3-mYdjhF`u|1n^ti- z)QT(z$2Oi`8xpBmVk_#>Snkgo+IOCUY@uOKc5(j^cFA_L+; zWI!B<42Y8~{4bZwmVSU8aJ${2?MacH&u1}b0000000000?2KPC=tY8_so0VL0000< KMNUMnLSTZ$Mn8R=v4ixVMy7_h3)XHR?Gwa`-r3x8O zj)loOj$^e5r)Fyl30@B|g>=sS|BK7R`>FEO|M++6I&PaQ6GvW79VKe-X~mb){?n`#6qo|a;HH6e6;6PTp_*tm00+5QnCE+u)J1B>AhSk*339^PYPP@e_p9SJ*jBk;%h0U zcyfi*4zwj@tF?|?XiYMvol321eJ{T5xtHqeXewGf_L8R#D*2GycVc=v)-u_xk)3c2 zXz{2=GVvl;FXuVQ@ez+@_vGK@IyCAQR>f~iZcevUOz3mx{RN98sG+|;sE zojI9CET)#V?M*?ejR|*bIr3?;B$h3a`ZZdI#`1tuPpA| - + diff --git a/inherit_graph_41.md5 b/inherit_graph_41.md5 index 1b65284ab..542537988 100644 --- a/inherit_graph_41.md5 +++ b/inherit_graph_41.md5 @@ -1 +1 @@ -3f0ed9bd866b4175ffb1f6a4557d8f83 \ No newline at end of file +ddb7de72dcc4a78ebb8d4a52120667a1 \ No newline at end of file diff --git a/inherit_graph_41.png b/inherit_graph_41.png index 16877926ac2cc40c13835d6ff9039eb89a34d1c0..ff2472ec7ab6269c508a888e283290df4bf996f5 100644 GIT binary patch delta 794 zcmV+#1Lgdm2EzuBHh=g@L_t(|ob8&?k>el?hEe9qxJtHhjoAA zn~3Oxh`#!%1&+ky@%ZPQ`wZ(|jBLewZ>|tH7T$YzyWL*uPk#e+0dEG3444BW1LnZU zfH}K1GNP9qm?>qBWQOq!HL`dDW|)v=Sw^cc1)6KIYflFDftryK(eGbeA6`$@r~b#k zQ{}jCsZJ7oB{Fi9&WBaI_`0NBYAsq|H)Bg6qNgyEE3dzoWqGQP%WGXoDwL&UOLgG% zm5z&}W%RGmZUDBuY-r8|U9u|rGT0KYSnJS*lxjB;d7*414Ne#=I zw8*cSN9*ylqGn{X4J;K3LTbWb30h&+vcF!Kgv;5yn$}i{w4KKIxg_1HKTA|RS!;M` zNzl1|L!DCkN%XB9mqxo-M(Vn?o?0H!JY43I(5(cuw11rIyEggOO7^Alb2^vEt?5rv zUjsH{fjMfP?48KvKrhzojy{vU7TGZnb(#WN^oCS{{yAAFEJ2WlmQ6S)@d6&Ell`s#%y4y-UAp ztm7&fANO!;F{P0?Xa5nK`wqC(ChUiM5olq=v7NW{WLigFr1#cLGUqKc7OK~=9c$xS znf~pv#WR$6wbIbr(*IUY)`B!thPj?K!#r6oEPs?7(~-)Q>Qs7vxS+LTO3CDO((-IQ z_uIM}SxIQAIi{1lX0>5zp_}zFq~1&)E|0=HZS=;ddNLe=;py?#*ej7QMb*e=8{BMI z&(Ey$k8lahfsp}oU}V4?7#T2!P5iIdYfnAE0l44q$$HkvE|-g$G5`Po0000001n1~ Y8xusLlxNVj_y7O^07*qoM6N<$f=Jho+W-In delta 757 zcmV9yHh9k?mR72KKIM_%kI(tskr0yniW^x6s8W85O?a<-_(wNxTKu9E#d z=2WT=mPj^|ent!QT)&}DDgP+`_KvINKB}MbZ&XrmiGT6S7RApI#M5P|n5`AMt>>k_ zsrR<_LFv2JUK3&MxaGPLKYPJq?7_@dT1dba$zF+)Fj^ykrZ?SQAhHg)g|MQqLXa+j zI7>#d(jqK}?bRa>H%p4lnEH24PP-`}#{Z~Im#^?v=FvV@bt3cIQn*rIZ7YyJ4%=%s zO81qv^nc{=Z=hPmrY2p6E8kr9dbZzCY^1g=rLJ!w_D54HRw1&Uhm#UV&x2|CoYVRR z!jG$Ee6{^!GonId@i#o`JszoTE=Me+B9aL*k}h)5g5yE$wPi@7xIF3#|FGuaBxg@@ z`wcZ!hP9qX)I_qF-fx7IZ7$R;Hnnug71^|k%Wk7qWFG#NX=SNmoE1}>w46z zEE&m0+2gHIb0OafM3zDN;lF~oJV=*79Ec2v1Car7ATl6Mw(!4RuY39d7T|urC)=|k nyId|}&Hw-a0000009cG~g6J)sRZW`W00000NkvXXu0mjf`8#_E diff --git a/inherit_graph_42.map b/inherit_graph_42.map index abcbd3796..1f35b73bf 100644 --- a/inherit_graph_42.map +++ b/inherit_graph_42.map @@ -1,3 +1,13 @@ - + + + + + + + + + + + diff --git a/inherit_graph_42.md5 b/inherit_graph_42.md5 index fcc269cff..302737135 100644 --- a/inherit_graph_42.md5 +++ b/inherit_graph_42.md5 @@ -1 +1 @@ -9c11b24104c113864f00ea1a4bc6b5bf \ No newline at end of file +950cb5c7ab1eef78fd2bfcb12d5363d5 \ No newline at end of file diff --git a/inherit_graph_42.png b/inherit_graph_42.png index ebd6ad5fa82c519a3f41c741593f204405216bcc..3188f390c326e0818ec9a89b31cb8e4581a972e4 100644 GIT binary patch literal 12123 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 - + + + diff --git a/inherit_graph_43.md5 b/inherit_graph_43.md5 index 5a01b6c80..8b9f92605 100644 --- a/inherit_graph_43.md5 +++ b/inherit_graph_43.md5 @@ -1 +1 @@ -a34906e43815f91658a90df70c71a243 \ No newline at end of file +6d5993b3c4ca5b228f94c1ca0c85f08c \ No newline at end of file diff --git a/inherit_graph_43.png b/inherit_graph_43.png index ce0880e2cf45255d9db55cbebf28905c282f3885..1ab802bbed8d5379da7d77e4ac531271f4e1eae7 100644 GIT binary patch literal 2331 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 M07*qoM6N<$f~=C9YXATM diff --git a/inherit_graph_44.map b/inherit_graph_44.map index e7440b758..3d5fcf41b 100644 --- a/inherit_graph_44.map +++ b/inherit_graph_44.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_44.md5 b/inherit_graph_44.md5 index 4ba530f4b..44119a654 100644 --- a/inherit_graph_44.md5 +++ b/inherit_graph_44.md5 @@ -1 +1 @@ -b91ea8db141223d5ac5fd557143ae77d \ No newline at end of file +898619bf8e5d66d793960451d06b21e6 \ No newline at end of file diff --git a/inherit_graph_44.png b/inherit_graph_44.png index dcfe0399f44b2739f402b2367d16ead85e928f1e..eb79b1c253af494bae8058588e97dae3feacbb8e 100644 GIT binary patch delta 829 zcmV-D1H$~!2Eqm*iBL{Q4GJ0x0000DNk~Le0001>0000p2nGNE01!O`z>y&oe**VO zL_t(|ob8(JaU&rNhT$e?mp4S2>idF%#~Lh{RHTp!#oGME4>KtkHx_nGm;5Tg%P zD=jR}0RR910D!aM^N!2q^6tI=&@cuZn-IeH1y00Y=iFD? z@hbo$x7$tJ8gL%2*K4u=&tf|Oe|P}_2vk7;0#y)zK$Tqwp!dIakxa@2byNc|zt|Qo zeh5KSz6BpGvFi*7_77VCdhdTed4Kxc@=#ts7E8-)dMgpmR1Ku4^{MOq8}ck(56=&lazbbBqCK?XD}8ofPSk zBq4vxC#pS`5Gldd?l!LN9_qLi{9=%!STf*D$(da&)byq{mF%O~JL=cgxYFW_ zqJ!$wsJ|MBm*Cb)c59W}f7@>9rjG5^LD9X{Kl6RnG_ zm1!)O*%k=E0jyqJt9G?O2?naDWI(M~K^9AAYqOj>zP4+y2UG%3^EoME>0(jdLyyX_ z&LK7jFf2-C`iK}ZVztmU3 z97l!HHvp219R1?fOO?-QQ+~{g(>Ku!nC?yWPC#jFNmhE+PTF3n08ca3Y!Ob z4okNi76c9JAuI zgQ9oUqKT73ZbXCqFr5J{zF!?h>S5d3JXqK@h)f5d1t+-JG3{*h?0#y)z zKotZaP^G#Ec|M;j?EojG8i4oveWe`$000000001hJpTcY6Fh9uXMQPy00000NkvXX Hu0mjfCJcq3 delta 843 zcmV-R1GN0Y2G9l}iBL{Q4GJ0x0000DNk~Le000250000p2nGNE0O2-RO_3oKe**VBml&mEAP(p`ScY900HZ| zre#^!XMb*%1pqUkydW%4UJw>2e=i72XyqmPb<#IvomPx2TMxP_Z$23#OwP7#y+!yY zACHk_8-dW47rZxS%1cDwpFIEgoXh9_=HIz=-nLXGiM*0JO4Rz4r={bgDW@Has1z?L zG!W5`C9Rg;zi-?2BR@~?c}KWqldD@QLrGp~ziM24w=_PIaw#SCSVZO)f49MNph|UX z+LXTQQK$CZTDch%QiF-*O=*nHR!&K#-KrhavoqrSv|^^bqbUHlR34de8Lcs6|6JUL z(SGGtM{=X}>ngMK!^HBoEW@oEt5Um1nK=0*@>;nUc|95|R)tyJBzL!=wy8MVaA?!D zwxwk)HbGn&>+!K3tBBx|e*%QX%<{eyH5Xt;3pXlI-U~oM#{g~v2ul~s+v{9)^yOZ1 zP5lmM(o(u8Z?C~0`C?+1r?*_a+t)Cq+c3)^e003$!Bu%{;gNZMDI`#uKGt*9a$E^r z%-gn@Fm3pyRY<62eroUU>??_v5_dmsun5=7!vVdx5`L+zS92S8fAw~<^o(;`wCS8u z$fgCZmiIUj+6m>#a&;XC-do-%z92{KcFwBav-euA$vL`P-jv#WqdbP87p=iQ+>-3s zpS$-39&&F*q;#MAP?N!`tfz9Fg^OCZm6Fe#xSuv?kAJx6uiPK31-Y~?O|>>O zzNqv)X+&EqrMm9;f01|@lkS$+BV5mGuu3k{{TRgc%d0WEu zyf#fOvAI_DNkclXgm!A4oo(hU`)tXSmlWVVXtung#|voi+FV2%hbS~F?@SYObqNN2 zfZG7V0_6o^f%1Z|KzTt}iW|0dUGJ0w0G8M5ReV-d-qODhAp!sZ000000001}@*leQ VeH0c*3IzZF002ovPDHLkV1hQ$k=_6R diff --git a/inherit_graph_45.map b/inherit_graph_45.map index f96ed5e60..39d077b50 100644 --- a/inherit_graph_45.map +++ b/inherit_graph_45.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_45.md5 b/inherit_graph_45.md5 index 651b3607f..f52c5dd09 100644 --- a/inherit_graph_45.md5 +++ b/inherit_graph_45.md5 @@ -1 +1 @@ -f5efa20a20453d2ca61fe02528c7c718 \ No newline at end of file +b8e559a9e666952aa1e3c5e036bfd6a1 \ No newline at end of file diff --git a/inherit_graph_45.png b/inherit_graph_45.png index 740198e8f1fb36fb392c2f65fb111f600af213cf..43d8182ed749d2fa3c71edd699d21b61343a7571 100644 GIT binary patch delta 710 zcmV;%0y+J>2F(Q_iBL{Q4GJ0x0000DNk~Le0001q0000p2nGNE0Hbv)+L0j@e}YLw zK~#90?V9gx!ypjF!Ri>DBztrNFNHEerS8!$$rN266U6;QMG0_+In0r~pHwx*&hfBb zj=#nL00000jK{_W>$<*MYfmG@fblHL^5dNQ4$I!+hpe?HYwhQ8vVbP;_xqPI<|8b7 zFp0-G*If|Mg>%kauh)n2Wq=kie;F_dAc08$2}}Y=rZ$PS4>Nd`G56MYw3Zx0O%lHZ z4KHQew&oZb+9Ao*nFQpKG^&_MthIlCad~(@Ri64Ee@W_U1m4hvWnDHyJt3#iW83aq!7s@E$O>;fSIc|PQmeW9KBNQDrqUTp+$?j z*^M#$0c6eWrS`g1H}|`>e|2zTl(cZVkQOZxU@;Al95MxdHcI`ywgJ2ZFv$*{(Fi5b z-2f8xCaK*!=~4fyquM0lK9A(wzb4MBbuB5>nk2O*BE3kY1?_E8YmywP#k7_q3fwrQ zm^E5*Z5r97QcOL&kvO8jiIc0dW_6g_AL_aH(#mw1q=p_x0D2u4e+Zw`)~!yRNhHy- zd8aXxOlOiF+xkar<#RN&#^{CG?k2Ze+WRGrm}ZCLC5@=gB-Hl!QCs;ETB+}9Mzu+d z*?(@L=7>V+e#_AYs(cpIb~iu|FbN=mNdO5<0!UyIKmwBh5|{*#WY{3iD@h;ez)dl(ATzg*yx3Kw0axI?FWC&izzTr`yFTAcCI-Bc zSdRI34gdfE008VAiZjmV^Isx*8xagR9;egk%X|MB=KYDkL_}{y^kEkkI5LmNVNz>m5zOLW8%ciu~9l zOy!r-9Q&!ZX(78gTmupP8kS1w_4BeUzw+bsnirB9`ck&JG34Uq)+EH_q)=1l%C`KuzLBL#cr3L&bc`j0WrCl)?PJC_e9IS_B*y}!)~IR zZPk|=9zwK+4o&;o@7SshRfgBudc9s-GaCC}+ObH{wBMztYZ*>jC;U0TVN9v`IPpsB zReH|CX6ZSJ{obe#uce9df7T?rHeK?~eYV%czGm^j^)0d4;*Von0yc+%Io*1?SE4jr z&9^N|S#90If8IG2Z@h_afx75= zSBP^;k$TCkS9Ma?uv+7llu7EgRo7V1+Tv3coyI}Blv&~^Q942CWta0k?RHZYomSUv zy|~EToYig|>-p9pdOGKHx^9V$t*cHFpPHg*jkng9b34D+HSnzEX@aqW*{x)TX-d?31SX6zA;3PcCYf#`ra5FIcFq66kYbikbKKHc?t zwTuHCko*0f%+HGMa=EAl0{{R300000095fG2%dX(-^zA&3;+NC07*qoM6N<$f*s(R A%>V!Z diff --git a/inherit_graph_46.map b/inherit_graph_46.map index ef3f3ea4a..c6f514d27 100644 --- a/inherit_graph_46.map +++ b/inherit_graph_46.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_46.md5 b/inherit_graph_46.md5 index 60430f8ff..ce4e0d225 100644 --- a/inherit_graph_46.md5 +++ b/inherit_graph_46.md5 @@ -1 +1 @@ -4f786a9e4b13a1d51568ff3fe42e52ca \ No newline at end of file +b86590e96fb1345820a083c1230a2334 \ No newline at end of file diff --git a/inherit_graph_46.png b/inherit_graph_46.png index 9225b1b0168c102cde5097f1f4008b62c6796b81..f56f16d0b8c4f2918f28c8ed7198414c5b347d6f 100644 GIT binary patch delta 806 zcmV+>1KIqN2CW7miBL{Q4GJ0x0000DNk~Le0002R0000p2nGNE04MXz^pPPIf8t3* zK~#90?V9b8+aM4?!ILsl$@P&A+!W&qGLt^?$FAZUa0OO=DIsf+0P(Rp-kZ5OgT=Be ztam{e0{{R3002;ql@-_P^}Dt9V}vpQy}4X2pU%18e%&|ukhS*1TKlt~S^(pCyX%}&NWvEU?k2t^LRYof9fv-bOBHeP5~gmDF6gG1%TkxPGRlaiLy$WE#*Re zhB}2@C>j>dvMi^Pn}PydY_MNIzioPi_ zV!DLNDRNVEiH#!`iE`~4o3AasTeK^g(^^Dd-sK=CWvje?UY6y*dRboUe|$m{ACjG_ zLrmY)ag|a-?z$-U+J)?zqhF5QYPIvnRWff!>5@LR%%@|rbNWnuHs!f>5gL;}X`!|u zS^f`8341yok(*N=`+ns9%a}@$!Wf-7ZA>SBQLN?O9I=R5WH z(5g)jSw2-F#gTO6=!Q7fuS_vQ3vW-~R%uoXxqC8loHUl6mFm4U7dhPND7H#t5*14%9dW%!$Sy0u@fd_2zkPu)dJf6_KJgtuOrbk~2bwkv7m0DZZpr%y7NAg$|=^ zpv4(h)TU3yaJ|`>e6MeVb!=K3!WdJO zS1r!G0i6Z4PI0z8v<28;45Uv00-ORsfKvbna0&oHbfbO0-+Sr-(4FV=8LW>w#qD-$ krVIc800000002zFA2{R`)36Du?*IS*07*qoM6N<$g52DDy8r+H delta 779 zcmV+m1N8i@29gFLiBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz_f5%Bg zK~#90?V9az!ypWXQLbZjlI+n9vJ{sIde=SrCz+xPWP-TAXbAz#hh&iRK6kyw*vP`X zkra$E000000AMr}Hk?kUcOp8Da0ck-a5(%}Yrp-rx9}n&Iug<6c5Z<^alhZcj4>a6 z+mpx~)>?6gz`n57n(OuY)P5M?e+zgqATl5hLGAZ!CbHQE7E1*_ zEora@t~4uozpW5Sm$OARuBDRFejMXZ73osK%8AhvfLsphi%PKWdyqvnKA3{IXUgdfEfQ#n=WTxfaFB`Sk;Nl zZA;-weQR4_+-JXi%|@drMzf$MUB*_rd+n8OhpDxZf7&Y3^W_Nr(Ugi+ zh^%FDV&Z6-nAq!`+_k0WeIeG2FZIf8W>knQ_0Ddsk0ZA!k;|_d-+DkK6Qn0yq@o4K zL~XUjMx(eK>I#3q=HaAe8x2<^ToaC8>uE$yBnzp1;NgVkQr+5?o7i - + diff --git a/inherit_graph_47.md5 b/inherit_graph_47.md5 index 542537988..f9aac86ed 100644 --- a/inherit_graph_47.md5 +++ b/inherit_graph_47.md5 @@ -1 +1 @@ -ddb7de72dcc4a78ebb8d4a52120667a1 \ No newline at end of file +2fc6f999dd449c1cd41e1007e3e9af83 \ No newline at end of file diff --git a/inherit_graph_47.png b/inherit_graph_47.png index ff2472ec7ab6269c508a888e283290df4bf996f5..03a8dd245d72c57cda6f4080f135d73c1f86701c 100644 GIT binary patch delta 504 zcmX@i*1)3J8Q|y6%O%Cdz`(%k>ERLtr2Bzbg@X-9ZrG8zZ=#||J>ynS7srr_Id5lN z%xy8?X?wdWxnxrG5^e=U;ZrPc6>5`~-w_TvC(a~c&H3fOO3Cz=BW8b!WIBK*FfhF1 zKi!uov2VuDi-#mH=qt9w-~6s=J>%!WGxnu1OyWt=Hr$s@e(qw@J7{xW#OXv|ZOAv) zI~*PCD;g^rq=3}UwG}h!@9%Tkac(uM@%|XyOf5Odn%C`)E+WY#vHyK~&iEJ}o4)#~ z@$TGbJB`AcK8Q`5S#d4s<)vxKnf33&|DE6JUH0@xVEy+s^(DVg9Gww;UhB8+%#+?O ztK~WS6`1w5UcNH>+v#tYrYqf++FkujHg^4%wlDVO_dgZcZaZ@&K3iJt(al5kyZa(G zC+A*Q<~!{ZoaFl@-9Xr%|7c#WPLf}DoWEe{+{&!f>GL+M@$IOI+pydq)-QVPrU~2c zUiuXldE(QLx!0!4%}9}x{2-WqUSw(1?&{}L-)-)(OfT=Zk1pF=&ip-hb;yxC(H+%X z3B7lXKY#0sJhyR9KBt`!lWAz*tN)!rd;Km2U)#X&$naSnlV)QsH!NtNArxtw+xs}; sGJk>Ny(7ZOf0P%!XWIu3d4>zJ{&jODy>9XZ9{~w?y85}Sb4q9e011@i*8l(j delta 830 zcmV-E1Ht@&1j7a)iBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e**YP zL_t(|ob8&?k>el?hEe9qxJtHhjoAAn~3Oxh`#!%1&+ky@%ZPQ z`wZ(|jBLewZ>|tH7T$YzyWL*ue@_E+0dEG3444BW1LnZUfH}K1GNP9qm?>qBWQOq! zHL`dDW|)v=Sw^cc1)6KIYflFDftryK(eGbeA6`$@r~b#kQ{}jCsZJ7oB{Fi9&WBaI z_`0NBYAsq|H)Bg6qNgyEE3dzoWqGQP%WGXoDwL&UOLgG%m5z&}W z%RGmZUDBuY-r8|U9u|rGT0KYSnJS*lxjB;d7*414Ne#=Iw8*cSN9*ylqGn{X4J;K3 zLTbWb30h&+vcF!Kgv;5yn$}i{w4KKIxg_1HKTA|RS!;M`Nzl1|L!DCkN%XB9mqxo- zM(Vn?o?0H!JY43I(5(cuf3%$IyEggOO7^Alb2^vEt?5rvUjsH{fjMfP?48KvKrQs7vxS+LTO3CDO((-IQ_uIM}SxIQAIi{1lX0>5z zp_}zFq~1&)E|0=HZS=;ddNLe=;py?#*ej7QMb*e=8{BMI&(Ey$k8lahfsp}oU}V4? z7#T2!P5iIdYfnAE0l44q$$HkvE|-g$G5`Po0000001n1~6dOdMlxNVj_y7O^07*qo IM6N<$f<^e1&;S4c diff --git a/inherit_graph_48.map b/inherit_graph_48.map index 2c20ef928..34a9717ac 100644 --- a/inherit_graph_48.map +++ b/inherit_graph_48.map @@ -1,7 +1,3 @@ - - - - - + diff --git a/inherit_graph_48.md5 b/inherit_graph_48.md5 index 62ca21fa5..5bc6ceea1 100644 --- a/inherit_graph_48.md5 +++ b/inherit_graph_48.md5 @@ -1 +1 @@ -da08ac10896457925962b33663d6f1dc \ No newline at end of file +4f2b2e444c4b726b5c6355276a53947f \ No newline at end of file diff --git a/inherit_graph_48.png b/inherit_graph_48.png index 79d0ba7e65f7743f8a7c93fcdf07cd96cf2fbc45..91d75e750484fa3eab2a2450f9587adaacbe98ee 100644 GIT binary patch delta 533 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 P?hS%XtghF9?mqoD0aUO@ diff --git a/inherit_graph_49.map b/inherit_graph_49.map index 2b005b7e8..46cf9c31e 100644 --- a/inherit_graph_49.map +++ b/inherit_graph_49.map @@ -1,7 +1,3 @@ - - - - - + diff --git a/inherit_graph_49.md5 b/inherit_graph_49.md5 index a98af2566..2e1438193 100644 --- a/inherit_graph_49.md5 +++ b/inherit_graph_49.md5 @@ -1 +1 @@ -4be4be2cfd1687ece6eb67ce2913190f \ No newline at end of file +3059d69b2c6bbdcc81ce009e6ec48797 \ No newline at end of file diff --git a/inherit_graph_49.png b/inherit_graph_49.png index 94ba27ab566342cdb39e58ba9b5d9c294fd6dc51..746ecbc9468ac862639a1c3e94485066409839d9 100644 GIT binary patch delta 855 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 - + diff --git a/inherit_graph_50.md5 b/inherit_graph_50.md5 index c2042c6d1..e48faa8d9 100644 --- a/inherit_graph_50.md5 +++ b/inherit_graph_50.md5 @@ -1 +1 @@ -f3d809209a5d967344e92ea9f58bd2ac \ No newline at end of file +738f5ba68437c29c592d040ac1118d35 \ No newline at end of file diff --git a/inherit_graph_50.png b/inherit_graph_50.png index e0fec33e2fe74a3bc633d8abc686c8c8fa9ad202..feebfe1da42406639c09953f2ac9fc926b484146 100644 GIT binary patch delta 663 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 - - - + diff --git a/inherit_graph_51.md5 b/inherit_graph_51.md5 index 2c7036471..85880af07 100644 --- a/inherit_graph_51.md5 +++ b/inherit_graph_51.md5 @@ -1 +1 @@ -3eb06135f04d6a7eda4a0492db93c582 \ No newline at end of file +be05c22010043ae83b4c6f65db4e4227 \ No newline at end of file diff --git a/inherit_graph_51.png b/inherit_graph_51.png index 1ab802bbed8d5379da7d77e4ac531271f4e1eae7..f4de00bb3d5c610fac37b66631b2714db54dda52 100644 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^wLq-G!3HFkFq%pMDYhhUcNd2LAh=-f^2rPgj1`_P zjv*Cu-p+WKdqjb!HTR04)ycPkrHvjlI|a2$`@V%Q+hOZeAF|S7(gc}=n4|9}`-#i= z)twVQ!Y&9jk6|6d^2S7oxS2nfDY9)jZdv~QUj6Zn(@TVm@6Y(Tc)pIpNt^TYUA~AN z4_l^R@%|_)W8|LiCcc-o-id5sNKM$~2t!O~R@a}34K%gYjr*PGG4YzHQ$Wxs?yy~s zvu2(u%&^RrKXpUW;h=@ma~YDLYoS!p`cx4T`IGyVB(mI3En_m2GcJNf>s zu(p?a{^{GLklE{>l`nlza7@AAE*1oI*<*`uR~W4}8QHdcaCLdl71h9SZs+c8px9tI Z@qziqk}q{m-#M3oxSp00006VoOIv0RI60 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 - + diff --git a/inherit_graph_52.md5 b/inherit_graph_52.md5 index 44119a654..06b24a3b3 100644 --- a/inherit_graph_52.md5 +++ b/inherit_graph_52.md5 @@ -1 +1 @@ -898619bf8e5d66d793960451d06b21e6 \ No newline at end of file +36f1289d62e379e103d7fefefbabdae2 \ No newline at end of file diff --git a/inherit_graph_52.png b/inherit_graph_52.png index eb79b1c253af494bae8058588e97dae3feacbb8e..2266ccc1e0efeda07dfb112ef836d603ab68421e 100644 GIT binary patch delta 701 zcmV;u0z&=52E+v+iBL{Q4GJ0x0000DNk~Le0001y0000p2nGNE0GABv#*rZve|bqn zK~#90?V8_l!ypXC!PhZ5N%rUlUW&^Ez3U!*Nv7xmnIP^HJ?hx9KoWm^-|s14EPcib zV32bF00000z^^Ojd4BiaUs{L({WDF|PYB^Vt$SNH^4?#(_n-A-fsuGVpI^?okF@S3 zh$0~bb3tG%LJ01DzrWN^4YYuhe}NzZVh}_?41x%VK@b5kO@qjLPnLV5cYUqENCd>} z?i1yb{!5o-`B%Rz%ir~QEtc2UV|o31t4#SV(L~)x>C3Sry+&bSlY>eS9lh+Wj*p!m z>(}L2m$KC{M}BhK?zP*}S7Jx1dk+hnT&hfG+L5o}huik3oyN0KHnen>f41ddGM$Y~ zIz7d5DSLfF`H=W8@uz`W5Y-xOYM?drb4M6z8kbCGTz^tbrn6R~l7?R^?WtYLhs85k zzYmp>NIC?UE(k5Ag`@kp|Kd_@8oIY^3_YDuUsy+9Uq@xiZ>c8D`$`wg8q;Tv7Ae?l z1Y*=iB47)(u4(;IgCH7&f7XFQf$0p0sXh|*JS=NNZT_8!>Oo|==~Ww!{*j-Li`jH` zmSd1JFvMnK%3fMTiH#CFEmK2sN&T+vay4@Ln|d}4)DK{#A|+`HJ*0+gX-eUyl5jMp z_KvjV1YIsB`9!_YA~htpy+mV4pL2sQ2lcbF9)n4O^|@1Rx*ds}f3qDfTXTjlO3U}6 z{&kkF7h2PEYDi7eb({re`$UqH=+ab-o>N0Kd`awD()8?%n{uIHGsjlZH+a+ z*%=TsTo8@8s69Kw1rg{E1Q8H}AOd0#L_iFJ2#DF;C%WBkHFbaicsw4P^}9iIy0000p2nGNE01!O`z>y&pfA>j5 zK~#90?V9azBOwfi;U;CIk~DG+c*Zq(>;{rT^2=phAKWi8m;ft4LfYN;neoIBqYqXq zEiBFf00000fV1KAj?3lp?!EueFa{i(5W@H4@%Weaz2!gh-hX)SKi8QBPQ+j5+*jK1 zD*z+6+fCdWa2~GLYq9^&VmknMe*pmqR6zg&RSkJ6?4_g3w?|(jdfBOGYf9Y@jz0}TiQ*ENyOOer{G_K?$#g<&gmQS31 zNK@U2?!kNiQo360_&tR1(x10uUrMPwmSj_HsM$;Pt43{H$;XkoqxjC@f5!@zlwe6` zYqEQEQhz(@$Bh528&X2wYFIL$b2cBYYc|D9l(spMls`Jp7O#(Ui~(rvt}B(D6zP&A zA%Dv!sy&tvDZ$q6Hm>a+>bMpDw{&djw{(42GT=etq|(&CGv zgX+_$zZ!^_;MPiZYn9vEe{Sifj_uV!(Y@6_`r95`Ed^Z)Hlh!LrLx)sTLwH6t&6Rd zX)Kr776`xrtX^EJcC|nW2CArJK&@9n7E5Pqvz$7Y3mCtEYe$0#0H_;53?oIVhKxu4AR(jS>+Fq#uPczkQ7OzozP1&O> zJ=4gAdIofE?l~iW2dc%a4|_mjo=pVctV5C|qSuBaA~~<(tKgWSdiJ$yW4B~+l!%rN zOUJQ#DV>Mxd6tyAf5FrodGSrUmZp2VcXg~SlBg)Ob4I^C%D+-iQ*9~`GOJ*R6zg&RS - + diff --git a/inherit_graph_53.md5 b/inherit_graph_53.md5 index f52c5dd09..37c085281 100644 --- a/inherit_graph_53.md5 +++ b/inherit_graph_53.md5 @@ -1 +1 @@ -b8e559a9e666952aa1e3c5e036bfd6a1 \ No newline at end of file +001d21ab23623801cfba198123bc76b1 \ No newline at end of file diff --git a/inherit_graph_53.png b/inherit_graph_53.png index 43d8182ed749d2fa3c71edd699d21b61343a7571..b3ad008e28928523105dae596d90deb3e8cf10b5 100644 GIT binary patch delta 665 zcmV;K0%rZq1)&8YiBL{Q4GJ0x0000DNk~Le0001x0000p2nGNE0C>)U_>mzMe^yCE zK~#90?V8bX!ypWXtzO6IBw3^j-GAb_PwqL5z&E&KIVl59Pz#^%V*kgC!omr zd>$SR@WbhJ%J#oZjsrXx5D*Xne*pmz5D*Xn0Ra)a3W$i<5bZ*k)#K-=1JNBjI zCZ*)6t`Tzoxtq;Z!RVY7uPB}`NCT7Fu`*2ZaE8)ri+&fc*#hLkYRf21WTwtFef z3FkxNzsH{xH37}aGBeOh_pOGFJxHqZVTUM>j`R$EK^Ss`NV~vuzB^C)-NCYC(G7uOG z_Z+k53k(G01gmekC}BW^f6ELsGM#gaao`@80vfd_ma`9dOqZ}n`8?8tmuojEAR-cH zmS{u!Mx@(1YQEC3x$zuv@z1)DOqHjBdOYN2)Oh14E*TzlJyCrqvb0Y5yYfF9wWZ-u865YPhx0wN$FAOZpcA|N0j zqPPxpyWM8S0i044(B*QO83zCW0000006YgjwO}MVKL7DBztrNFNHEerS8!$$rN266U6;QMG0_+In0r~pHwx*&hfBb zj=#nL00000jK{_W>$<*MYfmG@fblHL^5dNQ4$I!+hpe?HYwhQ8vVbP;_xqPI<|8b7 zFp0-G*If|Mg>%kauh)n2Wq=kie;F_dAc08$2}}Y=rZ$PS4>Nd`G56MYw3Zx0O%lHZ z4KHQew&oZb+9Ao*nFQpKG^&_MthIlCad~(@Ri64Ee@W_U1m4hvWnDHyJt3#iW83aq!7s@E$O>;fSIc|PQmeW9KBNQDrqUTp+$?j z*^M#$0c6eWrS`g1H}|`>e|2zTl(cZVkQOZxU@;Al95MxdHcI`ywgJ2ZFv$*{(Fi5b z-2f8xCaK*!=~4fyquM0lK9A(wzb4MBbuB5>nk2O*BE3kY1?_E8YmywP#k7_q3fwrQ zm^E5*Z5r97QcOL&kvO8jiIc0dW_6g_AL_aH(#mw1q=p_x0D2u4e+Zw`)~!yRNhHy- zd8aXxOlOiF+xkar<#RN&#^{CG?k2Ze+WRGrm}ZCLC5@=gB-Hl!QCs;ETB+}9Mzu+d z*?(@L=7>V+e#_AYs(cpIb~iu|FbN=mNdO5<0!UyIKmwBh5|{*#WY - + diff --git a/inherit_graph_54.md5 b/inherit_graph_54.md5 index ce4e0d225..c59a59bfb 100644 --- a/inherit_graph_54.md5 +++ b/inherit_graph_54.md5 @@ -1 +1 @@ -b86590e96fb1345820a083c1230a2334 \ No newline at end of file +62f97e88aa61310271fb4671d122988b \ No newline at end of file diff --git a/inherit_graph_54.png b/inherit_graph_54.png index f56f16d0b8c4f2918f28c8ed7198414c5b347d6f..c0e32df5670ffe2b0da6cb8a8684aae62fa4a647 100644 GIT binary patch delta 644 zcmV-~0(H&5h`_#_E)CJ9-+UkqCUP%44mM7q^iMiJ{zBd zeK7_A000000I)K|1((a^m5AO(7z03Swr#sxYkz#%3tvP;Z$$Lj&ny7?@pwGGj4|)N z?2rUI*4pL<0nig`t-0N92l+O@e-;2v1(ELH|$d{ZLB+BKrH|a(_M~5B=w#L*tO%5}PFJe0j*8oL>@K z_Ic-Abe`)@?NMy+b2e#TC)LAo&K0ezCHiBT1Rl85c>laRw#)f=m-+B9f7dIqNn)!+ zf5?xLamYVTNOz8uKhl`hT<7~G(G&7Lq*H?~<&dVqqwbMQ$Xfj5sbNnHUl*UR)hm(5 z=C$MEf6-{6auOJG&N{aB+ak$zv9*3cdwf~=^zd6-Pm8@$OM>13ETPn<8rx$fP0c-8 z9`&_0#gO`~b^n%o)1(}lfALhvHMAPG)E@PzUZLe_s2S(n{ytMO=1@5ac;IRqH$Kia zPpJo{)TY!rUaIhQu{mz5bboU5lIA#8Zq>#t=XWWR`?o$Bo0mhWMk&`sl{8s3n=Lqm)S%Nc`bwD4rlVC=kDf4dn$jS|ABBoc-Y%Sxe6X z$|0~kNCL1tNCL1tNCL1tNCL1t(YHg_>$RsH01V@h1kSl{W6Z|@TL5Uzwr%&(HUIzs e00000&c!bUBDb%=;00001KIqH1+4}liBL{Q4GJ0x0000DNk~Le0002R0000p2nGNE04MXz^pPPIf8t3* zK~#90?V9b8+aM4?!ILsl$@P&A+!W&qGLt^?$FAZUa0OO=DIsf+0P(Rp-kZ5OgT=Be ztam{e0{{R3002;ql@-_P^}Dt9V}vpQy}4X2pU%18e%&|ukhS*1TKlt~S^(pCyX%}&NWvEU?k2t^LRYof9fv-bOBHeP5~gmDF6gG1%TkxPGRlaiLy$WE#*Re zhB}2@C>j>dvMi^Pn}PydY_MNIzioPi_ zV!DLNDRNVEiH#!`iE`~4o3AasTeK^g(^^Dd-sK=CWvje?UY6y*dRboUe|$m{ACjG_ zLrmY)ag|a-?z$-U+J)?zqhF5QYPIvnRWff!>5@LR%%@|rbNWnuHs!f>5gL;}X`!|u zS^f`8341yok(*N=`+ns9%a}@$!Wf-7ZA>SBQLN?O9I=R5WH z(5g)jSw2-F#gTO6=!Q7fuS_vQ3vW-~R%uoXxqC8loHUl6mFm4U7dhPND7H#t5*14%9dW%!$Sy0u@fd_2zkPu)dJf6_KJgtuOrbk~2bwkv7m0DZZpr%y7NAg$|=^ zpv4(h)TU3yaJ|`>e6MeVb!=K3!WdJO zS1r!G0i6Z4PI0z8v<28;45Uv00-ORsfKvbna0&oHbfbO0-+Sr-(4FV=8LW>w#qD-$ krVIc800000002zFA2{R`)36Du?*IS*07*qoM6N<$g2vN(v;Y7A diff --git a/inherit_graph_55.map b/inherit_graph_55.map index 93c99d5b6..f3ad14739 100644 --- a/inherit_graph_55.map +++ b/inherit_graph_55.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_55.md5 b/inherit_graph_55.md5 index f9aac86ed..fb7bdc087 100644 --- a/inherit_graph_55.md5 +++ b/inherit_graph_55.md5 @@ -1 +1 @@ -2fc6f999dd449c1cd41e1007e3e9af83 \ No newline at end of file +b3e6116f8d9feab44c55854e4e3b6db9 \ No newline at end of file diff --git a/inherit_graph_55.png b/inherit_graph_55.png index 03a8dd245d72c57cda6f4080f135d73c1f86701c..8979bd2ed07b2367cc7777481b36274f5cbf1d43 100644 GIT binary patch delta 1076 zcmV-41k3w?1h)twiBL{Q4GJ0x0000DNk~Le000210000%2nGNE0IoMw{gELQe*^4E zL_t(|ob8(Hk=q~?g~5|DQpwiirZlP`nUrEzkp^6Wm0x673>Pk3-shXyStAf!Nk=@y zQ3?P60001hvC-~<`~Ch?YyH(D7yu0CdH!~f{csOxt-rL^zuJTZK#;gt4aafR4Fv!X zkH%J4G=4se+GyZOv6%Q)%xR090)+&t5NS`SFyS`Wz?Ir6IyF^ zU03fgye!qTg70u&{*i^Ml%QC(*8l(9<95F9xbMIF+n4s$TM|?3yjWfc>K<^~h{f%m z&k-LyGokJL;DTJmOvGV4(Pp~6B*DBM1k={l_YD_r`r&@#- zUoq@80f*Q*ZeB>>wGio9e`7-@MahDOy1BVAQRkIhXDaS+9ui1O`#JI10+f8N5>%fC zP{T@W$VnNJs2h?KQ*NCUCD+Nl=G>S#?e_wk0$>`%de)tx=6NIaOp?T=A~miXVilm3 zAV(5@k617b0Mj7evyM07foL(NZF;$j_XFL_p^f9~6A_a4)L!N3b1 zrny)tYgvhPPb#+Dwk6`~Vbing^*swJUGrJ^818F8j&(1!-qd!vZKoJQQsR@g=~26T zZe84M<{s0%=3=$C^I94wVvZtCyV5b2+VmvuCC5w9Ynn1#&q~q5IHFWtPrz(8JwuO} zrV?w*PcA+KNvLcIf3w;2lq$0^meA#E0A($!Vddi@v2e+ymrXDC8n<3xg)DHfp}6#c zQP#ZHRyj$VUZ{S%9rw2{?Tar~&cq-!GE^07ZjjREh#K}qZaGd|u~>UU&nhe*s_`wh}9~uOBM|`m>E# z?QO~4aezFw5$lTVCj2eM%5@m!*am%hJ}VwoPpG`Xj1;?wcDNm^8rZuioT)&rZ7`JQ z+ZyGjU0jRb=qvgXw(MDJP-_>5vlBJKoV+H>_pH>=+v0*rI36g|g?R=J{R1hC13y2j=1H=lZ0b&Ky0I`B;fLOsaK&)UIg5Oz><7gQN07@yPUawa$??bG& u+wJfB{r>ZOKC1==0000000021@ejwtY!ZO}TKWJ03IG5}MNUMnLSTaCvI^w@ delta 504 zcmdna(ZHhE8Q|y6%O%Cdz`(%k>ERLtr2Bzbg@X-9ZrG8zZ=#||J>ynS7srr_Id5lN z%xy8?X?wdWxnxrG5^e=U;ZrPc6>5`~-w_TvC(a~c&H3fOO3Cz=BW8b!WIBK*FfhF1 zKi!uov2VuDi-#mH=qt9w-~6s=J>%!WGxnu1OyWt=Hr$s@e(qw@J7{xW#OXv|ZOAv) zI~*PCD;g^rq=3}UwG}h!@9%Tkac(uM@%|XyOf5Odn%C`)E+WY#vHyK~&iEJ}o4)#~ z@$TGbJB`AcK8Q`5S#d4s<)vxKnf33&|DE6JUH0@xVEy+s^(DVg9Gww;UhB8+%#+?O ztK~WS6`1w5UcNH>+v#tYrYqf++FkujHg^4%wlDVO_dgZcZaZ@&K3iJt(al5kyZa(G zC+A*Q<~!{ZoaFl@-9Xr%|7c#WPLf}DoWEe{+{&!f>GL+M@$IOI+pydq)-QVPrU~2c zUiuXldE(QLx!0!4%}9}x{2-WqUSw(1?&{}L-)-)(OfT=Zk1pF=&ip-hb;yxC(H+%X z3B7lXKY#0sJhyR9KBt`!lWAz*tN)!rd;Km2U)#X&$naSnlV)QsH!NtNArxtw+xs}; sGJk>Ny(7ZOf0P%!XWIu3d4>zJ{&jODy>9XZ9{~w?y85}Sb4q9e0QJ-3%>V!Z diff --git a/inherit_graph_56.map b/inherit_graph_56.map index 34a9717ac..ce42806d7 100644 --- a/inherit_graph_56.map +++ b/inherit_graph_56.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_56.md5 b/inherit_graph_56.md5 index 5bc6ceea1..c4dd5a69b 100644 --- a/inherit_graph_56.md5 +++ b/inherit_graph_56.md5 @@ -1 +1 @@ -4f2b2e444c4b726b5c6355276a53947f \ No newline at end of file +373295a527597c96ee55c2b7ccaa5019 \ No newline at end of file diff --git a/inherit_graph_56.png b/inherit_graph_56.png index 91d75e750484fa3eab2a2450f9587adaacbe98ee..5be5f79d4c7e7cabb529b6cf6941af16d0aacf6b 100644 GIT binary patch delta 976 zcmV;>126oY1k?v1iBL{Q4GJ0x0000DNk~Le0002V0000p2nGNE06otvdXXU%e*=k0 zL_t(|ob8*@k>el?hE3+mxJtH<>mW^eQo+q!ANR6b#Ws)%;(Kz2BSHcp8F2n@CbI!! zp#U-x)-DSG00000008tOq!rie^=Am-qlYp8^yYH8e6Q>JH?I4UHVPqpgb;oorxpO? z@OV7_EX(pMu6r?(opoK^6#`%+f7W$fzP`R*>MtF10bnX%BmfA&NB|IkkpLi&4cuoW zgs^Pe)?1As2;t>){|UyZj;=dNI+5JOz9TK;v2EM)LzO`}aJME04;FvSj3k8c{G|2q zb*i5Fn|`Otl-w4br2C|69JMm3@u2R}?hM@6wv5jiF^Ngi$>PfU_ifw$f2&W+dtFRg zPUW`hRMUPsOx?>K<38eCd*b45jrgP~)u~4J zo-*UOMN2O3snKJ^xwgh+ewQJRPM%>*kE+CYG z#gbrBvw$@Hlw9Mm&{K=G&Sx_M3A{`MK;TrlTfLYuPs%IsANBXP03$JA#)Z)%&Y2as zTL1_gdIW57T-YLmySG)hIG-u~c%qeGGDq)lyjud?t;O!xauzpbfB(I`k86APU&`CN zTeD0Q;PKq`y8qLaHXYl-mEqntb1C+@a%rDb8hlA#9`0LhHh^ZnsB6?1aB_0(clMpp z!&uzhElJsyH|<>88vSwxqD=+oCNPy%yEv`V)8l(<(pt3hmAgi{d$r{hue>%lBa!lf zG)aA$dnvR}n|NZWe+jGoO*MI1GhvYsD#;~+Dc=r+=~<{SvPK%K8jgM_Sn6KV*Rt5p-w>x;76Gvq$?c(x*TQJ6 z-*1%M$0aOUj=AT1GOo`(*0HABPLif#r|y;3-O?=Jc;UD9f1Q&b_mh67%9MUmyIlv5 zg`!ROmvrY25?bO`OI(b^BW=F6U5#FnF0HaPI&jxCx=QWhg_^tP2;EEP{YZvzw*VNK z)1{>xaY{2`HGZnJVaBk{y~0b)VV0o*MB1Yjfp2*5}H5P*>YAdn5*KR-W@)B}L- y-0yd?K5HbmCfm(T82|tP0000000000O!x;cvkSf&HT7Kp00001e$?}Kr^=$5z*%Dh3LGqNcq>(@2(;W10UfA zT5Cnu=ZJBH|HQdx&E;2`h3Fn5xXVxYS+uH5&9n+f9Gy)jd)UP z<;EYiwFirc_K>bKQg$SsXl^7jPma_>&;px?Ml1HtfFowVzNx*bwb@9i!86gBPtz!H z#VoniI3(8=Ii2;&O44?7>vLtL+LKqwc)t#nfF%=!fz+ngqs8k{yQTAT<2YlE*{xwu zNYcB6_;!{ncJ~V5l0x~2Yu%Q4rPny;l+5p0PT*xDXy%k7{(qw9w$clTh?% - + + + diff --git a/inherit_graph_57.md5 b/inherit_graph_57.md5 index 40241f6e4..c873e7ae2 100644 --- a/inherit_graph_57.md5 +++ b/inherit_graph_57.md5 @@ -1 +1 @@ -10539735668ffc410f1a8b5dca74d4ed \ No newline at end of file +46683434646deb08385d78100e2b93a5 \ No newline at end of file diff --git a/inherit_graph_57.png b/inherit_graph_57.png index 1cf2b47b60ced11c11fcc2226199e52c841ca555..8e451d4c48825bd303d911e46575b7ed303e13ff 100644 GIT binary patch delta 1076 zcmV-41k3w_2DbGMS&v7)6|$)A4T}S^@CxW=me$&ZjD6)@oj?@nWntKXSwI zySifSTI^Lt`|I+10@rwgQve#%{AlzTYkq^j@MYd`+OI~?jW7c>!l}vl9nBNcHIZftZBKM@+OvEn|f1@*}8`Z<4D%$!R zJ0bW1U~GBZ<;K?(w$`H3#AS`=j}fJmX|D@RCogxK^uq zvBu+-GVQI)R(4u(fB9y)ma?xqt|+n=%<3^<{pVL$TDbL8k6yo^9wwn^L$DM0H|>q2 zfC#S49J2e@f2OCWXR%|)_9A1rR;zh6vBr}aX@23kc$Obdo`u_cx0JsX^YIws#1V2Y<-Ou$}&3j(cYdlKnf79N$U9hAbvNStrY2s!% zFYTB`#)*>@qv)<;l9>bY8o(t0m!=-*E+|d|XafUpb#YvsYc=gyN%_T{mnE0HgjVd~C!@pwFBO#w@C9LKir zd-B{LWm^Eq0%rtnfHML&z!`xXf8dPZ1)`T7KNU=!F}`W5Nq84}=4WOu&+}xF(+eUa za08n&64B3JJRY7;ji+AY_o?HO-cg%cuN~DfV_W!IqBNJO`z_g!(pj4G8M2$+JrL1L zXwMyA@6Yr6H69;dVXfu>Q^tNSNeXe zqomfBQ4N;JI1{>Oijb0C&U6yW;?Ti4U!&K?_f&GSRG}Hl;X*u3mkNbi5z$g)j1(T6 zdN_5|uH!DyaMwyr9ey&9ztC(P*S8wUmvvY_;fXZEN$?ZZvut z)YA(oJtHk!IeOZ*W^Lg5++}yKoYcLiWJ)3)8N+_OS;9wAx&Aw8f23^aeZrGF&piiW zFQqi%kumpNR~rxO)KMF_Y#))M`Q53cX^W7bv%!)P8)jO)X7pQpSE>aJN60U&<67m; zMj9&{IHP+@myY%i*kqqkvaNok)vLCc? - + diff --git a/inherit_graph_58.md5 b/inherit_graph_58.md5 index e48faa8d9..bbccbb16b 100644 --- a/inherit_graph_58.md5 +++ b/inherit_graph_58.md5 @@ -1 +1 @@ -738f5ba68437c29c592d040ac1118d35 \ No newline at end of file +5faf2b9b385ea837aec6fdd943fc52ad \ No newline at end of file diff --git a/inherit_graph_58.png b/inherit_graph_58.png index feebfe1da42406639c09953f2ac9fc926b484146..748b873ee9f99bb2faad913c092bb448629f5966 100644 GIT binary patch delta 736 zcmV<60w4XJ1?L4JiBL{Q4GJ0x0000DNk~Le0001?0000p2nGNE0RR7J{*fUSf1F7~ zK~#90?V9az!ypWXMXqCXlJ3zBvJ{sIde=SrCz+xPWP-TAxDw2_1#;x~xy!|Xjb!_^ zWH3Yk00000;OLmJ;(R{88)H5soB{edold{j+8@8}E!@c%^I?qnn&%cc5|78@n}|OB zx|IkW*4p6?fn#BH>i-XTWiz5`J6ZM zRYtwFu!(Rl(Qa=xQ?CQF?9c40mm%pGQE^T0luIdnwnk-+zPMqDgyF?)dAe#}j$`F5 zc6)u=YO}O|D1_ADsn>pOe_y2shHIoxG$9@51_z~qL(RaV$8OFKPMfXN9?x;kH8y9Z zYD`uGaUep_1!t6m2!S{dArMEk2veiG-1liPAGIQMQwY)`leYf~s1>0`vDgt-(rGHT2ggQiHRPJ~498#7WQsnyh@Y!T@YpF>qT&P6-!)KxPF$&JKH?HQqo1|N~lW5;5C5=fjAH$5CViBL{Q4GJ0x0000DNk~Le0001y0000p2nGNE0GABv#*rZve^W_B zK~#90?b_{4!!QsAU|+--Owv8rAWK=D0Es>L(@wzxouJ{Dk#YT*yV%a@eIx{NLwunx zv6I>u00000ps-DwwDk& z*4o1hf^)Ifn*06!(!LC+1(ZREe}D}k0ycyQ*bpLM8yX@a%5G~h+j&XXgDVlRiG_%W z{=UL?|MggV?0figY&+NQo|;Op?ddOeUL`ekhx^v{v8SGrv;8f_LNxL}p{JwIGd6t9?vUYZ)QR`*H`kv;Ev=LBQADmpZnEZY*Wyf$ zbNzB^O5yZZJDK&56CRVZZ%A@-efV&eyTdBoeU-Lz{r0M9Pk$w;dRouF=J*ouu<^uZ znJbu zKl;r}eXMg%wdM)JkoLN?MkG-Df=00000001EH3o>eyniYSv4*&oF07*qoM6N<$g6$?br~m)} diff --git a/inherit_graph_59.map b/inherit_graph_59.map index ca290f9c4..b9035843a 100644 --- a/inherit_graph_59.map +++ b/inherit_graph_59.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_59.md5 b/inherit_graph_59.md5 index 85880af07..fe9a9d273 100644 --- a/inherit_graph_59.md5 +++ b/inherit_graph_59.md5 @@ -1 +1 @@ -be05c22010043ae83b4c6f65db4e4227 \ No newline at end of file +b4b517c9d6d3dfb025bc8ec940b6923e \ No newline at end of file diff --git a/inherit_graph_59.png b/inherit_graph_59.png index f4de00bb3d5c610fac37b66631b2714db54dda52..0e6fa76319d615f0cb461c6321a6a809fdbf0c47 100644 GIT binary patch delta 488 zcmVPRgfI+-?WkjPlG~%|0!TMgMyS*|+9#&CJ#e2QSs?*(wG$5g-^&q`bN;}O z6CeTr0000W;yf@-(>pWYMu-9agb*Gv#$O$K%R4dijhVmt$pSrDmgSp>K6Gqlf<%nb zT@dI?jFIMfUd6)zE#PFp1OO%ge=q@{3z&eJiFx&=`>%YZ<0~`N1o=g7z39wLB0?f! zrpYqbtMKxb;H-F6ClAa_kjirH>CVsTcN|hKUd0oRD;fEantgg*3`6H&}BL3vCi&|v1O>E`E^Ape;KUTJhc`J zOez7)$Q%NMcZVaxO@-XCRU zjNJ3x#P_n+JCQ96sR_Fr6Y7B&gqY5(u0ItUXlkn)_dC&J;x$pHfS^y@VY?h>%{+Ie ze!hv^{rg?{wac$ZKaRO4+3>(kt|t6jV`cefj#KX8UWIxKHbOuK;Gqn8z(N0&S{ zuFQHq?ab+`Hy_=+dMUN~{a3zfHUGRk?!9ZXrd5>rhFM)KoxNd-_LZAw>Pz1CZ4nP& z5u8$eJ&Jel=Vzb(K9^m1(kp(})QXyEv(j{?Z+E*aXZrKoECbHD?j8B>ck=yNVQnw< z{L{BfA+y&%D_{Dc;FyBJT`UObw8s|Tt}t3{GO}&?;Og?8E2@Fv+|J$GK*7&&;sf)I XC12_UoW64|1Mxjw{an^LB{Ts5(OJqq diff --git a/inherit_graph_60.map b/inherit_graph_60.map index 20286a1ad..f0ca2137f 100644 --- a/inherit_graph_60.map +++ b/inherit_graph_60.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_60.md5 b/inherit_graph_60.md5 index 06b24a3b3..d6a39b400 100644 --- a/inherit_graph_60.md5 +++ b/inherit_graph_60.md5 @@ -1 +1 @@ -36f1289d62e379e103d7fefefbabdae2 \ No newline at end of file +c4f17f41e3223abedfa8cdef956f0406 \ No newline at end of file diff --git a/inherit_graph_60.png b/inherit_graph_60.png index 2266ccc1e0efeda07dfb112ef836d603ab68421e..64ee6a67141e22def0ae562915d0d21dc7f01b8d 100644 GIT binary patch delta 513 zcmV+c0{;EP1&IV9iBL{Q4GJ0x0000DNk~Le0001w0000a2nGNE0I;}ezL6mme*wNp zL_t(|obB0LZi6ro1yE1bWppLkNH>7Qnh+~!7t*in$@v0V6FD+z5&X#85mShT;LS;Dq@Ke~8FfYm2w_K=k%2$Z2FQO+$Mg-oUX2_i23-O7pm^ zwdc#Xd-=;4#>8$EKZkZcci&VN4Zch{*TV5O(ahatf7t3h&X=Aq zcYn9AY8}Pt9#@j7mn~|ElhW3qRXqC@*>=r^pWXZL(?iHI4 zTd|2?YLZyHtesCvdYs(MSEJxZLJ+(3|F*7dhNre#D4sz^&Q-Kv*a9&W4~U_7Kn%qL zVkjOE3qEbF>)JC1T+mzbSZn``G2a8S0000008HlvY#=c*gKM?Y00000NkvXXu0mjf DMyd12 delta 702 zcmV;v0zv(W1jGd)iBL{Q4GJ0x0000DNk~Le0001y0000p2nGNE0GABv#*rZue*$?) zL_t(|ob8(5al;@C#=+MyI!X5E240HG1ikAXeMzS10+}H06FutKvOp4leBbXWU@U#c z3Sf|P000000Kl&+=6Qbi-d|dX0sS*g(@zNDJFR zSicXIkw`iOmo5k`riG*Xxc}l(Z5q0_Yz#e}QD0a`UtdRM%5SMA&HG9h%o@{Yjut7{ zYy@J|Mj~JfwXSLXQG*~Fe}vY7LV@WFh^amj^*k(VLv8+@iRwXQx#?9Kj{cFKkBixK zc9vt1Gcd$vW6EAyM2U?OJ1tW~a!LKJ?Q%78`kQ(-4b%@{r6MJ13q7QUY-vj2rjl?p zruL4s}S?x4lGTNuP6rE(i6qvmS#f(VG&-6y);ZZ&m)0eCzfoAtXvbiH29 k!~g&Q0000009f%06jt@Ks`=E=6951J07*qoM6N<$f^NG%Jpcdz diff --git a/inherit_graph_61.map b/inherit_graph_61.map index ac2127bac..e068aff85 100644 --- a/inherit_graph_61.map +++ b/inherit_graph_61.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_61.md5 b/inherit_graph_61.md5 index 37c085281..a96a6db3b 100644 --- a/inherit_graph_61.md5 +++ b/inherit_graph_61.md5 @@ -1 +1 @@ -001d21ab23623801cfba198123bc76b1 \ No newline at end of file +8e699c6ed48f709338445646bf87c606 \ No newline at end of file diff --git a/inherit_graph_61.png b/inherit_graph_61.png index b3ad008e28928523105dae596d90deb3e8cf10b5..2175034da578e14ca28486b28e32c21b3f7e183f 100644 GIT binary patch delta 436 zcmV;l0Zaa&1-t_xiBL{Q4GJ0x0000DNk~Le0001K0000a2nGNE0E$Euh>;-_e*tkx zL_t(&f$f^_X~QrO#qUhV$RydLbOD2B(g=ml(SGt2-NWjKprGnstoS7P$oqk?bqeU& zPdZM)L;wH)z&YSBFwgUanXeCgt?L@arvX|(B``?=e=tb_Fi8QbO=6Bt5WB`&%-52kCWQ}O`x30Rl5!$K zJ^p+>4O6|7UIj6enEBqqxIdnXr>^1s-hOU{AJunM>k&juVrH_|-djp=IObAE?i${w z`j6(2)R)rHI^87OG`b<+GQw>nkB2oPhdO?VoWiBL{Q4GJ0x0000DNk~Le0001x0000p2nGNE0C>)U_>mzLe*#uX zL_t(|ob8&?al;@ChOJ)5=pJRaYO=&(mHz&0U-uj}>to%X%12NBVMh(6|p1sw6dEX!xwaVMb2 z`FtK84e-P1bjtR>OpXIQ7!VK;e*pmj5fBg%0RaIKy9$Vi*tRvS$F~Q_KtM!s9cU}* zzcYmJuRnzFdpsVC?e+24UjNRuIlnzIap!UIZLuRg#xcTX4HW^^Zgg(ake}u~nG%}rYi*eu{mjW8KD3-GicubeDNBKO`gO_VJDIg*e zXO?I~`$nYOI%>YsvAOXaaq-W(kW7`Z(!QD=JCZWTeMef`+q!KewO5O)be<*52x!E! zOfQ;SI5bv-TLrfVW(2hUmIMBxI-FcU*hhh$l?00|7rgrGOscpKpby6cEq@0saIzIpfMF0Q*07*qoM6N<$f=N9i A_W%F@ diff --git a/inherit_graph_62.map b/inherit_graph_62.map index c082080c0..473542487 100644 --- a/inherit_graph_62.map +++ b/inherit_graph_62.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_62.md5 b/inherit_graph_62.md5 index 62c80b639..0747df3ba 100644 --- a/inherit_graph_62.md5 +++ b/inherit_graph_62.md5 @@ -1 +1 @@ -4306717b7fca7c0e6b4966f36dd09a47 \ No newline at end of file +655ff91d57483a4ebbdf101bd2a4cee8 \ No newline at end of file diff --git a/inherit_graph_62.png b/inherit_graph_62.png index d17d280481e1571e7fb744547bc3ca638e7935d2..8d8ffdcaaee1a796f427f8bb2bfc42f5e2f69dbd 100644 GIT binary patch delta 743 zcmVeSpbo#T_{<>u!ekCG06VZ1+Szsof&*zUZ=F2VH zILV5&wz(iM7uH&Hzu!0IrvX~Pf6joD02Vk2V1bhWmR&mu(PjicjG44(Gt^0Z!%7Xk zEQ_X`4H7-BmR1fk$`N-RNkAXeoP>y8AHUo^A1V)h`@gy4*nM)(ak@CT>vHUqs;kj% zDJo7vL}po**C!;{KevYG*th>Xbez(Wqaj5|PY$8$a_y6@%A!)tqGJH+2Sb?c=A2862ibx|!jR`OKtA+8G{=N+j_+ zO_Hb*dUO0vT&!-XM!ye`dKjhmbgz@x$Jd$ajMms)Li2Q!8liBb7s+wXNGMk$SI*U~ zy?3lFjsH{vCer|mS|m9-f2ovo^iKO*IEltXJh~&KK)L}eyND!O)5}`CTk6?`lax+G zwL)uHz88>g63jB06{4rMu1=C#vUkf%wghM{rLXl%BSh(zhLm2Pbt0{Yvvf~4u^Cm# z>}qUjoogfK*qA;$-fC^&>TIpMd%BrvI2zlVq0z1zF{JxqO754te@~`_U36S)$TeJS zZKpRS54yGP!#hdI`pZaXkuHu(uPLE>x*0iQkVKW*@Ez(SNp<9`PWN!+?vW&S$-ZV} zp|zCW>H%ojpl6gDl5T32>?PX;O7114W`B!jdo96a8emb4B=5GS5o3l?k|wH7!Wrc# zM&p>JFQEm}4Pb$jJpdLs31ESf0G4RS^>(}U)Bz^o@puHwqfTePiBL{Q4GJ0x0000DNk~Le0001x0000p2nGNE0C>)U_>mzMf1*i5 zK~#90?V8bzBOwfi?bDXAm24x|K%~?ZB@OHqa!)Da`rw{eAp#5r!(j4%Qk1~VFlP8; z8wMf(0001h_k-h#%jNRP%wK011J=el_xJI5{0r+o;**&9iBpHEyL9#7S$zT@Aia;n`Ln0#H}R5~vXFY$S~W3jE$ z=OgtVxd}v%vjVcpZh|r?pqhoS z(zcSYu4ns24Y>u#U4*pFEUdH=n>t5hD@ZFn@4i;Uqz7uHb#->se*lkq_cfC(JWweN zwG95O1;iaZ&=vwBN)JNMKYL^d+d()U^C7G>xV7OSmvE0D++Ml^<^|MBI2%g6$qr{> zrHx}!@$DiUkI4`g?tiIGfM;z58M*gnMc&o}S)TcxXl-~<1y*?~!v%B{pGAtmX z{y`r-xVwvo=#4`dJkS9G0$o5rpbH2HbdgP>pU>w^JAhHL0=nPtGwlEX000000D$-4 YKQSTk#+94n1ONa407*qoM6N<$g7$?_lmGw# diff --git a/inherit_graph_63.map b/inherit_graph_63.map index 324334dd3..340413632 100644 --- a/inherit_graph_63.map +++ b/inherit_graph_63.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_63.md5 b/inherit_graph_63.md5 index c59a59bfb..d3b266a7e 100644 --- a/inherit_graph_63.md5 +++ b/inherit_graph_63.md5 @@ -1 +1 @@ -62f97e88aa61310271fb4671d122988b \ No newline at end of file +bddd2088519915deb10a2c7be7249f07 \ No newline at end of file diff --git a/inherit_graph_63.png b/inherit_graph_63.png index c0e32df5670ffe2b0da6cb8a8684aae62fa4a647..67cf536e82a6fcce602144648eb3e0e6b630e887 100644 GIT binary patch delta 487 zcmV74rs``+Rg5z&o^KF7rZ&6Z{PGRAy_eVd|L zIp?|u0^OW*W}fFwzZJ*=7l)z&e>M~iu%T#x?b1aV*uaI&{L1|=hMA2DQk8nyPE~*Dtn91f04+&r^!rX zjP5ImbruWTA+6abZ;6gS<J?Yqo8>TWf!O*$ZDpL~lg&+0QHh`tf)?zKk*N zzU+_$JJ#Cf1_96$YpuE6ZU^}`f4~+1P6d(xEDw?ZEDw?ZEYDO)Ky-NH`_wwH21Ap8 zKa8_HoGtyBWslCpR42hK;6eXS>-|tm0wVhR<8psKBoF=PpF`u2-V&Q6>wJ00o}6D2 zTlRV9Ty&o6PVG@_?{hY3UnkYWan2R3t0nqlnFJoV)Oi2AJGRUDc$fL`e=*l9u}Na9 zM1RPSl5xmCPDpo-lt0p#)m-QMCD9Y|J)~2EF6EG>!K3bxOUPRMh%!bIv-p_1hxJb+NU6Kzn>y`1J5wTThF;BawT!lj^_yQV_AYTmUTcMwUb~*o+ - + diff --git a/inherit_graph_64.md5 b/inherit_graph_64.md5 index e5fa949ae..dc1ac0262 100644 --- a/inherit_graph_64.md5 +++ b/inherit_graph_64.md5 @@ -1 +1 @@ -5e991dadf6e2b941ef1ef1f43603c655 \ No newline at end of file +13ffee438c706fcda500ecf90ce5ca45 \ No newline at end of file diff --git a/inherit_graph_64.png b/inherit_graph_64.png index ee348528ea55efb16a6e8cc5960f1867570bee30..4aa314cbe0933cc690de1f49050af9119510b67c 100644 GIT binary patch delta 653 zcmV;80&@MP5|jlYiBL{Q4GJ0x0000DNk~Le0001k0000p2nGNE0JK-T6Okble*#HK zL_t(|obBB0ZNnfC24Jr07@ef^WU0s#w6l1Itm6IxQNo9T1Mckik*dbHHW&K>7@`^j z0000`Mq$C@@%SR5?-jwoJlnSYhGm~&0TF!@(a)TaV4-p{SkLEkY$&kAzVBw+w&=c( z$+3W7NCt3_4B#Lcz)_tHL~l>Vf0wFnwx!7sUfkM?eH=$qJ+1uuMkU6|gj3xz057&= zAR_k@mizl-<+0!4>$BUXdP?!;^itK_6p4I+ALLQ~uJ^>G~k%EN72 z=F4>psXAllEp3;yoHKR}IAX1hJ!eWc!4)i*74hVfoa?;3SXu^S^o_Jff5h9;h2HI4dCP#VbPPxRz31(LNhfgFT81mgbr+fj$gPkJo;%#| z9CQ=lT&iWbdo$nbQpqrCf6o3cRCW`RCTc>GV=GaW40ai}^%I|40#7Zqhjo{3ww)x> zm=r3y34gY3bUm@z&)Q{U|2ThJI`J)ozt-Q&pW2PxQ0|-Ne@8(B@hw9*kH1RG4V4gg z4e`lfjErWtcJZzD7zxC86F!b+H}=&si(}cDvs;@@MavKxb)i#TV^Zz%v{ovU;f&Us zGHbb5B30c4jCI+TAx7)KZkAgm!&UowF6bt}K{9}YWB>=r08VlMx$pbTIAD_3>y_M> nOor6IhXVir0000m#u)Pls8)&y0Vk_000000NkvXXu0mjfm=ict literal 2342 zcmV+>3EB3EP)r_uNh{E_Z^3zCcH^Xcvo0Fih;pU20?$J_qL1YZDH z3IquN1PBrU2oNLy5Zo$A&hzb!HmK0*EA-=MrUprVF>rCl@p`>xyRZzm8cD!s@X)cr zEJ)7t{QqCRKRsUBU;01)yR==h+v5{;9(Alns}Ce~P=4pPSZ3I=B>SCgV{DQQ$ zufJcf*QfpY_O&l1-_Gs!`Xnh=+HO(uRa!r%Y-*QFs~^FjbZbQZE3JcD-pY3>;JNkH zj;9Zw9xzvV$7Ccqj+jp%jZfEzmTvdjl+x=rZggABf+XUF(fZU%cf8wKOQAT_(mBwF zOS-l4sG^yWdr_OzQ>1e~(2vPTLZv7zdM3)P8$s(+>%5+Ja>>)CynT|iO50}e8TWLn zHDRSDvz*Cp>qgM{q_x?ir=8L^TloZjfyG1s2+T&3ooS^ictWoag2aGPfq;OU1JW%3 z2oNM2gEv|{+=B!cVl0})N6-c%2>=AHK_ZpE_ej_^eppG~bK9lumQ5?ke5surJ5<}a zzT6epw_7FoJB3EV-eXs4>ndw;Q}n0}I6pt&*s1xW_2rHXPq)$=tkk()ooy|7FSVo9 zE^8k>r2ZCy&^xl!I?0`fbWf~Cy)oq?Pt~ zyv~gHiZr56tFVPs-aG9nebJQX*N#!!EqVGyuS})oJLN;Go%rUKjBTXyHD5f-*KG7k>ZSf52>Mt`1w0}x zh@5)tuA!R6Qb97}rigyy?evSlC_pMdp$_d_CGseDXSS2dx8&kh@^r~DNm)rBwA#7b zZ`6C)QY!B)Pp72oJxKaS(-!a!783y=fK+}kRQp$H$4)>hKbRfbcsG_zxA2x{eOgkT zXe=2dTq1RTBwv7xTL(!mD?ROiA7(+)Qs}1pC5l+B>NmBev3VUYtmp zt+|GrduilD%VeE|qn5q?wy?>8QpVP{uXAfQIpsLMP-xZAR_EpI)u^#G*O1#Du00Ee zrd!gRd?cytoFbK{Yw=P;YhNvUEHHXs!%_E$*^0Zz@HcWut;u0Zc&+tt(e{f~e@Zig z)iDba>l>z)3VA}MQ?rBPLQ}tGe`+B&0W?ROKrbDpC_k$wX7DhUVJS_NSzNO`Y6(iK^R@ zA?cRIF^#fTqKx%MQ?GOqPEEeK{VCmU!KqVXf5!F0Vj=(pOZ|K|r!{=fc;ZOcL8Rw^ zISdaH>xu8GL`x|^9i&?T5QGkrRo|7)? z2|bbk5P@kQ%q~f?TN3X49L{;AZLO{Rn51lpQhie2N;dQJsdK6RquRvrt5vU52S)kf zF%nPtV765LES0@ei)a#CC4WbyJ~i8HZBGASwnR>yPtI%U7H1;IwI!t{ zac`9=yk@gqg=Bn`Ev;<5<(sBnj!lV-U3)`nuK6sz zTc~skfQStLU^civce^Kse=z&bpfCR8ZvB9C3jl)Uf@H*N%!sc_t)Si>f_K6NNrVfv za=PHTFv+dsZny=>P93>ZTX)1fNG`cDN7X5nikEC~wx#lFj!)_NnznL%ket`@H7}Ff z;ZmxD+kcYwYyHsJqA>p!FlRWgt%y@n@x1Yz#U_r-yR=RD+uK%-4^rPt{m1olQW-DDtJG*rgawcoF^eErobAhyN)uv67{*%~|AQ`Tew+Q95}wr2VEzCszXLmJ?Cm)BrgM5&@dElu;lk{XmcaHCj=kS9veO z1W8LRN^Q4nTB&bq3R}t!)i$m#R6A>RTKbc7txZV9kzVD!2sLrP7LTk}r7hLBr4?nZ zl343YjhV_^tsKd#ya!=MlH>T*0VP#wOJyptZCTdCrsa7fmAO)hj(2%WLX9LVaz`ze z#vkdE-n+ad2$BwZl*B2~))J&?o8+98g5x4ox|NdW*_ymN#rtV(W#7_IZ)I*eU*p>H zEbql_M-mV9?Qzr<%G!L{QoTAtnVZ{?;9cH}FhRmmb&ilrwCbdMQO+MI}fB=01zNZ03bk+06>5s0e}EO0sukv z?bi42-$(iZKv>>_ - + diff --git a/inherit_graph_65.md5 b/inherit_graph_65.md5 index 28676bb76..ee6e60731 100644 --- a/inherit_graph_65.md5 +++ b/inherit_graph_65.md5 @@ -1 +1 @@ -7f5c4bef5990b6ea2d48c05be99a07e3 \ No newline at end of file +49ee9304ffce8f80296e42ecc8b36b95 \ No newline at end of file diff --git a/inherit_graph_65.png b/inherit_graph_65.png index ce5699619aab0921c59232ee64ee476270d78cc6..e9d5d83ddafe124d3eb7afc8b9f66b8bdf99bf84 100644 GIT binary patch delta 754 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 z - + diff --git a/inherit_graph_66.md5 b/inherit_graph_66.md5 index 37f47086f..0038b5f76 100644 --- a/inherit_graph_66.md5 +++ b/inherit_graph_66.md5 @@ -1 +1 @@ -6ac745616bfcde1b22ca183d46d9beda \ No newline at end of file +02fcb5de1ab7615f481a7d8978618067 \ No newline at end of file diff --git a/inherit_graph_66.png b/inherit_graph_66.png index f1838c7c34e54ab7dc94d403bae70bc2ff7c71dc..89da1aea3936ae2d1640b16c3df1bb9d557e424c 100644 GIT binary patch delta 563 zcmV-30?hr-7rF!?iBL{Q4GJ0x0000DNk~Le0001}0000a2nGNE03A7T7m*e%*VxlZc!|i}p1gMw->e<-L1gMw<3i=-nUBF0*~w~S$kyu9@r8s8E7Yu5}K z-jLW0+LM)foO!}+q=uuJ(-?;MrD%HqM=(34VFneE=N8uc?XmjUXZSr2i0IuPz?qJ)nHIi4F(0(U{FvE1_jk%P*6?s zMSbdb$^a{QF{rinZhrsa0bnVA-U9#t007vP2T_=fRu~+lcmMzZ2>?k&PDHLkV1iiL B3uyoV literal 3023 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 R-_`&C002ovPDHLkV1n*rBS`=N diff --git a/inherit_graph_67.map b/inherit_graph_67.map index f3ad14739..49f0ba6a6 100644 --- a/inherit_graph_67.map +++ b/inherit_graph_67.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_67.md5 b/inherit_graph_67.md5 index fb7bdc087..dbbc5326b 100644 --- a/inherit_graph_67.md5 +++ b/inherit_graph_67.md5 @@ -1 +1 @@ -b3e6116f8d9feab44c55854e4e3b6db9 \ No newline at end of file +ead852ab37d28f43447a71d7d0903ebe \ No newline at end of file diff --git a/inherit_graph_67.png b/inherit_graph_67.png index 8979bd2ed07b2367cc7777481b36274f5cbf1d43..3c7c129f79714ee8f547117ab65e028bb2c72f16 100644 GIT binary patch delta 659 zcmV;E0&M-a2$}^UiBL{Q4GJ0x0000DNk~Le0001#0000p2nGNE0C6QDf{`HJcW3>@eO^yQ`90&@Ce*!@PQ6MNF3Ix>%(bG!HOZi`8S3#wnqrJ1hI>=B! z6fr>&(cfQMA79Va=l-X^Yvr8nT(;|pv6MBp_~1~o)6%Z@+7^lnn=KHL^WL+{;kWnx zUwv8*buno1lijt6@aS^SeQTXBF@bKe)B0818xI#O zYywflG8Eubo5NW6xTyg_f9-&E(bT|@2ShoPpg8+pvwglAhZ2-?KL>MydKF<< zeNHoi3P&wC>p;0xce_T@ zahCY}n08cWsC2JN8Y>&bmNJxTK{+=z?Q1{IVo68=)k9uPYuXQOX}K>$Tej*Q?)OH0 zhDwp@VC~0QtO+S#PEa+De4ND!W`;aq0|*L;0zm;$ASfUT1O-Hapnxb46cDAj4z(=H t%s9Y7C<^L!yUmOP000000001h1iy7s<+^Z~_Zt8J002ovPDHLkV1jJeCx8F| delta 1076 zcmV-41k3xH1-A$xiBL{Q4GJ0x0000DNk~Le000210000%2nGNE0IoMw{gELQe*^4E zL_t(|ob8(Hk=q~?g~5|DQpwiirZlP`nUrEzkp^6Wm0x673>Pk3-shXyStAf!Nk=@y zQ3?P60001hvC-~<`~Ch?YyH(D7yu0CdH!~f{csOxt-rL^zuJTZK#;gt4aafR4Fv!X zkH%J4G=4se+GyZOv6%Q)%xR090)+&t5NS`SFyS`Wz?Ir6IyF^ zU03fgye!qTg70u&{*i^Ml%QC(*8l(9<95F9xbMIF+n4s$TM|?3yjWfc>K<^~h{f%m z&k-LyGokJL;DTJmOvGV4(Pp~6B*DBM1k={l_YD_r`r&@#- zUoq@80f*Q*ZeB>>wGio9e`7-@MahDOy1BVAQRkIhXDaS+9ui1O`#JI10+f8N5>%fC zP{T@W$VnNJs2h?KQ*NCUCD+Nl=G>S#?e_wk0$>`%de)tx=6NIaOp?T=A~miXVilm3 zAV(5@k617b0Mj7evyM07foL(NZF;$j_XFL_p^f9~6A_a4)L!N3b1 zrny)tYgvhPPb#+Dwk6`~Vbing^*swJUGrJ^818F8j&(1!-qd!vZKoJQQsR@g=~26T zZe84M<{s0%=3=$C^I94wVvZtCyV5b2+VmvuCC5w9Ynn1#&q~q5IHFWtPrz(8JwuO} zrV?w*PcA+KNvLcIf3w;2lq$0^meA#E0A($!Vddi@v2e+ymrXDC8n<3xg)DHfp}6#c zQP#ZHRyj$VUZ{S%9rw2{?Tar~&cq-!GE^07ZjjREh#K}qZaGd|u~>UU&nhe*s_`wh}9~uOBM|`m>E# z?QO~4aezFw5$lTVCj2eM%5@m!*am%hJ}VwoPpG`Xj1;?wcDNm^8rZuioT)&rZ7`JQ z+ZyGjU0jRb=qvgXw(MDJP-_>5vlBJKoV+H>_pH>=+v0*rI36g|g?R=J{R1hC13y2j=1H=lZ0b&Ky0I`B;fLOsaK&)UIg5Oz><7gQN07@yPUawa$??bG& u+wJfB{r>ZOKC1==0000000021@ejwtY!ZO}TKWJ03IG5}MNUMnLSTYeJPQB- diff --git a/inherit_graph_68.map b/inherit_graph_68.map index d5b152438..dcb6b9ede 100644 --- a/inherit_graph_68.map +++ b/inherit_graph_68.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_68.md5 b/inherit_graph_68.md5 index 43303ef73..321531b53 100644 --- a/inherit_graph_68.md5 +++ b/inherit_graph_68.md5 @@ -1 +1 @@ -60f6360dec2bbb8c1a1ada6381e8c313 \ No newline at end of file +ea78c5f83bcaa99f0eae93dffd55f76a \ No newline at end of file diff --git a/inherit_graph_68.png b/inherit_graph_68.png index b13a6b8ba0acd16cf8f357723f5b61beadb6edb7..24ae457449dfb1675b959e9b6e3945751d18366e 100644 GIT binary patch delta 460 zcmZ3^b%j~6Gr-TCmrII^fq{Y7)59eQNLK){3I`jIbkg`2H&Icfp0U%@#WAE}&f8gU zb6X5}+TOl8_CjU5hqyzMnu=Hk`%ceY?eE=ZYn`3xz&D%!{%?;L8$6p1d-w1=vH%Tf zuzhgpV(DFLTbjvt#D^Gk!+l`Cg z_r9vXZNay}P{6_hjOszuZmu(DLaWzXC^d@8$QU=y{F$%)_h;eR^?#@RHjS2!j-DFT zbE`7@^UTFxt*$&vJ@}-%Pi)3amz0Tfzqvk{zkkbQ{pDM>Zv0$!tMYW+t;**)r(Zuf ztEPFYSjjuDX=`%S*V$I{@{E+KANqzFT(snxI!$8!-18ULHP1W{y<~R%R-N8J@3r&( z+7xp=znpmQpP%m zPusHpMa?l?_N!8)+513u--8)zAA~RX))BE;>Gc2i(;ObK?YXoneV1DoA0G<>ol6n5 x{W@3ILY$we`$TV@(!L4o>W{;%fq}^&(_o!xcE54+ul*}PTu)a&mvv4FO#tfl&0YWi delta 1317 zcmV+=1={-51E&fhiBL{Q4GJ0x0000DNk~Le0002T0000`2nGNE0IgxaxH7$bo|{OWu&nV8)L1dA2{ z$94_?00000008>o;|q_+C!Fe>ngkfO7yq0OtUJ;3((t{>#oZ0M$%&j(9L*aE}9h zo#&{T1AGP!(1x0Gc<=xHi?4_GQ`b}f$3Lgisd8Iv%H_-5qu}~LQb*42IRABBS$pDZ zsdR0BY3I{?Cnb=FfD+;t!KLq?uj~4BJx<@(LgI8>ZmUg_=Td2ol&#YGe@mVX%cV&5 zwbcGrd!_lpc4@tn97Dn?En_w7D1Bbb_MD@a*2m2T_eZDJzVM4(YHvxolIzs{5o0Ju zW#({h&G@#)rf`tl>DDr(wAwv-Al3GXR$umdCu+_y!?SZ}eC=|fo;FmdR00)-^rohs zmUe2?UqY9#YUf#`W})2+e`@iWBV5x-;MO8N`mZI=h_X~>j$A0h(Xs&M20*P%T)vie zmJ)|Yar-3UQ|`WG@k-UJ(a$xG+**GL-NPzwVU=5Sl`P7*&Zx1ewoHzec1qh^Yg0=e zjegc17aHIY5C8(TnZq(%NU-8YMT%KFT`L3UP+;Xm>;FU!pw0IY(#b8vF#l>C^JE5~`bd^Pr@(ycOUDqWH{ zzE{$hrR|~^)jvC;?i}~DpAziFC*PdRAyrOEzEXQQ!g}I?LDio-n9A9ns*|(5rd=sU z_0NtB3#)pF_gaL7e?8>cEohy3bM4Y9$I903v~!Lga`F+hd<}R1l9q5%8>cvjhAcZ( z&InrSv+%_|sg2Wjt7b{WXUVfQ@^WzP(kf>}|Exf_nS*;l61j3%PD@zTTb?bI*K66X zHG7Vbug{q2Tj=5(QmJ{VbeXy)wWlRdtvtInuT;)n!-)Rbf05~76#%Ppgeq4m89!B? zO|@&4{@Ja+k8loYr=Kd%)(Uk_?H?%!s{kNa&N)VG|E;*ixS~zg8SWe_41yIx14z-= zXStbUMKH*0(#<(i(&d~CJyk|Yx>(uwYbhx_ zXG5vIRDGpwf934sq!}aR9~2sWc@j(gmGxOCwUi@k04e&ubd!(FmX4avQuH&ye<2_M1V^ZHPX|);Ic)75r@oXJ zNYUqjuu6!Pof-h=$O84OUEmx>kvgPB2R7v#P|yD7KD#I#^wQ@~VCx0B1gK}zb>Gj0 zX|3mX$JEThVOc#ZmC4k|YIelT%;B7kxVff{wJPM(XAV=&ar(=2POj~e*`tQdoOiq{}R{^n3*}Cp8Z;e1WQhFW5zk0gL)RoFdJ3@ki*o>(VNxPvp@!%LlLNF z&jMi;00eLj00`h501&`A03d*K06;+QR=vKyj%9lno%E6lZ00000NkvXXu0mjf+(U}u diff --git a/inherit_graph_69.map b/inherit_graph_69.map index 55128e2a5..db0c732ca 100644 --- a/inherit_graph_69.map +++ b/inherit_graph_69.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_69.md5 b/inherit_graph_69.md5 index 46d81e8f0..ad473e2bf 100644 --- a/inherit_graph_69.md5 +++ b/inherit_graph_69.md5 @@ -1 +1 @@ -22d2eac36dd8865f19a274e3d9265615 \ No newline at end of file +4d3d013dbd9a363d85787073ac18ad47 \ No newline at end of file diff --git a/inherit_graph_69.png b/inherit_graph_69.png index b8e3967d90a3bdb10646bf98da88fd00f435b107..9355be22e8f66bbbbeebe84481f9c962bdd09e44 100644 GIT binary patch delta 689 zcmV;i0#5ye4Yvg$iBL{Q4GJ0x0000DNk~Le0001^0000p2nGNE0Q(BK!;v8re*$bt zL_t(|ob8?AZNwl9g>ls}I?2s*OGTNWoh38eD(SCOISR&rO$fYCs(Qcy2A=GYTB>sZ z000000Pv7s@q9kNi0E;JF<>6nb^Y<{KK%+JdJxff80m}Mc?z+F70Ol zJR|4^H8B#=-;ZB^ZV%Ome*2%fa%k+3w+q=AnwMKo3a($vHpzOpJ?F+N-J2BAm)-P)In<|&=L+dt)U7@wttg)6Re_`74IYc7Z z+A%Hqao^RRzht~asLtsMjzh&WI(LstK#q;tx6$+A9%V_J7MkZ{b=GQPyz&+%CFh3e zha!!BTzInzeGcS# zG1YCl=C3`HG&spPF?&jF8HwpU;~A}#FY7V2`t{CKp0O1gA#}trf1CnhR7NXZYgF&Y zF?E=>_C76B!$x2#&uEoxt&x5vwR2>q5~Fjr=~$`u+SDzsegvit)1WVg@{CCFx;I0K z5rVrn2-Bb&AV$y)5F_XYh!J!{^a8VOTT45@B)nd)Xj@c_v44*M0000000000OwTWt Xi~>CpH2dfP0000<2SrXqu0mjfzZN~v literal 1668 zcmV-~27CF5P)_kZi`2LN3`f`g?&f`g?& zf`g@5D#6e5%dF?tQ1RF$Rznj!4e~BQ=h7OF>$;3QnU|$T@EyURKx3BR=Xw73FWvt< zp4*@MKm9qkowM8GQ|-LkF$$^8Ts(5;P@{CN-@E-n6c>6Vq=BZk@1L*h`rrO^``-5? z-A?Vc`Xp(W+b*H8nTyA>pVIP!iq*<=DN%aVg3@bn+k5z~wfRi`5!as)lM(zlVvY(L zpYD%%U%mnhUsNNtv+woP4E>yy@I4GTY8ueoD6gM}WjG-f0C z&QOp39Y@VbAi)hl62}E43Rs#g61=x;G~#SUM4x)#p5PGz>s>;meN3k|dk`Vc5!qq{ z2m9ih;8F=}i;R`yM{1|kwng@v+b5L(*ZRVh*6t{eO>vz?DM>ylG%{8R))HH)kDC5- zeXsejt2{QPdx`Q~GS1!no>OjK65E;$s{bDT>^zM*)jW8Qktp(L*P{8^m8lXu;s+;s zV^OB<#E@AOsy6kIplb2DhPF13{B(&*ml0fYGfSUZX_b|h>`=#AWWO5UYHcMk*i{~z z;-27|N2s-Y)ItucmHk?m5R%xSe8EBwSe)h&Tq+gy`YhorqgAc{v-D#YniJe|E_sKW zyF(u%ff5BQ&5{X@*#mI1WP)>v^otP5mzCH$!CRqJf*=Ma3C@v#Qc~CFeu=bHE1!MZ z(%8I@=N6)@eDRPKTc2kwYxcnGi+`wXj_maQnMJd1|j~JT=-{yky1N`S)4BM5vpZ(BpB{^AT9m$mH-^%;KVri&Z=$ zlqNUb65RS`m&ylEY9+|%#J*|$q|?3K^ZH&4DN#zn8$I%H$(10I5=L^J5wc>-c#a;; zyZi|gO6Hk9`qOqCX=_WpOG!*6btxyYYcE`q7c#A^m}^fP&lbtC2VG`SO8YF2X(XzV zB&I!N#kKpyji+>bB%x+e0I+7N&tyuGN_oAJ&T~u80bdE1;MOl`v$DIa*oy8Y$}IYg z$i7KgsV`ENuEDM5a#xx*qloOAmZcLM0Jj9!D9SjBL+JuXNrhLlo3_mzr_Rf5Yi)5< zd^M$D?Rrw*X2InpQ==&3s@}NvN~?fUyHeF*ZEjg&E9dXirX*%H`x@V7z-0vY4nm84 z&4Q4`rZtj96t2>7C)}n9XL+P){Ip(**G)ZN|cDS_-Xm*?m4PT`#k%IKjq)( z8Ew<^7q-Q=^jz=u5pWs7HOe%u;xIi{gBo2WesWcZoENhe1tUdCVMw*f&6;@lHVU^I zoTE&$eu1i;Q&SI0)QJ{~yAKCpeP$4~Rt`lqg_n zh9`J!=EB;h#>R;0F^{aMM9YR-L*)RL8C?e(})4NZFv zQ-ArU1-<;@=tLr;E&q;#-(QdTO#9`V7W9_&dOnK1k(N4=b3Ee_>dQAr(o=%#@hIj( z)#hA(II2rYa$A&cCAy5@HQ8mWBvYF#qh-C4caN4uFU@td{gU24@28lX9-Om}+MgcN zNJlwDko9uxSjdH2&Y7v4dV+->uryPv32Uq_rau000000001h*!&Bv+VtzOvw({L O0000 - + diff --git a/inherit_graph_70.md5 b/inherit_graph_70.md5 index c4dd5a69b..6acbb1cad 100644 --- a/inherit_graph_70.md5 +++ b/inherit_graph_70.md5 @@ -1 +1 @@ -373295a527597c96ee55c2b7ccaa5019 \ No newline at end of file +69f97c47fb4e41a52bbdb25660094931 \ No newline at end of file diff --git a/inherit_graph_70.png b/inherit_graph_70.png index 5be5f79d4c7e7cabb529b6cf6941af16d0aacf6b..3b3facab5f5dbc4fc1b6da04b923228b9ba1f7fe 100644 GIT binary patch delta 948 zcmV;l155nW2e}6!iBL{Q4GJ0x0000DNk~Le0002d0000p2nGNE013A3W|1Kke{M-c zK~#90?VIh9;~)%%A#-J1CELe!kfuDTU}vt6`;%0$4WxqjetFj+LLemJV874I&c+yo z5S9@i4gmlF000000FFyc6VB)J?-=997Rmtd?wn4iuW6e8tzPTiP8?+sss1<;LP(}l`n03Z8`7*Mj`-|m^o35@%t}LU*D(FssHJ3?wXQK zjV_dqRJ~k#N^s?R-m7U3XLC+ot8Mm5cC%GNjPWT9;I5b7^E^MLr`Jo`e;O*(NM*0{ zQT3+fsCrA+Eq3UAuSPGb?V2_ol`i3&r;%$MO)Jx*9GBO+{uX(QgM|P`DPb}ag)qkC zT%x1(>el+9T&`>GSz*~fBlLAo%$#V1HUW8plx36H!{6 z$w*IOw6t-3BB4b`4hx%U%B|a_Ink1nsik{3XZ5*&w@j;YX<4g|qaGfMBT+f0*6Jvc zXH`EZUviwQ#BTP9e=H2rYaY>3Pwg4HQ5I6HY~3Qq+E%-8qFiVrrN;xP(Ul8byh0U; zPPJI|m$ZH_+jI}-yx;a)zTrIUsLk6Ns&I3qT3MP=!Gh9)izejda36^*j`CBiJG^w% zU#q7SZh|Y(HP^-({Yv*Giwn7MvDIc4{Uxp6b7bxk&Uqf?e=ptF9{cCgYw}v@D%FFd zMUK=q5?gEfsP`O@0-LP>C{d3@+)(@uZwYJm*xs#H_V$9>iH>IYJ+^nNxx`*TI0t|d zI1vC!;6wl@ffE6sB)hP1y7dK@900000000000000Xg#U|Y WKH^sMTO9xZ3IG5}MNUMnLSTYR9KEvu delta 975 zcmV;=12Fu#2h;~4iBL{Q4GJ0x0000DNk~Le0002V0000p2nGNE06otvdXXU&e~C#% zK~#90?VHh&;~)%%P3FqDO16*dAWeBv!OdJB_p)2XHjoP9dvb;&LINQfaQ<&5vjJnF z05THRE(-tv000000Q4iI71!(aX9(e=hcW>4=5o1wuj~3ZuKSTT3L$)i5Pl!0769Y$ zcs%|r%knF(dohxobzR*R0$?Q8e|25HzP?`SFCBCNU@BlF00_WH01$wY03eVJ+-D?& zux#7bTa6(I;pKGy3C5_7t~*IOk=(?-BQ4{xZQJuhl|eahw!E?ZQK51KH^+^;^JKOD^uI(PPB9w#H;9f05h?j+Q`~TO?YYxchp@lmcU~r+Ut{Yt?r~+}$lMAe4f| zl3-G^fHeJ-T;s6NQ;W6EXEOo`yi5c@;8eL=y_hji$}8|6_4l>_BQapch0!CR!^Wv(k$S3;kWjkf0G~glYXbllzvjXT?dba zqD}XgbmtBdTH;nqT#UpcZN9c$jb4&2t+F*baMv`tO6}r>n!D!+-Am{FNQQ8?02rCm zrKKEkN;6tuA2YIUvvN8k@x*!oVnNRV+${hEU?cztz(@cPfRO+okPX~FKR=Ju1Ay+_ x?{~63Yb3YZCCyD400000000000000?_y;eu3%(jP^<4k}002ovPDHLkV1hHM+&usQ diff --git a/inherit_graph_71.map b/inherit_graph_71.map index 26ab0ec46..ca747b3a4 100644 --- a/inherit_graph_71.map +++ b/inherit_graph_71.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_71.md5 b/inherit_graph_71.md5 index 91dc8f3ff..b25cdd36d 100644 --- a/inherit_graph_71.md5 +++ b/inherit_graph_71.md5 @@ -1 +1 @@ -dec5874262464470f311701b58a446fe \ No newline at end of file +d61c96507942e226776e433c0d42ad6b \ No newline at end of file diff --git a/inherit_graph_71.png b/inherit_graph_71.png index 8e451d4c48825bd303d911e46575b7ed303e13ff..a6097287f56075cd34a21942da1d0855dc4a77de 100644 GIT binary patch delta 799 zcmV+)1K|9(2&D!giBL{Q4GJ0x0000DNk~Le0002H0000p2nGNE0MB!I-;p5{e*)S` zL_t(|ob8?MZQL*nhRvd5bdt<-OC3BxJBw$yRoq_+T$PkWo0MhoeSjdRZ%TeorfddT z761SM0002M$WWf~dcA%T(bpZu0AR(su7C2ppLqrmeG$>`J|+R+MqTWQ_xtT@3IGml z+qSIh%9j1;YzqLl0kMNHKXK7$cjBV-LVk|3rrG7O1m+E@0t7c7GZ1BAP8ccTfWf}Vrl+f7dJs+w6 zwA&riEoD~YdojY=n~8mtZ*PfK8@XGlCAI!bw{fdme9!BpT~9CDT-=zMcKIuFX=$r@ z{OYx?-gE3(zl6!oe&zORe|;c3Ya@49=Gt8ugR952@o;0L`Dy#f$>-8ihx>wi*p}n& z#*_{_wS$m%x|CnCvxLVww3cbwoUv2WSL=K=wp|4;l|UHGcJ>IA+?hKM=%d;-8W6jJ zQH67tU8Amt1l$-928ewSp76N#>4X$JgcXyJV)x`JU!LqT zrN}<6tyHg8x5XZ9*^!o)L9-D~?AowWF5LBqMlhp=083%KvjR6}X}`!)h=Fx5R__qt zG>6$;n{Ye3#F-22=?e4=0gke>L+s17kX{d0pjQZR6p<(3#$=ogu|4Ao+!+FV)dhPZ zVR!b{kX~)LZ|f6~byD3PA;6JDo(L&+ZAh=BFh&dkjso163bQ|i% zzDy~0Ye7Qba{xC6gaKj)VSv~{7$9~K2JwKpZCg(}05IY6`G{qr*rk832LJ#700000 d0000k@E59QsqqX&;;jGx002ovPDHLkV1fzDh86$- delta 1076 zcmV-41k3xS2DbGMS&v7)6|$)A4T}S^@CxW=me$&ZjD6)@oj?@nWntKXSwI zySifSTI^Lt`|I+10@rwgQve#%{AlzTYkq^j@MYd`+OI~?jW7c>!l}vl9nBNcHIZftZBKM@+OvEn|f1@*}8`Z<4D%$!R zJ0bW1U~GBZ<;K?(w$`H3#AS`=j}fJmX|D@RCogxK^uq zvBu+-GVQI)R(4u(fB9y)ma?xqt|+n=%<3^<{pVL$TDbL8k6yo^9wwn^L$DM0H|>q2 zfC#S49J2e@f2OCWXR%|)_9A1rR;zh6vBr}aX@23kc$Obdo`u_cx0JsX^YIws#1V2Y<-Ou$}&3j(cYdlKnf79N$U9hAbvNStrY2s!% zFYTB`#)*>@qv)<;l9>bY8o(t0m!=-*E+|d|XafUpb#YvsYc=gyN%_T{mnE0H - + diff --git a/inherit_graph_72.md5 b/inherit_graph_72.md5 index bbccbb16b..704d7f492 100644 --- a/inherit_graph_72.md5 +++ b/inherit_graph_72.md5 @@ -1 +1 @@ -5faf2b9b385ea837aec6fdd943fc52ad \ No newline at end of file +2de9bb60f5cff2aa80cdb1c9184ca0ce \ No newline at end of file diff --git a/inherit_graph_72.png b/inherit_graph_72.png index 748b873ee9f99bb2faad913c092bb448629f5966..81ea93eab9b57e4fe2b6be2d90641e26382b3f01 100644 GIT binary patch delta 550 zcmV+>0@?lN1+D}kiBL{Q4GJ0x0000DNk~Le0001)0000a2nGNE0GbGx5s@Jje*xo3 zL_t(|ob8y=ZNwl9hB4|Go#ghYZh=TQ6C+gW9PLx4xIIFjQc*&{1Un?T|C6E%4u^k; z!4P8r00000KyN5E48!nFM7JJd!1=M(KAm$vq3tcML_{|t`rJ7k1l03wSXQe`G)%1Q}2VK?c-8kO6hN1{o1$%e{1*)rS<)TCtJ= zb;N>c`j`h{$;F zS>^fOd;iZKmuFi@Tu!we)=T+~|CjPxD%Xy~THj_Hw|$PbwLWu$rdAJ!e_hh0q~KE9 z627GLYV^C*=Gt@3cThrPB{Sw68{68Hq|Me<;|yaRA{JylX9|~=l%#=Fx;#26>GBL6 z=W1-}i}pAiZDn3VB*^C3IA1lZTJDr3`5mpKF>E`mTho^sAE`r6tq;!rY)e04t*xl1 z%iPAiv}xBa=j=J1Ikt>Le2b5g&Mn&*>8%ew#$K4CY+J-uvR5GY(xhg;q>nfabH15r z9N-XS73^_>mi8f)LR&z(1nMBjfI0{=pbmlzsDmH_>a3nFACJeLI>3cl1ey2#+Zc22 opaon2YwfeQ1^@s6006M$7d7TEyunF;8vp(bkSzxkXu z@>NE?wXlhBFVSvqHdC(yv+U38tCu0^7*TOe@03d^eYQqrj=s2IiG<`q&NVh? zrD{x8192ci&;@6dgb0B+5FrppwFpzAyWIC_FdwxdbW;e@B9pfN3aAyKMzjk05F%{3 zc{NL$YTG!Mf)V{sAZrsN+hp~g$bI3cJuWQwv~es23mNe(TAD*df5H*uzOr!jTiS0A z@4OtSi-frpI5KL?7K5fps7{1L@f$NzB&pTZqihlB5T8R;I?hEq?$lK?2g!}ZO6?h_ zjD)?kENx1)#l+6F6il1=9I8ZEx=FqeQpfZzZK_=wmg`5W$V#Y6$KW-A2!S{dArJ>5 z1mZx1Kpcn=hyxJ - + diff --git a/inherit_graph_73.md5 b/inherit_graph_73.md5 index fe9a9d273..ac9dba33c 100644 --- a/inherit_graph_73.md5 +++ b/inherit_graph_73.md5 @@ -1 +1 @@ -b4b517c9d6d3dfb025bc8ec940b6923e \ No newline at end of file +ee708b37027ec9f6da42173530395fc9 \ No newline at end of file diff --git a/inherit_graph_73.png b/inherit_graph_73.png index 0e6fa76319d615f0cb461c6321a6a809fdbf0c47..8500edeaca3019f515c50f0816e9e9b1fb1b1c91 100644 GIT binary patch delta 496 zcmVf38VH zK~#90?bz*2!!QsA;5&;kn526k7KoIYJOUDPz^_cvJz{&%t_KN^VD=#~D?&ryPkM9XrQdx$;dN=gj;if1XDy%SuDk z=YcI|$+71BEGx>o-Lq^()BBAQ9nVo(@=HtE)>PRgfI+-?WkjPlG~%|0!TMgMyS*|+9#&CJ#e2QSs?*(wG$5g-^&q`bN;}O z6CeTr0000W;yf@-(>pWYMu-9agb*Gv#$O$K%R4dijhVmt$pSrDmgSp>K6Gqlf<%nb zT@dI?jFIMfUd6)zE#PFp1OO%ge=q@{3z&eJiFx&=`>%YZ<0~`N1o=g7z39wLB0?f! zrpYqbtMKxb;H-F6ClAa_kjirH>CVsTcN|hKUd0oRD;fEantgg*3`6H&}BL3vCi&|v1O>E`E^Ape;KUTJhc`J zOez7 - + diff --git a/inherit_graph_74.md5 b/inherit_graph_74.md5 index d6a39b400..aa2927097 100644 --- a/inherit_graph_74.md5 +++ b/inherit_graph_74.md5 @@ -1 +1 @@ -c4f17f41e3223abedfa8cdef956f0406 \ No newline at end of file +63abd60507b1390b32819d3c2854aa78 \ No newline at end of file diff --git a/inherit_graph_74.png b/inherit_graph_74.png index 64ee6a67141e22def0ae562915d0d21dc7f01b8d..69886723f4cb5ab9db1e0a77e7d637e94fcac3c9 100644 GIT binary patch delta 467 zcmV;^0WAKB1l$85iBL{Q4GJ0x0000DNk~Le0001d0000a2nGNE087JOB#|K%f00Q< zK~#90?VIgwgfI+-?drzpB)3QxKw>5&7H9{#NxFyoqn9cTCLcPR2=YD>I^qkq$xDJk zcSHaH001~6oEoNSdS~W)k7R%?BJx<*^*grR(oW2LXXel2(gKcr5Ybm`*a#k2mc>0A z;Kw}As{QTYJV0k4_+UWr!GPd{e*wWAVctCTcBiZ0>45Yapx(k986PuzFw6vJ=D#hq z$KPvq?K9oawKd<`tkH7R;^xk$MDCa);+NQc@zMe_lZaHc!@h|8v#0G~i%Hv>@3@~9 zH$6^^TWZ&ggC?MN{2C5f(yfxM@of>y!$*rx&+#&u;Y9rlpBh?n^f;g1fANV71^2uv zt*FgWTT)-8#ivL7fXkA8rP+S9nQkI@C_KW}GTU>NxaD(tDaY7%+_&}KyH{P8d|Je> z!F@^36)&a2#=D)f=km;v>$~UEGJXlXco__{89oBJTgn-VRw4-A#92hmfhBz~AoyTF z@WFuKg8{(@W4B7*`&~0QDK{IzMdU%h|5yMg=cy$C0000kzz>-v>zw3b2=f2{002ov JPDHLkV1moQ-je_T delta 512 zcmV+b0{{Ko1BnD7iBL{Q4GJ0x0000DNk~Le0001w0000a2nGNE0I;}ezL6mnf4)gX zK~#90?b%yygD?;UP*2rmbS2qHH-N;N5G!aG(y#2v`2txJKgZ(-^d2c{cmytHVw=<$ z0001h`y;+$S(Yy%dW;AI^V;|Qm#_QeD~RYpL_d8Z!G)xY=df*C+bD1e&*#(Z`|jQL z(K!p;2#N>9P&^=p;sLSXg!u}Hf5=#Ci?{Va^!6*rX=E-%Ry?ymMQG(~ISiC$$k8%q zlVR(>^g^}6KxkfNOn%1LewxFqk4n$O8?p48k(#`Q_Kjs|mCtwV7D7X0$+fiZ6`K!R zv58=6l32T}oli=7oZQT#R^UfM5WDpMwytc3r?y%so{_CK5eb*+A{}S&|C3XYyXTf-vhD$00000Oy>n`ATct7Yqin<0000 - + diff --git a/inherit_graph_75.md5 b/inherit_graph_75.md5 index a96a6db3b..7ad6754bc 100644 --- a/inherit_graph_75.md5 +++ b/inherit_graph_75.md5 @@ -1 +1 @@ -8e699c6ed48f709338445646bf87c606 \ No newline at end of file +c80467af3f7af1bdf02db77ccc09d2aa \ No newline at end of file diff --git a/inherit_graph_75.png b/inherit_graph_75.png index 2175034da578e14ca28486b28e32c21b3f7e183f..896776ec88a02bc02c0d7e9cd42b76676acfcd08 100644 GIT binary patch delta 457 zcmdnPe2H1HGr-TCmrII^fq{Y7)59eQNLK@~3I`jITq*AwJ5f=zzTMNsF{EP7+Zz`P z4=eDnC9J$|XyhsOl4;*(A3HS<_Lq~(mHh7%x+D~^9J%^`ugL_K6m5;H4xj-KxGd&I zOnZ9l%y-Fy4RX)#u2zJ?o9b)r>4HX$+9`OubGRyNV;EMbguJ!EpH#In$sp; zM<|+VXl%IukNfX>!DVXJdo?%bO}e)4jL*I5Pxn@@Sow1qKfaq~d*$6i$?j7p)n;9f*_zQ=|B>tZWiQ>E z^KUgCJ2&Nq!9V_8Q$A|nnRD$}w%FOfp?+l)M+LS{&UIX=6Ti^Wb(3_A;zCu8$88EX5h!K% w$I@8$V~osuRBl)QcXyGu7fxaXh9-kj6;oovGe0GUSJyyXPgg&ebxsLQ0N7g8dH?_b delta 435 zcmV;k0ZjhV1H1zviBL{Q4GJ0x0000DNk~Le0001K0000a2nGNE0E$Euh>;-`e{o4f zK~!jg?V9gt!!QuV?@Y(YB-x{M0fT4K2!+nke)1IE!|I2ipz2?&_$2wr`+=}^3h3ES zI!?hv0002MIp8ob&+~@EBeGhdncv!5*Bvu)cK5xx7d$Rvj` zrnw;SA7c!y>l($U0a`#MFi8P0e@Ou_Ndc-&VvbG_yT)3~*OH+og%4f(60Eh7aw0-K z{(LJD`QE~~Kc0%GuHpUOer|;y)pu0u5kyR4X0q1aTS{;^=2A!Q8s4Y+ zkLHlnm(tNX-8#CYyIv3T?0gdXe1o0oQe^)Ys%2E=vzN2$D?k&PDHLkV1i6H#Bl%s diff --git a/inherit_graph_76.map b/inherit_graph_76.map index 473542487..b728c4141 100644 --- a/inherit_graph_76.map +++ b/inherit_graph_76.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_76.md5 b/inherit_graph_76.md5 index 0747df3ba..07f9ca20e 100644 --- a/inherit_graph_76.md5 +++ b/inherit_graph_76.md5 @@ -1 +1 @@ -655ff91d57483a4ebbdf101bd2a4cee8 \ No newline at end of file +27104bd240168538159b1d4ec8767a31 \ No newline at end of file diff --git a/inherit_graph_76.png b/inherit_graph_76.png index 8d8ffdcaaee1a796f427f8bb2bfc42f5e2f69dbd..f41298ca026a5c27e2210d52bc8bee4885833a5d 100644 GIT binary patch delta 954 zcmV;r14aDq1-=I%iBL{Q4GJ0x0000DNk~Le0001~0000%2nGNE0II@-z>y&oe*<$# zL_t(|ob8*zk=-B+hJi^Lsbu>|2d^ng$jtV!C)cot?ZeK=6NU#EfdB#jciDgq2*2Nw z0YxbQ000000LG&Iir4G)TWkF>!WaOIF+bMYFSqWOf0NewLu>uFpIHF>=RD6(rPLp{ z?oFgO*4pL<0pMb-RmX9>)tdpfe*i!NA_d}sNP&1DQXn3Plo_qH()w*@ui02TFjS=e zLmu_exyIF6tLwVdbzLm|h5C1CHI6jkNr8CSM0$t0n0NHAx%HvH{=ZY@P~Rc%7_u=m zZfZU;QuBz-tJcn3o1ey$PINP$!X4&v%5F$>>;3Xw=MoBUe&6nWp>h3of1z=o${|Ai zq=?x@u`|}+Q<-9?1iFO#mJcLH$hCd8Aa@KdTV@ia4~r*NYL1mA#l{)tvkPn@o#9O_ z3B`9AjH5}opW#QPE{H}kdVC46c+&f$-Yw@s`M|IF;D53)w1^9}D;=+eos@Pn(>&a# z7B)|dp4R15eag-lrQ?lme^`1T$y(p;}6J)1lh z9(#>Tfio4c$2>)??o*42+;*Jzmf(KlQrpE|#FlA=oX?}xvu*B4Q$JWLq?cZ!*pr*C zM;#;QeoADB*<5NPe@7}}&iGu>uS>WuUC5MN%lYW9se7_3hm!VGTPSILoavJ-5EbqL z2vO}xk-k>XsGWh&`~j&f=SjJle=!wqHBSnWJ}^@%+-l;y z*&^I4wSFpG?f(vt%(9+zhg3NK-c?yrq)3HZi*3R^n3p9zsn4nlie1=3q`Q90tpdV5 z5D!EO!~>B6@j#?NJkf=dwYH}n0I2Wp?_m9#NR2T+=Xrh}$I;v<0DO!wU!!dR00000 c0Kn%T-QO=R5ZqkmV*mgE07*qoM6N<$f^OH+UjP6A delta 744 zcmV2&(D*8aL>AAThwIup@%KUrWVp3moxG3LuH z+c?RJwYIq+Fc;QZbHCp=<);B!f56UwlK>Vt31ESf0G3@l3DIT*Ka82QXfxDFe8Wl& zy)28SoDC8^u9j8~Gs+Qn9Z5hR)SQHfULU{QJs&C$efz(;vHXrs$1J`4PDYrf9t+O&V71m zC?WM?Xti5IbXs1@k$d+VNbED4E!CW4<~MZ)a_!@%h#4HFNxGTgkNM1`N!l46jY=f( zJ57?P5_)s|PF$>RsYbsKka`%U_jIq5*vHqI>WtRdT|)D8lNzCLqZi3>&PXU%BUjGV zt-W`wEsg(F0w&V{i&`W(e>$m@bo5U9TR4fvLp-`8q(Hg>EW3y#TGPu~yj$wog_D#{ zM72U|SiTpKZW7EgnH8d^wysW+TC#V`OSS}PE~T&aOCv<-mWGsGpLHUwhqH7~H?bL2 z$?R%uX`O2$=h&D&JKkz-;OcCxyL-BsX*e3&o1xLJ8!@E&VoL6pf4fhngk5x8YsfWR zY;C7EB@eo_?!!At$@W8 - + + + diff --git a/inherit_graph_77.md5 b/inherit_graph_77.md5 index d3b266a7e..adb9405a0 100644 --- a/inherit_graph_77.md5 +++ b/inherit_graph_77.md5 @@ -1 +1 @@ -bddd2088519915deb10a2c7be7249f07 \ No newline at end of file +a53526c587e832e6279cb284ceac112a \ No newline at end of file diff --git a/inherit_graph_77.png b/inherit_graph_77.png index 67cf536e82a6fcce602144648eb3e0e6b630e887..1a35ba0e6b52b8b3afdbc17e6f1a03cb213e23d9 100644 GIT binary patch literal 3893 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 DD_p{T delta 487 zcmV74rs``+Rg5z&o^KF7rZ&6Z{PGRAy_eVd|L zIp?|u0^OW*W}fFwzZJ*=7l)z&e>M~iu%T#x?b1aV*uaI&{L1|=hMA2DQk8nyPE~*Dtn91f04+&r^!rX zjP5ImbruWTA+6abZ;6gS< - + diff --git a/inherit_graph_78.md5 b/inherit_graph_78.md5 index dc1ac0262..6da46d996 100644 --- a/inherit_graph_78.md5 +++ b/inherit_graph_78.md5 @@ -1 +1 @@ -13ffee438c706fcda500ecf90ce5ca45 \ No newline at end of file +8e03e85ca379db591b4f556dfefcce52 \ No newline at end of file diff --git a/inherit_graph_78.png b/inherit_graph_78.png index 4aa314cbe0933cc690de1f49050af9119510b67c..893a680f770eaa6d67ea6c5658452fffc7468ec0 100644 GIT binary patch delta 1154 zcmV-|1bzFI1%(MAiBL{Q4GJ0x0000DNk~Le0002I0000%2nGNE0Bc3gY>^=pe*`*7 zL_t(|ob8-Za@-&chK;Ak=t**sULZ3$)6VP#+UYs^mQ$qXi2JbPiOUKhfdt0<-%A2E zAV3BQlq?GX000000AM6Sobmel`aOj3(nA;kEZMg0&;5S?d(8V5zZ61v2_gJ!Cl&y1 z{8*Od*D>Qs;dgGgo4Ygsc=7i3e@5o7jpYEKD^Pea6;OCE6;OCE6;OC%LI_I;Pp7?Z zZ2=u!6+WJ@UK425ZU|x7wr$zA&7?l6{v%%PTp6tJU@FWMe&5Pdt9JbCm{0wTf9KLv z-PEd0$w;-!^(O__k5s>E<&?^tYi}l!7f%}Ytz42mZu`glIKAf`p|y_OFJ?3cov4$FvlUb5-MP$f0qScG&N~z2A?ad zxk)@jxNXTTuBOi8hYbFw`#F4SJDw>v#5(3Cjs*f=bXR!kYJ62Yv?dgp8=ur)fz8gT zPH8CTPFv3M-PU;YO_`2 zlQ^(7c{#ai<&peeeS_}N2dXYc=LR4e>Qlj#6jqwz>EjO?}qN-uiN{_kskIW>UBy zwVrsl-~Io?OG9-_>Za0ESZ?b5Tv*ItdBlJcddN$vP~;-c`<&RBF>>hY%(rnFuQnNoS&MU%BzSR!kU zT)hu2PGi!v=1NW?kkkEdTBTU83^gYSy;mtIqsZBkSYZ_211Q9NOl#7BIf251ser7@`^j z0000`Mq$C@@%SR5?-jwoJlnSYhGm~&0TF!@(a)TaV4-p{SkLEkY$&kAzVBw+w&=c( z$+3W7NCt3_4B#Lcz)_tHL~l>Vf0wFnwx!7sUfkM?eH=$qJ+1uuMkU6|gj3xz057&= zAR_k@mizl-<+0!4>$BUXdP?!;^itK_6p4I+ALLQ~uJ^>G~k%EN72 z=F4>psXAllEp3;yoHKR}IAX1hJ!eWc!4)i*74hVfoa?;3SXu^S^o_Jff5h9;h2HI4dCP#VbPPxRz31(LNhfgFT81mgbr+fj$gPkJo;%#| z9CQ=lT&iWbdo$nbQpqrCf6o3cRCW`RCTc>GV=GaW40ai}^%I|40#7Zqhjo{3ww)x> zm=r3y34gY3bUm@z&)Q{U|2ThJI`J)ozt-Q&pW2PxQ0|-Ne@8(B@hw9*kH1RG4V4gg z4e`lfjErWtcJZzD7zxC86F!b+H}=&si(}cDvs;@@MavKxb)i#TV^Zz%v{ovU;f&Us zGHbb5B30c4jCI+TAx7)KZkAgm!&UowF6bt}K{9}YWB>=r08VlMx$pbTIAD_3>y_M> nOor6IhXVir0000m#u)Pls8)&y0Vk_000000NkvXXu0mjfEc!Sp diff --git a/inherit_graph_79.map b/inherit_graph_79.map index c70c7c5dd..7ed6e3d5a 100644 --- a/inherit_graph_79.map +++ b/inherit_graph_79.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_79.md5 b/inherit_graph_79.md5 index ee6e60731..cae31967d 100644 --- a/inherit_graph_79.md5 +++ b/inherit_graph_79.md5 @@ -1 +1 @@ -49ee9304ffce8f80296e42ecc8b36b95 \ No newline at end of file +221e40debc7a567365b4e11ebbf751de \ No newline at end of file diff --git a/inherit_graph_79.png b/inherit_graph_79.png index e9d5d83ddafe124d3eb7afc8b9f66b8bdf99bf84..c35786571b7b2761703eb5b0055368f05a089a83 100644 GIT binary patch literal 4338 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 WIi7NW)YJ?7hp;fUF~Jz!d--oGF|j@X delta 754 zcmVc4Wkx3cyHX!_gm|ycMM9lQ@*tN9AA&0r)Qi-IX#S)7PhrTFQ=Tc z-|ADTubN0(?A7Rb1Fy9kf32(8?g5*+Kn<~(4Wucpoh-gooe9KtGBX5aRm2FRK#fa_ zZS?g%JQM6W)8yE((8p|+38UOIyw)>L316&+HEqn#Y%BalpUqXq$gJ3WSZmFk2tP+i zZGeuZ@#L - + + + diff --git a/inherit_graph_80.md5 b/inherit_graph_80.md5 index 0038b5f76..0e71544d7 100644 --- a/inherit_graph_80.md5 +++ b/inherit_graph_80.md5 @@ -1 +1 @@ -02fcb5de1ab7615f481a7d8978618067 \ No newline at end of file +4c0f9372467a2fa271aeb801456d97ad \ No newline at end of file diff --git a/inherit_graph_80.png b/inherit_graph_80.png index 89da1aea3936ae2d1640b16c3df1bb9d557e424c..3e14d8895a8cf35c51fb43c986b0e5b91d8e6e4b 100644 GIT binary patch literal 4494 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 B3p4-# diff --git a/inherit_graph_81.map b/inherit_graph_81.map index d613ad7fb..1e97c43ee 100644 --- a/inherit_graph_81.map +++ b/inherit_graph_81.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_81.md5 b/inherit_graph_81.md5 index 1dc5b70ec..7ea355f39 100644 --- a/inherit_graph_81.md5 +++ b/inherit_graph_81.md5 @@ -1 +1 @@ -57faeefaae42d44d9002708a2cd7be1d \ No newline at end of file +14ab03c46385ac75d21d088e00e0e7fe \ No newline at end of file diff --git a/inherit_graph_81.png b/inherit_graph_81.png index a6cd7e0885b039421168514b91c1e3779b48fd77..1b8e3690607f4ba62eef763e1225c99f6d91616f 100644 GIT binary patch literal 10583 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 diff --git a/inherit_graph_82.map b/inherit_graph_82.map index 49f0ba6a6..b6dde155c 100644 --- a/inherit_graph_82.map +++ b/inherit_graph_82.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_82.md5 b/inherit_graph_82.md5 index dbbc5326b..43b11a7e4 100644 --- a/inherit_graph_82.md5 +++ b/inherit_graph_82.md5 @@ -1 +1 @@ -ead852ab37d28f43447a71d7d0903ebe \ No newline at end of file +d7584daaad7e29c6840bd0bd8e2588a4 \ No newline at end of file diff --git a/inherit_graph_82.png b/inherit_graph_82.png index 3c7c129f79714ee8f547117ab65e028bb2c72f16..80e71a2a4f1d701cee89a49acafa72ae8fc5506e 100644 GIT binary patch literal 2309 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 diff --git a/inherit_graph_83.map b/inherit_graph_83.map index dcb6b9ede..5110e111d 100644 --- a/inherit_graph_83.map +++ b/inherit_graph_83.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_83.md5 b/inherit_graph_83.md5 index 321531b53..1eb079d49 100644 --- a/inherit_graph_83.md5 +++ b/inherit_graph_83.md5 @@ -1 +1 @@ -ea78c5f83bcaa99f0eae93dffd55f76a \ No newline at end of file +9d15da15fbcd732972d8906cb2f2063a \ No newline at end of file diff --git a/inherit_graph_83.png b/inherit_graph_83.png index 24ae457449dfb1675b959e9b6e3945751d18366e..ce643d6a1ebfaad03aaf978d3cd2f90b52efb892 100644 GIT binary patch delta 873 zcmV-v1D5>M1MUVPiBL{Q4GJ0x0000DNk~Le0002N0000p2nGNE04^A8j*%f0e*+^) zL_t(|ob8*@k>el?h9PrhTqWDbb&#e!sbFWWk9$d~xCT-|yicBChy(~Ez~TR1c43Vq zYzri;bq)Xk00000urfaGxL&Wnz4u=ui~+!!%jNQa+qQpU->>*0@BNqe{=1)90QBSa zdi{0I{R#WtoZw*FHgkgj=*hNif9~;ky!BrO*aE;*zzM+ezzM+ezzM+ezzLM`-aGH# zPM*zlfp&&ELHrO$Jyb2d-g~$2yW96&MII$T#7fUSz3W zs!hqJR(HxqN^fdD9I1J5^J=xT)aIPN)nPxDNjSoQl6Dv}g#B^*=nJ8?fB#r^cparT z9!KfTwJ9h$DLC6Cc5?D^ZHb*L&?OwQyx}E|(kjz}QXN{h;HBqL*$JFG$4Q06#xu+Z z=%D5VXIN=!LY1QpJ{Oa4=nOB7G~pe^X#FdovJ)IhTi7l|lEAejbU7QTB%K;ptIxtt z$vD7c9uB1v*IZI--A?tVf9&L_)i-+F>fmD;SRS>VU;t?J{&sJ$0+JWs{I~u zCamYz%?TuB!_+l3GPttla7^v$q+KfA0`)F0a99N~v4QB@V)eqG3R;4y*kqftaA=ND{w3Lo1 zWvbJmlH|BWMu^6?e@ex=QadF2DSLBy)F`C7OY#t_1#9R|ASwUlLYdYQVyhclYi~({ zm>M7JtqB!tugmEU=O%sjmY6$%Re5tuzZ8w6Tti;z_}J;VaTcZ6rMh!+dNNfw1i%QI zcY@RwI*X@UV3nwS@;#fCW+&)%Har_6V_2XI!XdCca00MAKX3xDJa7WAJZxfozu$Y> z0f0Hr=acMbo#1x6nHd8B000000000004CuF7$>o(CB5>N00000NkvXXu0mjfLYAIP delta 460 zcmaFIc7<87Gr-TCmrII^fq{Y7)59eQNLK){3I`jIbkg`2H&Icfp0U%@#WAE}&f8gU zb6X5}+TOl8_CjU5hqyzMnu=Hk`%ceY?eE=ZYn`3xz&D%!{%?;L8$6p1d-w1=vH%Tf zuzhgpV(DFLTbjvt#D^Gk!+l`Cg z_r9vXZNay}P{6_hjOszuZmu(DLaWzXC^d@8$QU=y{F$%)_h;eR^?#@RHjS2!j-DFT zbE`7@^UTFxt*$&vJ@}-%Pi)3amz0Tfzqvk{zkkbQ{pDM>Zv0$!tMYW+t;**)r(Zuf ztEPFYSjjuDX=`%S*V$I{@{E+KANqzFT(snxI!$8!-18ULHP1W{y<~R%R-N8J@3r&( z+7xp=znpmQpP%m zPusHpMa?l?_N!8)+513u--8)zAA~RX))BE;>Gc2i(;ObK?YXoneV1DoA0G<>ol6n5 x{W@3ILY$we`$TV@(!L4o>W{;%fq}^&(_o!xcE54+ul*}PTu)a&mvv4FO#owU&7lAQ diff --git a/inherit_graph_84.map b/inherit_graph_84.map index db0c732ca..914135aa4 100644 --- a/inherit_graph_84.map +++ b/inherit_graph_84.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_84.md5 b/inherit_graph_84.md5 index ad473e2bf..f0f1b0cb2 100644 --- a/inherit_graph_84.md5 +++ b/inherit_graph_84.md5 @@ -1 +1 @@ -4d3d013dbd9a363d85787073ac18ad47 \ No newline at end of file +875091b3893a95abb149a3119ecf5265 \ No newline at end of file diff --git a/inherit_graph_84.png b/inherit_graph_84.png index 9355be22e8f66bbbbeebe84481f9c962bdd09e44..1a435b1fa65bcf8840ccf53d55e1e3c5e70f295f 100644 GIT binary patch delta 505 zcmV+Me*v~h zL_t(|obA}rZNnfC2H-o?F*-^1sIq`1&%_9oI!F8DDYA#@lPiMH92hWm`hQZDKy2=8 zpMaVO0001>KMp&FVR&ceTaRR*KV!_pTKnVoy@dxc^NpE5k4p>AWS-|QBKq+ARzZtQweqrsZH}a?T~S zm+#KGr~a_L^!dWJG`4@76gNCiimSC#??p=dobzH2za(ePAjIDFE zF;il;ypJ(eW)h-nZ2od`Y;irU?@_Dqs})JFD$lWJ$ynN@T8tTL^$eOUH?K6STyaLJ z9iz%jvTXkRcB<43oYbzFqqK>Z&f9D6n5oB>JOfSh1+p+#wo?CL_m)wWk z<4WOW8mOwxB>zEd+P}iaPkk>GNrqQ0gcvM0phA&=3Pl1c6bYzMB%s>-?`9mwBlCb0 vTNR0O?wg429ddyaFvdK3=Kufz03i7V)c6dbGIF1300000NkvXXu0mjf%P#FC delta 689 zcmV;i0#5yb1h)ktiBL{Q4GJ0x0000DNk~Le0001^0000p2nGNE0Q(BK!;v8re*$bt zL_t(|ob8?AZNwl9g>ls}I?2s*OGTNWoh38eD(SCOISR&rO$fYCs(Qcy2A=GYTB>sZ z000000Pv7s@q9kNi0E;JF<>6nb^Y<{KK%+JdJxff80m}Mc?z+F70Ol zJR|4^H8B#=-;ZB^ZV%Ome*2%fa%k+3w+q=AnwMKo3a($vHpzOpJ?F+N-J2BAm)-P)In<|&=L+dt)U7@wttg)6Re_`74IYc7Z z+A%Hqao^RRzht~asLtsMjzh&WI(LstK#q;tx6$+A9%V_J7MkZ{b=GQPyz&+%CFh3e zha!!BTzInzeGcS# zG1YCl=C3`HG&spPF?&jF8HwpU;~A}#FY7V2`t{CKp0O1gA#}trf1CnhR7NXZYgF&Y zF?E=>_C76B!$x2#&uEoxt&x5vwR2>q5~Fjr=~$`u+SDzsegvit)1WVg@{CCFx;I0K z5rVrn2-Bb&AV$y)5F_XYh!J!{^a8VOTT45@B)nd)Xj@c_v44*M0000000000OwTWt Xi~>CpH2dfP0000<2SrXqu0mjfp3^ - + diff --git a/inherit_graph_85.md5 b/inherit_graph_85.md5 index 6acbb1cad..5df10895f 100644 --- a/inherit_graph_85.md5 +++ b/inherit_graph_85.md5 @@ -1 +1 @@ -69f97c47fb4e41a52bbdb25660094931 \ No newline at end of file +bfdb2db84cdf2d18c8d8b7020d7a3680 \ No newline at end of file diff --git a/inherit_graph_85.png b/inherit_graph_85.png index 3b3facab5f5dbc4fc1b6da04b923228b9ba1f7fe..6111e51ea39fd330f2655656557d28364fc12628 100644 GIT binary patch delta 654 zcmV;90&)Gh2bBdOiBL{Q4GJ0x0000DNk~Le0001+0000p2nGNE0Dvxf50N1he*#KL zL_t(|ob8<3ZNo4OMa80Hbdt=Ir2il6=XdrI#SL7f<}@>vGNURJ4BoV z0001hS4aGg`~ChUBDX7?fq7V#<;U;)^gBf4CL-T9F2Tg4#kTW!Jo>rZU6fH_TG2IZ-;Cj zj|;8q&kL=aYS-*T?pVnQuG#k%KU*<=hEhq*8mY?y4Mwr)T&FZTQNgo??zj`oyaMR%CU3iPpvN_Gks(`qV-KcZ<|{4UX7_E zn-v-isZ#wT@>XdSu4U-RM#;}u3@tVUH5Q~%FaxoH8Hf$cKx|;f=?%iVu9kklBs`zb o)3H;ro&CHx00000002NUzke;sF4G1-P5=M^07*qoM6N<$f?{qrd;kCd delta 949 zcmV;m14{gr1-Sel?h9PrhTqWDbb&#e!sbFWWkNcBUu??hx_)}@a~*Wr>|+6{;kt~rI})kA2G(yerf?Q z4v)v$+*VYIYyeIlVnM-B^{Y09nJr8&`(lc}Y9IA`^_fVWJma%owsj-wtPiz87vr`GBy zk!MvuCtq@$tHf^he~By%(rX^kQcvv}x=|KVtZdyP$J$oAaH3pjBc;a!sL_=RUA#gS ziB7dx^_R4MFWYnv=e*zcTfX5u>!{7!8me$}rCM2H)ypbHCro^sEzIE*Cdt000000000000000A%y>n XXFlRq^IIJN3jhEBNkvXXu0mjfX!gBz diff --git a/inherit_graph_86.map b/inherit_graph_86.map index ca747b3a4..2f735f411 100644 --- a/inherit_graph_86.map +++ b/inherit_graph_86.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_86.md5 b/inherit_graph_86.md5 index b25cdd36d..6875dafe1 100644 --- a/inherit_graph_86.md5 +++ b/inherit_graph_86.md5 @@ -1 +1 @@ -d61c96507942e226776e433c0d42ad6b \ No newline at end of file +a73c588ab1bffe836120517f4c6aba49 \ No newline at end of file diff --git a/inherit_graph_86.png b/inherit_graph_86.png index a6097287f56075cd34a21942da1d0855dc4a77de..16df156a64865e844ad4d00453e2e564ec7fc8b4 100644 GIT binary patch delta 914 zcmV;D18w}J2A2mRiBL{Q4GJ0x0000DNk~Le0002d0000p2nGNE013A3W|1Kje*;WO zL_t(|ob8+IaoaEqfJtA+=p@;r8+a+5C+J=G=pTEEF5n5Q{8FmOe1QNdQ~tiYT*4O! zK>-PpqH_QM00000?~C7NoX_W<-usU|lmU2kPN&nqX`247^L}hAdG9~G_rLq81uzbe z$K#K4?$tMQ%x`wcX?h zwX5x;v@BFF)_<+tYxRUMf6c?W)WScvDbPBd%C8N>QgwTl)!HIg2G4NV3ZTSnCVB@_ zVI8CQ`+^e*=;bIlmCXZPzDp1Mk4p{JD80#~AI>={e+%auzu7h>UJt<5anm$d(uGjo@4 z&iYgSP@7nJs$J;=>{HPOM oE|+G?00000000000DyDu6YC)b;$SR+G5`Po07*qoM6N<$f`v1;KL7v# delta 799 zcmV+)1K|9Z2c-rfiBL{Q4GJ0x0000DNk~Le0002H0000p2nGNE0MB!I-;p5{e*)S` zL_t(|ob8?MZQL*nhRvd5bdt<-OC3BxJBw$yRoq_+T$PkWo0MhoeSjdRZ%TeorfddT z761SM0002M$WWf~dcA%T(bpZu0AR(su7C2ppLqrmeG$>`J|+R+MqTWQ_xtT@3IGml z+qSIh%9j1;YzqLl0kMNHKXK7$cjBV-LVk|3rrG7O1m+E@0t7c7GZ1BAP8ccTfWf}Vrl+f7dJs+w6 zwA&riEoD~YdojY=n~8mtZ*PfK8@XGlCAI!bw{fdme9!BpT~9CDT-=zMcKIuFX=$r@ z{OYx?-gE3(zl6!oe&zORe|;c3Ya@49=Gt8ugR952@o;0L`Dy#f$>-8ihx>wi*p}n& z#*_{_wS$m%x|CnCvxLVww3cbwoUv2WSL=K=wp|4;l|UHGcJ>IA+?hKM=%d;-8W6jJ zQH67tU8Amt1l$-928ewSp76N#>4X$JgcXyJV)x`JU!LqT zrN}<6tyHg8x5XZ9*^!o)L9-D~?AowWF5LBqMlhp=083%KvjR6}X}`!)h=Fx5R__qt zG>6$;n{Ye3#F-22=?e4=0gke>L+s17kX{d0pjQZR6p<(3#$=ogu|4Ao+!+FV)dhPZ zVR!b{kX~)LZ|f6~byD3PA;6JDo(L&+ZAh=BFh&dkjso163bQ|i% zzDy~0Ye7Qba{xC6gaKj)VSv~{7$9~K2JwKpZCg(}05IY6`G{qr*rk832LJ#700000 d0000k@E59QsqqX&;;jGx002ovPDHLkV1lB)h4lac diff --git a/inherit_graph_87.map b/inherit_graph_87.map index 53376ac77..fed47716d 100644 --- a/inherit_graph_87.map +++ b/inherit_graph_87.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_87.md5 b/inherit_graph_87.md5 index 704d7f492..b980923aa 100644 --- a/inherit_graph_87.md5 +++ b/inherit_graph_87.md5 @@ -1 +1 @@ -2de9bb60f5cff2aa80cdb1c9184ca0ce \ No newline at end of file +3c70506576fbe95ec8a55049a983d39d \ No newline at end of file diff --git a/inherit_graph_87.png b/inherit_graph_87.png index 81ea93eab9b57e4fe2b6be2d90641e26382b3f01..4947aa5d32d19db581cce6e14391281166e34aaa 100644 GIT binary patch delta 929 zcmV;S177^D1f~ZeiBL{Q4GJ0x0000DNk~Le0002J0000p2nGNE0K#nvn2{kAe*;@d zL_t(|ob8+4vD+XJg~5|DQpxQj9k?ltE67ax$ctS?8gK!#(mo-iZOo07=NB83jjY} zuh*{-!jClW&FMFmWpNh-fG5kce}u>5@fLq+pap=Y!0Ews!0Ews!0Ews!087k#;(<{)$vovZcb^4F@|+rMd9swUDyBO_u(xrWgn(&r|GD2_xY%De@kJCBX*?P zOLZyPx2of(aLVw;^I=L}j9QysXtYZ-&EmARnDq1^j4@HtXdHEN+oF!6VdnHB^fFS7 z)TiIOObfKSM`$w-T!uFz^dQ;^>X~I)NJGA2F!Hc?8$QZy5`n#op4BQ>d}@|DQh zp~^g}KWC?;+e_PMxDRi*f5}>DBIh0E;yIl;N_I5bq_(8bSEKFI!R8d04zr$q2Do9) zti9%l!08pVa%{X%wqSSzrlV`8Z?Un%o!jY^p0)LeyVF~3?07e9dQL^VOxco6_b7UM zpzEIA63!{8_5U6msdf2Q^tMsvI+0C}wC*>Ys1t@Ey!Y;@^Kskkf4RwCX+wvD%fo5T z+2QU{wzZmbn|Zm@oJXGL5hNRHHR-juIz9DZL(uQK9zC|Z<+X+@o6}UPr&cq!!%C&e zbu^_qS&%zIZIxa_lO@X|yPX=F-e<$lc#*7-99huhv(h82uQt7eF4pOfjN!PmBi^6K z5XzdlMk>uAB%0G9f1k8mjuK)vHOF`*Ly4M)rul`EBwy*?(ILRz{!u)? zmOVK8Mpvsh9zTGPEJ0HDrH$^f(ooV|dT}J0sQP-5E(d$0*K$fvFKwh!gVh|3mE4!w z<1|ylj(rcVDaR5{H&=h{A_7&eR;MTKPEU0@?kh2d)GmiBL{Q4GJ0x0000DNk~Le0001)0000a2nGNE0GbGx5s@Jje*xo3 zL_t(|ob8y=ZNwl9hB4|Go#ghYZh=TQ6C+gW9PLx4xIIFjQc*&{1Un?T|C6E%4u^k; z!4P8r00000KyN5E48!nFM7JJd!1=M(KAm$vq3tcML_{|t`rJ7k1l03wSXQe`G)%1Q}2VK?c-8kO6hN1{o1$%e{1*)rS<)TCtJ= zb;N>c`j`h{$;F zS>^fOd;iZKmuFi@Tu!we)=T+~|CjPxD%Xy~THj_Hw|$PbwLWu$rdAJ!e_hh0q~KE9 z627GLYV^C*=Gt@3cThrPB{Sw68{68Hq|Me<;|yaRA{JylX9|~=l%#=Fx;#26>GBL6 z=W1-}i}pAiZDn3VB*^C3IA1lZTJDr3`5mpKF>E`mTho^sAE`r6tq;!rY)e04t*xl1 z%iPAiv}xBa=j=J1Ikt>Le2b5g&Mn&*>8%ew#$K4CY+J-uvR5GY(xhg;q>nfabH15r z9N-XS73^_>mi8f)LR&z(1nMBjfI0{=pbmlzsDmH_>a3nFACJeLI>3cl1ey2#+Zc22 opaon2YwfeQ1^@s6006M$7d7TEyunF;8vp - + diff --git a/inherit_graph_88.md5 b/inherit_graph_88.md5 index ac9dba33c..9d3fefdc2 100644 --- a/inherit_graph_88.md5 +++ b/inherit_graph_88.md5 @@ -1 +1 @@ -ee708b37027ec9f6da42173530395fc9 \ No newline at end of file +1ef036d8bee7b81b9a22fd3ed353e3a8 \ No newline at end of file diff --git a/inherit_graph_88.png b/inherit_graph_88.png index 8500edeaca3019f515c50f0816e9e9b1fb1b1c91..8ce9034eea546d6bd87559a7c991c75cfcc83a78 100644 GIT binary patch delta 811 zcmV+`1JwNa1F!}miBL{Q4GJ0x0000DNk~Le0001$0000p2nGNE0G{VcypbUke*)!6 zL_t(|ob8&?ksBclhLI;_q>}3+9k?mR6=WuT~>+-$XnO-rFE^eXQacjuxqEXu ztj1VN_V7~z5xH&Ks>=K4ZQH)o$K|~)Brd0HhxeuWjoYRAEtONW*s0ZCe;P~4zSbCP z8M6IpiLJ4%(U+xOt{<-78cm~gmrz-$oI7@qx+BrJYVbZ|j4^6Xb(CKTN3F)x)?nSI z22$Nt+Dx{;Gp$;hW9hLaZEJl$hssK|2ZCX_7D+(b6HJygrXCtn?MmeAr21^tpR-fa zZKW;7eEZ{q(NdslUFPaJf1No>b|l(rZPm`NL|ZR7`~>Q#tyJFuZW~ZPRxGzY2jR^Pk*VD3+Lpg=B;TZd)pR`e;hgeEh#`P?ZR>O zyn)Es>}AUK*K%4du^HwOwb}|-2(9!Q$%#I9UHgb3%(>Fw5a(1agW=v?)x0OOqVaCV`iKbd+rP^4{&7q$DEE3FGmv%1JvP_#9m1@%)B5({@skneq zl4jDAx>33=3D$Gle`{+xNl&Ux&Q7U+%az;QsiY|#Gg3EN>_~%dNvexxde96Gwf%u} z(7jTfF&$*qljB+FcB(T@{H$2yEMWTs>cFXhI&dnW4x9?8lMU4G_xng4U_qYGXRS7=~A7zO_gO`s19td+)#3v6r|LGvAo`qh4Cjvw5CBiRf(|+Z4^h zdtW>u=$rSRrfJ&5U4vZU;!reTe}92)RLW7BSG%7*d(S~@pUutsJW@UUanFL8DTHvSy?hQK{E5fy zCAJo~rLoujqAKW8v~f~%llsQ200000NkvXXu0mjf)|l<0 diff --git a/inherit_graph_89.map b/inherit_graph_89.map index d620ef12c..e041c9b9d 100644 --- a/inherit_graph_89.map +++ b/inherit_graph_89.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_89.md5 b/inherit_graph_89.md5 index aa2927097..0a58844b4 100644 --- a/inherit_graph_89.md5 +++ b/inherit_graph_89.md5 @@ -1 +1 @@ -63abd60507b1390b32819d3c2854aa78 \ No newline at end of file +e83d8cab1535dda869222fdeb859042d \ No newline at end of file diff --git a/inherit_graph_89.png b/inherit_graph_89.png index 69886723f4cb5ab9db1e0a77e7d637e94fcac3c9..2c8a447a0012f8a22dfc750c36e5d3aef8255c5c 100644 GIT binary patch delta 439 zcmV;o0Z9Jb1LFgbHh-8&L_t(|ob8)oZi6rkh3#p_*hzYkT>yzQA#s82AU(d zveXF)b&@i_PpXPth#!38t|`28KHWhC2g>JAVU)J7cKf%$$u!=@>mu zOEANoVP-fp|GwgU__>zX-sA0Dtc|VBHcg{eH+McMYW1hIAFW?X^1(|D%uFIu6mQ!i z@+Tk1TP`GywXwtfw7T(eTHU=^LmOw0l)fYNOX;$tTZt_h+oG10-t8hF(oJjmy`(Ui z;Y8}~d(-OsY_g<}o*gCBHe*N0-P?O<2r-%A;k{~$ zODSpaQu|tJ)EY?bxIJn##&t@yK0@;)J=du0H8HK@Tt25W#Svp_G+BTLFU~NV;U35> z?YVpOGc~j@ynThC2g>I|GJ0BQV*er+(KA&dr_SB66jle=LBL hbMq1a00030fNyj;`e^g0(ML;OT($ z8lc|792p-od@#%eXXd{xwa4FUcI`9W&$Tt*+N{xX)Z*sOr$p|UBjT6Xeeu!)Gn0r^ zwZp!M{IjR+V2erHn(w%u7B@Xki(6{fjDseicl;U-S< - + diff --git a/inherit_graph_90.md5 b/inherit_graph_90.md5 index 7ad6754bc..fb8aa2987 100644 --- a/inherit_graph_90.md5 +++ b/inherit_graph_90.md5 @@ -1 +1 @@ -c80467af3f7af1bdf02db77ccc09d2aa \ No newline at end of file +423ca6d9b98124447522eb55a36ae16b \ No newline at end of file diff --git a/inherit_graph_90.png b/inherit_graph_90.png index 896776ec88a02bc02c0d7e9cd42b76676acfcd08..34391a90b1fe3c673284fe42c88fef3cb98eadd4 100644 GIT binary patch delta 673 zcmV;S0$%;n1E>WdiBL{Q4GJ0x0000DNk~Le0001y0000p2nGNE0GABv#*rZue*#@e zL_t(|ob8&?ZNnfChQaC>og{m7122U#L8b1|mt=}AkO|^GQBeYCA9olV{!fY$FyI6K zxw{aI0RR91001_wnCJQ3T6<|>3^+d1H2pZ|zQek=xRJH?Vy*q$&n$2zp3mo(G3Fzz zdl8YxIal2va4wv4=6=7w)K3j;e*v8V5dkp}5fB3r0WlC!=UDr)i?it(ho&NmC!sZ| zBfyzU&3P}&Qf+JxJW&U<{_?4b$XfgNitEGcsruA={Fy4J#!f9P*T%JexofGpXtd4U zoANffaW%+<&|P@*a8(##C7W-C5h{vHd6i8#!UTiNcE%IZn3p= zE?QI%XH??5mK4`6OZ#!ge~jy>by&M62dy6-6xeJ8VjvC zl%5$zL@gLaxI>7Dd(1>~G$h1t?)5GvwavyOlR9p(M#<5T+`WCfu-p?vc%l^HUjQi~ zXg}bB|_-g6G21;aKj?E&)FC@oEbysN?X0n+8Jn#cT|9uC*bjTBQDDpuUXEkep_H`O8cj&)@xrDf86uM zyf#M4JKKACXjkB^?IpIBOJARe4fmcSwaI?f7LKQ@(`2Uas<4x7-#H^h?(){h*FAqP zdq4S`t(5nYQm>+ob8qgxHo@rLXX`c3m_NRoWqak_Ldot^C)H+MkJ*}0-}#a2`eiTO zoAYlq9y>SXhQUAnT~j`4-NzoC9*8Gern*Un1Q`yO>xVrg1n)%}})w>+wG z|85kQwV-d->U)nb)o7lZv-$Ve3?tPafky?lPR?~)sT04@(RGt_jN(F7jmK>YHxVdh x_s7y$_hXFAdsJ>$|94k#u@_Ea1coMqQWaBT!!ti6hF8}>Tu)a&mvv4FO#r`$)M)?! diff --git a/inherit_graph_91.map b/inherit_graph_91.map index b728c4141..75e191006 100644 --- a/inherit_graph_91.map +++ b/inherit_graph_91.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_91.md5 b/inherit_graph_91.md5 index 07f9ca20e..3f4b23bf2 100644 --- a/inherit_graph_91.md5 +++ b/inherit_graph_91.md5 @@ -1 +1 @@ -27104bd240168538159b1d4ec8767a31 \ No newline at end of file +e7b42bbdb362c5183c808216d3013398 \ No newline at end of file diff --git a/inherit_graph_91.png b/inherit_graph_91.png index f41298ca026a5c27e2210d52bc8bee4885833a5d..68d01c1e6d0cd83f4ce84a7f34ddbc5a8f7661ab 100644 GIT binary patch delta 812 zcmV+{1JnGz2eAeriBL{Q4GJ0x0000DNk~Le0001)0000p2nGNE0EFABGLaz^e*)%7 zL_t(|ob8&?k>el?hEe9qxJtH<>mW@rsbFWWk9$d~*alKTd{5qC2?&8D!1n*mWMVMJ z2>%8d-9GgeT--f*gu!c<;#2jFUipN#B}(~M+b9BLvXqVHdvAD&O;r~cz(E?ufS)y^6uwx#Nq+QQkv*`U!MJ;*M` z)<8sVSr$=xJzkdOM}C}M^FrdZv~I4fg>CC`4XJB$^=|F!-gKEREsd+Gf4ij}rE7BM zYwsm_p<3#h0hN)=xnn!pv)MLVdrGK@Y{oZ8gVc01n!WY4$#glxgRr2+u3mkxhrU)3 z+3HxXznV8q^3|0~*Vf%aXq&`8%ax7$NTWSl`??qA(Dp^Ka`mR_;OcGZ zBS~6PZsZh;#aKo5Fm;VUe{Ce&E1WP|mLbCW_U52lae9$y3jxA<2h$}mXNbsJeV3j- zkH(jvSCrS;c53vRMr-!L4x}8B6=rMOM2=m*MYv z4GG#pDx#w%+$O#*l`komyLT>}M>_3?i@e&XZ;-bP`&_t8E_8+qe{l&zTP#9cwuJvk zLV;TBPT5*Y$K*ndwxTkUg@(2uxo)PVf!6S!+A^tfJ^Df07gZU_!UpveLunz^GEi@% zk7m75ul+35_bz*ijk|~TbXkf{?M3aqTQ<y&oe*<$# zL_t(|ob8*zk=-B+hJi^Lsbu>|2d^ng$jtV!C)cot?ZeK=6NU#EfdB#jciDgq2*2Nw z0YxbQ000000LG&Iir4G)TWkF>!WaOIF+bMYFSqWOf0NewLu>uFpIHF>=RD6(rPLp{ z?oFgO*4pL<0pMb-RmX9>)tdpfe*i!NA_d}sNP&1DQXn3Plo_qH()w*@ui02TFjS=e zLmu_exyIF6tLwVdbzLm|h5C1CHI6jkNr8CSM0$t0n0NHAx%HvH{=ZY@P~Rc%7_u=m zZfZU;QuBz-tJcn3o1ey$PINP$!X4&v%5F$>>;3Xw=MoBUe&6nWp>h3of1z=o${|Ai zq=?x@u`|}+Q<-9?1iFO#mJcLH$hCd8Aa@KdTV@ia4~r*NYL1mA#l{)tvkPn@o#9O_ z3B`9AjH5}opW#QPE{H}kdVC46c+&f$-Yw@s`M|IF;D53)w1^9}D;=+eos@Pn(>&a# z7B)|dp4R15eag-lrQ?lme^`1T$y(p;}6J)1lh z9(#>Tfio4c$2>)??o*42+;*Jzmf(KlQrpE|#FlA=oX?}xvu*B4Q$JWLq?cZ!*pr*C zM;#;QeoADB*<5NPe@7}}&iGu>uS>WuUC5MN%lYW9se7_3hm!VGTPSILoavJ-5EbqL z2vO}xk-k>XsGWh&`~j&f=SjJle=!wqHBSnWJ}^@%+-l;y z*&^I4wSFpG?f(vt%(9+zhg3NK-c?yrq)3HZi*3R^n3p9zsn4nlie1=3q`Q90tpdV5 z5D!EO!~>B6@j#?NJkf=dwYH}n0I2Wp?_m9#NR2T+=Xrh}$I;v<0DO!wU!!dR00000 c0Kn%T-QO=R5ZqkmV*mgE07*qoM6N<$f{!oKBLDyZ diff --git a/inherit_graph_92.map b/inherit_graph_92.map index c90aa014c..68252669e 100644 --- a/inherit_graph_92.map +++ b/inherit_graph_92.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_92.md5 b/inherit_graph_92.md5 index f4365bc68..41169bedb 100644 --- a/inherit_graph_92.md5 +++ b/inherit_graph_92.md5 @@ -1 +1 @@ -b0f0cacfbdcd028e64440f0f62ac7d9a \ No newline at end of file +715a0e1c749782333c4de8baa7e8f938 \ No newline at end of file diff --git a/inherit_graph_92.png b/inherit_graph_92.png index 1a35ba0e6b52b8b3afdbc17e6f1a03cb213e23d9..9458450665ec5ff0ed6c6ac57b94a014af9aa547 100644 GIT binary patch delta 394 zcmV;50d@Yh9+LwhiBL{Q4GJ0x0000DNk~Le000180000a2nGNE0P9>f%8?-ye*s8I zL_t(&f$f;lZG;;)& zv|1KK2qA>@0^-0h4DSFg7GiqDId}8k|Eyzg@kIbG06yEv>YI6OV literal 3893 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 DD_p{T diff --git a/inherit_graph_93.map b/inherit_graph_93.map index da001d342..67df5ea6a 100644 --- a/inherit_graph_93.map +++ b/inherit_graph_93.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_93.md5 b/inherit_graph_93.md5 index 6da46d996..3785e51ce 100644 --- a/inherit_graph_93.md5 +++ b/inherit_graph_93.md5 @@ -1 +1 @@ -8e03e85ca379db591b4f556dfefcce52 \ No newline at end of file +ee62b74e865532b965b3e43b13860992 \ No newline at end of file diff --git a/inherit_graph_93.png b/inherit_graph_93.png index 893a680f770eaa6d67ea6c5658452fffc7468ec0..96e0f3ca7f1a4ac4aa19a89ece35a9fda047927b 100644 GIT binary patch delta 583 zcmV-N0=WH!3C;u|iBL{Q4GJ0x0000DNk~Le000220000a2nGNE02I>EZIK}qe*yzZ zL_t(|obBB0ZNnfC2H?A@V|0=%(gh-Arbt^B#m|n(6%nv)3L`3R3uljsb z16DT5s*U7Tt}VT{F{T8Lm3q;cM%T$KV43;vOXjENbNRXN^0=1H-M3aJO_^FP_ijBW zud(PUt=lMsuvuOYlPSU0(4MB_aeT0tFVitEwKc?*j&o@XE%$Cc7t=)ge|hMh`sdQE z(&tIj77m%ij+`^~mYsf3_P$}IYc0xddQQHP zn%C_Om|2$YVP`kaN=id{R2znC?KpC%wKTGRLv{&{>}@UX)iNE>>RHs)dRy63kEU&- zbd55CNe{a<%+>TPLgc+=e^1p~r#*Ggl`rcguhYCvQ)jFByH$BsWz-Cx64X}uTe|?7 zT>{JeJ@y2X_Bk}=YW2=@SDkL)2M6HFQ~oYNs^=pe*`*7 zL_t(|ob8-Za@-&chK;Ak=t**sULZ3$)6VP#+UYs^mQ$qXi2JbPiOUKhfdt0<-%A2E zAV3BQlq?GX000000AM6Sobmel`aOj3(nA;kEZMg0&;5S?d(8V5zZ61v2_gJ!Cl&y1 z{8*Od*D>Qs;dgGgo4Ygsc=7i3e@5o7jpYEKD^Pea6;OCE6;OCE6;OC%LI_I;Pp7?Z zZ2=u!6+WJ@UK425ZU|x7wr$zA&7?l6{v%%PTp6tJU@FWMe&5Pdt9JbCm{0wTf9KLv z-PEd0$w;-!^(O__k5s>E<&?^tYi}l!7f%}Ytz42mZu`glIKAf`p|y_OFJ?3cov4$FvlUb5-MP$f0qScG&N~z2A?ad zxk)@jxNXTTuBOi8hYbFw`#F4SJDw>v#5(3Cjs*f=bXR!kYJ62Yv?dgp8=ur)fz8gT zPH8CTPFv3M-PU;YO_`2 zlQ^(7c{#ai<&peeeS_}N2dXYc=LR4e>Qlj#6jqwz>EjO?}qN-uiN{_kskIW>UBy zwVrsl-~Io?OG9-_>Za0ESZ?b5Tv*ItdBlJcddN$vP~;-c`<&RBF>>hY%(rnFuQnNoS&MU%BzSR!kU zT)hu2PGi!v=1NW?kkkEdTBTU83^gYSy;mtIqsZBkSYZ_211Q9NOl#7BIf251ser - - - + diff --git a/inherit_graph_94.md5 b/inherit_graph_94.md5 index b4a235735..8110e4809 100644 --- a/inherit_graph_94.md5 +++ b/inherit_graph_94.md5 @@ -1 +1 @@ -9e32183b7506d774461cb5cb050782f5 \ No newline at end of file +4f90ef1209822a10f05af1c608bceaf2 \ No newline at end of file diff --git a/inherit_graph_94.png b/inherit_graph_94.png index c35786571b7b2761703eb5b0055368f05a089a83..44334bfe71592f277a18f955205ee8da6ecb0f5e 100644 GIT binary patch delta 502 zcmVe zL_t(|obA}%ZNnfG1z>K~F*->W=>nEKlf?w>Abs*qWZEptQa2PD(z>q3TC1M> zXdDY&7?X)$m`nu2WFnZiOeT@1ed*}*JwBt!GFS5=o^5-(0LGjf*wlI{e~?;zf1~UAATyIO zV{M*W+9&IFoNBZ&g(cIg-rc-{(q(0|F|D%9wfsjR`qK6qD6#lTHvFY+)CQTE&Q9gI z8_iJP{^q?jCZt##CGp4F)NX7--$kmv%pGkwW1G>`%_^!q$C=-e8qZO^oH{kfVUG_j z2?jPZjY?Z$_T`$^L`0W&2cuUjQ2}FnF8}}l07*qoM6N<$f?wh3LI3~& literal 4338 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 WIi7NW)YJ?7hp;fUF~Jz!d--oGF|j@X diff --git a/inherit_graph_95.map b/inherit_graph_95.map index b16d21f46..d2a38bdc3 100644 --- a/inherit_graph_95.map +++ b/inherit_graph_95.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_95.md5 b/inherit_graph_95.md5 index f53474f0d..71596fde4 100644 --- a/inherit_graph_95.md5 +++ b/inherit_graph_95.md5 @@ -1 +1 @@ -a40af55b32714c35e643d19b9727a9d6 \ No newline at end of file +458cdf7f00b66148bd7c5b82adc2430c \ No newline at end of file diff --git a/inherit_graph_95.png b/inherit_graph_95.png index 3e14d8895a8cf35c51fb43c986b0e5b91d8e6e4b..20dc12eee33c60918e2ae9127ab5c27dc0d1ccad 100644 GIT binary patch delta 799 zcmV+)1K|9QBc%o*iBL{Q4GJ0x0000DNk~Le0001^0000p2nGNE0Q(BK!;v8re*)S` zL_t(|ob8?AjpQH-8&y@HIjVSciSz|Dc)8Se!p#{fF(JO zW83$gy!NBB767uq7=asLjKB>re@5VjC5!tDA-v!rKy zGBbZ6)QmBN@comP$JeQH>Ua8g=`+=CNfW2e64W!4evXEkK29C+J?D8=^?N0|=`A50 zgwp5h@AEwWDNjFNWiix1Q+0DRX+!C68J84J9asCa(`A~rHiEm)$6k$7e;@amT3vUw z$6xFxpyC;~ZSJ*-B^u+Bt0VqWJi#E>m8G6x~G@aXp36! zX+NViCM7Q!d&(J6@r>ypNM5RBQBS@6+*EZ((;cXwjM8)6Thk})$IPD5e3~vr#I-X1n%}7P8lC-nh zb1ik|Qorud+OL*&xYu%NZW2wGL$NZ-VbOGJdexm18%`?QsD4T7f0oQNX`8j{qt3$J zM$_C*O3#x=Gg?FKlt@yK_R?$WeMSlo>rx91x#h&D>~0Is*wq+&4BTkXW2qsR3EmUS zR5g=nI+vkh(E;fqzBgKd3OB3AQjc|JxtV9Ir9QQ$c$J=$v`IzwwRE-geoC8WI-M4^ zR5nRHmY7b{t+{utb*W^nZAu5(s$X~8lceX})ntL&Xd39@A*kcrM&O2Q0COBiPaR+pKA%taTGkkI{~iGV00000 d00013p1*eyI3H!$C)WS~002ovPDHLkV1oYcfMNgu literal 4494 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 d7ymB?1xXCE_0Lo7#~%C(*O_ - - - + diff --git a/inherit_graph_96.md5 b/inherit_graph_96.md5 index caf9f4bb7..bafc9a579 100644 --- a/inherit_graph_96.md5 +++ b/inherit_graph_96.md5 @@ -1 +1 @@ -ce049d2bbc22c2e7e53d138143730ec3 \ No newline at end of file +c363a8b1b0d53836715dc71d44451d31 \ No newline at end of file diff --git a/inherit_graph_96.png b/inherit_graph_96.png index 1b8e3690607f4ba62eef763e1225c99f6d91616f..ee5441b8b181137d875c95b07cd8b8242c06d5a8 100644 GIT binary patch delta 694 zcmV;n0!jVXQoIEriBL{Q4GJ0x0000DNk~Le0001|0000p2nGNE0P^7&xsf3he*$qy zL_t(|ob8?MQNu6{hHZ{9n1p${R4)_2ESaIJgdY$n!j8YBM4``f*K1-Y{)pd7wj+)Z z000000Bnge;c~gW#287TM#F>ed(Qn*b=^-5daSo~`_)$K|9SqC>zkbSNvmIzr#ZlyW8h&t)x>$06<`mo z7O^EyQ>2<>;9)#X-1?rsI*YnW3z*jHw&>j&D!Jj7`nAf^M#XY&xv&x=iwaqH$-<4g zV6D7d`?in**?JB&<(1k}f7`EAJGHE?xm({_ahF!(HLLYpdTrWKc`ekI(=!IS`}XKp z2{z%uEr=6T(X^_k7N>_5CD?Ilal-$Gkhw4(l4cn;_Q)X4FQmA71&2`ez^!LEA|%bj zD??9UIU6W#a_535YB$HN-npL@#92wp+p3Y!HH&xdX9c%z%t-j%e-Tp)PhdG4=oL!O zeOOM!*@VXGy(Cmb`2%h}gGCrwjWG9)koOFh^9#+8wA9~5rOJ>X%HJT)pc|4_3O_@D z_2AaQEr=7`f;hn~h!fm`IKeH56WoG0!7bT+&Uv2qYzI6jx7#h7mlbF3-){f_00000 c0Dv(ceZKzA9@iTy3;+NC07*qoM6N<$g8dOuF#rGn literal 10583 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 ry!W+u1>P5kpISw#fD8Zpt6y4wwyy%6t@P1+ - - - + diff --git a/inherit_graph_97.md5 b/inherit_graph_97.md5 index c5d221e07..8b2eda227 100644 --- a/inherit_graph_97.md5 +++ b/inherit_graph_97.md5 @@ -1 +1 @@ -15ed1adc3a9b8cfbc6322a43418acd4e \ No newline at end of file +0c6ab0ee5db9f52b15c87ae65fe4fc70 \ No newline at end of file diff --git a/inherit_graph_97.png b/inherit_graph_97.png index 80e71a2a4f1d701cee89a49acafa72ae8fc5506e..a4afeb3e1fc4aecb09e9feeb1b59ce6be882734d 100644 GIT binary patch delta 607 zcmV-l0-*hc66ORUiBL{Q4GJ0x0000DNk~Le000270000a2nGNE0LFsbHIX3{e*zmx zL_t(|ob8$0ZNwlDMH!SbQpxrarGb^UCQ68uI+8C}v3)H0LPB`Va{v?HBdylPJg&zV zFjy%7000000Im&%3HST`orrET!~l>&YyC9F{Q7BcVJ0HF5z*H;SpekodcD4tQXhWW z&cqI5Om{&5lwgce+qUh}^#m;de~1DTgXMvV!ScYwV0kWUVj^OXSBHq$Uzn$*{*v?& zOf|7&a9gm}PHC4zA_msl-OsPrzu%hn&erKKI})$VY!ii@B1Lb#VkS;aUEwu9o%;`u zW9MNRP6wxftG8u#$Z0z#KCvmAh?-}PSj>CiOy8@W!;c*$gn^BnyJL4_e=a>dcWFM{ z!{h2sU5f?N*HL1a+_p>e`g%*WaQDTf)pm-~vSI8cU*SYdoTBGDXUz1mG9yMGiM%x? zOLg{{#5!v&VkVybp5~BR7?lP&ws?}zB3Y*tHE}xiNPLC>bJKK7JvBx?($YfDsdyAU zwRhQ_IK!wsTEmF;xb3ppf8^-#*FilH8Hrn_(v}5LOb4ea=i#Ron>lT}^PFob4M%OI z%9oTWjWbtwYO&mt?ynQE9fs8IL+N>G{Viou_2gb_X|GfRmq%jJSW}NA_}BrKXUG=Y ze_-ZxIhxh(2PV#BwFi48@HzpO2POu~0~3Sgfr-KLz{FsA4tFOWHIK(g9RO6bGqJVy tM=A9=K??v$wARnr8UO$Q0000u8-Hy{ihGTwpF#it002ovPDHLkV1jN-6#f7J literal 2309 zcmV+g3HtVlP);b`m5SZA60*L==Ux8-8y4*ZkWzZCkgkwP1_UR<3V*TzuQ%+OE<#V`C1L2LK_?m-14qyI*3a zhg~(p&&}!eXG6Ab7jxai@7c;Vm$Q`{nzpg6$Hx_0N}R6sg{D*D1OSndx}jR0m|_x2 z={j48Eu&T}BnJQ`si;l?Y8A|%WDy5%5tbn zDfQ}+BS+-m!Gpa+0jk;A*^!$!Z(8Ry?}qZ-fDYZ9ZawY$+!v=yZh5_zL!M*Dj>*xZ zM|+0>RCD#}RcEr`r91#YP?LKWo66U%#ML^0O-8avKtcepRCGfD0D?wO7Gpn(+WXPh z5_66naA6q#dD{4vMaqkKEtIU67X!gC{^{!)Ima~0_E3E!fhmd#u{-I&&W7i#fT$R*6S1h5}U2&(znR85Y zVP)6+X(;oJY}Y*7cXQwD_MIGU>&Y3WJmv)K8df~@E%n^^*2|*5l;6))FB!(4Vf=d< zwHvBr=lhmTc|&;$Lw@JH9iFnz;lYD>X!%>Uc!Ph8x|KU}LhJIDs{4But|s4-#yZMr z_WJgZIkpw1VGi9JDKXArdr(jJWD(m6*wkjBtNSR1Z~wTu9njAleuJDYqV+U3TlZu! zl-p<6>bql0y{e1Zj!o)=J^QtOcz0J`-oGVZd~jU-+&i8UbND@CW9*$M=CCg}LGxr` zc9;0(xw=wP=B32ryYXDJ8_ZXk&3JqVUP*j&J(%9Sq953ITVB#yUfq^hdpY>=&FCAdK+6_i#Su3gWo7Ei`*N|IrCy}=9PRFimNo9n7?!4n3Ho? z^uC||lw*5ZPN`e+iWYfDM0Q2w{@$^b$f>iT`qO&a_j%5P8oA~5UJeuMhQhL)zNDYN zBl5=zLkBnr#~$HV3-J{adz0b0a5r|qALU;Yre^TZ3HA3y${h&(DvZi&c&yR-L)mcMhK zy#Mwk{ae!@1N676p2bfV$HV4gY$yOgP?Ki9@9C#a#4rJA4m~Kc_5GKkzx(1{dF8|F z>ux9!IV>W#CD6Lq+LL!yFRC9#3D)84*|S>YsV3_lyADmQ&Q7r_tJOIzc1ROjEMxDB zW_`l84M}-!yX4Wro~HV~$CUQb(CT@0T|};n$hq|m?kz2+w8$Z){&#~LjZCf1PW5Hn z+UK;2jFs?GL-%=)v`w?|`NR5G)A9z*sfw?wxgAE&#GM!xg;W&-n^o>*DvLX$O+ldM`(S&ZRiEG)Oo(&-gSJq z>TGNovD+G>=kXmAo4Nj!bCm7HN7pj0@3-2vZpp&6vs@L-CH4De*{$A&^{p@WATldo z=|0MBLXX+}{rFk+r-)n>k&El$KJMEmJEIgn60;7v=GnfRGtV~di^o-GbEZYwUu=wZ zeEZ5BPRE?1h9~?Ix#x%&&60(!Ni^08#&^X$W*oM-Tv8Kc>N2VEOwotWsb59p9<-56BotS$a-#yQ1scM}ghDN!;9qMkGlA1A@2Y%=PjlCKe>k7?QCdTL5 z_bK(Ox7J-Gu}bRkoX%;pYFP|T?F!$gc1$T(SD_|k&x37>ztvL2wgSd}Iwn=iE|Sz3 zYOH69=d_mlb}~;x)y~Mie!|$YN@FVNPB5<;hy9v8Eht+v+3V3TCwJ0azKFSop$WlGo8Y8y+%#5KlEPuS(|`4pLTOxJ9NQb@_5wQutH`W~lr#oa5GDeZ$P znoIqei&i&rd$jg__g!2qxn2(l%qCf+sNJ2y0gV!Ksy}mxb(6YFbGplVZ6n=KcPXWU zPcQHk5P+rH$d*Map5_4nKUx-@(OLm82a9i6tWVai!Q4WRwz - + diff --git a/inherit_graph_98.md5 b/inherit_graph_98.md5 index 1eb079d49..e1b748185 100644 --- a/inherit_graph_98.md5 +++ b/inherit_graph_98.md5 @@ -1 +1 @@ -9d15da15fbcd732972d8906cb2f2063a \ No newline at end of file +ead5d03e7a95828acb90860f92561cb6 \ No newline at end of file diff --git a/inherit_graph_98.png b/inherit_graph_98.png index ce643d6a1ebfaad03aaf978d3cd2f90b52efb892..52822775c8f62aa66485b4192291e7e3da2d9e5b 100644 GIT binary patch delta 424 zcmaFIwvkz}Gr-TCmrII^fq{Y7)59eQNM{4F3I`jI?Av%`>qJG7dd4(Q7srr{#<$b& z<{mcSX*sEsTrx@L5-U%InzQhh<}W9$HT|*yfNnTYS`BHxVP678Nv-W(SJS8E0=AxOAXa0Qmd|VjU<$eFTxoFL zsF*Mf3*zHH`g&L26-J{9qtn&@yel?h9PrhTqWDbb&#e!sbFWWk9$d~xCT-|yicBChy(~Ez~TR1c43Vq zYzri;bq)Xk00000urfaGxL&Wnz4u=ui~+!!%jNQa+qQpU->>*0@BNqe{=1)90QBSa zdi{0I{R#WtoZw*FHgkgj=*hNif9~;ky!BrO*aE;*zzM+ezzM+ezzM+ezzLM`-aGH# zPM*zlfp&&ELHrO$Jyb2d-g~$2yW96&MII$T#7fUSz3W zs!hqJR(HxqN^fdD9I1J5^J=xT)aIPN)nPxDNjSoQl6Dv}g#B^*=nJ8?fB#r^cparT z9!KfTwJ9h$DLC6Cc5?D^ZHb*L&?OwQyx}E|(kjz}QXN{h;HBqL*$JFG$4Q06#xu+Z z=%D5VXIN=!LY1QpJ{Oa4=nOB7G~pe^X#FdovJ)IhTi7l|lEAejbU7QTB%K;ptIxtt z$vD7c9uB1v*IZI--A?tVf9&L_)i-+F>fmD;SRS>VU;t?J{&sJ$0+JWs{I~u zCamYz%?TuB!_+l3GPttla7^v$q+KfA0`)F0a99N~v4QB@V)eqG3R;4y*kqftaA=ND{w3Lo1 zWvbJmlH|BWMu^6?e@ex=QadF2DSLBy)F`C7OY#t_1#9R|ASwUlLYdYQVyhclYi~({ zm>M7JtqB!tugmEU=O%sjmY6$%Re5tuzZ8w6Tti;z_}J;VaTcZ6rMh!+dNNfw1i%QI zcY@RwI*X@UV3nwS@;#fCW+&)%Har_6V_2XI!XdCca00MAKX3xDJa7WAJZxfozu$Y> z0f0Hr=acMbo#1x6nHd8B000000000004CuF7$>o(CB5>N00000NkvXXu0mjf%PgKL diff --git a/inherit_graph_99.map b/inherit_graph_99.map index 914135aa4..7b2617db1 100644 --- a/inherit_graph_99.map +++ b/inherit_graph_99.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_99.md5 b/inherit_graph_99.md5 index f0f1b0cb2..0d3573229 100644 --- a/inherit_graph_99.md5 +++ b/inherit_graph_99.md5 @@ -1 +1 @@ -875091b3893a95abb149a3119ecf5265 \ No newline at end of file +deb19b5c2c9c5fc42491f7367467d109 \ No newline at end of file diff --git a/inherit_graph_99.png b/inherit_graph_99.png index 1a435b1fa65bcf8840ccf53d55e1e3c5e70f295f..54e4646ab455058ad897b66c7ca1b2ba0c4d590e 100644 GIT binary patch delta 549 zcmV+=0^0q71g-=jiBL{Q4GJ0x0000DNk~Le0001`0000a2nGNE0O-g1r;#BQf8$9+ zK~#90?U_+-gdh-x8Pa3)Bzuo$FJR)CI6{-2qkZxedk^VDgP{nBILJi*FWIaNDF5Qf z%(zMc000000B{Tn4Z|?J6VaoG7;rzd)-Pksk8gVm2NBVOh(6Dg1@6o|&tFQZ58t+O zN{2C~xgcf!&2b>a!15OFVkt}q8Oo&!*@fNJLCn{-2SEnSR ze+wD5!J0d)7s9ttayw#gT5Dr-N+Mc5q22F~*<;_~ajqSn6Vp-Kmuqv*AC9Tr0ZaAP z>Qm}(w=Nl13rqOk3d4Te9lIaq>|xv4d}22$c5TkSJ-_|P9PS3U4#z1?e|y)!KhJM- za7y@YxzM%O=F(Jh1YThGF!<{q}t z&E}L+s=(5nt4HP9D;$=xXU>*7n}lzPyJinfTLn!Fj&K;u&r39wj^j)>VzBI#M?xcK z0g}_f)t94oj?}eUkV+Nyd+2Mui#HG7xkP&_3E$h!>1ff%Ie!h@MV^!t3@^`tIPl;1 z#gI_N9|cZ%F?!~LTp)Y{alk2oIN+2(9B@h?4mc$cN3!}J$MH-Z04%JW(pvkilzMj1 n0&a-b`qf(l000000Jt8%-s@(4)K)cd00000NkvXXu0mjf-+A_K delta 504 zcmV+Nf3`_P zK~#90?by+6!ypg_;5*bYI!X4ZvVbMe#0Zr-NBiU{vWMxDD}v7)7%+DFe^Qk|Z0>BI zfSL#Z005vr4m*ZncxUEYk7S@fW6Z-^`{Vb$g$FV7jhR1>OAF3qp64$j`tbW!MY6Eg zHctr7#ac_#G_Cqghg{%dP$Zy2f02L+MFJ`mNkz=7HwsN-91)MGbCHA>dDKN~dB8Kw zB%rERB+UHx7xw$VOa0Pk_&wH^#+GIWDMu-8?0Qn<#E)HvHeTxZr8Zxt% z@6NfW{;<9D`NFm|wtt)yH#|>@tF=?_MN0gf^I{LbBxlVb%T29hQ^u|lf2(ASt#h?8 zQ)0Hfk1t#yooG00000Ao&H<_za*ja-V4c0000 - + EnTT: Class Hierarchy + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - - - + + + + + @@ -143,1079 +158,1003 @@ $(function() { - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + + + + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + - + - + - + - + - + - - - + + + - + - + - + - + - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - - - - - - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + - + + + + + + + + - - - + + + + + + + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + + + + +
    +
    diff --git a/iterator_8hpp_source.html b/iterator_8hpp_source.html index 36e005910..284bcf997 100644 --- a/iterator_8hpp_source.html +++ b/iterator_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/iterator.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    iterator.hpp
    @@ -92,27 +100,27 @@ $(function() { codefold.init(0); });
    7#include <utility>
    8
    9namespace entt {
    -
    10
    +
    10
    15template<typename Type>
    - +
    18 using value_type = Type;
    20 using pointer = Type *;
    22 using reference = Type &;
    -
    23
    +
    23
    -
    28 constexpr input_iterator_pointer(value_type &&val) noexcept(std::is_nothrow_move_constructible_v<value_type>)
    -
    29 : value{std::move(val)} {}
    +
    28 constexpr input_iterator_pointer(value_type &&val) noexcept(std::is_nothrow_move_constructible_v<value_type>)
    +
    29 : value{std::move(val)} {}
    -
    30
    +
    30
    - +
    35 [[nodiscard]] constexpr pointer operator->() noexcept {
    36 return std::addressof(value);
    37 }
    -
    38
    +
    38
    - +
    43 [[nodiscard]] constexpr reference operator*() noexcept {
    44 return value;
    45 }
    @@ -121,44 +129,44 @@ $(function() { codefold.init(0); });
    48 Type value;
    49};
    -
    50
    +
    50
    55template<typename Type>
    - +
    56class iota_iterator final {
    57 static_assert(std::is_integral_v<Type>, "Not an integral type");
    58
    59public:
    61 using value_type = Type;
    -
    63 using pointer = void;
    +
    63 using pointer = void;
    67 using difference_type = std::ptrdiff_t;
    69 using iterator_category = std::input_iterator_tag;
    -
    70
    +
    70
    - +
    72 constexpr iota_iterator() noexcept
    73 : current{} {}
    -
    74
    +
    74
    - -
    80 : current{init} {}
    +
    79 constexpr iota_iterator(const value_type init) noexcept
    +
    80 : current{init} {}
    -
    81
    +
    81
    - +
    86 constexpr iota_iterator &operator++() noexcept {
    87 return ++current, *this;
    88 }
    -
    89
    +
    89
    -
    94 constexpr iota_iterator operator++(int) noexcept {
    -
    95 iota_iterator orig = *this;
    -
    96 return ++(*this), orig;
    +
    94 constexpr iota_iterator operator++(int) noexcept {
    +
    95 const iota_iterator orig = *this;
    +
    96 return ++(*this), orig;
    97 }
    -
    98
    +
    98
    - +
    103 [[nodiscard]] constexpr reference operator*() const noexcept {
    104 return current;
    105 }
    @@ -167,67 +175,67 @@ $(function() { codefold.init(0); });
    108 value_type current;
    109};
    -
    110
    +
    110
    118template<typename Type>
    -
    119[[nodiscard]] constexpr bool operator==(const iota_iterator<Type> &lhs, const iota_iterator<Type> &rhs) noexcept {
    -
    120 return *lhs == *rhs;
    +
    119[[nodiscard]] constexpr bool operator==(const iota_iterator<Type> &lhs, const iota_iterator<Type> &rhs) noexcept {
    +
    120 return *lhs == *rhs;
    121}
    -
    122
    +
    122
    130template<typename Type>
    -
    131[[nodiscard]] constexpr bool operator!=(const iota_iterator<Type> &lhs, const iota_iterator<Type> &rhs) noexcept {
    -
    132 return !(lhs == rhs);
    +
    131[[nodiscard]] constexpr bool operator!=(const iota_iterator<Type> &lhs, const iota_iterator<Type> &rhs) noexcept {
    +
    132 return !(lhs == rhs);
    133}
    -
    134
    +
    134
    140template<typename It, typename Sentinel = It>
    - +
    141struct iterable_adaptor final {
    143 using value_type = typename std::iterator_traits<It>::value_type;
    -
    145 using iterator = It;
    - -
    148
    +
    145 using iterator = It;
    +
    147 using sentinel = Sentinel;
    +
    148
    - +
    150 constexpr iterable_adaptor() noexcept(std::is_nothrow_default_constructible_v<iterator> && std::is_nothrow_default_constructible_v<sentinel>)
    151 : first{},
    152 last{} {}
    -
    153
    +
    153
    -
    159 constexpr iterable_adaptor(iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v<iterator> && std::is_nothrow_move_constructible_v<sentinel>)
    -
    160 : first{std::move(from)},
    -
    161 last{std::move(to)} {}
    +
    159 constexpr iterable_adaptor(iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v<iterator> && std::is_nothrow_move_constructible_v<sentinel>)
    +
    160 : first{std::move(from)},
    +
    161 last{std::move(to)} {}
    -
    162
    +
    162
    - +
    167 [[nodiscard]] constexpr iterator begin() const noexcept {
    168 return first;
    169 }
    -
    170
    +
    170
    - +
    176 [[nodiscard]] constexpr sentinel end() const noexcept {
    177 return last;
    178 }
    -
    179
    +
    179
    - +
    181 [[nodiscard]] constexpr iterator cbegin() const noexcept {
    182 return begin();
    183 }
    -
    184
    +
    184
    - +
    186 [[nodiscard]] constexpr sentinel cend() const noexcept {
    187 return end();
    188 }
    189
    190private:
    -
    191 It first;
    -
    192 Sentinel last;
    +
    191 It first;
    +
    192 Sentinel last;
    193};
    194
    @@ -246,17 +254,14 @@ $(function() { codefold.init(0); });
    constexpr iota_iterator() noexcept
    Default constructor.
    Definition iterator.hpp:72
    Type value_type
    Value type, likely an integral one.
    Definition iterator.hpp:61
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    Helper type to use as pointer with input iterators.
    Definition iterator.hpp:16
    constexpr input_iterator_pointer(value_type &&val) noexcept(std::is_nothrow_move_constructible_v< value_type >)
    Constructs a proxy object by move.
    Definition iterator.hpp:28
    Type & reference
    Reference type.
    Definition iterator.hpp:22
    constexpr pointer operator->() noexcept
    Access operator for accessing wrapped values.
    Definition iterator.hpp:35
    Type value_type
    Value type.
    Definition iterator.hpp:18
    constexpr reference operator*() noexcept
    Dereference operator for accessing wrapped values.
    Definition iterator.hpp:43
    Type * pointer
    Pointer type.
    Definition iterator.hpp:20
    -
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    constexpr sentinel cend() const noexcept
    Returns an iterator to the end.
    Definition iterator.hpp:186
    constexpr iterable_adaptor(iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v< iterator > &&std::is_nothrow_move_constructible_v< sentinel >)
    Creates an iterable object from a pair of iterators.
    Definition iterator.hpp:159
    It iterator
    Iterator type.
    Definition iterator.hpp:145
    @@ -269,7 +274,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/jquery.js b/jquery.js index 1dffb65b5..875ada738 100644 --- a/jquery.js +++ b/jquery.js @@ -1,17 +1,143 @@ /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + */!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/loader_8hpp_source.html b/loader_8hpp_source.html index c39da57c4..aca33ca70 100644 --- a/loader_8hpp_source.html +++ b/loader_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/resource/loader.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    loader.hpp
    @@ -91,16 +99,16 @@ $(function() { codefold.init(0); });
    6#include "fwd.hpp"
    7
    8namespace entt {
    -
    9
    +
    9
    14template<typename Type>
    17 using result_type = std::shared_ptr<Type>;
    -
    18
    -
    25 template<typename... Args>
    +
    18
    +
    25 template<typename... Args>
    - -
    27 return std::make_shared<Type>(std::forward<Args>(args)...);
    +
    26 result_type operator()(Args &&...args) const {
    +
    27 return std::make_shared<Type>(std::forward<Args>(args)...);
    28 }
    29};
    @@ -110,14 +118,14 @@ $(function() { codefold.init(0); });
    32
    33#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    Transparent loader for shared resources.
    Definition loader.hpp:15
    result_type operator()(Args &&...args) const
    Constructs a shared pointer to a resource from its arguments.
    Definition loader.hpp:26
    std::shared_ptr< Type > result_type
    Result type.
    Definition loader.hpp:17
    +
    diff --git a/locator_8hpp_source.html b/locator_8hpp_source.html index 639ecf73f..5b9a194b7 100644 --- a/locator_8hpp_source.html +++ b/locator_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/locator/locator.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    locator.hpp
    @@ -91,81 +99,81 @@ $(function() { codefold.init(0); });
    6#include "../config/config.h"
    7
    8namespace entt {
    -
    9
    +
    9
    26template<typename Service>
    - +
    27class locator final {
    28 class service_handle {
    -
    29 friend class locator<Service>;
    -
    30 std::shared_ptr<Service> value{};
    +
    29 friend class locator<Service>;
    +
    30 std::shared_ptr<Service> value{};
    31 };
    32
    33public:
    -
    35 using type = Service;
    +
    35 using type = Service;
    37 using node_type = service_handle;
    -
    38
    +
    38
    40 locator() = delete;
    -
    41
    -
    43 locator(const locator &) = delete;
    -
    44
    +
    41
    +
    43 locator(const locator &) = delete;
    +
    44
    46 ~locator() = delete;
    -
    47
    -
    52 locator &operator=(const locator &) = delete;
    -
    53
    +
    47
    +
    52 locator &operator=(const locator &) = delete;
    +
    53
    -
    58 [[nodiscard]] static bool has_value() noexcept {
    +
    58 [[nodiscard]] static bool has_value() noexcept {
    59 return (service != nullptr);
    60 }
    -
    61
    +
    61
    - +
    71 [[nodiscard]] static Service &value() noexcept {
    72 ENTT_ASSERT(has_value(), "Service not available");
    73 return *service;
    74 }
    -
    75
    -
    87 template<typename Type = Service, typename... Args>
    +
    75
    +
    87 template<typename Type = Service, typename... Args>
    -
    88 [[nodiscard]] static Service &value_or(Args &&...args) {
    -
    89 return service ? *service : emplace<Type>(std::forward<Args>(args)...);
    +
    88 [[nodiscard]] static Service &value_or(Args &&...args) {
    +
    89 return service ? *service : emplace<Type>(std::forward<Args>(args)...);
    90 }
    -
    91
    -
    99 template<typename Type = Service, typename... Args>
    +
    91
    +
    99 template<typename Type = Service, typename... Args>
    -
    100 static Service &emplace(Args &&...args) {
    -
    101 service = std::make_shared<Type>(std::forward<Args>(args)...);
    +
    100 static Service &emplace(Args &&...args) {
    +
    101 service = std::make_shared<Type>(std::forward<Args>(args)...);
    102 return *service;
    103 }
    -
    104
    -
    114 template<typename Type = Service, typename Allocator, typename... Args>
    +
    104
    +
    114 template<typename Type = Service, typename Allocator, typename... Args>
    -
    115 static Service &emplace(std::allocator_arg_t, Allocator alloc, Args &&...args) {
    -
    116 service = std::allocate_shared<Type>(alloc, std::forward<Args>(args)...);
    +
    115 static Service &emplace(std::allocator_arg_t, Allocator alloc, Args &&...args) {
    +
    116 service = std::allocate_shared<Type>(alloc, std::forward<Args>(args)...);
    117 return *service;
    118 }
    -
    119
    +
    119
    - +
    124 static node_type handle() noexcept {
    125 node_type node{};
    126 node.value = service;
    127 return node;
    128 }
    -
    129
    +
    129
    -
    134 static void reset(const node_type &other = {}) noexcept {
    -
    135 service = other.value;
    +
    134 static void reset(const node_type &other = {}) noexcept {
    +
    135 service = other.value;
    136 }
    -
    137
    +
    137
    145 template<typename Type, typename Deleter = std::default_delete<Type>>
    -
    146 static void reset(Type *elem, Deleter deleter = {}) {
    -
    147 service = std::shared_ptr<Service>{elem, std::move(deleter)};
    +
    146 static void reset(Type *elem, Deleter deleter = {}) {
    +
    147 service = std::shared_ptr<Service>{elem, std::move(deleter)};
    148 }
    149
    @@ -179,7 +187,6 @@ $(function() { codefold.init(0); });
    156} // namespace entt
    157
    158#endif
    -
    Service locator, nothing more.
    Definition locator.hpp:27
    static node_type handle() noexcept
    Returns a handle to the underlying service.
    Definition locator.hpp:124
    locator & operator=(const locator &)=delete
    Default copy assignment operator, deleted on purpose.
    static void reset(Type *elem, Deleter deleter={})
    Resets or replaces a service.
    Definition locator.hpp:146
    @@ -195,11 +202,11 @@ $(function() { codefold.init(0); });
    locator()=delete
    Default constructor, deleted on purpose.
    static Service & emplace(Args &&...args)
    Sets or replaces a service.
    Definition locator.hpp:100
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    diff --git a/macro_8h_source.html b/macro_8h_source.html index 71b254194..061f1c9bf 100644 --- a/macro_8h_source.html +++ b/macro_8h_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/config/macro.h Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    macro.h
    @@ -97,7 +105,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/md_docs_2md_2config.html b/md_docs_2md_2config.html index 0d427f36f..ebf948558 100644 --- a/md_docs_2md_2config.html +++ b/md_docs_2md_2config.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: configuration + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: configuration
    -

    +

    Table of Contents

      @@ -98,38 +111,38 @@ Table of Contents

      Introduction

      EnTT has become almost completely customizable over time, in many respects. These variables are just one of the many ways to customize how it works.
      - In the vast majority of cases, users will have no interest in changing the default parameters. For all other cases, the list of possible configurations with which it's possible to adjust the behavior of the library at runtime can be found below.

      + In the vast majority of cases, users will have no interest in changing the default parameters. For all other cases, the list of possible configurations with which it is possible to adjust the behavior of the library at runtime can be found below.

      Definitions

      All options are intended as parameters to the compiler (or user-defined macros within the compilation units, if preferred).
      - Each parameter can result in internal library definitions. It's not recommended to try to also modify these definitions, since there is no guarantee that they will remain stable over time unlike the options below.

      + Each parameter can result in internal library definitions. It is not recommended to try to also modify these definitions, since there is no guarantee that they will remain stable over time unlike the options below.

      ENTT_NOEXCEPTION

      Define this variable without assigning any value to it to turn off exception handling in EnTT.
      This is roughly equivalent to setting the compiler flag -fno-exceptions but is also limited to this library only.

      ENTT_USE_ATOMIC

      -

      In general, EnTT doesn't offer primitives to support multi-threading. Many of the features can be split over multiple threads without any explicit control and the user is the one who knows if a synchronization point is required.
      - However, some features aren't easily accessible to users and are made thread-safe by means of this definition.

      +

      In general, EnTT does not offer primitives to support multi-threading. Many of the features can be split over multiple threads without any explicit control and the user is the one who knows if a synchronization point is required.
      + However, some features are not easily accessible to users and are made thread-safe by means of this definition.

      ENTT_ID_TYPE

      -

      entt::id_type is directly controlled by this definition and widely used within the library.
      +

      entt::id_type is directly controlled by this definition and widely used within the library.
      By default, its type is std::uint32_t. However, users can define a different default type if necessary.

      ENTT_SPARSE_PAGE

      -

      It's known that the ECS module of EnTT is based on sparse sets. What is less known perhaps is that the sparse arrays are paged to reduce memory usage.
      - Default size of pages (that is, the number of elements they contain) is 4096 but users can adjust it if appropriate. In all case, the chosen value must be a power of 2.

      +

      It is known that the ECS module of EnTT is based on sparse sets. What is less known perhaps is that the sparse arrays are paged to reduce memory usage.
      + Default size of pages (that is, the number of elements they contain) is 4096 but users can adjust it if appropriate. In all cases, the chosen value must be a power of 2.

      ENTT_PACKED_PAGE

      -

      As it happens with sparse arrays, packed arrays are also paginated. However, in this case the aim isn't to reduce memory usage but to have pointer stability upon component creation.
      - Default size of pages (that is, the number of elements they contain) is 1024 but users can adjust it if appropriate. In all case, the chosen value must be a power of 2.

      +

      As it happens with sparse arrays, packed arrays are also paginated. However, in this case the aim is not to reduce memory usage but to have pointer stability upon component creation.
      + Default size of pages (that is, the number of elements they contain) is 1024 but users can adjust it if appropriate. In all cases, the chosen value must be a power of 2.

      ENTT_ASSERT

      -

      For performance reasons, EnTT doesn't use exceptions or any other control structures. In fact, it offers many features that result in undefined behavior if not used correctly.
      +

      For performance reasons, EnTT does not use exceptions or any other control structures. In fact, it offers many features that result in undefined behavior if not used correctly.
      To get around this, the library relies on a lot of asserts for the purpose of detecting errors in debug builds. By default, it uses assert internally. Users are allowed to overwrite its behavior by setting this variable.

      ENTT_ASSERT_CONSTEXPR

      -

      Usually, an assert within a constexpr function isn't a big deal. However, in case of extreme customizations, it might be useful to differentiate.
      +

      Usually, an assert within a constexpr function is not a big deal. However, in case of extreme customizations, it might be useful to differentiate.
      For this purpose, EnTT introduces an admittedly badly named variable to make the job easier in this regard. By default, this variable forwards its arguments to ENTT_ASSERT.

      ENTT_DISABLE_ASSERT

      @@ -142,13 +155,14 @@ ENTT_NO_ETO

      ENTT_STANDARD_CPP

      EnTT mixes non-standard language features with others that are perfectly compliant to offer some of its functionalities.
      - This definition prevents the library from using non-standard techniques, that is, functionalities that aren't fully compliant with the standard C++.
      + This definition prevents the library from using non-standard techniques, that is, functionalities that are not fully compliant with the standard C++.
      While there are no known portability issues at the time of this writing, this should make the library fully portable anyway if needed.

    +
    diff --git a/md_docs_2md_2container.html b/md_docs_2md_2container.html index d66eb7333..6ef9aa9ff 100644 --- a/md_docs_2md_2container.html +++ b/md_docs_2md_2container.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: containers + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: containers
    -

    +

    Table of Contents

      @@ -91,10 +104,10 @@ Table of Contents

    Introduction

    -

    The standard C++ library offers a wide range of containers and adaptors already. It's really difficult to do better (although it's very easy to do worse, as many examples available online demonstrate).
    - EnTT doesn't try in any way to replace what is offered by the standard. Quite the opposite, given the widespread use that is made of standard containers.
    +

    The standard C++ library offers a wide range of containers and adaptors already. It is really difficult to do better (although it is very easy to do worse, as many examples available online demonstrate).
    + EnTT does not try in any way to replace what is offered by the standard. Quite the opposite, given the widespread use that is made of standard containers.
    However, the library also tries to fill a gap in features and functionalities by making available some containers and adaptors initially developed for internal use.

    -

    This section of the library is likely to grow larger over time. However, for the moment it's quite small and mainly aimed at satisfying some internal needs.
    +

    This section of the library is likely to grow larger over time. However, for the moment it is quite small and mainly aimed at satisfying some internal needs.
    For all containers and adaptors made available, full test coverage and stability over time is guaranteed as usual.

    Containers

    @@ -124,13 +137,14 @@ Table The table alias allows users to provide only the types to handle, using std::vector as the default sequential container.

    Only a small set of functions is provided, although very close to what the API of the std::vector class offers.
    The internal implementation is purposely supported by a tuple of containers rather than a container of tuples. The purpose is to allow efficient access to single columns and not just access to the entire data set of the table.

    -

    When a row is accessed, all data are returned in the form of a tuple containing (possibly const) references to the elements of the row itself.
    +

    When a row is accessed, all data is returned in the form of a tuple containing (possibly const) references to the elements of the row itself.
    Similarly, when a table is iterated, tuples of references to table elements are returned for each row.

    +
    diff --git a/md_docs_2md_2core.html b/md_docs_2md_2core.html index 71138d447..a2d5901ff 100644 --- a/md_docs_2md_2core.html +++ b/md_docs_2md_2core.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: core functionalities + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: core functionalities
    -

    +

    Table of Contents

      @@ -88,7 +101,7 @@ Table of Contents
    • Compressed pair
    • Enum as bitmask
    • Hashed strings
    • @@ -132,78 +145,81 @@ Table of Contents

      Introduction

      EnTT comes with a bunch of core functionalities mostly used by the other parts of the library.
      - Many of these tools are also useful in everyday work. Therefore, it's worth describing them so as not to reinvent the wheel in case of need.

      + Many of these tools are also useful in everyday work. Therefore, it is worth describing them so as not to reinvent the wheel in case of need.

      Any as in any type

      EnTT offers its own any type. It may seem redundant considering that C++17 introduced std::any, but it is not (hopefully).
      - First of all, the type returned by an std::any is a const reference to an std::type_info, an implementation defined class that's not something everyone wants to see in a software. Furthermore, there is no way to bind it to the type system of the library and therefore with its integrated RTTI support.

      + First of all, the type returned by an std::any is a const reference to an std::type_info, an implementation defined class that is not something everyone wants to see in a software. Furthermore, there is no way to bind it to the type system of the library and therefore with its integrated RTTI support.

      The any API is very similar to that of its most famous counterpart, mainly because this class serves the same purpose of being an opaque container for any type of value.
      Instances also minimize the number of allocations by relying on a well known technique called small buffer optimization and a fake vtable.

      Creating an object of the any type, whether empty or not, is trivial:

      // an empty container
      -
      entt::any empty{};
      +
      entt::any empty{};
      // a container for an int
      -
      entt::any any{0};
      +
      entt::any any{0};
      -
      // in place construction
      -
      entt::any in_place{std::in_place_type<int>, 42};
      - -
      @ in_place
      In-place deletion policy.
      -

      Alternatively, the make_any function serves the same purpose but requires to always be explicit about the type:

      -
      -
      constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
      Uses-allocator construction utility (waiting for C++20).
      Definition memory.hpp:219
      -

      In both cases, the any class takes the burden of destroying the contained element when required, regardless of the storage strategy used for the specific object.
      - Furthermore, an instance of any isn't tied to an actual type. Therefore, the wrapper is reconfigured when it's assigned a new object of a type other than the one it contains.

      +
      // in place type construction
      +
      entt::any in_place_type{std::in_place_type<int>, 42};
      +
      +
      // take ownership of already existing, dynamically allocated objects
      +
      entt::any in_place{std::in_place, std::make_unique<int>(42).release()};
      +
      basic_any<> any
      Alias declaration for the most common use case.
      Definition fwd.hpp:32
      +
      @ in_place
      In-place deletion policy.
      Definition fwd.hpp:21
      +

    Alternatively, the make_any function serves the same purpose. It requires to always be explicit about the type and does not support taking ownership:

    +
    +
    basic_any< Len, Align > make_any(Args &&...args)
    Constructs a wrapper from a given type, passing it all arguments.
    Definition any.hpp:525
    +

    In all cases, the any class takes the burden of destroying the contained element when required, regardless of the storage strategy used for the specific object.
    + Furthermore, an instance of any is not tied to an actual type. Therefore, the wrapper is reconfigured when it is assigned a new object of a type other than the one it contains.

    There is also a way to directly assign a value to the variable contained by an entt::any, without necessarily replacing it. This is especially useful when the object is used in aliasing mode, as described below:

    -
    entt::any any{42};
    -
    entt::any value{3};
    +
    entt::any any{42};
    +
    entt::any value{3};
    // assigns by copy
    any.assign(value);
    // assigns by move
    any.assign(std::move(value));
    -
    bool assign(const basic_any &other)
    Assigns a value to the contained object without replacing it.
    Definition any.hpp:331
    -
    basic_any<> any
    Alias declaration for the most common use case.
    Definition fwd.hpp:17
    +
    bool assign(const basic_any &other)
    Assigns a value to the contained object without replacing it.
    Definition any.hpp:352

    The any class performs a check on the type information and whether or not the original type was copy or move assignable, as appropriate.
    In all cases, the assign function returns a boolean value that is true in case of success and false otherwise.

    When in doubt about the type of object contained, the type member function returns a const reference to the type_info associated with its element, or type_id<void>() if the container is empty.
    The type is also used internally when comparing two any objects:

    if(any == empty) { /* ... */ }
    -

    In this case, before proceeding with a comparison, it's verified that the type of the two objects is actually the same.
    +

    In this case, before proceeding with a comparison, it is verified that the type of the two objects is actually the same.
    Refer to the EnTT type system documentation for more details about how type_info works and the possible risks of a comparison.

    A particularly interesting feature of this class is that it can also be used as an opaque container for const and non-const references:

    int value = 42;
    -
    entt::any any{std::in_place_type<int &>(value)};
    - - +
    entt::any any{std::in_place_type<int &>(value)};
    + +
    any.emplace<const int &>(value);
    -
    void emplace(Args &&...args)
    Replaces the contained object by creating a new instance directly.
    Definition any.hpp:321
    -
    basic_any< Len, Align > forward_as_any(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition any.hpp:508
    -

    In other words, whenever any is explicitly told to construct an alias, it acts as a pointer to the original instance rather than making a copy of it or moving it internally. The contained object is never destroyed and users must ensure that its lifetime exceeds that of the container.
    - Similarly, it's possible to create non-owning copies of any from an existing object:

    +
    void emplace(Args &&...args)
    Replaces the contained object by creating a new instance directly.
    Definition any.hpp:342
    +
    basic_any< Len, Align > forward_as_any(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition any.hpp:538
    +

    In other words, whenever any is explicitly told to construct an alias, it acts as a pointer to the original instance rather than making a copy of it or moving it internally. The contained object is never destroyed, and users must ensure that its lifetime exceeds that of the container.
    + Similarly, it is possible to create non-owning copies of any from an existing object:

    // aliasing constructor
    -
    entt::any ref = other.as_ref();
    -

    In this case, it doesn't matter if the original container actually holds an object or is as a reference for unmanaged elements already. The new instance thus created doesn't create copies and only serves as a reference for the original item.

    -

    It's worth mentioning that, while everything works transparently when it comes to non-const references, there are some exceptions when it comes to const references.
    +

    entt::any ref = other.as_ref();
    +

    In this case, it does not matter if the original container actually holds an object or is as a reference for unmanaged elements already. The new instance thus created does not create copies and only serves as a reference for the original item.

    +

    It is worth mentioning that, while everything works transparently when it comes to non-const references, there are some exceptions when it comes to const references.
    In particular, the data member function invoked on a non-const instance of any that wraps a const reference returns a null pointer in all cases.

    To cast an instance of any to a type, the library offers a set of any_cast functions in all respects similar to their most famous counterparts.
    - The only difference is that, in the case of EnTT, they won't raise exceptions but will only trigger an assert in debug mode, otherwise resulting in undefined behavior in case of misuse in release mode.

    + The only difference is that, in the case of EnTT, they will not raise exceptions but will only trigger an assert in debug mode, otherwise resulting in undefined behavior in case of misuse in release mode.

    Small buffer optimization

    The any class uses a technique called small buffer optimization to reduce the number of allocations where possible.
    The default reserved size for an instance of any is sizeof(double[2]). However, this is also configurable if needed. In fact, any is defined as an alias for basic_any<Len>, where Len is the size above.
    Users can easily set a custom size or define their own aliases:

    using my_any = entt::basic_any<sizeof(double[4])>;
    +
    A SBO friendly, type-safe container for single values of any type.
    Definition any.hpp:38

    This feature, in addition to allowing the choice of a size that best suits the needs of an application, also offers the possibility of forcing dynamic creation of objects during construction.
    In other terms, if the size is 0, any suppresses the small buffer optimization and always dynamically allocates objects (except for aliasing cases).

    Alignment requirement

    The alignment requirement is optional and by default the most stringent (the largest) for any object whose size is at most equal to the one provided.
    - It's provided as an optional second parameter following the desired size for the internal storage:

    + It is provided as an optional second parameter following the desired size for the internal storage:

    using my_any = entt::basic_any<sizeof(double[4]), alignof(double[4])>;

    The basic_any class template inspects the alignment requirements in each case, even when not provided and may decide not to use the small buffer optimization in order to meet them.

    @@ -211,22 +227,22 @@ Bit

    Finding out the population count of an unsigned integral value (popcount), whether a number is a power of two or not (has_single_bit) as well as the next power of two given a random value (next_power_of_two) can be useful.
    For example, it helps to allocate memory in pages having a size suitable for the fast modulus:

    const std::size_t result = entt::fast_mod(value, modulus);
    -
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:62
    +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:63

    Where modulus is necessarily a power of two. Perhaps not everyone knows that this type of operation is far superior in terms of performance to the basic modulus and for this reason preferred in many areas.

    Compressed pair

    Primarily designed for internal use and far from being feature complete, the compressed_pair class does exactly what it promises: it tries to reduce the size of a pair by exploiting Empty Base Class Optimization (or EBCO).
    This class is not a drop-in replacement for std::pair. However, it offers enough functionalities to be a good alternative for when reducing memory usage is more important than having some cool and probably useless feature.

    -

    Although the API is very close to that of std::pair (apart from the fact that the template parameters are inferred from the constructor and therefore there is no entt::make_compressed_pair), the major difference is that first and second are functions for implementation requirements:

    +

    Although the API is very close to that of std::pair (apart from the fact that the template parameters are inferred from the constructor and therefore there is no entt::make_compressed_pair), the major difference is that first and second are functions for implementation requirements:

    pair.first() = 42;
    A compressed pair.
    constexpr first_type & first() noexcept
    Returns the first element that a pair stores.
    -

    There isn't much to describe then. It's recommended to rely on documentation and intuition. At the end of the day, it's just a pair and nothing more.

    +

    There is not much to describe then. It is recommended to rely on documentation and intuition. At the end of the day, it is just a pair and nothing more.

    Enum as bitmask

    -

    Sometimes it's useful to be able to use enums as bitmasks. However, enum classes aren't really suitable for the purpose. Main problem is that they don't convert implicitly to their underlying type.
    - The choice is then between using old-fashioned enums (with all their problems that I don't want to discuss here) or writing ugly code.

    +

    Sometimes it is useful to be able to use enums as bitmasks. However, enum classes are not really suitable for the purpose. Main problem is that they do not convert implicitly to their underlying type.
    + The choice is then between using old-fashioned enums (with all their problems that I do not want to discuss here) or writing ugly code.

    Fortunately, there is also a third way: adding enough operators in the global scope to treat enum classes as bitmasks transparently.
    The ultimate goal is to write code like the following (or maybe something more meaningful, but this should give a grasp and remain simple at the same time):

    enum class my_flag {
    @@ -240,11 +256,11 @@ Enum as bitmask

    The problem with adding all operators to the global scope is that these come into play even when not required, with the risk of introducing errors that are difficult to deal with.
    However, C++ offers enough tools to get around this problem. In particular, the library requires users to register the enum classes for which bitmask support should be enabled:

    template<>
    - +
    struct entt::enum_as_bitmask<my_flag>
    : std::true_type
    {};
    Enable bitmask support for enum classes.
    Definition enum.hpp:13
    -

    This is handy when dealing with enum classes defined by third party libraries and over which the user has no control. However, it's also verbose and can be avoided by adding a specific value to the enum class itself:

    +

    This is handy when dealing with enum classes defined by third party libraries and over which the user has no control. However, it is also verbose and can be avoided by adding a specific value to the enum class itself:

    enum class my_flag {
    unknown = 0x01,
    enabled = 0x02,
    @@ -264,9 +280,9 @@ Hashed strings
    // uses the numeric representation of the resource to load and return it
    }
    -
    auto resource = load(entt::hashed_string{"gui/background"});
    -
    Zero overhead unique identifier.
    -
    typename base_type::hash_type hash_type
    Unsigned integer type.
    +
    auto resource = load(entt::hashed_string{"gui/background"});
    +
    typename base_type::hash_type hash_type
    +
    basic_hashed_string< char > hashed_string
    Aliases for common character types.
    Definition fwd.hpp:41

    There is also a user defined literal dedicated to hashed strings to make them more user-friendly:

    using namespace entt::literals;
    constexpr auto str = "text"_hs;
    @@ -275,12 +291,12 @@ Hashed strings
    std::string orig{"text"};
    // create a full-featured hashed string...
    -
    entt::hashed_string str{orig.c_str()};
    +
    entt::hashed_string str{orig.c_str()};
    // ... or compute only the unique identifier
    const auto hash = entt::hashed_string::value(orig.c_str());
    -
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    -

    This possibility shouldn't be exploited in tight loops, since the computation takes place at runtime and no longer at compile-time. It could therefore affect performance to some degrees.

    +
    constexpr hash_type value() const noexcept
    +

    This possibility should not be exploited in tight loops, since the computation takes place at runtime and no longer at compile-time. It could therefore affect performance to some degrees.

    Wide characters

    The hashed_string class is an alias for basic_hashed_string<char>. To use the C++ type for wide character representations, there exists also the alias hashed_wstring for basic_hashed_string<wchar_t>.
    @@ -290,17 +306,17 @@ Wide characters

    Conflicts

    The hashed string class uses FNV-1a internally to hash strings. Because of the pigeonhole principle, conflicts are possible. This is a fact.
    - There is no silver bullet to solve the problem of conflicts when dealing with hashing functions. In this case, the best solution is likely to give up. That's all.
    - After all, human-readable unique identifiers aren't something strictly defined and over which users have not the control. Choosing a slightly different identifier is probably the best solution to make the conflict disappear in this case.

    + There is no silver bullet to solve the problem of conflicts when dealing with hashing functions. In this case, the best solution is likely to give up. That is all.
    + After all, human-readable unique identifiers are not something strictly defined and over which users have not the control. Choosing a slightly different identifier is probably the best solution to make the conflict disappear in this case.

    Iterators

    -

    Writing and working with iterators isn't always easy. More often than not it also leads to duplicated code.
    +

    Writing and working with iterators is not always easy. More often than not it also leads to duplicated code.
    EnTT tries to overcome this problem by offering some utilities designed to make this hard work easier.

    Input iterator pointer

    -

    When writing an input iterator that returns in-place constructed values if dereferenced, it's not always straightforward to figure out what value_type is and how to make it behave like a full-fledged pointer.
    +

    When writing an input iterator that returns in-place constructed values if dereferenced, it is not always straightforward to figure out what value_type is and how to make it behave like a full-fledged pointer.
    Conversely, it would be very useful to have an operator-> available on the iterator itself that always works without too much complexity.

    -

    The input iterator pointer is meant for this. It's a small class that wraps the in-place constructed value and adds some functions on top of it to make it suitable for use with input iterators:

    +

    The input iterator pointer is meant for this. It is a small class that wraps the in-place constructed value and adds some functions on top of it to make it suitable for use with input iterators:

    struct iterator_type {
    using value_type = std::pair<first_type, second_type>;
    @@ -331,20 +347,21 @@ Iterable adaptor

    The iterable adaptor is a utility class that makes it easier to use and access data in this case.
    It accepts a couple of iterators (or an iterator and a sentinel) and offers an iterable object with all the expected methods like begin, end and whatnot.

    The library uses this class extensively.
    - Think for example of views, which can be iterated to access entities but also offer a method of obtaining an iterable object that returns tuples of entities and components at once.
    + Think for example of views, which can be iterated to access entities but also offer a method for obtaining an iterable object that returns tuples of entities and components at once.
    Another example is the registry class which allows users to iterate its storage by returning an iterable object for the purpose.

    Memory

    There are a handful of tools within EnTT to interact with memory in one way or another.
    Some are geared towards simplifying the implementation of (internal or external) allocator aware containers. Others are designed to help the developer with everyday problems.

    The former are very specific and for niche problems. These are tools designed to unwrap fancy or plain pointers (to_address) or to help forget the meaning of acronyms like POCCA, POCMA or POCS.
    - I won't describe them here in detail. Instead, I recommend reading the inline documentation to those interested in the subject.

    + I will not describe them here in detail. Instead, I recommend reading the inline documentation to those interested in the subject.

    Allocator aware unique pointers

    -

    A nasty thing in C++ (at least up to C++20) is the fact that shared pointers support allocators while unique pointers don't.
    +

    A nasty thing in C++ (at least up to C++20) is the fact that shared pointers support allocators while unique pointers do not.
    There is a proposal at the moment that also shows (among the other things) how this can be implemented without any compiler support.

    The allocate_unique function follows this proposal, making a virtue out of necessity:

    -
    std::unique_ptr<my_type, entt::allocation_deleter<my_type>> ptr = entt::allocate_unique<my_type>(allocator, arguments);
    +
    std::unique_ptr<my_type, entt::allocation_deleter<my_type>> ptr = entt::allocate_unique<my_type>(allocator, arguments);
    +
    constexpr auto allocate_unique(Allocator &allocator, Args &&...args)
    Allows std::unique_ptr to use allocators (waiting for C++20).
    Definition memory.hpp:109

    Although the internal implementation is slightly different from what is proposed for the standard, this function offers an API that is a drop-in replacement for the same feature.

    Monostate

    @@ -353,13 +370,13 @@ Monostate

    Keys are integral values (easily obtained by hashed strings), values are basic types like ints or bools. Values of different types can be associated with each key, even more than one at a time.
    Because of this, one should pay attention to use the same type both during an assignment and when trying to read back the data. Otherwise, there is the risk to incur in unexpected results.

    Example of use:

    -
    +
    entt::monostate<"mykey"_hs>{} = 42;
    // ...
    const bool b = entt::monostate<"mykey"_hs>{};
    -
    const int i = entt::monostate<entt::hashed_string{"mykey"}>{};
    +
    const int i = entt::monostate<entt::hashed_string{"mykey"}>{};
    Minimal implementation of the monostate pattern.
    Definition monostate.hpp:21

    Type support

    @@ -367,23 +384,23 @@ Type support It also offers additional features that are not yet available in the standard library or that will never be.

    Built-in RTTI support

    -

    Runtime type identification support (or RTTI) is one of the most frequently disabled features in the C++ world, especially in the gaming sector. Regardless of the reasons for this, it's often a shame not to be able to rely on opaque type information at runtime.
    - The library tries to fill this gap by offering a built-in system that doesn't serve as a replacement but comes very close to being one and offers similar information to that provided by its counterpart.

    +

    Runtime type identification support (or RTTI) is one of the most frequently disabled features in the C++ world, especially in the gaming sector. Regardless of the reasons for this, it is often a shame not to be able to rely on opaque type information at runtime.
    + The library tries to fill this gap by offering a built-in system that does not serve as a replacement but comes very close to being one and offers similar information to that provided by its counterpart.

    Basically, the whole system relies on a handful of classes. In particular:

    The returned value is not guaranteed to be stable across different runs.
    However, it can be very useful as index in associative and unordered associative containers or for positional accesses in a vector or an array.

    An external generator can also be used if needed. In fact, type_index can be specialized by type and is also sfinae-friendly in order to allow more refined specializations such as:

    template<typename Type>
    -
    struct entt::type_index<Type, std::void_d<decltype(Type::index())>> {
    - +
    struct entt::type_index<Type, std::void_d<decltype(Type::index())>> {
    +
    static entt::id_type value() noexcept {
    return Type::index();
    }
    };
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    Type sequential identifier.
    Definition type_info.hpp:71

    Indexes must be sequentially generated in this case.
    The tool is widely used within EnTT. Generating indices not sequentially would break an assumption and would likely lead to undesired behaviors.

    @@ -391,7 +408,7 @@ Built-in RTTI support
  • The hash value associated with a given type:

    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    -

    In general, the value function exposed by type_hash is also constexpr but this isn't guaranteed for all compilers and platforms (although it's valid with the most well-known and popular ones).

    +
  • In general, the value function exposed by type_hash is also constexpr but this is not guaranteed for all compilers and platforms (although it is valid with the most well-known and popular ones).

    This function can use non-standard features of the language for its own purposes. This makes it possible to provide compile-time identifiers that remain stable across different runs.
    Users can prevent the library from using these features by means of the ENTT_STANDARD_CPP definition. In this case, there is no guarantee that identifiers remain stable across executions. Moreover, they are generated at runtime and are no longer a compile-time thing.

    As it happens with type_index, also type_hash is a sfinae-friendly class that can be specialized in order to customize its behavior globally or on a per-type or per-traits basis.

    @@ -399,11 +416,11 @@ Built-in RTTI support
  • The name associated with a given type:

    static constexpr std::string_view value() noexcept
    Returns the name of a given type.
    -

    This value is extracted from some information generally made available by the compiler in use. Therefore, it may differ depending on the compiler and may be empty in the event that this information isn't available.
    +

  • This value is extracted from some information generally made available by the compiler in use. Therefore, it may differ depending on the compiler and may be empty in the event that this information is not available.
    For example, given the following class:

    struct my_type { /* ... */ };

    The name is my_type when compiled with GCC or CLang and struct my_type when MSVC is in use.
    - Most of the time the name is also retrieved at compile-time and is therefore always returned through an std::string_view. Users can easily access it and modify it as needed, for example by removing the word struct to normalize the result. EnTT doesn't do this for obvious reasons, since it would be creating a new string at runtime otherwise.

    + Most of the time the name is also retrieved at compile-time and is therefore always returned through an std::string_view. Users can easily access it and modify it as needed, for example by removing the word struct to normalize the result. EnTT does not do this for obvious reasons, since it would be creating a new string at runtime otherwise.

    This function can use non-standard features of the language for its own purposes. Users can prevent the library from using these features by means of the ENTT_STANDARD_CPP definition. In this case, the name is just empty.

    As it happens with type_index, also type_name is a sfinae-friendly class that can be specialized in order to customize its behavior globally or on a per-type or per-traits basis.

    @@ -411,12 +428,12 @@ Built-in RTTI support

    These are then combined into utilities that aim to offer an API that is somewhat similar to that made available by the standard library.

    Type info

    -

    The type_info class isn't a drop-in replacement for std::type_info but can provide similar information which are not implementation defined and don't require to enable RTTI.
    +

    The type_info class is not a drop-in replacement for std::type_info but can provide similar information which are not implementation defined and do not require to enable RTTI.
    Therefore, they can sometimes be even more reliable than those obtained otherwise.

    Its type defines an opaque class that is also copyable and movable.
    Objects of this type are generally returned by the type_id functions:

    // by type
    -
    auto info = entt::type_id<a_type>();
    +
    auto info = entt::type_id<a_type>();
    // by value
    auto other = entt::type_id(42);
    @@ -428,18 +445,21 @@ Type info

    These are the information made available by type_info:

    • The index associated with a given type:

      -
      auto idx = entt::type_id<a_type>().index();
      +
      +
      constexpr id_type index() const noexcept
      Type index.

      This is also an alias for the following:

    • The hash value associated with a given type:

      -
      auto hash = entt::type_id<a_type>().hash();
      +
      auto hash = entt::type_id<a_type>().hash();
      +
      constexpr id_type hash() const noexcept
      Type hash.

      This is also an alias for the following:

    • The name associated with a given type:

      -
      auto name = entt::type_id<my_type>().name();
      +
      auto name = entt::type_id<my_type>().name();
      +
      constexpr std::string_view name() const noexcept
      Type name.

      This is also an alias for the following:

      @@ -449,15 +469,15 @@ Type info

      Almost unique identifiers

      Since the default non-standard, compile-time implementation of type_hash makes use of hashed strings, it may happen that two types are assigned the same hash value.
      - In fact, although this is quite rare, it's not entirely excluded.

      + In fact, although this is quite rare, it is not entirely excluded.

      Another case where two types are assigned the same identifier is when classes from different contexts (for example two or more libraries loaded at runtime) have the same fully qualified name. In this case, type_name returns the same value for the two types.
      Fortunately, there are several easy ways to deal with this:

        -
      • The most trivial one is to define the ENTT_STANDARD_CPP macro. Runtime identifiers don't suffer from the same problem in fact. However, this solution doesn't work well with a plugin system, where the libraries aren't linked.
      • +
      • The most trivial one is to define the ENTT_STANDARD_CPP macro. Runtime identifiers do not suffer from the same problem in fact. However, this solution does not work well with a plugin system, where the libraries are not linked.
      • Another possibility is to specialize the type_name class for one of the conflicting types, in order to assign it a custom identifier. This is probably the easiest solution that also preserves the feature of the tool.
      • A fully customized identifier generation policy (based for example on enum classes or preprocessing steps) may represent yet another option.
      -

      These are just some examples of possible approaches to the problem but there are many others. As already mentioned above, since users have full control over their types, this problem is in any case easy to solve and should not worry too much.
      +

      These are just some examples of possible approaches to the problem, but there are many others. As already mentioned above, since users have full control over their types, this problem is in any case easy to solve and should not worry too much.
      In all likelihood, it will never happen to run into a conflict anyway.

      Type traits

      @@ -465,57 +485,57 @@ Type traits This list is not exhaustive and contains only some of the most useful classes. Refer to the inline documentation for more information on the features offered by this module.

      Size of

      -

      The standard operator sizeof complains if users provide it with functions or incomplete types. On the other hand, it's guaranteed that its result is always non-zero, even if applied to an empty class type.
      - This small class combines the two and offers an alternative to sizeof that works under all circumstances, returning zero if the type isn't supported:

      -
      const auto size = entt::size_of_v<void>;
      +

      The standard operator sizeof complains if users provide it with functions or incomplete types. On the other hand, it is guaranteed that its result is always non-zero, even if applied to an empty class type.
      + This small class combines the two and offers an alternative to sizeof that works under all circumstances, returning zero if the type is not supported:

      +
      const auto size = entt::size_of_v<void>;
      +
      constexpr std::size_t size_of_v
      Helper variable template.

      Is applicable

      The standard library offers the great std::is_invocable trait in several forms. This takes a function type and a series of arguments and returns true if the condition is satisfied.
      Moreover, users are also provided with std::apply, a tool for combining invocable elements and tuples of arguments.

      It would therefore be a good idea to have a variant of std::is_invocable that also accepts its arguments in the form of a tuple-like type, so as to complete the offer:

      -
      Same as std::is_invocable, but with tuples.
      +
      Same as std::is_invocable, but with tuples.

      This trait is built on top of std::is_invocable and does nothing but unpack a tuple-like type and simplify the code at the call site.

      Constness as

      A utility to easily transfer the constness of a type to another type:

      // type is const dst_type because of the constness of src_type
      -
      typename constness_as< To, From >::type constness_as_t
      Alias template to facilitate the transcription of the constness.
      -

      The trait is subject to the rules of the language. For example, transferring constness between references won't give the desired effect.

      +
      typename constness_as< To, From >::type constness_as_t
      Alias template to facilitate the transcription of the constness.
      +

      The trait is subject to the rules of the language. For example, transferring constness between references will not give the desired effect.

      Member class type

      The auto template parameter introduced with C++17 made it possible to simplify many class templates and template functions but also made the class type opaque when members are passed as template arguments.
      The purpose of this utility is to extract the class type in a few lines of code:

      template<typename Member>
      -
      typename member_class< Member >::type member_class_t
      Helper type.
      +
      typename member_class< Member >::type member_class_t
      Helper type.

      N-th argument

      A utility to quickly find the n-th argument of a function, member function or data member (for blind operations on opaque types):

      using type = entt::nth_argument_t<1u, decltype(&clazz::member)>;
      -
      typename nth_argument< Index, Candidate >::type nth_argument_t
      Helper type.
      +
      typename nth_argument< Index, Candidate >::type nth_argument_t
      Helper type.

      Disambiguation of overloaded functions is the responsibility of the user, should it be needed.

      Integral constant

      Since std::integral_constant may be annoying because of its form that requires to specify both a type and a value of that type, there is a more user-friendly shortcut for the creation of integral constants.
      This shortcut is the alias template entt::integral_constant:

      constexpr auto constant = entt::integral_constant<42>;
      -
      std::integral_constant< decltype(Value), Value > integral_constant
      Wraps a static constant.
      +
      std::integral_constant< decltype(Value), Value > integral_constant
      Wraps a static constant.

      Among the other uses, when combined with a hashed string it helps to define tags as human-readable names where actual types would be required otherwise:

      constexpr auto enemy_tag = entt::integral_constant<"enemy"_hs>;
      -
      registry.emplace<enemy_tag>(entity);
      -
      Fast and reliable entity-component system.
      Definition registry.hpp:234
      -
      decltype(auto) emplace(const entity_type entt, Args &&...args)
      Assigns the given element to an entity.
      Definition registry.hpp:604
      +
      registry.emplace<enemy_tag>(entity);
      entity
      Default entity identifier.
      Definition fwd.hpp:14
      +
      basic_registry<> registry
      Alias declaration for the most common use case.
      Definition fwd.hpp:95

      Tag

      Type id_type is very important and widely used in EnTT. Therefore, there is a more user-friendly shortcut for the creation of constants based on it.
      This shortcut is the alias template entt::tag.

      If used in combination with hashed strings, it helps to use human-readable names where types would be required otherwise. As an example:

      -
      -
      integral_constant< Value > tag
      Alias template to facilitate the creation of named values.
      -

      However, this isn't the only permitted use. Literally any value convertible to id_type is a good candidate, such as the named constants of an unscoped enum.

      +
      registry.emplace<entt::tag<"enemy"_hs>>(entity);
      +
      integral_constant< Value > tag
      Alias template to facilitate the creation of named values.
      +

      However, this is not the only permitted use. Literally any value convertible to id_type is a good candidate, such as the named constants of an unscoped enum.

      Type list and value list

      There is no respectable library where the much desired type list can be missing.
      @@ -530,12 +550,12 @@ Type list and value list

    • type_list_diff[_t] to remove types from type lists.
    • type_list_transform[_t] to transform a range and create another type list.
    -

    I'm also pretty sure that more and more utilities will be added over time as needs become apparent.
    +

    I am also pretty sure that more and more utilities will be added over time as needs become apparent.
    Many of these functionalities also exist in their version dedicated to value lists. We therefore have value_list_element[_v] as well as value_list_cat[_t]and so on.

    Unique sequential identifiers

    -

    Sometimes it's useful to be able to give unique, sequential numeric identifiers to types either at compile-time or runtime.
    - There are plenty of different solutions for this out there and I could have used one of them. However, I decided to spend my time to define a couple of tools that fully embraces what the modern C++ has to offer.

    +

    Sometimes it is useful to be able to give unique, sequential numeric identifiers to types either at compile-time or runtime.
    + There are plenty of different solutions for this out there, and I could have used one of them. However, I decided to spend my time to define a couple of tools that fully embrace what modern C++ has to offer.

    Compile-time generator

    To generate sequential numeric identifiers at compile-time, EnTT offers the ident class template:

    @@ -556,15 +576,16 @@ Compile-time generator
    }
    Type integral identifiers.
    Definition ident.hpp:17

    This is what this class template has to offer: a value inline variable that contains a numeric identifier for the given type. It can be used in any context where constant expressions are required.

    -

    As long as the list remains unchanged, identifiers are also guaranteed to be stable across different runs. In case they have been used in a production environment and a type has to be removed, one can just use a placeholder to leave the other identifiers unchanged:

    -
    template<typename> struct ignore_type {};
    +

    As long as the list remains unchanged, identifiers are also guaranteed to be stable across different runs. If used in a production environment where a type needs to be removed, a placeholder can help to leave the other identifiers the same:

    +
    template<typename>
    +
    struct ignore_type {};
    using id = entt::ident<
    a_type_still_valid,
    ignore_type<no_longer_valid_type>,
    another_type_still_valid
    >;
    -

    Perhaps a bit ugly to see in a codebase but it gets the job done at least.

    +

    Perhaps a bit ugly to see in a codebase, but it gets the job done at least.

    Runtime generator

    The family class template helps to generate sequential numeric identifiers for types at runtime:

    @@ -578,12 +599,12 @@ Runtime generator
    Dynamic identifier generator.
    Definition family.hpp:17

    This is what a family has to offer: a value inline variable that contains a numeric identifier for the given type.
    The generator is customizable, so as to get different sequences for different purposes if needed.

    -

    Identifiers aren't guaranteed to be stable across different runs. Indeed it mostly depends on the flow of execution.

    +

    Identifiers are not guaranteed to be stable across different runs. Indeed it mostly depends on the flow of execution.

    Utilities

    -

    It's not possible to escape the temptation to add utilities of some kind to a library. In fact, EnTT also provides a handful of tools to simplify the life of developers:

    +

    It is not possible to escape the temptation to add utilities of some kind to a library. In fact, EnTT also provides a handful of tools to simplify the life of developers:

      -
    • entt::identity: the identity function object that will be available with C++20. It returns its argument unchanged and nothing more. It's useful as a sort of do nothing function in template programming.
    • +
    • entt::identity: the identity function object that will be available with C++20. It returns its argument unchanged and nothing more. It is useful as a sort of do nothing function in template programming.
    • entt::overload: a tool to disambiguate different overloads from their function type. It works with both free and member functions.
      Consider the following definition:

      struct clazz {
      @@ -591,7 +612,8 @@ Utilities
      void bar() {}
      };

      This utility can be used to get the right overload as:

      -
      auto *member = entt::overload<void(int)>(&clazz::bar);
      +
      auto *member = entt::overload<void(int)>(&clazz::bar);
      +
      constexpr auto overload(Type Class::*member) noexcept
      Constant utility to disambiguate overloaded members of a class.
      Definition utility.hpp:34

      The line above is literally equivalent to:

      auto *member = static_cast<void(clazz:: *)(int)>(&clazz::bar);

      Just easier to read and shorter to type.

      @@ -608,7 +630,7 @@ Utilities
      Helper type for visitors.
      Definition utility.hpp:54

      Rather useful when doing metaprogramming and having to pass to a function a callable object that supports multiple types at once.

    • -
    • entt::y_combinator: this is a C++ implementation of the y-combinator. If it's not clear what it is, there is probably no need for this utility.
      +

    • entt::y_combinator: this is a C++ implementation of the y-combinator. If it is not clear what it is, there is probably no need for this utility.
      Below is a small example to show its use:

      entt::y_combinator gauss([](const auto &self, auto value) -> unsigned int {
      return value ? (value + self(value-1u)) : 0;
      @@ -616,15 +638,16 @@ Utilities
      const auto result = gauss(3u);
      Basic implementation of a y-combinator.
      Definition utility.hpp:70
      -

      Maybe convoluted at a first glance but certainly effective. Unfortunately, the language doesn't make it possible to do much better.

      +

    Maybe convoluted at first glance but certainly effective. Unfortunately, the language does not make it possible to do much better.

    -

    This is a rundown of the (actually few) utilities made available by EnTT. The list will probably grow over time but the size of each will remain rather small, as has been the case so far.

    +

    This is a rundown of the (actually few) utilities made available by EnTT. The list will probably grow over time, but the size of each will remain rather small, as has been the case so far.

    +
    diff --git a/md_docs_2md_2entity.html b/md_docs_2md_2entity.html index acfc2d95f..914b2bd38 100644 --- a/md_docs_2md_2entity.html +++ b/md_docs_2md_2entity.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: entity-component system + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: entity-component system
    -

    +

    Table of Contents

      @@ -124,6 +137,7 @@ Table of Contents
    • Empty type optimization
    • Void storage
    • Entity storage
    • @@ -177,21 +191,21 @@ Introduction Design decisions

      Type-less and bitset-free

      -

      The library implements a sparse set based model that doesn't require users to specify the set of components neither at compile-time nor at runtime.
      +

      The library implements a sparse set based model that does not require users to specify the set of components neither at compile-time nor at runtime.
      This is why users can instantiate the core class simply like:

      -
      entt::registry registry;
      -
      Fast and reliable entity-component system.
      Definition registry.hpp:234
      +
      entt::registry registry;
      +
      basic_registry<> registry
      Alias declaration for the most common use case.
      Definition fwd.hpp:95

      In place of its more annoying and error-prone counterpart:

      -
      entt::registry<comp_0, comp_1, ..., comp_n> registry;
      -

      Furthermore, it isn't necessary to announce the existence of a component type. When the time comes, just use it and that's all.

      +
      entt::registry<comp_0, comp_1, ..., comp_n> registry;
      +

      Furthermore, it is not necessary to announce the existence of a component type. When the time comes, just use it and that is all.

      Build your own

      -

      The ECS module (as well as the rest of the library) is designed as a set of containers that are used as needed, just like a vector or any other container. It doesn't attempt in any way to take over on the user codebase, nor to control its main loop or process scheduling.
      - Unlike other more or less well known models, it also makes use of independent pools that are extended via static mixins. The built-in signal support is an example of this flexible design: defined as a mixin, it's easily disabled if not needed. Similarly, the storage class has a specialization that shows how everything is customizable down to the smallest detail.

      +

      The ECS module (as well as the rest of the library) is designed as a set of containers that are used as needed, just like a vector or any other container. It does not attempt in any way to take over on the user codebase, nor to control its main loop or process scheduling.
      + Unlike other more or less well known models, it also makes use of independent pools that are extended via static mixins. The built-in signal support is an example of this flexible design: defined as a mixin, it is easily disabled if not needed. Similarly, the storage class has a specialization that shows how everything is customizable down to the smallest detail.

      Pay per use

      Everything is designed around the principle that users only have to pay for what they want.

      -

      When it comes to using an entity-component system, the tradeoff is usually between performance and memory usage. The faster it is, the more memory it uses. Even worse, some approaches tend to heavily affect other functionalities like the construction and destruction of components to favor iterations, even when it isn't strictly required. In fact, slightly worse performance along non-critical paths are the right price to pay to reduce memory usage and have overall better performance.
      +

      When it comes to using an entity-component system, the tradeoff is usually between performance and memory usage. The faster it is, the more memory it uses. Even worse, some approaches tend to heavily affect other functionalities like the construction and destruction of components to favor iterations, even when it is not strictly required. In fact, slightly worse performance along non-critical paths are the right price to pay to reduce memory usage and have overall better performance.
      EnTT follows a completely different approach. It gets the best out from the basic data structures and gives users the possibility to pay more for higher performance where needed.

      All or nothing

      @@ -199,9 +213,9 @@ All or nothing This is one of the corner stones of the library. Many of the tools offered are designed around this need and give the possibility to get this information.

      Vademecum

      -

      The entt::entity type implements the concept of entity identifier. An entity (the E of an ECS) is an opaque element to use as-is. Inspecting it isn't recommended since its format can change in future.
      +

      The entt::entity type implements the concept of entity identifier. An entity (the E of an ECS) is an opaque element to use as-is. Inspecting it is not recommended since its format can change in future.
      Components (the C of an ECS) are of any type, without any constraints, not even that of being movable. No need to register them nor their types.
      - Systems (the S of an ECS) are plain functions, functors, lambdas and so on. It's not required to announce them in any case and have no requirements.

      + Systems (the S of an ECS) are plain functions, functors, lambdas and so on. It is not required to announce them in any case and have no requirements.

      The next sections go into detail on how to use the entity-component system part of the EnTT library.
      This module is likely larger than what is described below. For more details, please refer to the inline documentation.

      @@ -212,122 +226,139 @@ The Registry, the Entity and the Component

      User defined identifiers are allowed as enum classes and class types that define an entity_type member of type std::uint32_t or std::uint64_t.

      A registry is used both to construct and to destroy entities:

      // constructs a naked entity with no components and returns its identifier
      -
      auto entity = registry.create();
      +
      auto entity = registry.create();
      // destroys an entity and all its components
      -
      registry.destroy(entity);
      +
      registry.destroy(entity);
      +
      version_type destroy(const entity_type entt)
      Destroys an entity and releases its identifier.
      Definition registry.hpp:540
      +
      entity_type create()
      Creates a new entity or recycles a destroyed one.
      Definition registry.hpp:499

      The create member function also accepts a hint. Moreover, it has an overload that gets two iterators to use to generate many entities at once efficiently. Similarly, the destroy member function also works with a range of entities:

      // destroys all the entities in a range
      -
      auto view = registry.view<a_component, another_component>();
      -
      registry.destroy(view.begin(), view.end());
      +
      auto view = registry.view<a_component, another_component>();
      +
      registry.destroy(view.begin(), view.end());
      +
      basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
      Returns a view for the given elements.

      In addition to offering an overload to force the version upon destruction.
      - This function removes all components from an entity before releasing it. There also exists a lighter alternative that doesn't query component pools, for use with orphaned entities:

      + This function removes all components from an entity before releasing it. There also exists a lighter alternative that does not query component pools, for use with orphaned entities:

      // releases an orphaned identifier
      registry.release(entity);
      -

      As with the destroy function, also in this case entity ranges are supported and it's possible to force a version.

      +

      As with the destroy function, also in this case entity ranges are supported and it is possible to force a version.

      In both cases, when an identifier is released, the registry can freely reuse it internally. In particular, the version of an entity is increased (unless the overload that forces a version is used instead of the default one).
      Users can then test identifiers by means of a registry:

      // returns true if the entity is still valid, false otherwise
      -
      bool b = registry.valid(entity);
      +
      bool b = registry.valid(entity);
      // gets the actual version for the given entity
      -
      auto curr = registry.current(entity);
      +
      auto curr = registry.current(entity);
      +
      bool valid(const entity_type entt) const
      Checks if an identifier refers to a valid entity.
      Definition registry.hpp:481
      +
      version_type current(const entity_type entt) const
      Returns the actual version for an identifier.
      Definition registry.hpp:491

      Or inspect them using some functions meant for parsing an identifier as-is, such as:

      // gets the version contained in the entity identifier
      auto version = entt::to_version(entity);
      constexpr entt_traits< Entity >::version_type to_version(const Entity value) noexcept
      Returns the version part once converted to the underlying type.
      Definition entity.hpp:199

      Components are assigned to or removed from entities at any time.
      The emplace member function template creates, initializes and assigns to an entity the given component. It accepts a variable number of arguments to use to construct the component itself:

      -
      registry.emplace<position>(entity, 0., 0.);
      +
      registry.emplace<position>(entity, 0., 0.);
      // ...
      -
      auto &vel = registry.emplace<velocity>(entity);
      +
      auto &vel = registry.emplace<velocity>(entity);
      vel.dx = 0.;
      vel.dy = 0.;
      +
      decltype(auto) emplace(const entity_type entt, Args &&...args)
      Assigns the given element to an entity.
      Definition registry.hpp:604

      The default storage detects aggregate types internally and exploits aggregate initialization when possible.
      - Therefore, it's not strictly necessary to define a constructor for each type.

      + Therefore, it is not strictly necessary to define a constructor for each type.

      The insert member function works with ranges and is used to:

      • Assign the same component to all entities at once when a type is specified as a template parameter or an instance is passed as an argument:

        // default initialized type assigned by copy to all entities
        -
        registry.insert<position>(first, last);
        +
        registry.insert<position>(first, last);
        // user-defined instance assigned by copy to all entities
        -
        registry.insert(from, to, position{0., 0.});
        +
        registry.insert(from, to, position{0., 0.});
        +
        void insert(It first, It last, const Type &value={})
        Assigns each entity in a range the given element.
        Definition registry.hpp:621
      • Assign a set of components to the entities when a range is provided (the length of the range of components must be the same of that of entities):

        // first and last specify the range of entities, instances points to the first element of the range of components
        -
        registry.insert<position>(first, last, instances);
        +
        registry.insert<position>(first, last, instances);

      If an entity already has the given component, the replace and patch member function templates are used to update it:

      // replaces the component in-place
      -
      registry.patch<position>(entity, [](auto &pos) { pos.x = pos.y = 0.; });
      +
      registry.patch<position>(entity, [](auto &pos) { pos.x = pos.y = 0.; });
      // constructs a new instance from a list of arguments and replaces the component
      -
      registry.replace<position>(entity, 0., 0.);
      -

      When it's unknown whether an entity already owns an instance of a component, emplace_or_replace is the function to use instead:

      -
      registry.emplace_or_replace<position>(entity, 0., 0.);
      +
      registry.replace<position>(entity, 0., 0.);
      +
      decltype(auto) replace(const entity_type entt, Args &&...args)
      Replaces the given element for an entity.
      Definition registry.hpp:703
      +
      decltype(auto) patch(const entity_type entt, Func &&...func)
      Patches the given element for an entity.
      Definition registry.hpp:683
      +

      When it is unknown whether an entity already owns an instance of a component, emplace_or_replace is the function to use instead:

      +
      registry.emplace_or_replace<position>(entity, 0., 0.);
      +
      decltype(auto) emplace_or_replace(const entity_type entt, Args &&...args)
      Assigns or replaces the given element for an entity.
      Definition registry.hpp:657

      This is a slightly faster alternative to the following snippet:

      -
      if(registry.all_of<velocity>(entity)) {
      -
      registry.replace<velocity>(entity, 0., 0.);
      +
      if(registry.all_of<velocity>(entity)) {
      +
      registry.replace<velocity>(entity, 0., 0.);
      } else {
      -
      registry.emplace<velocity>(entity, 0., 0.);
      +
      registry.emplace<velocity>(entity, 0., 0.);
      }
      +
      bool all_of(const entity_type entt) const
      Check if an entity is part of all the given storage.
      Definition registry.hpp:852

      The all_of and any_of member functions may also be useful if in doubt about whether or not an entity has all the components in a set or any of them:

      // true if entity has all the given components
      -
      bool all = registry.all_of<position, velocity>(entity);
      +
      bool all = registry.all_of<position, velocity>(entity);
      // true if entity has at least one of the given components
      -
      bool any = registry.any_of<position, velocity>(entity);
      +
      bool any = registry.any_of<position, velocity>(entity);
      +
      bool any_of(const entity_type entt) const
      Check if an entity is part of at least one given storage.
      Definition registry.hpp:869

      If the goal is to delete a component from an entity that owns it, the erase member function template is the way to go:

      -
      registry.erase<position>(entity);
      +
      registry.erase<position>(entity);
      +
      void erase(const entity_type entt)
      Erases the given elements from an entity.
      Definition registry.hpp:769

      When in doubt whether the entity owns the component, use the remove member function instead. It behaves similarly to erase but it drops the component if and only if it exists, otherwise it returns safely to the caller:

      -
      registry.remove<position>(entity);
      +
      registry.remove<position>(entity);
      +
      size_type remove(const entity_type entt)
      Removes the given elements from an entity.
      Definition registry.hpp:715

      The clear member function works similarly and is used to either:

      • Erases all instances of the given components from the entities that own them:

        -
        registry.clear<position>();
        +
        registry.clear<position>();
        +
        void clear()
        Clears a whole registry or the pools for the given elements.
        Definition registry.hpp:960
      • Or destroy all entities in a registry at once:

        -
        registry.clear();
        +
        registry.clear();

      Finally, references to components are obtained simply as:

      const auto &cregistry = registry;
      // const and non-const reference
      -
      const auto &crenderable = cregistry.get<renderable>(entity);
      -
      auto &renderable = registry.get<renderable>(entity);
      +
      const auto &crenderable = cregistry.get<renderable>(entity);
      +
      auto &renderable = registry.get<renderable>(entity);
      // const and non-const references
      const auto [cpos, cvel] = cregistry.get<position, velocity>(entity);
      -
      auto [pos, vel] = registry.get<position, velocity>(entity);
      -

      If the existence of the component isn't certain, try_get is the more suitable function instead.

      +
      auto [pos, vel] = registry.get<position, velocity>(entity);
      +
      decltype(auto) get(const entity_type entt) const
      Returns references to the given elements for an entity.
      Definition registry.hpp:885
      +

      If the existence of the component is not certain, try_get is the more suitable function instead.

      Observe changes

      By default, each storage comes with a mixin that adds signal support to it.
      This allows for fancy things like dependencies and reactive systems.

      The on_construct member function returns a sink (which is an object for connecting and disconnecting listeners) for those interested in notifications when a new instance of a given component type is created:

      // connects a free function
      -
      registry.on_construct<position>().connect<&my_free_function>();
      +
      registry.on_construct<position>().connect<&my_free_function>();
      // connects a member function
      -
      registry.on_construct<position>().connect<&my_class::member>(instance);
      +
      registry.on_construct<position>().connect<&my_class::member>(instance);
      // disconnects a free function
      -
      registry.on_construct<position>().disconnect<&my_free_function>();
      +
      registry.on_construct<position>().disconnect<&my_free_function>();
      // disconnects a member function
      -
      registry.on_construct<position>().disconnect<&my_class::member>(instance);
      +
      registry.on_construct<position>().disconnect<&my_class::member>(instance);
      +
      auto on_construct(const id_type id=type_hash< Type >::value())
      Returns a sink object for the given element.

      Similarly, on_destroy and on_update are used to receive notifications about the destruction and update of an instance, respectively.
      Because of how C++ works, listeners attached to on_update are only invoked following a call to replace, emplace_or_replace or patch.

      Runtime pools are also supported by providing an identifier to the functions above:

      -
      registry.on_construct<position>("other"_hs).connect<&my_free_function>();
      +
      registry.on_construct<position>("other"_hs).connect<&my_free_function>();

      Refer to the following sections for more information about runtime pools.
      In all cases, the function type of a listener is equivalent to the following:

      -
      +
      entity
      Default entity identifier.
      Definition fwd.hpp:14

      All listeners are provided with the registry that triggered the notification and the involved entity. Note also that:

        @@ -338,54 +369,56 @@ Observe changes

        There are also some limitations on what a listener can and cannot do:

        • Connecting and disconnecting other functions from within the body of a listener should be avoided. It can lead to undefined behavior in some cases.
        • -
        • Removing the component from within the body of a listener that observes the construction or update of instances of a given type isn't allowed.
        • +
        • Removing the component from within the body of a listener that observes the construction or update of instances of a given type is not allowed.
        • Assigning and removing components from within the body of a listener that observes the destruction of instances of a given type should be avoided. It can lead to undefined behavior in some cases. This type of listeners is intended to provide users with an easy way to perform cleanup and nothing more.

        Please, refer to the documentation of the signal class to know about all the features it offers.
        - There are many useful but less known functionalities that aren't described here, such as the connection objects or the possibility to attach listeners with a list of parameters that is shorter than that of the signal itself.

        + There are many useful but less known functionalities that are not described here, such as the connection objects or the possibility to attach listeners with a list of parameters that is shorter than that of the signal itself.

        Entity lifecycle

        Observing entities is also possible. In this case, the user must use the entity type instead of the component type:

        -
        registry.on_construct<entt::entity>().connect<&my_listener>();
        -

        Since entity storage is unique within a registry, if a name is provided it's ignored and therefore discarded.
        +

        registry.on_construct<entt::entity>().connect<&my_listener>();
        +

        Since entity storage is unique within a registry, if a name is provided it is ignored and therefore discarded.
        As for the function signature, this is exactly the same as the components.

        -

        Entities support all types of signals: construct, destroy and update. The latter is perhaps ambiguous as an entity is not truly updated. Rather, its identifier is created and finally released.
        +

        Entities support all types of signals: construct, destroy, and update. The latter is perhaps ambiguous as an entity is not truly updated. Rather, its identifier is created and finally released.
        Indeed, the update signal is meant to send general notifications regarding an entity. It can be triggered via the patch function, as is the case with components:

        -
        registry.patch<entt::entity>(entity);
        +
        registry.patch<entt::entity>(entity);

        Destroying an entity and then updating the version of an identifier does not give rise to these types of signals under any circumstances instead.
        Finally, note that listeners that observe the destruction of an entity are invoked after all components have been removed, not before. This is because the entity would be invalidated before deleting its elements otherwise, making it difficult for the user to write component listeners.

        Listeners disconnection

        The destruction order of the storage classes and therefore the disconnection of the listeners is completely random.
        - There are no guarantees today and while a logic is easily discerned, it's not guaranteed that it will remain so in the future.

        + There are no guarantees today, and while the logic is easily discerned, it is not guaranteed that it will remain so in the future.

        For example, a listener getting disconnected after a component is discarded as a result of pool destruction is most likely a recipe for problems.
        - Rather, it's advisable to invoke the clear function of the registry before destroying it. This forces the deletion of all components and entities without ever discarding the pools.
        + Rather, it is advisable to invoke the clear function of the registry before destroying it. This forces the deletion of all components and entities without ever discarding the pools.
        As a result, a listener that wants to access components, entities, or pools can safely do so against a still valid registry, while checking for the existence of the various elements as appropriate.

        They call me reactive storage

        -

        Signals are the basic tools to construct reactive systems, even if they aren't enough on their own. EnTT tries to take another step in that direction with its reactive mixin.
        +

        Signals are the basic tools to construct reactive systems, even if they are not enough on their own. EnTT tries to take another step in that direction with its reactive mixin.
        In order to explain what reactive systems are, this is a slightly revised quote from the documentation of the library that first introduced this tool, Entitas:

        -

        ‍Imagine you have 100 fighting units on the battlefield but only 10 of them changed their positions. Instead of using a normal system and updating all 100 entities depending on the position, you can use a reactive system which will only update the 10 changed units. So efficient.

        +

        Imagine you have 100 fighting units on the battlefield, but only 10 of them changed their positions. Instead of using a normal system and updating all 100 entities depending on the position, you can use a reactive system which will only update the 10 changed units. So efficient.

        In EnTT, this means iterating over a reduced set of entities and components than what would otherwise be returned from a view or group.
        On these words, however, the similarities with the proposal of Entitas also end. The rules of the language and the design of the library obviously impose and allow different things.

        A reactive mixin can be used on a standalone storage with any value type (perhaps using an alias to simplify its use):

        -
        using reactive_storage = entt::reactive_mixin<entt::storage<void>>;
        +
        using reactive_storage = entt::reactive_mixin<entt::storage<void>>;
        -
        entt::registry registry{};
        +
        entt::registry registry{};
        reactive_storage storage{};
        -
        storage.bind(registry);
        -
        Mixin type used to add reactive support to storage types.
        Definition mixin.hpp:389
        -
        basic_storage< Type > storage
        Alias declaration for the most common use case.
        Definition fwd.hpp:76
        +
        storage.bind(registry);
        +
        void bind(Type &&value) noexcept
        Forwards variables to derived classes, if any.
        +
        basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > reactive_mixin
        Alias declaration for the most common use case.
        Definition fwd.hpp:92
        +
        basic_storage< Type > storage
        Alias declaration for the most common use case.
        Definition fwd.hpp:78

        In this case, it must be provided with a reference registry for subsequent operations.
        - Alternatively, when using the value type provided by EnTT, it's also possible to create a reactive storage directly inside a registry:

        -
        entt::registry registry{};
        -
        auto &storage = registry.storage<entt::reactive>("observer"_hs);
        -
        Empty value type for reactive storage types.
        Definition fwd.hpp:233
        -

        In the latter case there is the advantage that, in the event of destruction of an entity, this storage is also automatically cleaned up.
        - Also note that, unlike all other storage, these classes don't support signals by default (although they can be enabled if necessary).

        + Alternatively, when using the value type provided by EnTT, it is also possible to create a reactive storage directly inside a registry:

        +
        entt::registry registry{};
        +
        auto &storage = registry.storage<entt::reactive>("observer"_hs);
        +
        iterable storage() noexcept
        Returns an iterable object to use to visit a registry.
        Definition registry.hpp:416
        +
        Empty value type for reactive storage types.
        Definition fwd.hpp:232
        +

        In the latter case, there is the advantage that, in the event of destruction of an entity, this storage is also automatically cleaned up.
        + Also note that, unlike all other storage, these classes do not support signals by default (although they can be enabled if necessary).

        Once it has been created and associated with a registry, the reactive mixin needs to be informed about what it should observe.
        Here the choice boils down to three main events affecting all elements (entities or components), namely creation, update or destruction:

        storage
        @@ -395,7 +428,7 @@ They call me reactive storage
        .on_update<velocity>()
        // observe renderable component destruction
        .on_destroy<renderable>();
        -

        It goes without saying that it's possible to observe multiple events of the same type or of different types with the same storage.
        +

        It goes without saying that it is possible to observe multiple events of the same type or of different types with the same storage.
        For example, to know which entities have been assigned or updated a component of a certain type:

        storage
        .on_construct<my_type>()
        @@ -406,16 +439,16 @@ They call me reactive storage
        first_storage.on_construct<position>();
        second_storage.on_construct<velocity>();
        -
        for(auto entity: entt::basic_view{first_storage, second_storage}) {
        +
        for(auto entity: entt::basic_view{first_storage, second_storage}) {
        // ...
        }
        -
        EnTT default namespace.
        Definition dense_map.hpp:22
        +
        View implementation.
        Definition fwd.hpp:47
      • Use a reactive storage with a non-void value type and a custom tracking function for the purpose:

        -
        using my_reactive_storage = entt::reactive_mixin<entt::storage<bool>>;
        +
        using my_reactive_storage = entt::reactive_mixin<entt::storage<bool>>;
        -
        void callback(my_reactive_storage &storage, const entt::registry &, const entt::entity entity) {
        -
        storage.contains(entity) ? (storage.get(entity) = true) : storage.emplace(entity, false);
        +
        void callback(my_reactive_storage &storage, const entt::registry &, const entt::entity entity) {
        +
        storage.contains(entity) ? (storage.get(entity) = true) : storage.emplace(entity, false);
        }
        // ...
        @@ -427,122 +460,130 @@ They call me reactive storage
        // ...
        -
        for(auto [entity, both_were_added]: storage.each()) {
        +
        for(auto [entity, both_were_added]: storage.each()) {
        if(both_were_added) {
        // ...
        }
        }
        +
        bool contains(const entity_type entt) const noexcept
        Checks if a sparse set contains an entity.
        +
        const value_type & get(const entity_type entt) const noexcept
        Returns the object assigned to an entity.
        Definition storage.hpp:648
        +
        iterable each() noexcept
        Returns an iterable object to use to visit a storage.
        Definition storage.hpp:762
        +
        value_type & emplace(const entity_type entt, Args &&...args)
        Assigns an entity to a storage and constructs its object.
        Definition storage.hpp:684

      As highlighted in the last example, the reactive mixin tracks the entities that match the given conditions and saves them aside. However, this behavior can be changed.
      - For example, it's possible to capture all and only the entities for which a certain component has been updated but only if a specific value is within a given range:

      -
      void callback(reactive_storage &storage, const entt::registry &registry, const entt::entity entity) {
      -
      storage.remove(entity);
      + For example, it is possible to capture all and only the entities for which a certain component has been updated but only if a specific value is within a given range:

      +
      void callback(reactive_storage &storage, const entt::registry &registry, const entt::entity entity) {
      +
      storage.remove(entity);
      -
      if(const auto x = registry.get<position>(entity).x; x >= min_x && x <= max_x) {
      -
      storage.emplace(entity);
      +
      if(const auto x = registry.get<position>(entity).x; x >= min_x && x <= max_x) {
      +
      storage.emplace(entity);
      }
      }
      // ...
      storage.on_update<position, &callback>();
      +
      bool remove(const entity_type entt)
      Removes an entity from a sparse set if it exists.

      This makes reactive storage extremely flexible and usable in a large number of cases.
      - Finally, once the entities of interest have been collected, it's possible to visit the storage like any other:

      + Finally, once the entities of interest have been collected, it is possible to visit the storage like any other:

      for(auto entity: storage) {
      // ...
      }

      Wrapping it in a view and combining it with other views is another option:

      -
      for(auto [entity, pos]: (entt:.basic_view{storage} | registry.view<position>(entt::exclude<velocity>)).each()) {
      +
      for(auto [entity, pos]: (entt:.basic_view{storage} | registry.view<position>(entt::exclude<velocity>)).each()) {
      // ...
      }
      +
      EnTT default namespace.
      Definition dense_map.hpp:22
      +
      constexpr exclude_t< Type... > exclude
      Variable template for exclusion lists.
      Definition fwd.hpp:150

      In order to simplify this last use case, the reactive mixin also provides a specific function that returns a view of the storage already filtered according to the provided requirements:

      -
      for(auto [entity, pos]: storage.view<position>(entt::exclude<velocity>).each()) {
      +
      for(auto [entity, pos]: storage.view<position>(entt::exclude<velocity>).each()) {
      // ...
      }

      The registry used in this case is the one associated with the storage and also available via the registry function.

      It should be noted that a reactive storage never deletes its entities (and elements, if any). To process and then discard entities at regular intervals, refer to the clear function available by default for each storage type.
      - Similarly, the reactive mixin doesn't disconnect itself from observed storages upon destruction. Therefore, users have to do this themselves:

      -
      entt::registry = storage.registry();
      + Similarly, the reactive mixin does not disconnect itself from observed storages upon destruction. Therefore, users have to do this themselves:

      +
      entt::registry = storage.registry();
      -
      registry.on_construct<position>().disconnect(&storage);
      -
      registry.on_construct<velocity>().disconnect(&storage);
      +
      registry.on_construct<position>().disconnect(&storage);
      +
      registry.on_construct<velocity>().disconnect(&storage);

      Destroying a reactive storage without disconnecting it from observed pools will result in undefined behavior.

      Sorting: is it possible?

      -

      Sorting entities and components is possible using an in-place algorithm that doesn't require memory allocations and is therefore quite convenient.
      +

      Sorting entities and components is possible using an in-place algorithm that does not require memory allocations and is therefore quite convenient.
      There are two functions that respond to slightly different needs:

      • Components are sorted either directly:

        -
        registry.sort<renderable>([](const renderable &lhs, const renderable &rhs) {
        +
        registry.sort<renderable>([](const renderable &lhs, const renderable &rhs) {
        return lhs.z < rhs.z;
        });
        +
        void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
        Sorts the elements of a given element.

        Or by accessing their entities:

        -
        registry.sort<renderable>([](const entt::entity lhs, const entt::entity rhs) {
        +
        registry.sort<renderable>([](const entt::entity lhs, const entt::entity rhs) {
        return entt::registry::entity(lhs) < entt::registry::entity(rhs);
        });

        There exists also the possibility to use a custom sort function object for when the usage pattern is known.

      • Components are sorted according to the order imposed by another component:

        -
        registry.sort<movement, physics>();
        +
        registry.sort<movement, physics>();

        In this case, instances of movement are arranged in memory so that cache misses are minimized when the two components are iterated together.

      As a side note, the use of groups limits the possibility of sorting pools of components. Refer to the specific documentation for more details.

      Helpers

      -

      The so called helpers are small classes and functions mainly designed to offer built-in support for the most basic functionalities.

      +

      The so-called helpers are small classes and functions mainly designed to offer built-in support for the most basic functionalities.

      Null entity

      The entt::null variable models the concept of a null entity.
      The library guarantees that the following expression always returns false:

      -
      registry.valid(entt::null);
      +
      registry.valid(entt::null);
      constexpr null_t null
      Compile-time constant for null entities.
      Definition entity.hpp:375
      -

      A registry rejects the null entity in all cases because it isn't considered valid. It also means that the null entity cannot own components.
      +

      A registry rejects the null entity in all cases because it is not considered valid. It also means that the null entity cannot own components.
      The type of the null entity is internal and should not be used for any purpose other than defining the null entity itself. However, there exist implicit conversions from the null entity to identifiers of any allowed type:

      Similarly, the null entity compares to any other identifier:

      -
      const auto entity = registry.create();
      +
      const auto entity = registry.create();
      const bool null = (entity == entt::null);

      As for its integral form, the null entity only affects the entity part of an identifier and is instead completely transparent to its version.

      -

      Be aware that entt::null and entity 0 aren't the same thing. Likewise, a zero initialized entity isn't the same as entt::null. Therefore, although entt::entity{} is in some sense an alias for entity 0, none of them are used to create a null entity.

      +

      Be aware that entt::null and entity 0 are different. Likewise, a zero initialized entity is not the same as entt::null. Therefore, although entt::entity{} is in some sense an alias for entity 0, none of them are used to create a null entity.

      Tombstone

      Similar to the null entity, the entt::tombstone variable models the concept of a tombstone.
      Once created, the integral form of the two values is the same, although they affect different parts of an identifier. In fact, the tombstone only uses the version part of it and is completely transparent to the entity part.

      Also in this case, the following expression always returns false:

      -
      registry.valid(entt::tombstone);
      +
      constexpr tombstone_t tombstone
      Compile-time constant for tombstone entities.
      Definition entity.hpp:384

      Moreover, users cannot set the tombstone version when releasing an entity:

      -
      registry.destroy(entity, entt::tombstone);
      +
      registry.destroy(entity, entt::tombstone);

      In this case, a different version number is implicitly generated.
      The type of a tombstone is internal and can change at any time. However, there exist implicit conversions from a tombstone to identifiers of any allowed type:

      Similarly, the tombstone compares to any other identifier:

      -
      const auto entity = registry.create();
      +
      const auto entity = registry.create();
      const bool tombstone = (entity == entt::tombstone);
      -

      Be aware that entt::tombstone and entity 0 aren't the same thing. Likewise, a zero initialized entity isn't the same as entt::tombstone. Therefore, although entt::entity{} is in some sense an alias for entity 0, none of them are used to create tombstones.

      +

      Be aware that entt::tombstone and entity 0 are different. Likewise, a zero initialized entity is not the same as entt::tombstone. Therefore, although entt::entity{} is in some sense an alias for entity 0, none of them are used to create tombstones.

      To entity

      This function accepts a storage and an instance of a component of the storage type, then it returns the entity associated with the latter:

      -
      const auto entity = entt::to_entity(registry.storage<position>(), instance);
      +
      const auto entity = entt::to_entity(registry.storage<position>(), instance);
      constexpr entt_traits< Entity >::entity_type to_entity(const Entity value) noexcept
      Returns the entity part once converted to the underlying type.
      Definition entity.hpp:188
      -

      Where instance is a component of type position. A null entity is returned in case the instance doesn't belong to the registry.

      +

      Where instance is a component of type position. A null entity is returned in case the instance does not belong to the registry.

      Dependencies

      The registry class is designed to create short circuits between its member functions. This greatly simplifies the definition of a dependency.
      For example, the following adds (or replaces) the component a_type whenever my_type is assigned to an entity:

      -
      registry.on_construct<my_type>().connect<&entt::registry::emplace_or_replace<a_type>>();
      +

      Similarly, the code below removes a_type from an entity whenever my_type is assigned to it:

      -
      registry.on_construct<my_type>().connect<&entt::registry::remove<a_type>>();
      +
      registry.on_construct<my_type>().connect<&entt::registry::remove<a_type>>();

      A dependency is easily broken as follows:

      -
      registry.on_construct<my_type>().disconnect<&entt::registry::emplace_or_replace<a_type>>();
      +
      registry.on_construct<my_type>().disconnect<&entt::registry::emplace_or_replace<a_type>>();

      There are many other types of dependencies. In general, most of the functions that accept an entity as their first argument are good candidates for this purpose.

      Invoke

      The invoke helper allows to propagate a signal to a member function of a component without having to extend it:

      -
      registry.on_construct<clazz>().connect<entt::invoke<&clazz::func>>();
      -
      constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
      Uses-allocator construction utility (waiting for C++20).
      Definition memory.hpp:219
      +
      registry.on_construct<clazz>().connect<entt::invoke<&clazz::func>>();
      +
      void invoke(Registry &reg, const typename Registry::entity_type entt)
      Helper to create a listener that directly invokes a member function.
      Definition helper.hpp:108

      All it does is pick up the right component for the received entity and invoke the requested method, passing on the arguments if necessary.

      Connection helper

      @@ -554,14 +595,14 @@ Connection helper
      .on_destroy<&another_listener>()
      .with<velocity>("other"_hs)
      .on_update<yet_another_listener>();
      -
      Primary template isn't defined on purpose.
      Definition helper.hpp:143
      +
      Primary template isn't defined on purpose.
      Definition helper.hpp:144

      Runtime pools are also supported by providing an identifier when calling with, as shown in the previous snippet. Refer to the following sections for more information about runtime pools.
      - Obviously, this helper doesn't make the code disappear but it should at least reduce the boilerplate in the most complex cases.

      + Obviously, this helper does not make the code disappear but it should at least reduce the boilerplate in the most complex cases.

      Handle

      A handle is a thin wrapper around an entity and a registry. It replicates the API of a registry by offering functions such as get or emplace. The difference being that the entity is implicitly passed to the registry.
      - It's default constructible as an invalid handle that contains a null registry and a null entity. When it contains a null registry, calling functions that delegate execution to the registry causes undefined behavior. It's recommended to test for validity with its implicit cast to bool if in doubt.
      - A handle is also non-owning, meaning that it's freely copied and moved around without affecting its entity (in fact, handles happen to be trivially copyable). An implication of this is that mutability becomes part of the type.

      + It is default constructible as an invalid handle that contains a null registry and a null entity. When it contains a null registry, calling functions that delegate execution to the registry causes undefined behavior. It is recommended to test for validity with its implicit cast to bool if in doubt.
      + A handle is also non-owning, meaning that it is freely copied and moved around without affecting its entity (in fact, handles happen to be trivially copyable). An implication of this is that mutability becomes part of the type.

      There are two aliases that use entt::entity as their default entity: entt::handle and entt::const_handle.
      Users can also easily create their own aliases for custom identifiers as:

      @@ -572,20 +613,21 @@ Handle

      Organizer

      The organizer class template offers support for creating an execution graph from a set of functions and their requirements on resources.
      - The resulting tasks aren't executed in any case. This isn't the goal of this tool. Instead, they are returned to the user in the form of a graph that allows for safe execution.

      + The resulting tasks are not executed in any case. This is not the goal of this tool. Instead, they are returned to the user in the form of a graph that allows for safe execution.

      All functions are added in order of execution to the organizer:

      -
      entt::organizer organizer;
      +
      entt::organizer organizer;
      // adds a free function to the organizer
      -
      organizer.emplace<&free_function>();
      +
      organizer.emplace<&free_function>();
      // adds a member function and an instance on which to invoke it to the organizer
      clazz instance;
      -
      organizer.emplace<&clazz::member_function>(&instance);
      +
      organizer.emplace<&clazz::member_function>(&instance);
      // adds a decayed lambda directly
      -
      organizer.emplace(+[](const void *, entt::registry &) { /* ... */ });
      -
      Utility class for creating a static task graph.
      +
      organizer.emplace(+[](const void *, entt::registry &) { /* ... */ });
      +
      void emplace(const char *name=nullptr)
      Adds a free function to the task list.
      +
      basic_organizer< registry > organizer
      Alias declaration for the most common use case.
      Definition fwd.hpp:98

      These are the parameters that a free function or a member function can accept:

      • A possibly constant reference to a registry.
      • @@ -594,18 +636,19 @@ Organizer

      The function type for free functions and decayed lambdas passed as parameters to emplace is void(const void *, entt::registry &) instead. The first parameter is an optional pointer to user defined data to provide upon registration:

      clazz instance;
      -
      organizer.emplace(+[](const void *, entt::registry &) { /* ... */ }, &instance);
      -

      In all cases, it's also possible to associate a name with the task when creating it. For example:

      -
      organizer.emplace<&free_function>("func");
      +
      organizer.emplace(+[](const void *, entt::registry &) { /* ... */ }, &instance);
      +

      In all cases, it is also possible to associate a name with the task when creating it. For example:

      +
      organizer.emplace<&free_function>("func");

      When a function is registered with the organizer, everything it accesses is considered a resource (views are unpacked and their types are treated as resources). The constness of a type also dictates its access mode (RO/RW). In turn, this affects the resulting graph, since it influences the possibility of launching tasks in parallel.
      - As for the registry, if a function doesn't explicitly request it or requires a constant reference to it, it's considered a read-only access. Otherwise, it's considered as read-write access. All functions have the registry among their resources.

      -

      When registering a function, users can also require resources that aren't in the list of parameters of the function itself. These are declared as template parameters:

      -
      organizer.emplace<&free_function, position, velocity>("func");
      + As for the registry, if a function does not explicitly request it or requires a constant reference to it, it is considered a read-only access. Otherwise, it is considered as read-write access. All functions have the registry among their resources.

      +

      When registering a function, users can also require resources that are not in the list of parameters of the function itself. These are declared as template parameters:

      +
      organizer.emplace<&free_function, position, velocity>("func");

      Similarly, users can override the access mode of a type again via template parameters:

      -
      organizer.emplace<&free_function, const renderable>("func");
      -

      In this case, even if renderable appears among the parameters of the function as not constant, it's treated as constant as regards the generation of the task graph.

      +
      organizer.emplace<&free_function, const renderable>("func");
      +

      In this case, even if renderable appears among the parameters of the function as not constant, it is treated as constant as regards the generation of the task graph.

      To generate the task graph, the organizer offers the graph member function:

      -
      std::vector<entt::organizer::vertex> graph = organizer.graph();
      +
      std::vector<entt::organizer::vertex> graph = organizer.graph();
      +
      std::vector< vertex > graph()
      Generates a task graph for the current content.

      A graph is returned in the form of an adjacency list. Each vertex offers the following features:

      • ro_count and rw_count: the number of resources accessed in read-only or read-write mode.
      • @@ -617,9 +660,9 @@ Organizer
      • data: optional data to provide to the callback.
      • children: the vertices reachable from the given node, in the form of indices within the adjacency list.
      -

      Since the creation of pools and resources within the registry isn't necessarily thread safe, each vertex also offers a prepare function which is used to setup a registry for execution with the created graph:

      -
      auto graph = organizer.graph();
      -
      entt::registry registry;
      +

      Since the creation of pools and resources within the registry is not necessarily thread safe, each vertex also offers a prepare function which is used to setup a registry for execution with the created graph:

      +
      auto graph = organizer.graph();
      +
      entt::registry registry;
      for(auto &&node: graph) {
      node.prepare(registry);
      @@ -627,75 +670,75 @@ Organizer

      The actual scheduling of the tasks is the responsibility of the user, who can use the preferred tool.

      Context variables

      -

      Each registry has a context associated with it, which is an any object map accessible by both type and name for convenience. The name isn't really a name though. In fact, it's a numeric id of type id_type used as a key for the variable. Any value is accepted, even runtime ones.
      +

      Each registry has a context associated with it, which is an any object map accessible by both type and name for convenience. The name is not really a name though. In fact, it is a numeric id of type id_type used as a key for the variable. Any value is accepted, even runtime ones.
      The context is returned via the ctx functions and offers a minimal set of features including the following:

      // creates a new context variable by type and returns it
      -
      registry.ctx().emplace<my_type>(42, 'c');
      +
      registry.ctx().emplace<my_type>(42, 'c');
      // creates a new named context variable by type and returns it
      -
      registry.ctx().emplace_as<my_type>("my_variable"_hs, 42, 'c');
      +
      registry.ctx().emplace_as<my_type>("my_variable"_hs, 42, 'c');
      // inserts or assigns a context variable by (deduced) type and returns it
      -
      registry.ctx().insert_or_assign(my_type{42, 'c'});
      +
      registry.ctx().insert_or_assign(my_type{42, 'c'});
      // inserts or assigns a named context variable by (deduced) type and returns it
      -
      registry.ctx().insert_or_assign("my_variable"_hs, my_type{42, 'c'});
      +
      registry.ctx().insert_or_assign("my_variable"_hs, my_type{42, 'c'});
      // gets the context variable by type as a non-const reference from a non-const registry
      -
      auto &var = registry.ctx().get<my_type>();
      +
      auto &var = registry.ctx().get<my_type>();
      // gets the context variable by name as a const reference from either a const or a non-const registry
      -
      const auto &cvar = registry.ctx().get<const my_type>("my_variable"_hs);
      +
      const auto &cvar = registry.ctx().get<const my_type>("my_variable"_hs);
      // resets the context variable by type
      -
      registry.ctx().erase<my_type>();
      +
      registry.ctx().erase<my_type>();
      // resets the context variable associated with the given name
      -
      registry.ctx().erase<my_type>("my_variable"_hs);
      -
      basic_registry<> registry
      Alias declaration for the most common use case.
      Definition fwd.hpp:93
      -

      A context variable must be both default constructible and movable. If the supplied type doesn't match that of the variable when using a name, the operation fails.
      - For all users who want to use the context but don't want to create elements, the contains and find functions are also available:

      -
      const bool contains = registry.ctx().contains<my_type>();
      -
      const my_type *value = registry.ctx().find<const my_type>("my_variable"_hs);
      +
      registry.ctx().erase<my_type>("my_variable"_hs);
      +
      context & ctx() noexcept
      Returns the context object, that is, a general purpose container.
      +

      A context variable must be both default constructible and movable. If the supplied type does not match that of the variable when using a name, the operation fails.
      + For all users who want to use the context but do not want to create elements, the contains and find functions are also available:

      +
      const bool contains = registry.ctx().contains<my_type>();
      +
      const my_type *value = registry.ctx().find<const my_type>("my_variable"_hs);

      Also in this case, both functions support constant types and accept a name for the variable to look up, as does at.

      Aliased properties

      -

      A context also supports creating aliases for existing variables that aren't directly managed by the registry. Const and therefore read-only variables are also accepted.
      +

      A context also supports creating aliases for existing variables that are not directly managed by the registry. Const and therefore read-only variables are also accepted.
      To do that, the type used upon construction must be a reference type and an lvalue is necessarily provided as an argument:

      time clock;
      -
      registry.ctx().emplace<time &>(clock);
      +
      registry.ctx().emplace<time &>(clock);

      Read-only aliased properties are created using const types instead:

      -
      registry.ctx().emplace<const time &>(clock);
      -

      Note that insert_or_assign doesn't support aliased properties and users must necessarily use emplace or emplace_as for this purpose.
      +

      registry.ctx().emplace<const time &>(clock);
      +

      Note that insert_or_assign does not support aliased properties and users must necessarily use emplace or emplace_as for this purpose.
      When insert_or_assign is used to update an aliased property, it converts the property itself into a non-aliased one.

      -

      From the point of view of the user, there are no differences between a variable that is managed by the registry and an aliased property. However, read-only variables aren't accessible as non-const references:

      +

      From the point of view of the user, there are no differences between a variable that is managed by the registry and an aliased property. However, read-only variables are not accessible as non-const references:

      // read-only variables only support const access
      -
      const my_type *ptr = registry.ctx().find<const my_type>();
      -
      const my_type &var = registry.ctx().get<const my_type>();
      -

      Aliased properties are erased as it happens with any other variable. Similarly, it's also possible to assign them a name.

      +
      const my_type *ptr = registry.ctx().find<const my_type>();
      +
      const my_type &var = registry.ctx().get<const my_type>();
      +

      Aliased properties are erased as it happens with any other variable. Similarly, it is also possible to assign them a name.

      Snapshot: complete vs continuous

      -

      This module comes with bare minimum support to serialization.
      - It doesn't convert components to bytes directly, there wasn't the need of another tool for serialization out there. Instead, it accepts an opaque object with a suitable interface (namely an archive) to serialize its internal data structures and restore them later. The way types and instances are converted to a bunch of bytes is completely in charge to the archive and thus to final users.

      +

      This module comes with bare minimum support for serialization.
      + It does not convert components to bytes directly, there was not the need of another tool for serialization out there. Instead, it accepts an opaque object with a suitable interface (namely an archive) to serialize its internal data structures and restore them later. The way types and instances are converted to a bunch of bytes is completely in charge to the archive and thus to final users.

      The goal of the serialization part is to allow users to make both a dump of the entire registry or a narrower snapshot, that is to select only the components in which they are interested.
      Intuitively, the use cases are different. As an example, the first approach is suitable for local save/restore functionalities while the latter is suitable for creating client-server applications and for transferring somehow parts of the representation side to side.

      To take a snapshot of a registry, use the snapshot class:

      output_archive output;
      -
      entt::snapshot{registry}
      +
      entt::snapshot{registry}
      .get<entt::entity>(output)
      .get<a_component>(output)
      .get<another_component>(output);
      -
      Utility class to create snapshots from a registry.
      Definition snapshot.hpp:47
      -

      It isn't necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.

      +
      basic_snapshot< registry > snapshot
      Alias declaration for the most common use case.
      Definition fwd.hpp:121
      +

      It is not necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.

      When getting an entity type, the snapshot class serializes all entities along with their versions.
      - In all other case, entities and components from a given storage are passed to the archive. Named pools are also supported:

      -
      entt::snapshot{registry}.get<a_component>(output, "other"_hs);
      -

      There exists another version of the get member function that accepts a range of entities to serialize. It can be used to filter out those entities that shouldn't be serialized for some reasons:

      -
      const auto view = registry.view<serialize>();
      + In all other cases, entities and components from a given storage are passed to the archive. Named pools are also supported:

      +
      entt::snapshot{registry}.get<a_component>(output, "other"_hs);
      +

      There exists another version of the get member function that accepts a range of entities to serialize. It can be used to filter out those entities that should not be serialized for some reasons:

      +
      const auto view = registry.view<serialize>();
      output_archive output;
      -
      entt::snapshot{registry}
      +
      entt::snapshot{registry}
      .get<a_component>(output, view.begin(), view.end())
      .get<another_component>(output, view.begin(), view.end());

      Once a snapshot is created, there exist mainly two ways to load it: as a whole and in a kind of continuous mode.
      @@ -705,24 +748,24 @@ Snapshot loader

      A snapshot loader requires that the destination registry be empty. It loads all the data at once while keeping intact the identifiers that the entities originally had:

      input_archive input;
      - +
      .get<entt::entity>(input)
      .get<a_component>(input)
      .get<another_component>(input)
      .orphans();
      -
      Utility class to restore a snapshot as a whole.
      Definition snapshot.hpp:176
      -

      It isn't necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.
      +

      basic_snapshot_loader< registry > snapshot_loader
      Alias declaration for the most common use case.
      Definition fwd.hpp:124
      +

      It is not necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.
      For obvious reasons, what is important is that the data are restored in exactly the same order in which they were serialized.

      When getting an entity type, a snapshot loader restores all entities with the versions that they originally had at the source.
      - In all other cases, entities and components are restored in a given storage. If the registry doesn't contain the entity, it's also created accordingly. As for the snapshot class, named pools are supported too:

      -
      entt::snapshot_loader{registry}.get<a_component>(input, "other"_hs);
      + In all other cases, entities and components are restored in a given storage. If the registry does not contain the entity, it is also created accordingly. As for the snapshot class, named pools are supported too:

      +
      entt::snapshot_loader{registry}.get<a_component>(input, "other"_hs);

      Finally, the orphans member function releases the entities that have no components after a restore, if any.

      Continuous loader

      A continuous loader is designed to load data from a source registry to a (possibly) non-empty destination. The loader accommodates in a registry more than one snapshot in a sort of continuous loading that updates the destination one step at a time.
      Identifiers that entities originally had are not transferred to the target. Instead, the loader maps remote identifiers to local ones while restoring a snapshot. Wrapping the archive is a conveninent way of updating identifiers that are part of components automatically (see the example below).
      Another difference with the snapshot loader is that the continuous loader has an internal state that must persist over time. Therefore, there is no reason to limit its lifetime to that of a temporary object:

      -
      entt::continuous_loader loader{registry};
      +
      entt::continuous_loader loader{registry};
      input_archive input;
      auto archive = [&loader, &input](auto &value) {
      @@ -740,11 +783,11 @@ Continuous loader
      .get<another_component>(input)
      .get<dirty_component>(input)
      .orphans();
      -
      Utility class for continuous loading.
      Definition snapshot.hpp:303
      -

      It isn't necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.
      +

      basic_continuous_loader< registry > continuous_loader
      Alias declaration for the most common use case.
      Definition fwd.hpp:127
      +

      It is not necessary to invoke all functions each and every time. What functions to use in which case mostly depends on the goal.
      For obvious reasons, what is important is that the data are restored in exactly the same order in which they were serialized.

      When getting an entity type, a loader restores groups of entities and maps each entity to a local counterpart when required. For each remote identifier not yet registered by the loader, a local identifier is created so as to keep the local entity in sync with the remote one.
      - In all other cases, entities and components are restored in a given storage. If the registry doesn't contain the entity, it's also tracked accordingly. As for the snapshot class, named pools are supported too:

      + In all other cases, entities and components are restored in a given storage. If the registry does not contain the entity, it is also tracked accordingly. As for the snapshot class, named pools are supported too:

      loader.get<a_component>(input, "other"_hs);

      Finally, the orphans member function releases the entities that have no components after a restore, if any.

      @@ -759,7 +802,7 @@ Archives

      void operator()(std::underlying_type_t<entt::entity>);

      In addition, an archive accepts (const) references to the types of component to serialize. Therefore, given a type T, the archive offers a function call operator with the following signature:

      void operator()(const T &);
      -

      The output archive can freely decide how to serialize the data. The registry isn't affected at all by the decision.

      +

      The output archive can freely decide how to serialize the data. The registry is not affected at all by the decision.

    • An input archive (the one used when restoring a snapshot) exposes a function call operator with the following signature to load entities:

      void operator()(entt::entity &);
      @@ -774,11 +817,11 @@ Archives

      One example to rule them all

      EnTT comes with some examples (actually some tests) that show how to integrate a well known library for serialization as an archive. It uses Cereal C++ under the hood, mainly because I wanted to learn how it works at the time I was writing the code.

      -

      The code isn't production-ready and it isn't neither the only nor (probably) the best way to do it. However, feel free to use it at your own risk.
      +

      The code is not production-ready and it is not neither the only nor (probably) the best way to do it. However, feel free to use it at your own risk.
      The basic idea is to store everything in a group of queues in memory, then bring everything back to the registry with different loaders.

      Storage

      -

      Pools of components are specialized versions of the sparse set class. Each pool contains all the instances of a single component type and all the entities to which it's assigned.
      +

      Pools of components are specialized versions of the sparse set class. Each pool contains all the instances of a single component type and all the entities to which it is assigned.
      Sparse arrays are paged to avoid wasting memory. Packed arrays of components are also paged to have pointer stability upon additions. Packed arrays of entities are not instead.
      All pools rearranges their items in order to keep the internal arrays tightly packed and maximize performance, unless full pointer stability is enabled.

      @@ -797,53 +840,61 @@ Component traits

      // ... other data members ...
      };

      The component_traits class template takes care of extracting the properties from the supplied type.
      - Plus, it's sfinae-friendly and also supports feature-based specializations.

      + Plus, it is sfinae-friendly and also supports feature-based specializations.

      Empty type optimization

      An empty type T is such that std::is_empty_v<T> returns true. They also are the same types for which empty base optimization (EBO) is possible.
      EnTT handles these types in a special way, optimizing both in terms of performance and memory usage. However, this also has consequences that are worth mentioning.

      -

      When an empty type is detected, it's not instantiated by default. Therefore, only the entities to which it's assigned are made available. There doesn't exist a way to get empty types from a storage or a registry. Views and groups never return their instances too (for example, during a call to each).
      - On the other hand, iterations are faster because only the entities to which the type is assigned are considered. Moreover, less memory is used, mainly because there doesn't exist any instance of the component, no matter how many entities it is assigned to.

      +

      When an empty type is detected, it is not instantiated by default. Therefore, only the entities to which it is assigned are made available. There does not exist a way to get empty types from a storage or a registry. Views and groups never return their instances too (for example, during a call to each).
      + On the other hand, iterations are faster because only the entities to which the type is assigned are considered. Moreover, less memory is used, mainly because there does not exist any instance of the component, no matter how many entities it is assigned to.

      More in general, none of the feature offered by the library is affected, but for the ones that require to return actual instances.
      This optimization is disabled by defining the ENTT_NO_ETO macro. In this case, empty types are treated like all other types. Setting a page size at component level via the component_traits class template is another way to disable this optimization selectively rather than globally.

      Void storage

      A void storage (or entt::storage<void> or entt::basic_storage<Type, void>), is a fully functional storage type used to create pools not associated with a particular component type.
      - From a technical point of view, it's in all respects similar to a storage for empty types when their optimization is enabled. Pagination is disabled as well as pointer stability (as not necessary).
      - However, this should be preferred to using a simple sparse set. In particular, a void storage offers all those feature normally offered by other storage types. Therefore, it's a perfectly valid pool for use with views and groups or within a registry.

      + From a technical point of view, it is in all respects similar to a storage for empty types when their optimization is enabled. Pagination is disabled as well as pointer stability (as not necessary).
      + However, this should be preferred to using a simple sparse set. In particular, a void storage offers all those feature normally offered by other storage types. Therefore, it is a perfectly valid pool for use with views and groups or within a registry.

      Entity storage

      This storage is such that the component type is the same as the entity type, for example entt::storage<entt::entity> or entt::basic_storage<Type, Type>.
      For this type of pools, there is a specific specialization within EnTT. In fact, entities are subject to different rules with respect to components (although still customizable by the user if needed). In particular:

      • Entities are never truly deleted. They are moved out of the list of entities in use and their versions are updated automatically.
      • -
      • emplace as well as insert have a slightly different meaning than their counterparts for components. In the case of an entity storage, these functions generate or recycle identifiers rather than allowing them to be assigned to existing entities.
      • -
      • The each function iterates only the entities in use, that is, those not marked as ready for reuse. To iterate all the entities it's necessary to iterate the underlying sparse set instead.
      • +
      • There are no emplace or insert functions in its interface. Instead, a range of generate functions are provided for creating or recycling entities.
      • +
      • The each function returns an iterable object to visit the entities in use, that is, those not marked as ready for reuse. To iterate all the entities it is necessary to iterate the underlying sparse set instead.

      This kind of storage is designed to be used where any other storage is fine and can therefore be combined with views, groups and so on.

      +

      +Reserved identifiers

      +

      Since the entity storage is the one in charge of generating identifiers, it is also possible to request that some of them be reserved and never returned.
      + By doing so, users can then generate and manage them autonomously, as needed.

      +

      To set a starting identifier, the start_from function is invoked as follows:

      +
      storage.start_from(entt::entity{100});
      +

      Note that the version is irrelevant and is ignored in all cases. Identifiers are always generated with default version.
      + By calling start_from as above, the first 100 elements are discarded and the first identifier returned is the one with entity 100 and version 0.

      One of a kind to the registry

      Within the registry, an entity storage is treated in all respects like any other storage.
      - Therefore, it's possible to add mixins to it as well as retrieve it via the storage function. It can also be used as storage in a view (for exclude-only views for example):

      -
      auto view = registry.view<entt::entity>(entt::exclude<my_type>);
      -

      However, it's also subject to a couple of exceptions, partly out of necessity and partly for ease of use.

      -

      In particular, it's not possible to create multiple elements of this type.
      + Therefore, it is possible to add mixins to it as well as retrieve it via the storage function. It can also be used as storage in a view (for exclude-only views for example):

      +
      auto view = registry.view<entt::entity>(entt::exclude<my_type>);
      +

      However, it is also subject to a couple of exceptions, partly out of necessity and partly for ease of use.

      +

      In particular, it is not possible to create multiple elements of this type.
      This means that the name used to retrieve this kind of storage is ignored and the registry will only ever return the same element to the caller. For example:

      -
      auto &other = registry.storage<entt::entity>("other"_hs);
      +
      auto &other = registry.storage<entt::entity>("other"_hs);

      In this case, the identifier is discarded as is. The call is in all respects equivalent to the following:

      -
      auto &storage = registry.storage<entt::entity>();
      -

      Because entity storage doesn't have a name, it can't be retrieved via the opaque storage function either.
      +

      auto &storage = registry.storage<entt::entity>();
      +

      Because entity storage does not have a name, it cannot be retrieved via the opaque storage function either.
      It would make no sense to try anyway, given that the type of the registry and therefore its entity type are known regardless.

      Finally, when the user asks the registry for an iterable object to visit all the storage elements inside it as follows:

      -
      for(auto [id, storage]: registry.storage()) {
      +
      for(auto [id, storage]: registry.storage()) {
      // ...
      }
      -

      Entity storage is never returned. This simplifies many tasks (such as copying an entity) and fits perfectly with the fact that this type of storage doesn't have an identifier inside the registry.

      +

      Entity storage is never returned. This simplifies many tasks (such as copying an entity) and fits perfectly with the fact that this type of storage does not have an identifier inside the registry.

      Pointer stability

      The ability to achieve pointer stability for one, several or all components is a direct consequence of the design of EnTT and of its default storage.
      - In fact, although it contains what is commonly referred to as a packed array, the default storage is paged and doesn't suffer from invalidation of references when it runs out of space and has to reallocate.
      - However, this isn't enough to ensure pointer stability in case of deletion. For this reason, a stable deletion method is also offered. This one is such that the position of the elements is preserved by creating tombstones upon deletion rather than trying to fill the holes that are created.

      + In fact, although it contains what is commonly referred to as a packed array, the default storage is paged and does not suffer from invalidation of references when it runs out of space and has to reallocate.
      + However, this is not enough to ensure pointer stability in case of deletion. For this reason, a stable deletion method is also offered. This one is such that the position of the elements is preserved by creating tombstones upon deletion rather than trying to fill the holes that are created.

      For performance reasons, EnTT favors storage compaction in all cases, although often accessing a component occurs mostly randomly or traversing pools in a non-linear order on the user side (as in the case of a hierarchy).
      In other words, pointer stability is not automatic but is enabled on request.

      @@ -856,10 +907,10 @@ In-place delete

    • Single type views for stable storage types offer the same interface of multi type views. For example, only size_hint is available.

    In other words, the more generic version of a view is provided in case of stable storage, even for a single type view.
    - In no case a tombstone is returned from the view itself. Likewise, non-existent components aren't returned, which could otherwise result in an UB.

    + In no case a tombstone is returned from the view itself. Likewise, non-existent components are not returned, which could otherwise result in an UB.

    Hierarchies and the like

    -

    EnTT doesn't attempt in any way to offer built-in methods with hidden or unclear costs to facilitate the creation of hierarchies.
    +

    EnTT does not attempt in any way to offer built-in methods with hidden or unclear costs to facilitate the creation of hierarchies.
    There are various solutions to the problem, such as using the following class:

    struct relationship {
    std::size_t children{};
    @@ -877,19 +928,20 @@ Hierarchies and the like
    transform *parent;
    // ... other data members ...
    };
    -

    Furthermore, it's quite common for a group of elements to be created close in time and therefore fallback into adjacent positions, thus favoring locality even on random accesses. Locality that isn't sacrificed over time given the stability of storage positions, with undoubted performance advantages.

    +

    Furthermore, it is quite common for a group of elements to be created close in time and therefore fallback into adjacent positions, thus favoring locality even on random accesses. Locality that is not sacrificed over time given the stability of storage positions, with undoubted performance advantages.

    Meet the runtime

    EnTT takes advantage of what the language offers at compile-time. However, this can have its downsides (well known to those familiar with type erasure techniques).
    - To fill the gap, the library also provides a bunch of utilities and feature that are very useful to handle types and pools at runtime.

    + To fill the gap, the library also provides a bunch of utilities and features that are invaluable to handle types and pools at runtime.

    A base class to rule them all

    Storage classes are fully self-contained types. They are extended via mixins to add more functionalities (generic or type specific). In addition, they offer a basic set of functions that already allow users to go very far.
    The aim is to limit the need for customizations as much as possible, offering what is usually necessary for the vast majority of cases.

    -

    When a storage is used through its base class (for example, when its actual type isn't known), there is always the possibility of receiving a type_info object for the type of elements associated with the entities (if any):

    -
    if(entt::type_id<velocity>() == base.type()) {
    +

    When a storage is used through its base class (for example, when its actual type is not known), there is always the possibility of receiving a type_info object for the type of elements associated with the entities (if any):

    +
    if(entt::type_id<velocity>() == base.type()) {
    // ...
    }
    +
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.

    Furthermore, all features rely on internal functions that forward the calls to the mixins. The latter can then make use of any information, which is set via bind:

    base.bind(registry);

    The bind function accepts any element by reference or by value and forwards it to derived classes.
    @@ -902,44 +954,40 @@ A base class to rule them all

  • When the pointer is null, the function tries to default-construct an instance of the object to bind to the entity and returns true on success.
  • When the pointer is not null, the function tries to copy-construct an instance of the object to bind to the entity and returns true on success.
  • -

    This means that, starting from a reference to the base, it's possible to bind components with entities without knowing their actual type and even initialize them by copy if needed:

    +

    This means that, starting from a reference to the base, it is possible to bind components with entities without knowing their actual type and even initialize them by copy if needed:

    // create a copy of an entity component by component
    -
    for(auto &&curr: registry.storage()) {
    -
    if(auto &storage = curr.second; storage.contains(src)) {
    -
    storage.push(dst, storage.value(src));
    +
    for(auto &&curr: registry.storage()) {
    +
    if(auto &storage = curr.second; storage.contains(src)) {
    +
    storage.push(dst, storage.value(src));
    }
    }
    +
    iterator push(const entity_type entt, const void *elem=nullptr)
    Assigns an entity to a sparse set.
    +
    const void * value(const entity_type entt) const noexcept
    Returns the element assigned to an entity, if any.

    This is particularly useful to clone entities in an opaque way. In addition, the decoupling of features allows for filtering or use of different copying policies depending on the type.

    Beam me up, registry

    EnTT allows the user to assign a name (or rather, a numeric identifier) to a type and then create multiple pools of the same type:

    using namespace entt::literals;
    -
    auto &&storage = registry.storage<velocity>("second pool"_hs);
    -
    iterable storage() noexcept
    Returns an iterable object to use to visit a registry.
    Definition registry.hpp:416
    -
    Storage implementation.
    Definition storage.hpp:230
    -

    If a name isn't provided, the default storage associated with the given type is always returned.
    - Since the storage are also self-contained, the registry doesn't duplicate its own API for them. However, there is still no limit to the possibilities of use:

    -
    auto &&other = registry.storage<velocity>("other"_hs);
    +
    auto &&storage = registry.storage<velocity>("second pool"_hs);
    +

    If a name is not provided, the default storage associated with the given type is always returned.
    + Since the storage are also self-contained, the registry does not duplicate its own API for them. However, there is still no limit to the possibilities of use:

    +
    auto &&other = registry.storage<velocity>("other"_hs);
    -
    registry.emplace<velocity>(entity);
    +
    registry.emplace<velocity>(entity);
    other.push(entity);
    -
    decltype(auto) emplace(const entity_type entt, Args &&...args)
    Assigns the given element to an entity.
    Definition registry.hpp:604

    Anything that can be done via the registry interface can also be done directly on the reference storage.
    On the other hand, those calls involving all storage are guaranteed to also reach manually created ones:

    // removes the entity from both storage
    - -
    version_type destroy(const entity_type entt)
    Destroys an entity and releases its identifier.
    Definition registry.hpp:540
    +
    registry.destroy(entity);

    Finally, a storage of this type works with any view (which also accepts multiple storages of the same type, if necessary):

    // direct initialization
    -
    registry.storage<velocity>(),
    -
    registry.storage<velocity>("other"_hs)
    +
    registry.storage<velocity>(),
    +
    registry.storage<velocity>("other"_hs)
    };
    // concatenation
    -
    auto join = registry.view<velocity>() | entt::basic_view{registry.storage<velocity>("other"_hs)};
    -
    basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
    Returns a view for the given elements.
    -
    View implementation.
    Definition fwd.hpp:42
    +
    auto join = registry.view<velocity>() | entt::basic_view{registry.storage<velocity>("other"_hs)};

    The possibility of direct use of storage combined with the freedom of being able to create and use more than one of the same type opens the door to the use of EnTT at runtime, which was previously quite limited.

    Views and Groups

    @@ -947,258 +995,258 @@ Views and Groups Groups are an intrusive tool to use to improve performance along critical paths but which also has a price to pay for that.

    There are mainly two kinds of views: compile-time (also known as view) and runtime (also known as runtime_view).
    The former requires a compile-time list of component (or storage) types and can make several optimizations because of that. The latter is constructed at runtime using numerical type identifiers instead and is a bit slower to iterate.
    - In both cases, creating and destroying views isn't expensive at all since they don't have any type of initialization.

    + In both cases, creating and destroying views is not expensive at all since they do not have any type of initialization.

    Groups come in three different flavors: full-owning groups, partial-owning groups and non-owning groups. The main difference between them is in terms of performance.
    Groups can literally own one or more component types. They are allowed to rearrange pools so as to speed up iterations. Roughly speaking: the more components a group owns, the faster it is to iterate them.

    Views

    Single type views and multi type views behave differently and also have slightly different APIs.

    Single type views are specialized to give a performance boost in all cases. There is nothing as fast as a single type view. They just walk through packed (actually paged) arrays of elements and return them directly.
    - This kind of views also allow to get the exact number of elements they are going to return.
    + This kind of views also allows getting the exact number of elements they are going to return.
    Refer to the inline documentation for all the details.

    Multi type views iterate entities that have at least all the given components. During construction, they look at the number of elements available in each pool and use the smallest set in order to speed up iterations.
    This kind of views only allow to get the estimated number of elements they are going to return.
    Refer to the inline documentation for all the details.

    -

    Storing aside views isn't required as they are extremely cheap to construct. In fact, this is even discouraged when creating a view from a const registry. Since all storage are lazily initialized, they may not exist when the view is created. Thus, while perfectly usable, the view may contain pending references that are never reinitialized with the actual storage.

    +

    Storing aside views is not required as they are extremely cheap to construct. In fact, this is even discouraged when creating a view from a const registry. Since all storage are lazily initialized, they may not exist when the view is created. Thus, while perfectly usable, the view may contain pending references that are never reinitialized with the actual storage.

    Views share the way they are created by means of a registry:

    // single type view
    -
    auto single = registry.view<position>();
    +
    auto single = registry.view<position>();
    // multi type view
    -
    auto multi = registry.view<position, velocity>();
    +
    auto multi = registry.view<position, velocity>();

    Filtering entities by components is also supported:

    -
    auto view = registry.view<position, velocity>(entt::exclude<renderable>);
    +
    auto view = registry.view<position, velocity>(entt::exclude<renderable>);
    +
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:277

    To iterate a view, either use it in a range-for loop:

    -
    auto view = registry.view<position, velocity, renderable>();
    +
    auto view = registry.view<position, velocity, renderable>();
    -
    for(auto entity: view) {
    +
    for(auto entity: view) {
    // a component at a time ...
    -
    auto &position = view.get<position>(entity);
    -
    auto &velocity = view.get<velocity>(entity);
    +
    auto &position = view.get<position>(entity);
    +
    auto &velocity = view.get<velocity>(entity);
    // ... multiple components ...
    -
    auto [pos, vel] = view.get<position, velocity>(entity);
    +
    auto [pos, vel] = view.get<position, velocity>(entity);
    // ... all components at once
    -
    auto [pos, vel, rend] = view.get(entity);
    +
    auto [pos, vel, rend] = view.get(entity);
    // ...
    }

    Or rely on the each member functions to iterate both entities and components at once:

    // through a callback
    -
    registry.view<position, velocity>().each([](auto entity, auto &pos, auto &vel) {
    +
    registry.view<position, velocity>().each([](auto entity, auto &pos, auto &vel) {
    // ...
    });
    // using an input iterator
    -
    for(auto &&[entity, pos, vel]: registry.view<position, velocity>().each()) {
    +
    for(auto &&[entity, pos, vel]: registry.view<position, velocity>().each()) {
    // ...
    }

    Note that entities can also be excluded from the parameter list when received through a callback and this can improve even further the performance during iterations.
    - Since they aren't explicitly instantiated, empty components aren't returned in any case.

    -

    As a side note, in the case of single type views, get accepts but doesn't strictly require a template parameter, since the type is implicitly defined. However, when the type isn't specified, the instance is returned using a tuple for consistency with multi type views:

    -
    auto view = registry.view<const renderable>();
    + Since they are not explicitly instantiated, empty components are not returned in any case.

    +

    As a side note, in the case of single type views, get accepts but does not strictly require a template parameter, since the type is implicitly defined. However, when the type is not specified, the instance is returned using a tuple for consistency with multi type views:

    +
    auto view = registry.view<const renderable>();
    -
    for(auto entity: view) {
    -
    auto [renderable] = view.get(entity);
    +
    for(auto entity: view) {
    +
    auto [renderable] = view.get(entity);
    // ...
    }

    Note: prefer the get member function of a view instead of that of a registry during iterations to get the types iterated by the view itself.

    Create once, reuse many times

    Views support lazy initialization as well as storage swapping.
    - An empty (or partially initialized) view is such that it returns false when converted to bool (to let the user know that it isn't fully initialized) but it also works as-is like any other view.

    + An empty (or partially initialized) view is such that it returns false when converted to bool (to let the user know that it is not fully initialized) but it also works as-is like any other view.

    In order to initialize a view one piece at a time, it allows users to inject storage classes when available:

    -
    - +
    +
    -
    view.storage(storage);
    -
    typename storage_for< Args... >::type storage_for_t
    Helper type.
    Definition fwd.hpp:270
    -

    If there are multiple storages of the same type, it's possible to disambiguate using the index of the element to be replaced:

    -
    view.storage<1>(storage);
    +
    view.storage(storage);
    +
    typename storage_for< Args... >::type storage_for_t
    Helper type.
    Definition fwd.hpp:269
    +

    If there are multiple storages of the same type, it is possible to disambiguate using the index of the element to be replaced:

    +
    view.storage<1>(storage);

    The ability to literally replace a storage in a view also opens up its reuse with different sets of entities.
    For example, to filter a view based on two groups of entities with different characteristics, there will be no need to reinitialize anything:

    -
    +
    // initialize the sets above as needed
    -
    view.storage(the_good);
    +
    view.storage(the_good);
    -
    for(auto [entt, elem]: view) {
    +
    for(auto [entt, elem]: view) {
    // the good entities with their components here
    }
    -
    view.storage(the_bad);
    +
    view.storage(the_bad);
    -
    for(auto [entt, elem]: view) {
    +
    for(auto [entt, elem]: view) {
    // the bad entities with their components here
    }

    Finally, it should be noted that the lack of a storage is treated to all intents and purposes as if it were an empty element.
    - Thus, a get storage (as in entt::get_t) makes the view empty automatically while an exclude storage (as in entt::exclude_t) is ignored as if that part of the filter didn't exist.

    + Thus, a get storage (as in entt::get_t) makes the view empty automatically while an exclude storage (as in entt::exclude_t) is ignored as if that part of the filter did not exist.

    Exclude-only

    -

    Exclude-only views aren't really a thing in EnTT.
    +

    Exclude-only views are not really a thing in EnTT.
    However, the same result can be achieved by combining the right storage into a simple view.

    -

    If one gets to the root of the problem, the purpose of an exclude-only view is to return entities that don't meet certain requirements.
    - Since entity storage, unlike exclude-only views, is a thing in EnTT, users can leverage it for these kinds of queries. It's also guaranteed to be unique within a registry and is always accessible when creating a view:

    -

    The returned view is such that it will return only the entities that don't have the my_type component, regardless of what other components they have.

    +

    If one gets to the root of the problem, the purpose of an exclude-only view is to return entities that do not meet certain requirements.
    + Since entity storage, unlike exclude-only views, is a thing in EnTT, users can leverage it for these kinds of queries. It is also guaranteed to be unique within a registry and is always accessible when creating a view:

    +

    The returned view is such that it will return only the entities that do not have the my_type component, regardless of what other components they have.

    View pack

    -

    Views are combined with each other to create new and more specific queries.
    - The type returned when combining multiple views together is itself a view, more in general a multi component one.

    -

    Combining different views tries to mimic C++20 ranges:

    -
    auto view = registry.view<position>();
    -
    auto other = registry.view<velocity>();
    +

    Views are combined with storage objects and with each other to create new, more specific queries.
    + The type returned when combining multiple elements together is itself a view, more in general a multi component one.

    +

    Combining different elements tries to mimic C++20 ranges:

    +
    auto view = registry.view<position>();
    +
    auto other = registry.view<velocity>();
    +
    const auto &storage = registry.storage<renderable>();
    -
    auto pack = view | other;
    -

    The constness of the types is preserved and their order depends on the order in which the views are combined. For example, the pack above returns an instance of position first and then one of velocity.
    - Since combining views generates views, a chain can be of arbitrary length and the above type order rules apply sequentially.

    +
    auto pack = view | other | renderable;
    +

    The constness of the types is preserved and their order depends on the order in which the views are combined. For example, the above pack first returns an instance of position, then one of velocity, and finally one of renderable.
    + Since combining elements generates views, a chain can be of arbitrary length and the above type order rules apply sequentially.

    Iteration order

    By default, a view is iterated along the pool that contains the smallest number of elements.
    For example, if the registry contains fewer velocitys than it contains positions, then the order of the elements returned by the following view depends on how the velocity components are arranged in their pool:

    -
    for(auto entity: registry.view<positon, velocity>()) {
    +
    for(auto entity: registry.view<positon, velocity>()) {
    // ...
    }
    -

    Moreover, the order of types when constructing a view doesn't matter. Neither does the order of views in a view pack.
    - However, it's possible to enforce iteration of a view by given component order by means of the use function:

    -
    auto view = registry.view<position, velocity>();
    -
    view.use<position>();
    +

    Moreover, the order of types when constructing a view does not matter. Neither does the order of views in a view pack.
    + However, it is possible to enforce iteration of a view by given component order by means of the use function:

    +
    auto view = registry.view<position, velocity>();
    +
    view.use<position>();
    -
    for(auto entity: view) {
    +
    for(auto entity: view) {
    // ...
    }

    On the other hand, if all a user wants is to iterate the elements in reverse order, this is possible for a single type view using its reverse iterators:

    -
    auto view = registry.view<position>();
    +
    auto view = registry.view<position>();
    -
    for(auto it = view.rbegin(), last = view.rend(); it != last; ++iter) {
    +
    for(auto it = view.rbegin(), last = view.rend(); it != last; ++iter) {
    // ...
    }
    -

    Unfortunately, multi type views don't offer reverse iterators. Therefore, in this case it's a must to implement this functionality manually or to use single type views to lead the iteration.

    +

    Unfortunately, multi type views do not offer reverse iterators. Therefore, in this case it is a must to implement this functionality manually or to use single type views to lead the iteration.

    Runtime views

    Multi type views iterate entities that have at least all the given components. During construction, they look at the number of elements available in each pool and use the smallest set in order to speed up iterations.
    - They offer more or less the same functionalities of a multi type view. However, they don't expose a get member function and users should refer to the registry that generated the view to access components.
    + They offer more or less the same functionalities of a multi type view. However, they do not expose a get member function and users should refer to the registry that generated the view to access components.
    Refer to the inline documentation for all the details.

    Runtime views are pretty cheap to construct and should not be stored aside in any case. They should be used immediately after creation and then they should be thrown away.
    To iterate a runtime view, either use it in a range-for loop:

    -
    -
    view.iterate(registry.storage<position>()).iterate(registry.storage<velocity>());
    +
    +
    view.iterate(registry.storage<position>()).iterate(registry.storage<velocity>());
    -
    for(auto entity: view) {
    +
    for(auto entity: view) {
    // ...
    }
    -
    Generic runtime view.
    +
    basic_runtime_view< sparse_set > runtime_view
    Alias declaration for the most common use case.
    Definition fwd.hpp:130

    Or rely on the each member function to iterate entities:

    -
    -
    .iterate(registry.storage<position>())
    -
    .iterate(registry.storage<velocity>())
    -
    .each([](auto entity) {
    +
    +
    .iterate(registry.storage<position>())
    +
    .iterate(registry.storage<velocity>())
    +
    .each([](auto entity) {
    // ...
    });
    -
    void each(Func func) const
    Iterates entities and applies the given function object to them.
    -
    basic_runtime_view & iterate(common_type &base)
    Appends an opaque storage object to a runtime view.

    Performance are exactly the same in both cases.
    Filtering entities by components is also supported for this kind of views:

    -
    -
    view.iterate(registry.storage<position>()).exclude(registry.storage<velocity>());
    -

    Runtime views are meant for when users don't know at compile-time what types to use to iterate entities. The storage member function of a registry could be useful in this regard.

    +
    +
    view.iterate(registry.storage<position>()).exclude(registry.storage<velocity>());
    +

    Runtime views are meant for when users do not know at compile-time what types to use to iterate entities. The storage member function of a registry could be useful in this regard.

    Groups

    Groups are meant to iterate multiple components at once and to offer a faster alternative to multi type views.
    - Groups overcome the performance of the other tools available but require to get the ownership of components. This sets some constraints on their pools. On the other hand, groups aren't an automatism that increases memory consumption, affects functionalities and tries to optimize iterations for all the possible combinations of components. Users can decide when to pay for groups and to what extent.
    - The most interesting aspect of groups is that they fit usage patterns. Other solutions around usually try to optimize everything, because it is known that somewhere within the everything there are also our usage patterns. However this has a cost that isn't negligible, both in terms of performance and memory usage. Ironically, users pay the price also for things they don't want and this isn't something I like much. Even worse, one cannot easily disable such a behavior. Groups work differently instead and are designed to optimize only the real use cases when users find they need to.
    + Groups overcome the performance of the other tools available but require to get the ownership of components. This sets some constraints on their pools. On the other hand, groups are not an automatism that increases memory consumption, affects functionalities and tries to optimize iterations for all the possible combinations of components. Users can decide when to pay for groups and to what extent.
    + The most interesting aspect of groups is that they fit usage patterns. Other solutions around usually try to optimize everything, because it is known that somewhere within the everything there are also our usage patterns. However this has a cost that is not negligible, both in terms of performance and memory usage. Ironically, users pay the price also for things they do not want and this is not something I like much. Even worse, one cannot easily disable such a behavior. Groups work differently instead and are designed to optimize only the real use cases when users find they need to.
    Another nice-to-have feature of groups is that they have no impact on memory consumption, put aside full non-owning groups that are pretty rare and should be avoided as long as possible.

    All groups affect to an extent the creation and destruction of their components. This is due to the fact that they must observe changes in the pools of interest and arrange data correctly when needed for the types they own.
    - In all cases, a group allows to get the exact number of elements it's going to return.
    + In all cases, a group allows to get the exact number of elements it is going to return.
    Refer to the inline documentation for all the details.

    -

    Storing aside groups isn't required as they are extremely cheap to create, even though valid groups can be copied without problems and reused freely.
    - A group performs an initialization step the very first time it's requested and this could be quite costly. To avoid it, consider creating the group when no components have been assigned yet. If the registry is empty, preparation is extremely fast.

    +

    Storing aside groups is not required as they are extremely cheap to create, even though valid groups can be copied without problems and reused freely.
    + A group performs an initialization step the very first time it is requested and this could be quite costly. To avoid it, consider creating the group when no components have been assigned yet. If the registry is empty, preparation is extremely fast.

    To iterate a group, either use it in a range-for loop:

    -
    +
    -
    for(auto entity: group) {
    +
    for(auto entity: group) {
    // a component at a time ...
    -
    auto &position = group.get<position>(entity);
    -
    auto &velocity = group.get<velocity>(entity);
    +
    auto &position = group.get<position>(entity);
    +
    auto &velocity = group.get<velocity>(entity);
    // ... multiple components ...
    -
    auto [pos, vel] = group.get<position, velocity>(entity);
    +
    auto [pos, vel] = group.get<position, velocity>(entity);
    // ... all components at once
    -
    auto [pos, vel, rend] = group.get(entity);
    +
    auto [pos, vel, rend] = group.get(entity);
    // ...
    }
    - -
    basic_group< owned_t< storage_for_type< Owned >... >, get_t< storage_for_type< Get >... >, exclude_t< storage_for_type< Exclude >... > > group(get_t< Get... >=get_t{}, exclude_t< Exclude... >=exclude_t{})
    Returns a group for the given elements.
    +
    basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > group
    Alias declaration for the most common use case.
    Definition fwd.hpp:286
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167

    Or rely on the each member functions to iterate both entities and components at once:

    // through a callback
    -
    registry.group<position>(entt::get<velocity>).each([](auto entity, auto &pos, auto &vel) {
    +
    registry.group<position>(entt::get<velocity>).each([](auto entity, auto &pos, auto &vel) {
    // ...
    });
    // using an input iterator
    -
    for(auto &&[entity, pos, vel]: registry.group<position>(entt::get<velocity>).each()) {
    +
    for(auto &&[entity, pos, vel]: registry.group<position>(entt::get<velocity>).each()) {
    // ...
    }

    Note that entities can also be excluded from the parameter list when received through a callback and this can improve even further the performance during iterations.
    - Since they aren't explicitly instantiated, empty components aren't returned in any case.

    + Since they are not explicitly instantiated, empty components are not returned in any case.

    Note: prefer the get member function of a group instead of that of a registry during iterations to get the types iterated by the group itself.

    Full-owning groups

    A full-owning group is the fastest tool a user can expect to use to iterate multiple components at once. It iterates all the components directly, no indirection required.
    This type of groups performs more or less as if users are accessing sequentially a bunch of packed arrays of components all sorted identically, with no jumps nor branches.

    A full-owning group is created as:

    -
    auto group = registry.group<position, velocity>();
    +
    auto group = registry.group<position, velocity>();

    Filtering entities by components is also supported:

    -
    auto group = registry.group<position, velocity>({}, entt::exclude<renderable>);
    +
    auto group = registry.group<position, velocity>({}, entt::exclude<renderable>);

    Once created, the group gets the ownership of all the components specified in the template parameter list and arranges their pools as needed.

    Sorting owned components is no longer allowed once the group has been created. However, full-owning groups are sorted using their sort member functions. Sorting a full-owning group affects all its instances.

    Partial-owning groups

    A partial-owning group works similarly to a full-owning group for the components it owns, but relies on indirection to get components owned by other groups.
    - This isn't as fast as a full-owning group, but it's already much faster than a view when there are only one or two free components to retrieve (the most common cases likely). In the worst case, it's not slower than views anyway.

    + This is not as fast as a full-owning group, but it is already much faster than a view when there are only one or two free components to retrieve (the most common cases likely). In the worst case, it is not slower than views anyway.

    A partial-owning group is created as:

    -
    +
    auto group = registry.group<position>(entt::get<velocity>);

    Filtering entities by components is also supported:

    -

    Once created, the group gets the ownership of all the components specified in the template parameter list and arranges their pools as needed. The ownership of the types provided via entt::get doesn't pass to the group instead.

    +

    Once created, the group gets the ownership of all the components specified in the template parameter list and arranges their pools as needed. The ownership of the types provided via entt::get does not pass to the group instead.

    Sorting owned components is no longer allowed once the group has been created. However, partial-owning groups are sorted using their sort member functions. Sorting a partial-owning group affects all its instances.

    Non-owning groups

    Non-owning groups are usually fast enough, for sure faster than views and well suited for most of the cases. However, they require custom data structures to work properly and they increase memory consumption.
    As a rule of thumb, users should avoid using non-owning groups, if possible.

    A non-owning group is created as:

    -
    +

    Filtering entities by components is also supported:

    -

    The group doesn't receive the ownership of any type of component in this case. This type of groups is therefore the least performing in general, but also the only one that can be used in any situation to slightly improve performance.

    +

    The group does not receive the ownership of any type of component in this case. This type of groups is therefore the least performing in general, but also the only one that can be used in any situation to slightly improve performance.

    Non-owning groups are sorted using their sort member functions. Sorting a non-owning group affects all its instances.

    Types: const, non-const and all in between

    The registry class offers two overloads when it comes to constructing views and groups: a const version and a non-const one. The former accepts only const types as template parameters, the latter accepts both const and non-const types instead.
    It means that views and groups generated by a const registry also propagate the constness to the types involved. As an example:

    -
    entt::view<const position, const velocity> view = std::as_const(registry).view<const position, const velocity>();
    +
    entt::view<const position, const velocity> view = std::as_const(registry).view<const position, const velocity>();

    Consider the following definition for a non-const view instead:

    -
    +
    entt::view<position, const velocity> view = registry.view<position, const velocity>();

    In the example above, view is used to access either read-only or writable position components while velocity components are read-only in all cases.
    Similarly, these statements are all valid:

    -
    position &pos = view.get<position>(entity);
    -
    const position &cpos = view.get<const position>(entity);
    -
    const velocity &cpos = view.get<const velocity>(entity);
    -
    std::tuple<position &, const velocity &> tup = view.get<position, const velocity>(entity);
    -
    std::tuple<const position &, const velocity &> ctup = view.get<const position, const velocity>(entity);
    -

    It's not possible to get non-const references to velocity components from the same view instead. Therefore, these result in compilation errors:

    -
    velocity &cpos = view.get<velocity>(entity);
    -
    std::tuple<position &, velocity &> tup = view.get<position, velocity>(entity);
    -
    std::tuple<const position &, velocity &> ctup = view.get<const position, velocity>(entity);
    +
    position &pos = view.get<position>(entity);
    +
    const position &cpos = view.get<const position>(entity);
    +
    const velocity &cpos = view.get<const velocity>(entity);
    +
    std::tuple<position &, const velocity &> tup = view.get<position, const velocity>(entity);
    +
    std::tuple<const position &, const velocity &> ctup = view.get<const position, const velocity>(entity);
    +

    It is not possible to get non-const references to velocity components from the same view instead. Therefore, these result in compilation errors:

    +
    velocity &cpos = view.get<velocity>(entity);
    +
    std::tuple<position &, velocity &> tup = view.get<position, velocity>(entity);
    +
    std::tuple<const position &, velocity &> ctup = view.get<const position, velocity>(entity);

    The each member functions also propagates constness to its return values:

    -
    view.each([](auto entity, position &pos, const velocity &vel) {
    +
    view.each([](auto entity, position &pos, const velocity &vel) {
    // ...
    });

    A caller can still refer to the position components through a const reference because of the rules of the language that fortunately already allow it.

    @@ -1207,40 +1255,38 @@ Types: const, non-const and all in between Give me everything

    Views and groups are narrow windows on the entire list of entities. They work by filtering entities according to their components.
    In some cases there may be the need to iterate all the entities still in use regardless of their components. This is done by accessing entity storage:

    -
    for(auto entity: registry.view<entt::entity>()) {
    +
    for(auto entity: registry.view<entt::entity>()) {
    // ...
    }

    As a rule of thumb, consider using a view or a group if the goal is to iterate entities that have a determinate set of components. These tools are usually much faster than filtering entities with a bunch of custom tests.
    - In all the other cases, this is the way to go. For example, it's possible to combine this view with the orphan member function to clean up orphan entities (that is, entities that are still in use and have no assigned components):

    -
    for(auto entity: registry.view<entt::entity>()) {
    - -
    registry.release(entity);
    + In all the other cases, this is the way to go. For example, it is possible to combine this view with the orphan member function to clean up orphan entities (that is, entities that are still in use and have no assigned components):

    +
    for(auto entity: registry.view<entt::entity>()) {
    +
    if(registry.orphan(entity)) {
    +
    registry.release(entity);
    }
    }
    -
    bool orphan(const entity_type entt) const
    Checks if an entity has elements assigned.
    Definition registry.hpp:978

    In general, iterating all entities can result in poor performance. It should not be done frequently to avoid the risk of a performance hit.
    - However, it's convenient when initializing an editor or to reclaim pending identifiers.

    + However, it is convenient when initializing an editor or to reclaim pending identifiers.

    What is allowed and what is not

    -

    Most of the ECS available out there don't allow to create and destroy entities and components during iterations, nor to have pointer stability.
    +

    Most of the ECS available out there do not allow to create and destroy entities and components during iterations, nor to have pointer stability.
    EnTT partially solves the problem with a few limitations:

    • Creating entities and components is allowed during iterations in most cases and it never invalidates already existing references.
    • -
    • Deleting the current entity or removing its components is allowed during iterations but it could invalidate references. For all the other entities, destroying them or removing their iterated components isn't allowed and can result in undefined behavior.
    • +
    • Deleting the current entity or removing its components is allowed during iterations but it could invalidate references. For all the other entities, destroying them or removing their iterated components is not allowed and can result in undefined behavior.
    • When pointer stability is enabled for the type leading the iteration, adding instances of the same type may or may not cause the entity involved to be returned. Destroying entities and components is always allowed instead, even if not currently iterated, without the risk of invalidating any references.
    • In case of reverse iterations, adding or removing elements is not allowed under any circumstances. It could quickly lead to undefined behaviors.
    -

    In other terms, iterators are rarely invalidated. Also, component references aren't invalidated when a new element is added while they could be invalidated upon destruction due to the swap-and-pop policy, unless the type leading the iteration undergoes in-place deletion.
    +

    In other terms, iterators are rarely invalidated. Also, component references are not invalidated when a new element is added while they could be invalidated upon destruction due to the swap-and-pop policy, unless the type leading the iteration undergoes in-place deletion.
    As an example, consider the following snippet:

    -
    registry.view<position>().each([&](const auto entity, auto &pos) {
    -
    registry.emplace<position>(registry.create(), 0., 0.);
    +
    registry.view<position>().each([&](const auto entity, auto &pos) {
    +
    registry.emplace<position>(registry.create(), 0., 0.);
    // references remain stable after adding new instances
    pos.x = 0.;
    });
    -
    entity_type create()
    Creates a new entity or recycles a destroyed one.
    Definition registry.hpp:499
    -

    The each member function won't break (because iterators remain valid) nor will any reference be invalidated. Instead, more attention should be paid to the destruction of entities or the removal of components.
    +

    The each member function will not break (because iterators remain valid) nor will any reference be invalidated. Instead, more attention should be paid to the destruction of entities or the removal of components.
    Use a common range-for loop and get components directly from the view or move the deletion of entities and components at the end of the function to avoid dangling pointers.

    -

    For all types that don't offer stable pointers, iterators are also invalidated and the behavior is undefined if an entity is modified or destroyed and it's not the one currently returned by the iterator nor a newly created one.
    +

    For all types that do not offer stable pointers, iterators are also invalidated and the behavior is undefined if an entity is modified or destroyed and it is not the one currently returned by the iterator nor a newly created one.
    To work around it, possible approaches are:

    • Store aside the entities and the components to be removed and perform the operations at the end of the iteration.
    • @@ -1250,48 +1296,48 @@ What is allowed and what is not

      More performance, more constraints

      Groups are a faster alternative to views. However, the higher the performance, the greater the constraints on what is allowed and what is not.
      - In particular, groups add in some rare cases a limitation on the creation of components during iterations. It happens in quite particular cases. Given the nature and the scope of the groups, it isn't something in which it will happen to come across probably, but it's good to know it anyway.

      -

      First of all, it must be said that creating components while iterating a group isn't a problem at all and is done freely as it happens with the views. The same applies to the destruction of components and entities, for which the rules mentioned above apply.

      + In particular, groups add in some rare cases a limitation on the creation of components during iterations. It happens in quite particular cases. Given the nature and the scope of the groups, it is not something in which it will happen to come across probably, but it is good to know it anyway.

      +

      First of all, it must be said that creating components while iterating a group is not a problem at all and is done freely as it happens with the views. The same applies to the destruction of components and entities, for which the rules mentioned above apply.

      The additional limitation arises instead when a given component that is owned by a group is iterated outside of it. In this case, adding components that are part of the group itself may invalidate the iterators. There are no further limitations to the destruction of components and entities.
      - Fortunately, this isn't always true. In fact, it almost never is and only happens under certain conditions. In particular:

      + Fortunately, this is not always true. In fact, it almost never is and only happens under certain conditions. In particular:

      • Iterating a type of component that is part of a group with a single type view and adding to an entity all the components required to get it into the group may invalidate the iterators.
      • -
      • Iterating a type of component that is part of a group with a multi type view and adding to an entity all the components required to get it into the group can invalidate the iterators, unless users specify another type of component to use to induce the order of iteration of the view (in this case, the former is treated as a free type and isn't affected by the limitation).
      • +
      • Iterating a type of component that is part of a group with a multi type view and adding to an entity all the components required to get it into the group can invalidate the iterators, unless users specify another type of component to use to induce the order of iteration of the view (in this case, the former is treated as a free type and is not affected by the limitation).
      -

      In other words, the limitation doesn't exist as long as a type is treated as a free type (as an example with multi type views and partial- or non-owning groups) or iterated with its own group, but it can occur if the type is used as a main type to rule on an iteration.
      +

      In other words, the limitation does not exist as long as a type is treated as a free type (as an example with multi type views and partial- or non-owning groups) or iterated with its own group, but it can occur if the type is used as a main type to rule on an iteration.
      This happens because groups own the pools of their components and organize the data internally to maximize performance. Because of that, full consistency for owned components is guaranteed only when they are iterated as part of their groups or as free types with multi type views and groups in general.

      Multithreading

      -

      In general, the entire registry isn't thread safe as it is. Thread safety isn't something that users should want out of the box for several reasons. Just to mention one of them: performance.
      - Views, groups and consequently the approach adopted by EnTT are the great exception to the rule. It's true that views, groups and iterators in general aren't thread safe by themselves. Because of this users shouldn't try to iterate a set of components and modify the same set concurrently. However:

      +

      In general, the entire registry is not thread safe as it is. Thread safety is not something that users should want out of the box for several reasons. Just to mention one of them: performance.
      + Views, groups and consequently the approach adopted by EnTT are the great exception to the rule. It is true that views, groups and iterators in general are not thread safe by themselves. Because of this users should not try to iterate a set of components and modify the same set concurrently. However:

      • As long as a thread iterates the entities that have the component X or assign and removes that component from a set of entities, another thread can safely do the same with components Y and Z and everything work like just fine. As a trivial example, users can freely execute the rendering system and iterate the renderable entities while updating a physic component concurrently on a separate thread.
      • Similarly, a single set of components can be iterated by multiple threads as long as the components are neither assigned nor removed in the meantime. In other words, a hypothetical movement system can start multiple threads, each of which will access the components that carry information about velocity and position for its entities.
      -

      This kind of entity-component systems can be used in single threaded applications as well as along with async stuff or multiple threads. Moreover, typical thread based models for ECS don't require a fully thread safe registry to work. Actually, users can reach the goal with the registry as it is while working with most of the common models.

      +

      This kind of entity-component systems can be used in single-threaded applications as well as along with async stuff or multiple threads. Moreover, typical thread based models for ECS do not require a fully thread-safe registry to work. Actually, users can reach the goal with the registry as it is while working with most of the common models.

      Because of the few reasons mentioned above and many others not mentioned, users are completely responsible for synchronization whether required. On the other hand, they could get away with it without having to resort to particular expedients.

      -

      Finally, EnTT is configured via a few compile-time definitions to make some of its parts implicitly thread-safe, roughly speaking only the ones that really make sense and can't be turned around.
      +

      Finally, EnTT is configured via a few compile-time definitions to make some of its parts implicitly thread-safe, roughly speaking only the ones that really make sense and cannot be turned around.
      In particular, when multiple instances of objects referencing the type index generator (such as the registry class) are used in different threads, then it might be useful to define ENTT_USE_ATOMIC.
      See the relevant documentation for more information.

      Iterators

      A special mention is needed for the iterators returned by views and groups. Most of the time they meet the requirements of random access iterators, in all cases they meet at least the requirements of forward iterators.
      - In other terms, they are suitable for use with the parallel algorithms of the standard library. If it's not clear, this is a great thing.

      + In other terms, they are suitable for use with the parallel algorithms of the standard library. If it is not clear, this is a great thing.

      As an example, this kind of iterators are used in combination with std::for_each and std::execution::par to parallelize the visit and therefore the update of the components returned by a view or a group, as long as the constraints previously discussed are respected:

      -
      auto view = registry.view<position, const velocity>();
      +
      auto view = registry.view<position, const velocity>();
      -
      std::for_each(std::execution::par_unseq, view.begin(), view.end(), [&view](auto entity) {
      +
      std::for_each(std::execution::par_unseq, view.begin(), view.end(), [&view](auto entity) {
      // ...
      });

      This can increase the throughput considerably, even without resorting to who knows what artifacts that are difficult to maintain over time.

      Unfortunately, because of the limitations of the current revision of the standard, the parallel std::for_each accepts only forward iterators. This means that the default iterators provided by the library cannot return proxy objects as references and must return actual reference types instead.
      - This may change in the future and the iterators will almost certainly return both the entities and a list of references to their components by default sooner or later. Multi-pass guarantee won't break in any case and the performance should even benefit from it further.

      + This may change in the future and the iterators will almost certainly return both the entities and a list of references to their components by default sooner or later. Multi-pass guarantee will not break in any case and the performance should even benefit from it further.

      Const registry

      -

      A const registry is also fully thread safe. This means that it's not able to lazily initialize a missing storage when a view is generated.
      - The reason for this is easy to explain. To avoid requiring types to be announced in advance, a registry lazily creates the storage objects for the different components. However, this isn't possible for a thread safe const registry.

      +

      A const registry is also fully thread safe. This means that it is not able to lazily initialize a missing storage when a view is generated.
      + The reason for this is easy to explain. To avoid requiring types to be announced in advance, a registry lazily creates the storage objects for the different components. However, this is not possible for a thread safe const registry.

      Returned views are always valid and behave as expected in the context of the caller. However, they may contain dangling references to non-existing storage when created from a const registry.
      - As a result, such a view may misbehave over time if it's kept aside for a second use.
      + As a result, such a view may misbehave over time if it is kept aside for a second use.
      Therefore, if the general advice is to create views when necessary and discard them immediately afterwards, this becomes almost a rule when it comes to views generated from a const registry.

      Fortunately, there is also a way to instantiate storage classes early when in doubt or when there are special requirements.
      Calling the storage method is equivalent to announcing a particular storage, so as to avoid running into problems. For those interested, there are also alternative approaches, such as a single threaded tick for the registry warm-up, but these are not always applicable.
      @@ -1300,12 +1346,13 @@ Const registry Beyond this document

      There are many other features and functions not listed in this document.
      EnTT and in particular its ECS part is in continuous development and some things could be forgotten, others could have been omitted on purpose to reduce the size of this file. Unfortunately, some parts may even be outdated and still to be updated.

      -

      For further information, it's recommended to refer to the documentation included in the code itself or join the official channels to ask a question.

      +

      For further information, it is recommended to refer to the documentation included in the code itself or join the official channels to ask a question.

    +
    diff --git a/md_docs_2md_2faq.html b/md_docs_2md_2faq.html index 08ce11f0e..45eb05a13 100644 --- a/md_docs_2md_2faq.html +++ b/md_docs_2md_2faq.html @@ -3,13 +3,15 @@ - + EnTT: Frequently Asked Questions + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Frequently Asked Questions
    -

    +

    Table of Contents

      @@ -92,15 +105,15 @@ Table of Contents

    Introduction

    -

    This is a constantly updated section where I'm trying to put the answers to the most frequently asked questions.
    - If you don't find your answer here, there are two cases: nobody has done it yet or this section needs updating. In both cases, you can open a new issue or enter either the gitter channel or the discord server to ask for help.
    +

    This is a constantly updated section where I am trying to put the answers to the most frequently asked questions.
    + If you do not find your answer here, there are two cases: nobody has done it yet, or this section needs updating. In both cases, you can open a new issue or enter either the gitter channel or the discord server to ask for help.
    Probably someone already has an answer for you and we can then integrate this part of the documentation.

    FAQ

    Why is my debug build on Windows so slow?

    -

    EnTT is an experimental project that I also use to keep me up-to-date with the latest revision of the language and the standard library. For this reason, it's likely that some classes you're working with are using standard containers under the hood.
    - Unfortunately, it's known that the standard containers aren't particularly performing in debugging (the reasons for this go beyond this document) and are even less so on Windows apparently. Fortunately this can also be mitigated a lot, achieving good results in many cases.

    +

    EnTT is an experimental project that I also use to keep me up-to-date with the latest revision of the language and the standard library. For this reason, it is likely that some classes you are working with are using standard containers under the hood.
    + Unfortunately, it is known that the standard containers are not particularly performing in debugging (the reasons for this go beyond this document) and are even less so on Windows, apparently. Fortunately, this can also be mitigated a lot, achieving good results in many cases.

    First of all, there are two things to do in a Windows project:

    • Disable the /JMC option (Just My Code debugging), available starting with Visual Studio 2017 version 15.8.
    • @@ -108,19 +121,19 @@ Why is my debug build on Windows so slow?

    Moreover, set the ENTT_DISABLE_ASSERT variable or redefine the ENTT_ASSERT macro to disable internal debug checks in EnTT:

    #define ENTT_ASSERT(...) ((void)0)
    -

    These asserts are introduced to help the users but they require to access to the underlying containers and therefore risk ruining the performance in some cases.

    +

    These asserts are introduced to help the users, but they require access to the underlying containers and therefore risk ruining the performance in some cases.

    With these changes, debug performance should increase enough in most cases. If you want something more, you can also switch to an optimization level O0 or preferably O1.

    How can I represent hierarchies with my components?

    This is one of the first questions that anyone makes when starting to work with the entity-component-system architectural pattern.
    - There are several approaches to the problem and the best one depends mainly on the real problem one is facing. In all cases, how to do it doesn't strictly depend on the library in use, but the latter certainly allows or not different techniques depending on how the data are laid out.

    -

    I tried to describe some of the approaches that fit well with the model of EnTT. This is the first post of a series that tries to explore the problem. More will probably come in future.
    + There are several approaches to the problem, and the best one depends mainly on the real problem one is facing. In all cases, how to do it does not strictly depend on the library in use, but the latter certainly allows or not different techniques depending on how the data are laid out.

    +

    I tried to describe some of the approaches that fit well with the model of EnTT. This is the first post of a series that tries to explore the problem. More will probably come in the future.
    In addition, EnTT also offers the possibility to create stable storage types and therefore have pointer stability for one, all or some components. This is by far the most convenient solution when it comes to creating hierarchies and whatnot. See the documentation for the ECS part of the library and in particular what concerns the component_traits class for further details.

    Custom entity identifiers: yay or nay?

    Custom entity identifiers are definitely a good idea in two cases at least:

      -
    • If std::uint32_t isn't large enough for your purposes, since this is the underlying type of entt::entity.
    • +
    • If std::uint32_t is not large enough for your purposes, since this is the underlying type of entt::entity.
    • If you want to avoid conflicts when using multiple registries.

    Identifiers can be defined through enum classes and class types that define an entity_type member of type std::uint32_t or std::uint64_t.
    @@ -130,13 +143,13 @@ Custom entity identifiers: yay or nay?

    Warning C4003: the min, the max and the macro

    On Windows, a header file defines two macros min and max which may result in conflicts with their counterparts in the standard library and therefore in errors during compilation.

    -

    It's a pretty big problem but fortunately it's not a problem of EnTT and there is a fairly simple solution to it.
    +

    It is a pretty big problem. However, fortunately it is not a problem of EnTT and there is a fairly simple solution to it.
    It consists in defining the NOMINMAX macro before including any other header so as to get rid of the extra definitions:

    #define NOMINMAX

    Please refer to this issue for more details.

    The standard and the non-copyable types

    -

    EnTT uses internally the trait std::is_copy_constructible_v to check if a component is actually copyable. However, this trait doesn't really check whether a type is actually copyable. Instead, it just checks that a suitable copy constructor and copy operator exist.
    +

    EnTT uses internally the trait std::is_copy_constructible_v to check if a component is actually copyable. However, this trait does not really check whether a type is actually copyable. Instead, it just checks that a suitable copy constructor and copy operator exist.
    This can lead to surprising results due to some idiosyncrasies of the standard.

    For example, std::vector defines a copy constructor that is conditionally enabled depending on whether the value type is copyable or not. As a result, std::is_copy_constructible_v returns true for the following specialization:

    struct type {
    @@ -158,31 +171,30 @@ The standard and the non-copyable types

    Which functions trigger which signals

    Storage classes offer three signals that are emitted following specific operations. Maybe not everyone knows what these operations are, though.
    - If this isn't clear, below you can find a vademecum for this purpose:

    + If this is not clear, below you can find a vademecum for this purpose:

    • on_created is invoked when a component is first added (neither modified nor replaced) to an entity.
    • on_update is called whenever an existing component is modified or replaced.
    • on_destroyed is called when a component is explicitly or implicitly removed from an entity.
    -

    Among the most controversial functions can be found emplace_or_replace and destroy. However, following the above rules, it's quite simple to know what will happen.
    +

    Among the most controversial functions can be found emplace_or_replace and destroy. However, following the above rules, it is quite simple to know what will happen.
    In the first case, on_created is invoked if the entity has not the component, otherwise the latter is replaced and therefore on_update is triggered. As for the second case, components are removed from their entities and thus freed when they are recycled. It means that on_destroyed is triggered for every component owned by the entity that is destroyed.

    Duplicate storage for the same component

    -

    It's rare but you can see double sometimes, especially when it comes to storage. This can be caused by a conflict in the hash assigned to the various component types (one of a kind) or by bugs in your compiler (more common apparently).
    +

    It is rare, but you can see double sometimes, especially when it comes to storage. This can be caused by a conflict in the hash assigned to the various component types (one of a kind) or by bugs in your compiler (more common apparently).
    Regardless of the cause, EnTT offers a customization point that also serves as a solution in this case:

    template<>
    -
    struct entt::type_hash<Type> final {
    -
    [[nodiscard]] static constexpr id_type value() noexcept {
    +
    struct entt::type_hash<Type> final {
    +
    [[nodiscard]] static constexpr id_type value() noexcept {
    return hashed_string::value("Type");
    }
    -
    [[nodiscard]] constexpr operator id_type() const noexcept {
    +
    [[nodiscard]] constexpr operator id_type() const noexcept {
    return value();
    }
    };
    -
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    constexpr hash_type value() const noexcept
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    Type hash.
    Definition type_info.hpp:92
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.

    Specializing type_hash directly bypasses the default implementation offered by EnTT, thus avoiding any possible conflicts or compiler bugs.

    @@ -190,7 +202,8 @@ Duplicate storage for the same component
    +
    diff --git a/md_docs_2md_2graph.html b/md_docs_2md_2graph.html index 4ae8d8931..a443bec0e 100644 --- a/md_docs_2md_2graph.html +++ b/md_docs_2md_2graph.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: graph + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: graph
    -

    +

    Table of Contents

      @@ -94,17 +107,17 @@ Table of Contents

    Introduction

    -

    EnTT doesn't aim to offer everything one needs to work with graphs. Therefore, anyone looking for this in the graph submodule will be disappointed.
    +

    EnTT does not aim to offer everything one needs to work with graphs. Therefore, anyone looking for this in the graph submodule will be disappointed.
    Quite the opposite is true though. This submodule is minimal and contains only the data structures and algorithms strictly necessary for the development of some tools such as the flow builder.

    Data structures

    -

    As anticipated in the introduction, the aim isn't to offer all possible data structures suitable for representing and working with graphs. Many will likely be added or refined over time. However I want to discourage anyone expecting tight scheduling on the subject.
    - The data structures presented in this section are mainly useful for the development and support of some tools which are also part of the same submodule.

    +

    As anticipated in the introduction, the aim is not to offer all possible data structures suitable for representing and working with graphs. Many will likely be added or refined over time. However, I want to discourage anyone expecting tight scheduling on the subject.
    + The data structures presented in this section are mainly useful for the development and support of some tools that are also part of the same submodule.

    Adjacency matrix

    The adjacency matrix is designed to represent either a directed or an undirected graph:

    -
    Basic implementation of a directed adjacency matrix.
    +
    Basic implementation of a directed adjacency matrix.

    The directed_tag type creates the graph as directed. There is also an undirected_tag counterpart which creates it as undirected.
    The interface deviates slightly from the typical double indexing of C and offers an API that is perhaps more familiar to a C++ programmer. Therefore, the access and modification of an element takes place via the contains, insert and erase functions rather than a double call to an operator[]:

    if(adjacency_matrix.contains(0u, 1u)) {
    @@ -134,15 +147,15 @@ Adjacency matrix
    // ...
    }

    Both the functions expect the vertex to visit (that is, to return the in- or out-edges for) as an argument.
    - Finally, the adjacency matrix is an allocator-aware container and offers most of the functionalities one would expect from this type of containers, such as clear or 'get_allocator` and so on.

    + Finally, the adjacency matrix is an allocator-aware container and offers most of the functionalities one would expect from this type of containers, such as clear or get_allocator and so on.

    Graphviz dot language

    -

    As it's one of the most popular formats, the library offers minimal support for converting a graph to a Graphviz dot snippet.
    +

    As it is one of the most popular formats, the library offers minimal support for converting a graph to a Graphviz dot snippet.
    The simplest way is to pass both an output stream and a graph to the dot function:

    std::ostringstream output{};
    entt::dot(output, adjacency_matrix);
    void dot(std::ostream &out, const Graph &graph, Writer writer)
    Outputs a graph in dot format.
    Definition dot.hpp:19
    -

    It's also possible to provide a callback to which the vertices are passed and which can be used to add (dot) properties to the output as needed:

    +

    It is also possible to provide a callback to which the vertices are passed and which can be used to add (dot) properties to the output as needed:

    std::ostringstream output{};
    entt::dot(output, adjacency_matrix, [](auto &output, auto vertex) {
    @@ -152,7 +165,7 @@ Graphviz dot language

    Flow builder

    A flow builder is used to create execution graphs from tasks and resources.
    - The implementation is as generic as possible and doesn't bind to any other part of the library.

    + The implementation is as generic as possible and does not bind to any other part of the library.

    This class is designed as a sort of state machine to which a specific task is attached for which the resources accessed in read-only or read-write mode are specified.
    Most of the functions in the API also return the flow builder itself, according to what is the common sense API when it comes to builder classes.

    Once all tasks are registered and resources assigned to them, an execution graph in the form of an adjacency matrix is returned to the user.
    @@ -162,34 +175,33 @@ Tasks and resources

    Although these terms are used extensively in the documentation, the flow builder has no real concept of tasks and resources.
    This class works mainly with identifiers, that is, values of type id_type. In other terms, both tasks and resources are identified by integral values.
    This allows not to couple the class itself to the rest of the library or to any particular data structure. On the other hand, it requires the user to keep track of the association between identifiers and operations or actual data.

    -

    Once a flow builder is created (which requires no constructor arguments), the first thing to do is to bind a task. This tells to the builder who intends to consume the resources that are specified immediately after:

    -
    entt::flow builder{};
    -
    builder.bind("task_1"_hs);
    - -
    basic_flow & bind(const id_type value)
    Binds a task to a flow builder.
    Definition flow.hpp:241
    +

    Once a flow builder is created (which requires no constructor arguments), the first thing to do is to bind a task. This tells the builder who intends to consume the resources that are specified immediately after:

    +
    entt::flow builder{};
    +
    builder.bind("task_1"_hs);
    +
    basic_flow<> flow
    Alias declaration for the most common use case.
    Definition fwd.hpp:23

    The example uses the EnTT hashed string to generate an identifier for the task.
    - Indeed, the use of id_type as an identifier type isn't by accident. In fact, it matches well with the internal hashed string class. Moreover, it's also the same type returned by the hash function of the internal RTTI system, in case the user wants to rely on that.
    + Indeed, the use of id_type as an identifier type is not by accident. In fact, it matches well with the internal hashed string class. Moreover, it is also the same type returned by the hash function of the internal RTTI system, in case the user wants to rely on that.
    However, being an integral value, it leaves the user full freedom to rely on his own tools if necessary.

    -

    Once a task is associated with the flow builder, it's also assigned read-only or read-write resources as appropriate:

    +

    Once a task is associated with the flow builder, it has also assigned read-only or read-write resources as appropriate:

    builder
    .bind("task_1"_hs)
    .ro("resource_1"_hs)
    .ro("resource_2"_hs)
    .bind("task_2"_hs)
    .rw("resource_2"_hs)
    -

    As mentioned, many functions return the builder itself and it's therefore easy to concatenate the different calls.
    +

    As mentioned, many functions return the builder itself, and it is therefore easy to concatenate the different calls.
    Also in the case of resources, they are identified by numeric values of type id_type. As above, the choice is not entirely random. This goes well with the tools offered by the library while leaving room for maximum flexibility.

    Finally, both the ro andrw functions also offer an overload that accepts a pair of iterators, so that one can pass a range of resources in one go.

    Rebinding

    The flow class is resource based rather than task based. This means that graph generation is driven by resources and not by the order of appearance of tasks during flow definition.
    - Although this concept is particularly important, it's almost irrelevant for the vast majority of cases. However, it becomes relevant when rebinding resources or tasks.

    + Although this concept is particularly important, it is almost irrelevant for the vast majority of cases. However, it becomes relevant when rebinding resources or tasks.

    In fact, nothing prevents rebinding elements to a flow.
    - However, the behavior changes slightly from case to case and has some nuances that it's worth knowing about.

    + However, the behavior changes slightly from case to case and has some nuances that it is worth knowing about.

    Directly rebinding a resource without the task being replaced trivially results in the task's access mode for that resource being updated:

    builder.bind("task"_hs).rw("resource"_hs).ro("resource"_hs)

    In this case, the resource is accessed in read-only mode, regardless of the first call to rw.
    - Behind the scenes, the call doesn't actually replace the previous one but is queued after it instead, overwriting it when generating the graph. Thus, a large number of resource rebindings may even impact processing times (very difficult to observe but theoretically possible).

    + Behind the scenes, the call does not actually replace the previous one but is queued after it instead, overwriting it when generating the graph. Thus, a large number of resource rebindings may even impact processing times (very difficult to observe but theoretically possible).

    Rebinding resources and also combining it with changes to tasks has far more implications instead.
    As mentioned, graph generation takes place starting from resources and not from tasks. Therefore, the result may not be as expected:

    builder
    @@ -199,9 +211,9 @@ Rebinding
    .ro("resource"_hs)
    .bind("task_1"_hs)
    .rw("resource"_hs);
    -

    What happens here is that the resource first sees a read-only access request from the first task, then a read-write request from the second task and finally a new read-only request from the first task.
    - Although this definition would probably be counted as an error, the resulting graph may be unexpected. This in fact consists of a single edge outgoing from the second task and directed to the first task.
    - To intuitively understand what happens, it's enough to think of the fact that a task never has an edge pointing to itself.

    +

    What happens here is that the resource first sees a read-only access request from the first task, then a read-only request from the second task and finally a read-write request from the first task.
    + Although this definition would probably be counted as an error, the resulting graph may be unexpected. In fact, this consists of a single edge outgoing from the second task and directed to the first task.
    + To intuitively understand what happens, it is enough to think of the fact that a task never has an edge pointing to itself.

    While not obvious, this approach has its pros and cons like any other solution. For example, creating loops is actually simple in the context of resource-based graph generations:

    builder
    .bind("task_1"_hs)
    @@ -211,14 +223,14 @@ Rebinding
    .bind("task_1"_hs)
    .rw("resource"_hs);

    As expected, this definition leads to the creation of two edges that define a loop between the two tasks.

    -

    As a general rule, rebinding resources and tasks is highly discouraged because it could lead to subtle bugs if users don't know what they're doing.
    - However, once the mechanisms of resource-based graph generation are understood, it can offer to the expert user a flexibility and a range of possibilities otherwise inaccessible.

    +

    As a general rule, rebinding resources and tasks is highly discouraged because it could lead to subtle bugs if users do not know what they are doing.
    + However, once the mechanisms of resource-based graph generation are understood, it can offer to the expert user flexibility and a range of possibilities otherwise inaccessible.

    Fake resources and order of execution

    -

    The flow builder doesn't offer the ability to specify when a task should execute before or after another task.
    +

    The flow builder does not offer the ability to specify when a task should run before or after another task.
    In fact, the order of registration on the resources also determines the order in which the tasks are processed during the generation of the execution graph.

    However, there is a way to force the execution order of two processes.
    - Briefly, since accessing a resource in opposite modes requires sequential rather than parallel scheduling, it's possible to make use of fake resources to rule on the execution order:

    + Briefly, since accessing a resource in opposite modes requires sequential rather than parallel scheduling, it is possible to make use of fake resources to rule on the execution order:

    builder
    .bind("task_1"_hs)
    .ro("resource_1"_hs)
    @@ -230,7 +242,7 @@ Fake resources and order of execution
    .ro("resource_2"_hs)
    .ro("fake"_hs)

    This snippet forces the execution of task_1 before task_2 and task_3. This is due to the fact that the former sets a read-write requirement on a fake resource that the other tasks also want to access in read-only mode.
    - Similarly, it's possible to force a task to run after a certain group:

    + Similarly, it is possible to force a task to run after a certain group:

    builder
    .bind("task_1"_hs)
    .ro("resource_1"_hs)
    @@ -241,31 +253,31 @@ Fake resources and order of execution
    .bind("task_3"_hs)
    .ro("resource_2"_hs)
    .rw("fake"_hs)
    -

    In this case, since there are a number of processes that want to read a specific resource, they will do so in parallel by forcing task_3 to run after all the others tasks.

    +

    In this case, since there are a number of processes that want to read a specific resource, they will do so in parallel by forcing task_3 to run after all the other tasks.

    Sync points

    -

    Sometimes it's useful to assign the role of sync point to a node.
    - Whether it accesses new resources or is simply a watershed, the procedure for assigning this role to a vertex is always the same. First it's tied to the flow builder, then the sync function is invoked:

    +

    Sometimes it is useful to assign the role of sync point to a node.
    + Whether it accesses new resources or is simply a watershed, the procedure for assigning this role to a vertex is always the same. First it is tied to the flow builder, then the sync function is invoked:

    builder.bind("sync_point"_hs).sync();
    -

    The choice to assign an identity to this type of nodes lies in the fact that, more often than not, they also perform operations on resources.
    - If this isn't the case, it will still be possible to create no-op vertices to which empty tasks are assigned.

    +

    The choice to assign an identity to this type of node lies in the fact that, more often than not, they also perform operations on resources.
    + If this is not the case, it will still be possible to create no-op vertices to which empty tasks are assigned.

    Execution graph

    Once both the resources and their consumers have been properly registered, the purpose of this tool is to generate an execution graph that takes into account all specified constraints to return the best scheduling for the vertices:

    Searching for the main vertices (that is, those without in-edges) is usually the first thing required:

    for(auto &&vertex: graph) {
    -
    if(auto in_edges = graph.in_edges(vertex); in_edges.begin() == in_edges.end()) {
    +
    if(auto in_edges = graph.in_edges(vertex); in_edges.begin() == in_edges.end()) {
    // ...
    }
    }
    -
    iterable_adaptor< in_edge_iterator > in_edges(const vertex_type vertex) const noexcept
    Returns an iterable object to visit all in-edges of a vertex.
    -

    Then it's possible to instantiate an execution graph by means of other functions such as out_edges to retrieve the children of a given task or edges to get the identifiers.

    +

    Then it is possible to instantiate an execution graph by means of other functions such as out_edges to retrieve the children of a given task or edges to get the identifiers.

    +
    diff --git a/md_docs_2md_2lib.html b/md_docs_2md_2lib.html index 1a6ea33cd..8bd4e8224 100644 --- a/md_docs_2md_2lib.html +++ b/md_docs_2md_2lib.html @@ -3,13 +3,15 @@ - + EnTT: Push EnTT across boundaries + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Push EnTT across boundaries
    -

    +

    Table of Contents

      @@ -92,37 +105,38 @@ Working across boundaries

      Smooth until proven otherwise

      Many classes in EnTT make extensive use of type erasure for their purposes. This raises the need to identify objects whose type has been erased.
      - The type_hash class template is how identifiers are generated and thus made available to the rest of the library. In general, this class doesn't arouse much interest. The only exception is when a conflict between identifiers occurs (definitely uncommon though) or when the default solution proposed by EnTT isn't suitable for the user's purposes.
      + The type_hash class template is how identifiers are generated and thus made available to the rest of the library. In general, this class arouses little interest. The only exception is when a conflict between identifiers occurs (definitely uncommon though) or when the default solution proposed by EnTT is not suitable for the user's purposes.
      The section dedicated to type_info contains all the details to get around the issue in a concise and elegant way. Please refer to the specific documentation.

      When working with linked libraries, compile definitions ENTT_API_EXPORT and ENTT_API_IMPORT are to import or export symbols, so as to make everything work nicely across boundaries.
      - On the other hand, everything should run smoothly when working with plugins or shared libraries that don't export any symbols.

      + On the other hand, everything should run smoothly when working with plugins or shared libraries that do not export any symbols.

      For those who need more details, the test suite contains many examples covering the most common cases (see the lib directory for all details).
      - It goes without saying that it's impossible to cover all possible cases. However, what is offered should hopefully serve as a basis for all of them.

      + It goes without saying that it is impossible to cover all possible cases. However, what is offered should hopefully serve as a basis for all of them.

      Meta context

      The runtime reflection system deserves a special mention when it comes to using it across boundaries.
      - Since it's linked already to a static context to which the elements are attached and different contexts don't relate to each other, they must be shared to allow the use of meta types across boundaries.

      + Since it is linked already to a static context to which the elements are attached and different contexts do not relate to each other, they must be shared to allow the use of meta types across boundaries.

      Fortunately, sharing a context is also trivial to do. First of all, the local one is acquired in the main space:

      static node_type handle() noexcept
      Returns a handle to the underlying service.
      Definition locator.hpp:124
      -

      Then, it's passed to the receiving space that sets it as its default context, thus discarding or storing aside the local one:

      +

    Then, it is passed to the receiving space that sets it as its default context, thus discarding or storing aside the local one:

    static void reset(const node_type &other={}) noexcept
    Resets or replaces a service.
    Definition locator.hpp:134
    -

    From now on, both spaces refer to the same context and on it are attached all new meta types, no matter where they are created.
    - Note that replacing the main context doesn't also propagate changes across boundaries. In other words, replacing a context results in the decoupling of the two sides and therefore a divergence in the contents.

    +

    From now on, both spaces refer to the same context and to it are all new meta types attached, no matter where they are created.
    + Note that replacing the main context does not also propagate changes across boundaries. In other words, replacing a context results in the decoupling of the two sides and therefore a divergence in the contents.

    Memory Management

    There is another subtle problem due to memory management that can lead to headaches.
    It can occur where there are pools of objects (such as components or events) dynamically created on demand. This is usually not a problem when working with linked libraries that rely on the same dynamic runtime. However, it can occur in the case of plugins or statically linked runtimes.

    As an example, imagine creating an instance of registry in the main executable and sharing it with a plugin. If the latter starts working with a component that is unknown to the former, a dedicated pool is created within the registry on first use.
    - As one can guess, this pool is instantiated on a different side of the boundary from the registry. Therefore, the instance is now managing memory from different spaces and this can quickly lead to crashes if not properly addressed.

    -

    To overcome the risk, it's recommended to use well-defined interfaces that make fundamental types pass through the boundaries, isolating the instances of the EnTT classes from time to time and as appropriate.
    + As one can guess, this pool is instantiated on a different side of the boundary from the registry. Therefore, the instance is now managing memory from different spaces, and this can quickly lead to crashes if not properly addressed.

    +

    To overcome the risk, it is recommended to use well-defined interfaces that make fundamental types pass through the boundaries, isolating the instances of the EnTT classes from time to time and as appropriate.
    Refer to the test suite for some examples, read the documentation available online about this type of issues or consult someone who has already had such experiences to avoid problems.

    +
    diff --git a/md_docs_2md_2links.html b/md_docs_2md_2links.html index 7d4e7c18f..e842da32a 100644 --- a/md_docs_2md_2links.html +++ b/md_docs_2md_2links.html @@ -3,13 +3,15 @@ - + EnTT: EnTT in Action + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    EnTT in Action
    -

    +

    Table of Contents

      @@ -89,10 +102,10 @@ Table of Contents

    Introduction

    -

    EnTT is widely used in private and commercial applications. I cannot even mention most of them because of some signatures I put on some documents time ago. Fortunately, there are also people who took the time to implement open source projects based on EnTT and didn't hold back when it came to documenting them.

    +

    EnTT is widely used in private and commercial applications. I cannot even mention most of them because of some signatures I put on some documents time ago. Fortunately, there are also people who took the time to implement open source projects based on EnTT and did not hold back when it came to documenting them.

    Below an incomplete list of games, applications and articles that can be used as a reference.
    - Where I put the word apparently means that the use of EnTT is documented but the authors didn't make explicit announcements or contacted me directly.

    -

    If you know of other resources out there that are about EnTT, feel free to open an issue or a PR and I'll be glad to add them to this page.
    + Where I put the word apparently means that the use of EnTT is documented but the authors did not make explicit announcements or contacted me directly.

    +

    If you know of other resources out there that are about EnTT, feel free to open an issue or a PR. I will be glad to add them to this page.
    I hope the following lists can grow much more in the future.

    EnTT in Action

    @@ -104,7 +117,7 @@ Games
  • Minecraft Earth by Mojang: an augmented reality game for mobile, that lets users bring Minecraft into the real world.
  • Ember Sword: a modern Free-to-Play MMORPG with a player-driven economy, a classless combat system, and scarce, tradable cosmetic collectibles.
  • Apparently Diablo II: Resurrected by Blizzard: monsters, heroes, items, spells, all resurrected. Thanks unknown insider.
  • -
  • Apparently Call of Duty: Vanguard by Sledgehammer Games: I can neither confirm nor deny but there is a license I know in the credits.
  • +
  • Apparently Call of Duty: Vanguard by Sledgehammer Games: I can neither confirm nor deny, but there is a license I know in the credits.
  • Apparently D&D Dark Alliance by Wizards of the Coast: your party, their funeral.
  • TiltedEvolution by Tilted Phoques: Skyrim and Fallout 4 mod to play online.
  • Antkeeper: an ant colony simulation game.
  • @@ -128,13 +141,13 @@ Games
  • 3DGame: 2.5D top-down space shooter.
  • Pulcher: 2D cross-platform game inspired by Quake.
  • Destroid: one-bazillionth arcade game about shooting dirty rocks in space, inspired by Asteroids.
  • -
  • Wanderer: a 2D exploration based indie game.
  • -
  • Spelunky® Classic remake: a truly multiplatform experience with a rewrite from scratch.
  • +
  • Wanderer: a 2D exploration-based indie game.
  • +
  • Spelunky® Classic remake: a truly multiplatform experience with a rewrite from scratch.
  • CubbyTower: a simple tower defense game using C++ with Entity Component System (ECS).
  • Runeterra: Legends of Runeterra simulator using C++ with some reinforcement learning.
  • -
  • Black Sun: fly your space ship through a large 2D open world.
  • -
  • PokeMaster: Pokemon Battle simulator using C++ with some reinforcement learning.
  • -
  • HomeHearth: choose your hero, protect the town, before it's too late.
  • +
  • Black Sun: fly your spaceship through a large 2D open world.
  • +
  • PokeMaster: Pokémon Battle simulator using C++ with some reinforcement learning.
  • +
  • HomeHearth: choose your hero, protect the town, before it is too late.
  • City Builder Game: a simple city-building game using C++ and OpenGL.
  • BattleSub: two player 2D submarine game with some fluid dynamics.
  • Crimson Rush: a dungeon-crawler and rougelike inspired game about exploring and surviving as long as possible.
  • @@ -148,7 +161,8 @@ Games
  • PalmRide: After Flight: an on-rails shooter with retro outrun aesthetics.
  • Exhibition of Speed: build your own car and go racing.
  • Lichgate: top-down action rogue-like where users unlock abilities to fight horde of enemies in an endless world.
  • -
  • Letalka: small demo game with ships and bullets flying everywhere on the screen.
  • +
  • Letalka: small demo game with ships and bullets flying everywhere on the screen.
  • +
  • Lichgate: step into the robes of a powerful mage determined to halt the relentless hordes of undead.
  • Engines and the like:

    @@ -173,15 +187,15 @@ Engines and the like:
  • Spike: a powerful game engine which can run on a toaster.
  • Helena Framework: a modern framework in C++17 for backend development.
  • Unity/EnTT: tech demo of a native simulation layer using EnTT and Unity as a rendering engine.
  • -
  • OverEngine: an over-engineered game engine.
  • +
  • OverEngine: an overengineered game engine.
  • Electro: high performance 3D game engine with a high emphasis on rendering.
  • Kawaii: a modern data oriented game engine.
  • Becketron: a game engine written mostly in C++.
  • -
  • Spatial Engine: a cross-platform engine created on top of google's filament rendering engine.
  • +
  • Spatial Engine: a cross-platform engine created on top of Google's filament rendering engine.
  • Kaguya: D3D12 Rendering Engine.
  • OpenAWE: open implementation of the Alan Wake Engine.
  • Nazara Engine: fast, cross-platform, object-oriented API to help in daily developer life.
  • -
  • Billy Engine: some kind of a 2D engine based on SDL2 and EnTT.
  • +
  • Billy Engine: some kind of 2D engine based on SDL2 and EnTT.
  • Ducktape: an open source C++ 2D & 3D game engine that focuses on being fast and powerful.
  • The Worst Engine: a game engine based on OpenGL.
  • Ecsact: a language aimed at describing ECS, with a runtime implementation based on EnTT.
  • @@ -194,6 +208,9 @@ Engines and the like:
  • Rocky: 3D geospatial application engine.
  • Donner: a modern C++20 SVG2 rendering API with CSS3.
  • Coral Engine: open-source student engine with the tools to make games in C++ and Visual scripting.
  • +
  • Star Engine: an Advanced C++ DirectX 11 game engine.
  • +
  • Darmok: another C++ game engine.
  • +
  • Magique: 2D game engine for programmers (or those yet to be).
  • Articles, videos and blog posts:

    @@ -226,7 +243,7 @@ Articles, videos and blog posts:
  • Warmonger Dynasty devlog series by linkdd: an interesting walkthrough of developing a game (also) with EnTT.
  • -
  • Use EnTT When You Need An ECS by Thomas: I couldn't have said it better.
  • +
  • Use EnTT When You Need An ECS by Thomas: I could not have said it better.
  • Space Battle: Huge edition: huge space battle built entirely from scratch.
  • Space Battle: huge space battle built on UE4.
  • Experimenting with ECS in UE4: interesting article about UE4 and EnTT.
  • @@ -241,11 +258,11 @@ Articles, videos and blog posts:

    Any Other Business:

      -
    • ArcGIS Runtime SDKs by Esri: they use EnTT for the internal ECS and the cross platform C++ rendering engine. The SDKs are utilized by a lot of enterprise custom apps, as well as by Esri for its own public applications such as Explorer, Collector and Navigator.
    • +
    • ArcGIS Runtime SDKs by Esri: they use EnTT for the internal ECS and the cross-platform C++ rendering engine. The SDKs are used by a lot of enterprise custom apps, as well as by Esri for its own public applications such as Explorer, Collector and Navigator.
    • FASTSUITE Edition 2 by Cenit: they use EnTT to drive their simulation, that is, the communication between robot controller emulator and renderer.
    • Ragdoll: real-time physics for Autodesk Maya 2020.
    • Project Lagrange: a robust geometry processing library by Adobe.
    • -
    • AtomicDEX: a secure wallet and non-custodial decentralized exchange rolled into one application.
    • +
    • AtomicDEX: a secure wallet and noncustodial decentralized exchange rolled into one application.
    • Apparently NIO: there was a collaboration to make some changes to EnTT, at the time used for internal projects.
    • Apparently Tieto: they published a job post where EnTT was listed on their software stack.
    • Sequentity: A MIDI-like sequencer/tracker for C++ and ImGui (with Magnum and EnTT).
    • @@ -259,7 +276,8 @@ Any Other Business:
    +
    diff --git a/md_docs_2md_2locator.html b/md_docs_2md_2locator.html index f290fd415..ae39fa086 100644 --- a/md_docs_2md_2locator.html +++ b/md_docs_2md_2locator.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: service locator + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: service locator
    -

    +

    Table of Contents

      @@ -86,45 +99,49 @@ Table of Contents

    Introduction

    -

    Usually, service locators are tightly bound to the services they expose and it's hard to define a general purpose solution.
    +

    Usually, service locators are tightly bound to the services they expose. It is hard to define a general purpose solution.
    This tiny class tries to fill the gap and gets rid of the burden of defining a different specific locator for each application.

    Service locator

    The service locator API tries to mimic that of std::optional and adds some extra functionalities on top of it such as allocator support.
    There are a couple of functions to set up a service, namely emplace and allocate_emplace:

    -
    +
    Service locator, nothing more.
    Definition locator.hpp:27
    +
    static Service & emplace(Args &&...args)
    Sets or replaces a service.
    Definition locator.hpp:100

    The difference is that the latter expects an allocator as the first argument and uses it to allocate the service itself.
    - Once a service is set up, it's retrieved using the value function:

    + Once a service is set up, it is retrieved using the value function:

    interface &service = entt::locator<interface>::value();
    static Service & value() noexcept
    Returns a reference to a valid service, if any.
    Definition locator.hpp:71

    Since the service may not be set (and therefore this function may result in an undefined behavior), the has_value and value_or functions are also available to test a service locator and to get a fallback service in case there is none:

    -
    +

    All arguments are used only if necessary, that is, if a service doesn't already exist and therefore the fallback service is constructed and returned. In all other cases, they are discarded.
    +

    +
    static bool has_value() noexcept
    Checks whether a service locator contains a value.
    Definition locator.hpp:58
    +
    static Service & value_or(Args &&...args)
    Returns a service if available or sets it from a fallback type.
    Definition locator.hpp:88
    +

    All arguments are used only if necessary, that is, if a service does not already exist and therefore the fallback service is constructed and returned. In all other cases, they are discarded.
    Finally, to reset a service, use the reset function.

    Opaque handles

    -

    Sometimes it's useful to transfer a copy of a service to another locator. For example, when working across boundaries it's common to share a service with a dynamically loaded module.
    - Options aren't much in this case. Among these is the possibility of exporting services and assigning them to a different locator.

    +

    Sometimes it is useful to transfer a copy of a service to another locator. For example, when working across boundaries it is common to share a service with a dynamically loaded module.
    + Options are not much in this case. Among these is the possibility of exporting services and assigning them to a different locator.

    This is what the handle and reset functions are meant for.
    The former returns an opaque object useful for exporting (or rather, obtaining a reference to) a service. The latter also accepts an optional argument to a handle which then allows users to reset a service by initializing it with an opaque handle:

    static node_type handle() noexcept
    Returns a handle to the underlying service.
    Definition locator.hpp:124
    static void reset(const node_type &other={}) noexcept
    Resets or replaces a service.
    Definition locator.hpp:134
    -

    It's worth noting that it's possible to get handles for uninitialized services and use them with other locators. Of course, all a user will get is to have an uninitialized service elsewhere as well.

    -

    Note that exporting a service allows users to share the object currently set in a locator. Replacing it won't replace the element even where a service has been configured with a handle to the previous item.
    - In other words, if an audio service is replaced with a null object to silence an application and the original service was shared, this operation won't propagate to the other locators. Therefore, a module that share the ownership of the original audio service is still able to emit sounds.

    +

    It is worth noting that it is possible to get handles for uninitialized services and use them with other locators. Of course, all a user will get is to have an uninitialized service elsewhere as well.

    +

    Note that exporting a service allows users to share the object currently set in a locator. Replacing it will not replace the element, even where a service has been configured with a handle to the previous item.
    + In other words, if an audio service is replaced with a null object to silence an application and the original service was shared, this operation will not propagate to the other locators. Therefore, a module that shares the ownership of the original audio service is still able to emit sounds.

    +
    diff --git a/md_docs_2md_2meta.html b/md_docs_2md_2meta.html index 30e3915f0..e1b50906c 100644 --- a/md_docs_2md_2meta.html +++ b/md_docs_2md_2meta.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: runtime reflection system + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: runtime reflection system
    -

    +

    Table of Contents

      @@ -103,66 +116,69 @@ Table of Contents

    Introduction

    -

    Reflection (or rather, its lack) is a trending topic in the C++ world and a tool that can unlock a lot of interesting features in the specific case of EnTT. I looked for a third-party library that met my needs on the subject, but I always came across some details that I didn't like: macros, being intrusive, too many allocations, and so on.
    - I finally decided to write a built-in, non-intrusive and macro-free runtime reflection system for EnTT. Maybe I didn't do better than others or maybe yes, time will tell me, but at least I can model this tool around the library to which it belongs and not the opposite.

    +

    Reflection (or rather, its lack) is a trending topic in the C++ world and a tool that can unlock a lot of interesting features in the specific case of EnTT. I looked for a third-party library that met my needs on the subject, but I always came across some details that I did not like: macros, being intrusive, too many allocations, and so on.
    + I finally decided to write a built-in, non-intrusive and macro-free runtime reflection system for EnTT. Maybe I did not do better than others or maybe yes, time will tell me, but at least I can model this tool around the library to which it belongs and not the opposite.

    Names and identifiers

    -

    The meta system doesn't force users to rely on the tools provided by the library when it comes to working with names and identifiers. It does this by offering an API that works with opaque identifiers that may or may not be generated by means of a hashed string.
    - This means that users can assign any type of identifier to the meta objects, as long as they're numeric. It doesn't matter if they're generated at runtime, at compile-time or with custom functions.

    -

    That being said, the examples in the following sections are all based on the hashed_string class as provided by this library. Therefore, where an identifier is required, it's likely that a user defined literal is used as follows:

    -
    auto factory = entt::meta<my_type>().type("reflected_type"_hs);
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -

    For what it's worth, this is completely equivalent to:

    -
    auto factory = entt::meta<my_type>().type(42u);
    +

    The meta system does not force users to rely on the tools provided by the library when it comes to working with names and identifiers. It does this by offering an API that works with opaque identifiers that may or may not be generated by means of a hashed string.
    + This means that users can assign any type of identifier to the meta objects, as long as they are numeric. It does not matter if they are generated at runtime, at compile-time or with custom functions.

    +

    That being said, the examples in the following sections are all based on the hashed_string class as provided by this library. Therefore, where an identifier is required, it is likely that a user defined literal is used as follows:

    +
    entt::meta_factory<my_type>{}.type("reflected_type"_hs);
    +
    Meta factory to be used for reflection purposes.
    Definition factory.hpp:150
    +
    meta_factory type(const id_type id) noexcept
    Assigns a custom unique identifier to a meta type.
    Definition factory.hpp:189
    +

    For what it is worth, this is completely equivalent to:

    +

    Obviously, human-readable identifiers are more convenient to use and highly recommended.

    Reflection in a nutshell

    Reflection always starts from actual C++ types. Users cannot reflect imaginary types.
    - The meta function is where it all starts:

    -
    auto factory = entt::meta<my_type>();
    + The meta_factory class is where it all starts:

    +

    The returned value is a factory object to use to continue building the meta type.

    By default, a meta type is associated with the identifier returned by the runtime type identification system built-in in EnTT.
    - However, it's also possible to assign custom identifiers to meta types:

    -
    auto factory = entt::meta<my_type>().type("reflected_type"_hs);
    + However, it is also possible to assign custom identifiers to meta types:

    +
    entt::meta_factory<my_type>{}.type("reflected_type"_hs);

    Identifiers are used to retrieve meta types at runtime by name other than by type.
    - However, users can be interested in adding features to a reflected type so that the reflection system can use it correctly under the hood, while they don't want to also make the type searchable. In this case, it's sufficient not to invoke type.

    -

    A factory is such that all its member functions return the factory itself. It's generally used to create the following:

    + However, users can be interested in adding features to a reflected type so that the reflection system can use it correctly under the hood, while they do not want to also make the type searchable. In this case, it is sufficient not to invoke type.

    +

    A factory is such that all its member functions return the factory itself. It is generally used to create the following:

      -
    • Constructors. A constructors is assigned to a reflected type by specifying its list of arguments. Free functions are also accepted if the return type is the expected one. From a client perspective, nothing changes between a free function or an actual constructor:

      -
      entt::meta<my_type>().ctor<int, char>().ctor<&factory>();
      +
    • Constructors. A constructor is assigned to a reflected type by specifying its list of arguments. Free functions are also accepted if the return type is the expected one. From a client perspective, nothing changes between a free function or an actual constructor:

      +
      entt::meta_factory<my_type>{}.ctor<int, char>().ctor<&factory>();
      +
      meta_factory ctor() noexcept
      Assigns a meta constructor to a meta type.
      Definition factory.hpp:261

      Meta default constructors are implicitly generated, if possible.

    • Destructors. Both free functions and member functions are valid destructors:

      -
      entt::meta<my_type>().dtor<&destroy>();
      +
      +
      meta_factory dtor() noexcept
      Assigns a meta destructor to a meta type.
      Definition factory.hpp:309

      The purpose is to offer the possibility to free up resources that require special treatment before an object is actually destroyed.
      A function should neither delete nor explicitly invoke the destructor of a given instance.

    • Data members. Meta data members are actual data members of the underlying type but also static and global variables or constants of any kind. From the point of view of the client, all the variables associated with the reflected type appear as if they were part of the type itself:

      -
      +
      .data<&my_type::static_variable>("static"_hs)
      .data<&my_type::data_member>("member"_hs)
      .data<&global_variable>("global"_hs);

      The data function requires the identifier to use for the meta data member. Users can then access it by name at runtime.
      Data members are also defined by means of a setter and getter pair. These are either free functions, class members or a mix of them. This approach is also convenient to create read-only properties from a non-const data member:

      -
      entt::meta<my_type>().data<nullptr, &my_type::data_member>("member"_hs);
      -

      Multiple setters are also supported by means of a value_list object:

      -
      entt::meta<my_type>().data<entt::value_list<&from_int, &from_string>, &my_type::data_member>("member"_hs);
      -
      A class to use to push around lists of constant values, nothing more.
      +
      entt::meta_factory<my_type>{}.data<nullptr, &my_type::data_member>("member"_hs);
    • Member functions. Meta member functions are actual member functions of the underlying type but also plain free functions. From the point of view of the client, all the functions associated with the reflected type appear as if they were part of the type itself:

      -
      -
      .func<&my_type::static_function>("static"_hs)
      +
      +
      .func<&my_type::static_function>("static"_hs)
      .func<&my_type::member_function>("member"_hs)
      -
      .func<&free_function>("free"_hs);
      +
      .func<&free_function>("free"_hs);
      +
      meta_factory func(const id_type id) noexcept
      Assigns a meta function to a meta type.
      Definition factory.hpp:460

      The func function requires the identifier to use for the meta data function. Users can then access it by name at runtime.
      Overloading of meta functions is supported. Overloaded functions are resolved at runtime by the reflection system according to the types of the arguments.

    • Base classes. A base class is such that the underlying type is actually derived from it:

      -
      entt::meta<derived_type>().base<base_type>();
      +
      +
      meta_factory base() noexcept
      Assigns a meta base to a meta type.
      Definition factory.hpp:203

      The reflection system tracks the relationship and allows for implicit casts at runtime when required. In other terms, wherever a base_type is required, an instance of derived_type is also accepted.

    • Conversion functions. Conversion functions allow users to define conversions that are implicitly performed by the reflection system when required:

      -
      entt::meta<double>().conv<int>();
      +
      +
      auto conv() noexcept
      Assigns a meta conversion function to a meta type.
      Definition factory.hpp:223

    This is everything users need to create meta types. Refer to the inline documentation for further details.

    @@ -171,71 +187,74 @@ Any to the rescue

    The reflection system offers a kind of extended version of the entt::any class (see the core module for more details).
    The purpose is to add some feature on top of those already present, so as to integrate it with the meta type system without having to duplicate the code.

    The API is very similar to that of the any type. The class meta_any wraps many of the feature to infer a meta node, before forwarding some or all of the arguments to the underlying storage.
    - Among the few relevant differences, meta_any adds support for containers and pointer-like types, while any doesn't.
    - Similar to any, this class is also used to create aliases for unmanaged objects either with forward_as_meta or using the std::in_place_type<T &> disambiguation tag, as well as from an existing object by means of the as_ref member function.
    + Among the few relevant differences, meta_any adds support for containers and pointer-like types, while any does not.
    + Similar to any, this class is also used to create aliases for unmanaged objects either with forward_as_meta or using the std::in_place_type<T &> disambiguation tag, as well as from an existing object by means of the as_ref member function. Additionally, it can take ownership of pointers passed as arguments along with std::in_place.
    Unlike any instead, meta_any treats an empty instance and one initialized with void differently:

    entt::meta_any other{std::in_place_type<void>};
    -
    Opaque wrapper for values of any type.
    Definition meta.hpp:179
    -

    While any considers both as empty, meta_any treats objects initialized with void as if they were valid ones. This allows to differentiate between failed function calls and function calls that are successful but return nothing.

    +
    Opaque wrapper for values of any type.
    Definition meta.hpp:166
    +

    While any considers both as empty, meta_any treats objects initialized with void as if they were valid ones. This allows differentiating between failed function calls and function calls that are successful but return nothing.

    Finally, the member functions try_cast, cast and allow_cast are used to cast the underlying object to a given type (either a reference or a value type) or to convert a meta_any in such a way that a cast becomes viable for the resulting object.
    There is in fact no any_cast equivalent for meta_any.

    Enjoy the runtime

    -

    Once the web of reflected types is constructed, it's a matter of using it at runtime where required.
    +

    Once the web of reflected types is constructed, it is a matter of using it at runtime where required.
    There are a few options to search for a reflected type:

    // direct access to a reflected type
    -
    auto by_type = entt::resolve<my_type>();
    +
    auto by_type = entt::resolve<my_type>();
    // look up a reflected type by identifier
    auto by_id = entt::resolve("reflected_type"_hs);
    // look up a reflected type by type info
    - +
    meta_type resolve() noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:32
    +
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.

    There exists also an overload of the resolve function to use to iterate all reflected types at once. It returns an iterable object to be used in a range-for loop:

    -
    for(auto &&[id, type]: entt::resolve()) {
    +
    for(auto &&[id, type]: entt::resolve()) {
    // ...
    }
    -
    EnTT default namespace.
    Definition dense_map.hpp:22
    -

    In all cases, the returned value is an instance of meta_type (possibly with its id). This kind of objects offer an API to know their runtime identifiers, to iterate all the meta objects associated with them and even to build instances of the underlying type.
    +

    meta_type resolve(const meta_ctx &ctx) noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:21
    +

    In all cases, the returned value is an instance of meta_type (possibly with its id). These objects offer an API to know their runtime identifiers, to iterate all the meta objects associated with them and even to build instances of the underlying type.
    Meta data members and functions are accessed by name:

    • Meta data members:

      -
      auto data = entt::resolve<my_type>().data("member"_hs);
      +
      auto data = entt::resolve<my_type>().data("member"_hs);
      +
      meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > data() const noexcept
      Returns a range to visit registered top-level meta data.
      Definition meta.hpp:1347

      The returned type is meta_data and may be invalid if there is no meta data object associated with the given identifier.
      - A meta data object offers an API to query the underlying type (for example, to know if it's a const or a static one), to get the meta type of the variable and to set or get the contained value.

      + A meta data object offers an API to query the underlying type (for example, to know if it is a const or a static one), to get the meta type of the variable and to set or get the contained value.

    • Meta function members:

      -
      auto func = entt::resolve<my_type>().func("member"_hs);
      +
      auto func = entt::resolve<my_type>().func("member"_hs);
      +
      meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > func() const noexcept
      Returns a range to visit registered top-level functions.
      Definition meta.hpp:1366

      The returned type is meta_func and may be invalid if there is no meta function object associated with the given identifier.
      - A meta function object offers an API to query the underlying type (for example, to know if it's a const or a static function), to know the number of arguments, the meta return type and the meta types of the parameters. In addition, a meta function object is used to invoke the underlying function and then get the return value in the form of a meta_any object.

      + A meta function object offers an API to query the underlying type (for example, to know if it is a const or a static function), to know the number of arguments, the meta return type and the meta types of the parameters. In addition, a meta function object is used to invoke the underlying function and then get the return value in the form of a meta_any object.

    All the meta objects thus obtained as well as the meta types explicitly convert to a boolean value to check for validity:

    -
    if(auto func = entt::resolve<my_type>().func("member"_hs); func) {
    +
    if(auto func = entt::resolve<my_type>().func("member"_hs); func) {
    // ...
    }
    -

    Furthermore, all them (and a few more, like meta basis) are returned by a bunch of overloads that provide the caller with iterable ranges of top-level elements. As an example:

    -
    for(auto &&[id, type]: entt::resolve<my_type>().base()) {
    +

    Furthermore, all of them (and a few more, like meta basis) are returned by a bunch of overloads that provide the caller with iterable ranges of top-level elements. As an example:

    +
    for(auto &&[id, type]: entt::resolve<my_type>().base()) {
    // ...
    }
    -

    Meta type are also used to construct actual instances of the underlying type.
    +

    Meta types are also used to construct actual instances of the underlying type.
    In particular, the construct member function accepts a variable number of arguments and searches for a match. It then returns a meta_any object that may or may not be initialized, depending on whether a suitable constructor was found or not.

    -

    There is no object that wraps the destructor of a meta type nor a destroy member function in its API. Destructors are invoked implicitly by meta_any behind the scenes and users have not to deal with them explicitly. Furthermore, they've no name, cannot be searched and wouldn't have member functions to expose anyway.
    - Similarly, conversion functions aren't directly accessible. They're used internally by meta_any and the meta objects when needed.

    +

    There is no object that wraps the destructor of a meta type nor a destroy member function in its API. Destructors are invoked implicitly by meta_any behind the scenes and users have not to deal with them explicitly. Furthermore, they have no name, cannot be searched and would not have member functions to expose anyway.
    + Similarly, conversion functions are not directly accessible. They are used internally by meta_any and the meta objects when needed.

    Meta types and meta objects in general contain much more than what was said. Refer to the inline documentation for further details.

    Container support

    The runtime reflection system also supports containers of all types.
    - Moreover, containers doesn't necessarily mean those offered by the C++ standard library. In fact, user defined data structures can also work with the meta system in many cases.

    + Moreover, containers does not necessarily mean those offered by the C++ standard library. In fact, user defined data structures can also work with the meta system in many cases.

    To make a container be recognized as such by the meta system, users are required to provide specializations for either the meta_sequence_container_traits class or the meta_associative_container_traits class, according to the actual type of the container.
    EnTT already exports the specializations for some common classes. In particular:

    • std::vector, std::array, std::deque and std::list (but not std::forward_list) are supported as sequence containers.
    • std::map, std::set and their unordered counterparts are supported as associative containers.
    -

    It's important to include the header file container.hpp to make these specializations available to the compiler when needed.
    +

    It is important to include the header file container.hpp to make these specializations available to the compiler when needed.
    The same file also contains many examples for the users that are interested in making their own containers available to the meta system.

    When a specialization of the meta_sequence_container_traits class exists, the meta system treats the wrapped type as a sequence container. In a similar way, a type is treated as an associative container if a specialization of the meta_associative_container_traits class is found for it.
    Proxy objects are returned by dedicated members of the meta_any class. The following is a deliberately verbose example of how users can access a proxy object for a sequence container:

    @@ -247,33 +266,33 @@ Container support
    // ...
    }
    }
    -
    const type_info & type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition any.hpp:276
    -
    meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition meta.hpp:630
    +
    const type_info & type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition any.hpp:297
    +
    meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition meta.hpp:672

    The method to use to get a proxy object for associative containers is as_associative_container instead.
    - It's not necessary to perform a double check actually. Instead, it's enough to query the meta type or verify that the proxy object is valid. In fact, proxies are contextually convertible to bool to check for validity. For example, invalid proxies are returned when the wrapped object isn't a container.
    - In all cases, users aren't expected to reflect containers explicitly. It's sufficient to assign a container for which a specialization of the traits classes exists to a meta_any object to be able to get its proxy object.

    + It is not necessary to perform a double check actually. Instead, it is enough to query the meta type or verify that the proxy object is valid. In fact, proxies are contextually convertible to bool to check for validity. For example, invalid proxies are returned when the wrapped object is not a container.
    + In all cases, users are not expected to reflect containers explicitly. It is sufficient to assign a container for which a specialization of the traits classes exists to a meta_any object to be able to get its proxy object.

    The interface of the meta_sequence_container proxy object is the same for all types of sequence containers, although the available features differ from case to case. In particular:

    • The value_type member function returns the meta type of the elements.
    • The size member function returns the number of elements in the container as an unsigned integer value.
    • -
    • The resize member function allows to resize the wrapped container and returns true in case of success.
      - For example, it's not possible to resize fixed size containers.
    • -
    • The clear member function allows to clear the wrapped container and returns true in case of success.
      - For example, it's not possible to clear fixed size containers.
    • -
    • The reserve member function allows to increase the capacity of the wrapped container and returns true in case of success.
      - For example, it's not possible to increase capacity of fixed size containers.
    • +
    • The resize member function allows resizing the wrapped container and returns true in case of success.
      + For example, it is not possible to resize fixed size containers.
    • +
    • The clear member function allows clearing the wrapped container and returns true in case of success.
      + For example, it is not possible to clear fixed size containers.
    • +
    • The reserve member function allows increasing the capacity of the wrapped container and returns true in case of success.
      + For example, it is not possible to increase capacity of fixed size containers.
    • The begin and end member functions return opaque iterators that is used to iterate the container directly:

      for(entt::meta_any element: view) {
      // ...
      }

      In all cases, given an underlying container of type C, the returned element contains an object of type C::value_type which therefore depends on the actual container.
      - All meta iterators are input iterators and don't offer an indirection operator on purpose.

      + All meta iterators are input iterators and do not offer an indirection operator on purpose.

    • The insert member function is used to add elements to the container. It accepts a meta iterator and the element to insert:

      auto last = view.end();
      // appends an integer to the container
      view.insert(last, 42);
      -

      This function returns a meta iterator pointing to the inserted element and a boolean value to indicate whether the operation was successful or not. A call to insert may silently fail in case of fixed size containers or whether the arguments aren't at least convertible to the required types.
      +

    This function returns a meta iterator pointing to the inserted element and a boolean value to indicate whether the operation was successful or not. A call to insert may silently fail in case of fixed size containers or whether the arguments are not at least convertible to the required types.
    Since meta iterators are contextually convertible to bool, users can rely on them to know if the operation failed on the actual container or upstream, for example due to an argument conversion problem.

  • The erase member function is used to remove elements from the container. It accepts a meta iterator to the element to remove:

    @@ -299,26 +318,26 @@ Container support
  • The value_type member function returns the meta type of the elements.
    For example, it returns the meta type of int for std::set<int> while it returns the meta type of std::pair<const int, char> for std::map<int, char>.
  • The size member function returns the number of elements in the container as an unsigned integer value.
  • -
  • The clear member function allows to clear the wrapped container and returns true in case of success.
  • -
  • The reserve member function allows to increase the capacity of the wrapped container and returns true in case of success.
    - For example, it's not possible to increase capacity of standard maps.
  • +
  • The clear member function allows clearing the wrapped container and returns true in case of success.
  • +
  • The reserve member function allows increasing the capacity of the wrapped container and returns true in case of success.
    + For example, it is not possible to increase capacity of standard maps.
  • The begin and end member functions return opaque iterators that are used to iterate the container directly:

    for(std::pair<entt::meta_any, entt::meta_any> element: view) {
    // ...
    }
    -

    In all cases, given an underlying container of type C, the returned element is a key-value pair where the key has type C::key_type and the value has type C::mapped_type. Since key-only containers don't have a mapped type, their value is nothing more than an invalid meta_any object.
    - All meta iterators are input iterators and don't offer an indirection operator on purpose.

    +
  • In all cases, given an underlying container of type C, the returned element is a key-value pair where the key has type C::key_type and the value has type C::mapped_type. Since key-only containers do not have a mapped type, their value is nothing more than an invalid meta_any object.
    + All meta iterators are input iterators and do not offer an indirection operator on purpose.

    While the accessed key is usually constant in the associative containers and is therefore returned by copy, the value (if any) is wrapped by an instance of meta_any that directly refers to the actual element. Modifying it directly modifies the element inside the container.

    -
  • The insert member function is used to add elements to a container. It gets two arguments, respectively the key and the value to insert:

    +
  • The insert member function is used to add elements to a container. It gets two arguments, the key and the value to insert:

    auto last = view.end();
    // appends an integer to the container
    view.insert(last.handle(), 42, 'c');
    -

    This function returns a boolean value to indicate whether the operation was successful or not. A call to insert may fail when the arguments aren't at least convertible to the required types.

    +
  • This function returns a boolean value to indicate whether the operation was successful or not. A call to insert may fail when the arguments are not at least convertible to the required types.

  • The erase member function is used to remove elements from a container. It gets a single argument, the key to remove:

    view.erase(42);
    -

    This function returns a boolean value to indicate whether the operation was successful or not. A call to erase may fail when the argument isn't at least convertible to the required type.

    +
  • This function returns a boolean value to indicate whether the operation was successful or not. A call to erase may fail when the argument is not at least convertible to the required type.

  • The operator[] is used to access elements in a container. It gets a single argument, the key of the element to return:

    entt::meta_any value = view[42];
    @@ -328,15 +347,20 @@ Container support

    Container support is minimal but likely sufficient to satisfy all needs.

    Pointer-like types

    -

    As with containers, it's also possible to tell to the meta system which types are pointers. This makes it possible to dereference instances of meta_any, thus obtaining light references to pointed objects that are also correctly associated with their meta types.
    +

    As with containers, it is also possible to tell to the meta system which types are pointers. This makes it possible to dereference instances of meta_any, thus obtaining light references to pointed objects that are also correctly associated with their meta types.
    To make the meta system recognize a type as pointer-like, users can specialize the is_meta_pointer_like class. EnTT already exports the specializations for some common classes. In particular:

    • All types of raw pointers.
    • std::unique_ptr and std::shared_ptr.
    • +
    • All classes that export a type member called is_meta_pointer_like:
      struct smart_pointer {
      +
      using is_meta_pointer_like = void;
      +
      // ...
      +
      };
      +
      The actual type is irrelevant and will not be used in any way.
    -

    It's important to include the header file pointer.hpp to make these specializations available to the compiler when needed.
    +

    It is important to include the header file pointer.hpp to make these specializations available to the compiler when needed.
    The same file also contains many examples for the users that are interested in making their own pointer-like types available to the meta system.

    -

    When a type is recognized as a pointer-like one by the meta system, it's possible to dereference the instances of meta_any that contain these objects. The following is a deliberately verbose example to show how to use this feature:

    +

    When a type is recognized as a pointer-like one by the meta system, it is possible to dereference the instances of meta_any that contain these objects. The following is a deliberately verbose example to show how to use this feature:

    int value = 42;
    // meta type equivalent to that of int *
    entt::meta_any any{&value};
    @@ -347,21 +371,21 @@ Pointer-like types
    // ...
    }
    }
    -

    It's not necessary to perform a double check. Instead, it's enough to query the meta type or verify that the returned object is valid. For example, invalid instances are returned when the wrapped object isn't a pointer-like type.
    +

    It is not necessary to perform a double check. Instead, it is enough to query the meta type or verify that the returned object is valid. For example, invalid instances are returned when the wrapped object is not a pointer-like type.
    Dereferencing a pointer-like object returns an instance of meta_any which refers to the pointed object. Modifying it means modifying the pointed object directly (unless the returned element is const).

    -

    In general, dereferencing a pointer-like type boils down to a *ptr. However, EnTT also supports classes that don't offer an operator*. In particular:

    +

    In general, dereferencing a pointer-like type boils down to a *ptr. However, EnTT also supports classes that do not offer an operator*. In particular:

      -
    • It's possible to exploit a solution based on ADL lookup by offering a function (also a template one) named dereference_meta_pointer_like:

      +
    • It is possible to exploit a solution based on ADL lookup by implementing a function (also a template one) named dereference_meta_pointer_like:

      template<typename Type>
      Type & dereference_meta_pointer_like(const custom_pointer_type<Type> &ptr) {
      return ptr.deref();
      }
    • -
    • When not in control of the type's namespace, it's possible to inject into the entt namespace a specialization of the adl_meta_pointer_like class template to bypass the adl lookup as a whole:

      +
    • When not in control of the type's namespace, it is possible to inject into the entt namespace a specialization of the adl_meta_pointer_like class template to bypass the adl lookup as a whole:

      template<typename Type>
      - -
      static decltype(auto) dereference(const custom_pointer_type<Type> &ptr) {
      -
      return ptr.deref();
      +
      struct entt::adl_meta_pointer_like<custom_pointer_type<Type>> {
      +
      static decltype(auto) dereference(const custom_pointer_type<Type> &ptr) {
      +
      return ptr.deref();
      }
      };
      Fake ADL based lookup function for meta pointer-like types.
      @@ -371,11 +395,11 @@ Pointer-like types

      In all other cases and when dereferencing a pointer works as expected regardless of the pointed type, no user intervention is required.

      Template information

      -

      Meta types also provide a minimal set of information about the nature of the original type in case it's a class template.
      - By default, this works out of the box and requires no user action. However, it's important to include the header file template.hpp to make this information available to the compiler when needed.

      -

      Meta template information are easily found:

      +

      Meta types also provide a minimal set of information about the nature of the original type in case it is a class template.
      + By default, this works out of the box and requires no user action. However, it is important to include the header file template.hpp to make this information available to the compiler when needed.

      +

      Meta template information is easily found:

      // this method returns true if the type is recognized as a class template specialization
      -
      if(auto type = entt::resolve<std::shared_ptr<my_type>>(); type.is_template_specialization()) {
      +
      if(auto type = entt::resolve<std::shared_ptr<my_type>>(); type.is_template_specialization()) {
      // meta type of the class template conveniently wrapped by entt::meta_class_template_tag
      auto class_type = type.template_type();
      @@ -385,8 +409,7 @@ Template information
      // meta type of the i-th argument
      auto arg_type = type.template_arg(0u);
      }
      -
      bool is_template_specialization() const noexcept
      Checks whether a type refers to a recognized class template specialization or not.
      Definition meta.hpp:1351
      -

      Typically, when template information for a type are required, what the library provides is sufficient. However, there are some cases where a user may want more details or a different set of information.
      +

      Typically, when template information for a type is required, what the library provides is sufficient. However, there are some cases where a user may want more details or a different set of information.
      Consider the case of a class template that is meant to wrap function types:

      template<typename>
      struct function_type;
      @@ -396,93 +419,94 @@ Template information

      In this case, rather than the function type, it might be useful to provide the return type and unpacked arguments as if they were different template parameters for the original class template.
      To achieve this, users must enter the library internals and provide their own specialization for the class template entt::meta_template_traits, such as:

      template<typename Ret, typename... Args>
      -
      struct entt::meta_template_traits<function_type<Ret(Args...)>> {
      - -
      using args_type = type_list<Ret, Args...>;
      +
      struct entt::meta_template_traits<function_type<Ret(Args...)>> {
      +
      using class_type = meta_class_template_tag<function_type>;
      +
      using args_type = type_list<Ret, Args...>;
      };
      Traits class template to be specialized to enable support for meta template information.
      -

      The reflection system doesn't verify the accuracy of the information nor infer a correspondence between real types and meta types.
      +

  • The reflection system does not verify the accuracy of the information nor infer a correspondence between real types and meta types.
    Therefore, the specialization is used as is and the information it contains is associated with the appropriate type when required.

    Automatic conversions

    In C++, there are a number of conversions allowed between arithmetic types that make it convenient to work with this kind of data.
    If this were to be translated into explicit registrations with the reflection system, it would result in a long series of instructions such as the following:

    -
    -
    .conv<bool>()
    +
    +
    .conv<bool>()
    .conv<char>()
    // ...
    .conv<double>();

    Repeated for each type eligible to undergo this type of conversions. This is both error-prone and repetitive.
    Similarly, the language allows users to silently convert unscoped enums to their underlying types and offers what it takes to do the same for scoped enums. It would result in the following if it were to be done explicitly:

    -
    -
    .conv<std::underlying_type_t<my_enum>>();
    +
    +
    .conv<std::underlying_type_t<my_enum>>();

    Fortunately, all of this can also be avoided. EnTT offers implicit support for these types of conversions:

    any.allow_cast<double>();
    double value = any.cast<double>();

    With no need for registration, the conversion takes place automatically under the hood. The same goes for a call to allow_cast involving a meta type:

    -
    +
    entt::meta_any any{my_enum::a_value};
    any.allow_cast(type);
    int value = any.cast<int>();
    -
    Opaque wrapper for types.
    Definition meta.hpp:1153
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088

    This makes working with arithmetic types and scoped or unscoped enums as easy as it is in C++.
    - It's still possible to set up conversion functions manually and these are always preferred over the automatic ones.

    + It is still possible to set up conversion functions manually, and these are always preferred over the automatic ones.

    Implicitly generated default constructor

    Creating objects of default constructible types through the reflection system while not having to explicitly register the meta type or its default constructor is also possible.
    For example, in the case of primitive types like int or char, but not just them.

    For default constructible types only, default constructors are automatically defined and associated with their meta types, whether they are explicitly or implicitly generated.
    - Therefore, this is all is needed to construct an integer from its meta type:

    -
    entt::resolve<int>().construct();
    -

    Where the meta type is for example the one returned from a meta container, useful for building keys without knowing or having to register the actual types.

    + Therefore, this is all needed to construct an integer from its meta type:

    +
    +
    meta_any construct(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition meta.hpp:1387
    +

    Where the meta type is, for example, the one returned from a meta container, useful for building keys without knowing or having to register the actual types.

    In all cases, when users register default constructors, they are preferred both during searches and when the construct member function is invoked.

    From void to any

    Sometimes all a user has is an opaque pointer to an object of a known meta type. It would be handy in this case to be able to construct a meta_any element from it.
    For this purpose, the meta_type class offers a from_void member function designed to convert an opaque pointer into a meta_any:

    -
    -
    meta_any from_void(void *elem) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1486
    -

    Unfortunately, it's not possible to do a check on the actual type. Therefore, this call can be considered as a static cast with all its problems.
    +

    +
    meta_any from_void(void *elem, bool transfer_ownership=false) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1419
    +

    Unfortunately, it is not possible to do a check on the actual type. Therefore, this call can be considered as a static cast with all its problems.
    On the other hand, the ability to construct a meta_any from an opaque pointer opens the door to some pretty interesting uses that are worth exploring.

    Policies: the more, the less

    Policies are a kind of compile-time directives that can be used when registering reflection information.
    - Their purpose is to require slightly different behavior than the default in some specific cases. For example, when reading a given data member, its value is returned wrapped in a meta_any object which, by default, makes a copy of it. For large objects or if the caller wants to access the original instance, this behavior isn't desirable. Policies are there to offer a solution to this and other problems.

    + Their purpose is to require slightly different behavior than the default in some specific cases. For example, when reading a given data member, its value is returned wrapped in a meta_any object which, by default, makes a copy of it. For large objects or if the caller wants to access the original instance, this behavior is not desirable. Policies are there to offer a solution to this and other problems.

    There are a few alternatives available at the moment:

    • The as-is policy, associated with the type entt::as_is_t.
      - This is the default policy. In general, it should never be used explicitly, since it's implicitly selected if no other policy is specified.
      + This is the default policy. In general, it should never be used explicitly, since it is implicitly selected if no other policy is specified.
      In this case, the return values of the functions as well as the properties exposed as data members are always returned by copy in a dedicated wrapper and therefore associated with their original meta types.
    • The as-void policy, associated with the type entt::as_void_t.
      Its purpose is to discard the return value of a meta object, whatever it is, thus making it appear as if its type were void:

      -
      entt::meta<my_type>().func<&my_type::member_function, entt::as_void_t>("member"_hs);
      +
      entt::meta_factory<my_type>{}.func<&my_type::member_function, entt::as_void_t>("member"_hs);
      Empty class type used to request the as void policy.
      Definition policy.hpp:33
      -

      If the use with functions is obvious, perhaps less so is use with constructors and data members. In the first case, the returned wrapper is always empty even though the constructor is still invoked. In the second case, the property isn't accessible for reading instead.

      +

      If the use with functions is obvious, perhaps less so is use with constructors and data members. In the first case, the returned wrapper is always empty even though the constructor is still invoked. In the second case, the property is not accessible for reading instead.

    • The as-ref and as-cref policies, associated with the types entt::as_ref_t and entt::as_cref_t.
      They allow to build wrappers that act as references to unmanaged objects. Accessing the object contained in the wrapper for which the reference was requested makes it possible to directly access the instance used to initialize the wrapper itself:

      -
      entt::meta<my_type>().data<&my_type::data_member, entt::as_ref_t>("member"_hs);
      +
      entt::meta_factory<my_type>{}.data<&my_type::data_member, entt::as_ref_t>("member"_hs);
      Empty class type used to request the as ref policy.
      Definition policy.hpp:9

      These policies work with constructors (for example, when objects are taken from an external container rather than created on demand), data members and functions in general.
      If on the one hand as_cref_t always forces the return type to be const, as_ref_t adapts to the constness of the passed object and to that of the return type if any.

    -

    Some uses are rather trivial, but it's useful to note that there are some less obvious corner cases that can in turn be solved with the use of policies.

    +

    Some uses are rather trivial, but it is useful to note that there are some less obvious corner cases that can in turn be solved with the use of policies.

    Named constants and enums

    As mentioned, the data member function is used to reflect constants of any type.
    This allows users to create meta types for enums that work exactly like any other meta type built from a class. Similarly, arithmetic types are enriched with constants of special meaning where required.
    All values thus exported appear to users as if they were constant data members of the reflected types. This avoids the need to export what is the difference between enums and classes in C++ directly in the space of the reflected types.

    Exposing constant values or elements from an enum is quite simple:

    -
    +
    .data<my_enum::a_value>("a_value"_hs)
    .data<my_enum::another_value>("another_value"_hs);
    -
    entt::meta<int>().data<2048>("max_int"_hs);
    -

    Accessing them is trivial as well. It's a matter of doing the following, as with any other data member of a meta type:

    -
    auto value = entt::resolve<my_enum>().data("a_value"_hs).get({}).cast<my_enum>();
    -
    auto max = entt::resolve<int>().data("max_int"_hs).get({}).cast<int>();
    +
    entt::meta_factory<int>{}.data<2048>("max_int"_hs);
    +

    Accessing them is trivial as well. It is a matter of doing the following, as with any other data member of a meta type:

    +
    auto value = entt::resolve<my_enum>().data("a_value"_hs).get({}).cast<my_enum>();
    +
    auto max = entt::resolve<int>().data("max_int"_hs).get({}).cast<int>();

    All this happens behind the scenes without any allocation because of the small object optimization performed by the meta_any class.

    User defined data

    @@ -496,39 +520,43 @@ User defined data

    Traits

    User-defined traits are set via a meta factory:

    -
    entt::meta<my_type>().traits(my_traits::required | my_traits::hidden);
    -

    In the example above, EnTT bitmask enum support is used but any integral value is fine, as long as it doesn't exceed 16 bits.
    - It's not possible to assign traits at different times. Therefore, multiple calls to the traits function overwrite previous values. However, traits can be read from meta objects and used to update existing data with a factory, effectively extending them as needed.
    +

    entt::meta_factory<my_type>{}.traits(my_traits::required | my_traits::hidden);
    +
    meta_factory traits(const Value value)
    Sets traits on the last created meta object.
    Definition factory.hpp:486
    +

    In the example above, EnTT bitmask enum support is used, but any integral value is fine, as long as it does not exceed 16 bits.
    + It is not possible to assign traits at different times. Therefore, multiple calls to the traits function overwrite previous values. However, traits can be read from meta objects and used to update existing data with a factory, effectively extending them as needed.
    Likewise, users can also set traits on meta objects later if needed, as long as the factory is reset to the meta object of interest:

    -
    +
    .data<&my_type::data_member, entt::as_ref_t>("member"_hs)
    .traits(my_traits::internal);

    Once created, all meta objects offer a member function named traits to get the currently set value:

    -
    auto value = entt::resolve<my_type>().traits<my_traits>();
    +
    auto value = entt::resolve<my_type>().traits<my_traits>();
    +
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:1501

    Note that the type is erased upon registration and must therefore be repeated when traits are extracted, so as to allow the library to reconstruct them correctly.

    Custom data

    Custom arbitrary data are set via a meta factory:

    -
    entt::meta<my_type>().custom<type_data>("name");
    +
    entt::meta_factory<my_type>{}.custom<type_data>("name");
    +
    meta_factory custom(Args &&...args)
    Sets user defined data that will never be used by the library.
    Definition factory.hpp:500

    The way to do this is by specifying the data type to the custom function and passing the necessary arguments to construct it correctly.
    - It's not possible to assign custom data at different times. Therefore, multiple calls to the custom function overwrite previous values. However, this value can be read from meta objects and used to update existing data with a factory, effectively updating them as needed.
    + It is not possible to assign custom data at different times. Therefore, multiple calls to the custom function overwrite previous values. However, this value can be read from meta objects and used to update existing data with a factory, effectively updating them as needed.
    Likewise, users can also set custom data on meta objects later if needed, as long as the factory is reset to the meta object of interest:

    -
    -
    .func<&my_type::member_function>("member"_hs)
    +
    +
    .func<&my_type::member_function>("member"_hs)
    .custom<function_data>("tooltip");

    Once created, all meta objects offer a member function named custom to get the currently set value as a reference or as a pointer to an element:

    -
    const type_data &value = entt::resolve<my_type>().custom();
    +
    const type_data &value = entt::resolve<my_type>().custom();
    +
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:1506

    Note that the returned object performs an extra check in debug before converting to the requested type, so as to avoid subtle bugs.
    Only in the case of conversion to a pointer is this check safe and such that a null pointer is returned to inform the user of the failed attempt.

    Unregister types

    -

    A type registered with the reflection system can also be unregistered. This means unregistering all its data members, member functions, conversion functions and so on. However, base classes aren't unregistered as well, since they don't necessarily depend on it.
    +

    A type registered with the reflection system can also be unregistered. This means unregistering all its data members, member functions, conversion functions and so on. However, base classes are not unregistered as well, since they do not necessarily depend on it.
    Roughly speaking, unregistering a type means disconnecting all associated meta objects from it and making its identifier no longer available:

    -

    It's also possible to reset types by their unique identifiers:

    +
    +
    void meta_reset() noexcept
    Resets a type and all its parts.
    Definition factory.hpp:599
    +

    It is also possible to reset types by their unique identifiers:

    entt::meta_reset("my_type"_hs);
    -
    void meta_reset() noexcept
    Resets a type and all its parts.
    Definition factory.hpp:637
    -

    Finally, there exists a non-template overload of the meta_reset function that doesn't accept arguments and resets all meta types at once:

    +

    Finally, there exists a non-template overload of the meta_reset function that does not accept arguments and resets all meta types at once:

    A type can be re-registered later with a completely different name and form.

    @@ -536,28 +564,29 @@ Meta context

    All meta types and their parts are created at runtime and stored in a default context. This is obtained via a service locator as:

    static Service & value_or(Args &&...args)
    Returns a service if available or sets it from a fallback type.
    Definition locator.hpp:88
    -

    By itself, a context is an opaque object that the user cannot do much with. However, users can replace an existing context with another at any time:

    +

    By itself, a context is an opaque object that the user can do little with. However, users can replace an existing context with another at any time:

    entt::meta_context other{};
    std::swap(context, other);
    -

    This is useful for testing purposes or to define multiple context objects with different meta type to use as appropriate.

    -

    If replacing the default context isn't enough, EnTT also offers the ability to use multiple and externally managed contexts with the runtime reflection system.
    - For example, to create new meta types within a context other than the default one, simply pass it as an argument to the meta call:

    +

    This is useful for testing purposes or to define multiple context objects with different meta types to use as appropriate.

    +

    If replacing the default context is not enough, EnTT also offers the ability to use multiple and externally managed contexts with the runtime reflection system.
    + For example, to create new meta types within a context other than the default one, simply pass it as an argument to the meta_factory constructor:

    entt::meta_ctx context{};
    -
    auto factory = entt::meta<my_type>(context).type("reflected_type"_hs);
    +
    entt::meta_factory<my_type>{context}.type("reflected_type"_hs);
    Opaque meta context type.
    Definition context.hpp:34
    -

    By doing so, the new meta type isn't available in the default context but is usable by passing around the new context when needed, such as when creating a new meta_any object:

    +

    By doing so, the new meta type is not available in the default context but is usable by passing around the new context when needed, such as when creating a new meta_any object:

    entt::meta_any any{context, std::in_place_type<my_type>};
    -

    Similarly, to search for meta types in a context other than the default one, it's necessary to pass it to the resolve function:

    +

    Similarly, to search for meta types in a context other than the default one, it is necessary to pass it to the resolve function:

    entt::meta_type type = entt::resolve(context, "reflected_type"_hs)
    -

    More generally, when using externally managed contexts, it's always required to provide the system with the context to use, at least at the entry point.
    - For example, once the meta_type instant is obtained, it's no longer necessary to pass the context around as the meta type takes the information with it and eventually propagates it to all its parts.
    - On the other hand, it's necessary to instruct the library on where meta types are to be fetched when meta_anys and meta_handles are constructed, a factory created or a meta type resolved.

    +

    More generally, when using externally managed contexts, it is always required to provide the system with the context to use, at least at the entry point.
    + For example, once the meta_type instant is obtained, it is no longer necessary to pass the context around as the meta type takes the information with it and eventually propagates it to all its parts.
    + On the other hand, it is necessary to instruct the library on where meta types are to be fetched when meta_anys and meta_handles are constructed, a factory created or a meta type resolved.

    +
    diff --git a/md_docs_2md_2poly.html b/md_docs_2md_2poly.html index 749b3962a..ae6102e20 100644 --- a/md_docs_2md_2poly.html +++ b/md_docs_2md_2poly.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: poly + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: poly
    -

    +

    Table of Contents

      @@ -109,13 +122,13 @@ Other libraries
    • dyno: runtime polymorphism done right.
    • Poly: a class template that makes it easy to define a type-erasing polymorphic object wrapper.
    -

    The former is admittedly an experimental library, with many interesting ideas. I've some doubts about the usefulness of some feature in real world projects, but perhaps my lack of experience comes into play here. In my opinion, its only flaw is the API which I find slightly more cumbersome than other solutions.
    - The latter was undoubtedly a source of inspiration for this module, although I opted for different choices in the implementation of both the final API and some feature.

    +

    The former is admittedly an experimental library, with many interesting ideas. I have some doubts about the usefulness of some features in real world projects, but perhaps my lack of experience comes into play here. In my opinion, its only flaw is the API that I find slightly more cumbersome than other solutions.
    + The latter was undoubtedly a source of inspiration for this module. Although I opted for different choices in the implementation of both the final API and some features.

    Either way, the authors are gurus of the C++ community, people I only have to learn from.

    Concept and implementation

    The first thing to do to create a type-erasing polymorphic object wrapper (to use the terminology introduced by Eric Niebler) is to define a concept that types will have to adhere to.
    - For this purpose, the library offers a single class that supports both deduced and fully defined interfaces. Although having interfaces deduced automatically is convenient and allows users to write less code in most cases, it has some limitations and it's therefore useful to be able to get around the deduction by providing a custom definition for the static virtual table.

    + For this purpose, the library offers a single class that supports both deduced and fully defined interfaces. Although having interfaces deduced automatically is convenient and allows users to write less code in most cases, it has some limitations. It is therefore useful to be able to get around the deduction by providing a custom definition for the static virtual table.

    Once the interface is defined, a generic implementation is needed to fulfill the concept itself.
    Also in this case, the library allows customizations based on types or families of types, so as to be able to go beyond the generic case where necessary.

    @@ -129,8 +142,8 @@ Deduced interface

    // ...
    };
    -
    A class to use to push around lists of types, nothing more.
    -

    It's recognizable by the fact that it inherits from an empty type list.
    +

    A class to use to push around lists of types, nothing more.
    +

    It is recognizable by the fact that it inherits from an empty type list.
    Functions can also be const, accept any number of parameters and return a type other than void:

    struct Drawable: entt::type_list<> {
    template<typename Base>
    @@ -141,16 +154,16 @@ Deduced interface
    // ...
    };

    In this case, all parameters are passed to invoke after the reference to this and the return value is whatever the internal call returns.
    - As for invoke, this is a name that is injected into the concept through Base, from which one must necessarily inherit. Since it's also a dependent name, the this-> template form is unfortunately necessary due to the rules of the language. However, there also exists an alternative that goes through an external call:

    + As for invoke, this is a name that is injected into the concept through Base, from which one must necessarily inherit. Since it is also a dependent name, the this-> template form is unfortunately necessary due to the rules of the language. However, there also exists an alternative that goes through an external call:

    struct Drawable: entt::type_list<> {
    template<typename Base>
    struct type: Base {
    -
    void draw() const { entt::poly_call<0>(*this); }
    +
    void draw() const { entt::poly_call<0>(*this); }
    };
    // ...
    };
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    decltype(auto) poly_call(Poly &&self, Args &&...args)
    Shortcut for calling poly_base<Type>::invoke.
    Definition poly.hpp:173

    Once the concept is defined, users must provide a generic implementation of it in order to tell the system how any type can satisfy its requirements. This is done via an alias template within the concept itself.
    The index passed as a template parameter to either invoke or poly_call refers to how this alias is defined.

    @@ -159,7 +172,7 @@ Defined interface

    struct Drawable: entt::type_list<void()> {
    template<typename Base>
    struct type: Base {
    -
    void draw() { entt::poly_call<0>(*this); }
    +
    void draw() { entt::poly_call<0>(*this); }
    };
    // ...
    @@ -168,7 +181,7 @@ Defined interface
    struct Drawable: entt::type_list<bool(int) const> {
    template<typename Base>
    struct type: Base {
    -
    bool draw(int pt) const { return entt::poly_call<0>(*this, pt); }
    +
    bool draw(int pt) const { return entt::poly_call<0>(*this, pt); }
    };
    // ...
    @@ -181,20 +194,20 @@ Defined interface
  • Either by a class that exposes a member function with the same name and the same signature.
  • Or through a lambda that makes use of existing member functions from the interface itself.
  • -

    In other words, it's not possible to make use of functions not belonging to the interface, even if they're part of the types that fulfill the concept.
    - Similarly, it's not possible to deduce a function in the static virtual table with a function type different from that of the associated member function in the interface itself.

    +

    In other words, it is not possible to make use of functions not belonging to the interface, even if they are part of the types that fulfill the concept.
    + Similarly, it is not possible to deduce a function in the static virtual table with a function type different from that of the associated member function in the interface itself.

    Explicitly defining a static virtual table suppresses the deduction step and allows maximum flexibility when providing the implementation for a concept.

    Fulfill a concept

    -

    The impl alias template of a concept is used to define how it's fulfilled:

    +

    The impl alias template of a concept is used to define how it is fulfilled:

    struct Drawable: entt::type_list<> {
    // ...
    template<typename Type>
    };
    -
    A class to use to push around lists of constant values, nothing more.
    -

    In this case, it's stated that the draw method of a generic type is enough to satisfy the requirements of the Drawable concept.
    +

    A class to use to push around lists of constant values, nothing more.
    +

    In this case, it is stated that the draw method of a generic type is enough to satisfy the requirements of the Drawable concept.
    Both member functions and free functions are supported to fulfill concepts:

    template<typename Type>
    void print(Type &self) { self.print(); }
    @@ -205,48 +218,48 @@ Fulfill a concept
    template<typename Type>
    };
    -

    Likewise, as long as the parameter types and return type support conversions to and from those of the function type referenced in the static virtual table, the actual implementation may differ in its function type since it's erased internally.
    - Moreover, the self parameter isn't strictly required by the system and can be left out for free functions if not required.

    +

    Likewise, as long as the parameter types and return type support conversions to and from those of the function type referenced in the static virtual table, the actual implementation may differ in its function type since it is erased internally.
    + Moreover, the self parameter is not strictly required by the system and can be left out for free functions if not required.

    Refer to the inline documentation for more details.

    Inheritance

    -

    Concept inheritance is straightforward due to how poly looks like in EnTT. Therefore, it's quite easy to build hierarchies of concepts if necessary.
    +

    Concept inheritance is straightforward due to how poly looks like in EnTT. Therefore, it is quite easy to build hierarchies of concepts if necessary.
    The only constraint is that all concepts in a hierarchy must belong to the same family, that is, they must be either all deduced or all defined.

    For a deduced concept, inheritance is achieved in a few steps:

    struct DrawableAndErasable: entt::type_list<> {
    template<typename Base>
    struct type: typename Drawable::type<Base> {
    static constexpr auto base = Drawable::impl<Drawable::type<entt::poly_inspector>>::size;
    -
    void erase() { entt::poly_call<base + 0>(*this); }
    +
    void erase() { entt::poly_call<base + 0>(*this); }
    };
    template<typename Type>
    using impl = entt::value_list_cat_t<
    typename Drawable::impl<Type>,
    - +
    entt::value_list<&Type::erase>
    >;
    };
    -
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.
    +
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.

    The static virtual table is empty and must remain so.
    On the other hand, type no longer inherits from Base. Instead, it forwards its template parameter to the type exposed by the base class. Internally, the size of the static virtual table of the base class is used as an offset for the local indexes.
    Finally, by means of the value_list_cat_t utility, the implementation consists in appending the new functions to the previous list.

    As for a defined concept instead, the list of types is extended in a similar way to what is shown for the implementation of the above concept.
    - To do this, it's useful to declare a function that allows to convert a concept into its underlying type_list object:

    + To do this, it is useful to declare a function that allows to convert a concept into its underlying type_list object:

    template<typename... Type>
    entt::type_list<Type...> as_type_list(const entt::type_list<Type...> &);
    -

    The definition isn't strictly required, since the function is only used through a decltype as it follows:

    +

    The definition is not strictly required, since the function is only used through a decltype as it follows:

    struct DrawableAndErasable: entt::type_list_cat_t<
    decltype(as_type_list(std::declval<Drawable>())),
    entt::type_list<void()>> {
    // ...
    };
    -
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    +
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.

    Similar to above, type_list_cat_t is used to concatenate the underlying static virtual table with the new function types.
    Everything else is the same as already shown instead.

    Static polymorphism in the wild

    -

    Once the concept and implementation are defined, it's possible to use the poly class template to wrap instances that meet the requirements:

    -
    using drawable = entt::poly<Drawable>;
    +

    Once the concept and implementation are defined, it is possible to use the poly class template to wrap instances that meet the requirements:

    +
    using drawable = entt::poly<Drawable>;
    struct circle {
    void draw() { /* ... */ }
    @@ -263,27 +276,29 @@ Static polymorphism in the wild
    instance = square{};
    instance->draw();
    -
    Static polymorphism made simple and within everyone's reach.
    Definition poly.hpp:193
    +
    basic_poly< Concept > poly
    Alias declaration for the most common use case.
    Definition fwd.hpp:17

    This class offers a wide range of constructors, from the default one (which returns an uninitialized poly object) to the copy and move constructors, as well as the ability to create objects in-place.
    Among others, there is also a constructor that allows users to wrap unmanaged objects in a poly instance (either const or non-const ones):

    circle shape;
    drawable instance{std::in_place_type<circle &>, shape};
    -

    Similarly, it's possible to create non-owning copies of poly from an existing object:

    +

    Similarly, it is possible to create non-owning copies of poly from an existing object:

    drawable other = instance.as_ref();
    -

    In both cases, although the interface of the poly object doesn't change, it doesn't construct any element or take care of destroying the referenced objects.

    +

    In both cases, although the interface of the poly object does not change, it does not construct any element or take care of destroying the referenced objects.

    Note also how the underlying concept is accessed via a call to operator-> and not directly as instance.draw().
    This allows users to decouple the API of the wrapper from that of the concept. Therefore, where instance.data() invokes the data member function of the poly object, instance->data() maps directly to the functionality exposed by the underlying concept.

    Storage size and alignment requirement

    Under the hood, the poly class template makes use of entt::any. Therefore, it can take advantage of the possibility of defining at compile-time the size of the storage suitable for the small buffer optimization as well as the alignment requirements:

    entt::basic_poly<Drawable, sizeof(double[4]), alignof(double[4])>
    -

    The default size is sizeof(double[2]), which seems like a good compromise between a buffer that is too large and one unable to hold anything larger than an integer. The alignment requirement is optional and by default such that it's the most stringent (the largest) for any object whose size is at most equal to the one provided.
    - It's worth noting that providing a size of 0 (which is an accepted value in all respects) will force the system to dynamically allocate the contained objects in all cases.

    +
    Static polymorphism made simple and within everyone's reach.
    Definition poly.hpp:193
    +

    The default size is sizeof(double[2]), which seems like a good compromise between a buffer that is too large and one unable to hold anything larger than an integer. The alignment requirement is optional, and by default such that it is the most stringent (the largest) for any object whose size is at most equal to the one provided.
    + It is worth noting that providing a size of 0 (which is an accepted value in all respects) will force the system to dynamically allocate the contained objects in all cases.

    +
    diff --git a/md_docs_2md_2process.html b/md_docs_2md_2process.html index d00dd9c73..dfa875a8e 100644 --- a/md_docs_2md_2process.html +++ b/md_docs_2md_2process.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: cooperative scheduler + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: cooperative scheduler
    -

    +

    Table of Contents

      @@ -92,13 +105,13 @@ Introduction

      The process

      A typical task inherits from the process class template that stays true to the CRTP idiom. Moreover, derived classes specify what the intended type for elapsed times is.

      -

      A process should expose publicly the following member functions whether needed (note that it isn't required to define a function unless the derived class wants to override the default behavior):

      +

      A process should expose publicly the following member functions whether needed (note that it is not required to define a function unless the derived class wants to override the default behavior):

      • void update(Delta, void *);

        -

        This is invoked once per tick until a process is explicitly aborted or ends either with or without errors. Even though it's not mandatory to declare this member function, as a rule of thumb each process should at least define it to work properly. The void * parameter is an opaque pointer to user data (if any) forwarded directly to the process during an update.

        +

        This is invoked once per tick until a process is explicitly aborted or ends either with or without errors. Technically speaking, this member function is not strictly required. However, each process should at least define it to work properly. The void * parameter is an opaque pointer to user data (if any) forwarded directly to the process during an update.

      • void init();

        -

        This is invoked when the process joins the running queue of a scheduler. It happens usually as soon as the process is attached to the scheduler if it's a top level one, otherwise when it replaces its parent if it's a continuation.

        +

        This is invoked when the process joins the running queue of a scheduler. It happens usually when the process is attached to the scheduler if it is a top level one, or when it replaces its parent if it is a continuation.

      • void succeeded();

        This is invoked in case of success, immediately after an update and during the same tick.

        @@ -116,7 +129,7 @@ The process
        struct my_process: entt::process<my_process, std::uint32_t> {
        using delta_type = std::uint32_t;
        -
        my_process(delta_type delay)
        +
        my_process(delta_type delay)
        : remaining{delay}
        {}
        @@ -131,14 +144,13 @@ The process
        }
        private:
        -
        delta_type remaining;
        +
        delta_type remaining;
        };
        Base class for processes.
        Definition process.hpp:71
        -
        void succeed() noexcept
        Terminates a process with success if it's still alive.
        Definition process.hpp:123
        -
        constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
        Uses-allocator construction utility (waiting for C++20).
        Definition memory.hpp:219
        +
        void succeed() noexcept
        Terminates a process with success if it's still alive.
        Definition process.hpp:123

        Adaptor

        -

        Lambdas and functors can't be used directly with a scheduler because they aren't properly defined processes with managed life cycles.
        +

        Lambdas and functors cannot be used directly with a scheduler because they are not properly defined processes with managed life cycles.
        This class helps in filling the gap and turning lambdas and functors into full-featured processes usable by a scheduler.

        The function call operator has a signature similar to the one of the update function of a process but for the fact that it receives two extra callbacks to invoke whenever a process terminates with success or with an error:

        void(Delta delta, void *data, auto succeed, auto fail);
        @@ -150,40 +162,45 @@ Adaptor
      • fail is a function to call when a process terminates with errors.

      Both succeed and fail accept no parameters at all.

      -

      Note that usually users shouldn't worry about creating adaptors at all. A scheduler creates them internally each and every time a lambda or a functor is used as a process.

      +

      Note that usually users should not worry about creating adaptors at all. A scheduler creates them internally, each and every time a lambda or a functor is used as a process.

      The scheduler

      -

      A cooperative scheduler runs different processes and helps managing their life cycles.

      -

      Each process is invoked once per tick. If it terminates, it's removed automatically from the scheduler and it's never invoked again. Otherwise, it's a good candidate to run one more time the next tick.
      - A process can also have a child. In this case, the parent process is replaced with its child when it terminates and only if it returns with success. In case of errors, both the parent process and its child are discarded. This way, it's easy to create chain of processes to run sequentially.

      +

      A cooperative scheduler runs different processes and helps manage their life cycles.

      +

      Each process is invoked once per tick. If it terminates, it is removed automatically from the scheduler, and it is never invoked again. Otherwise, it is a good candidate to run one more time the next tick.
      + A process can also have a child. In this case, the parent process is replaced with its child when it terminates and only if it returns with success. In case of errors, both the parent process and its child are discarded. This way, it is easy to create a chain of processes to run sequentially.

      Using a scheduler is straightforward. To create it, users must provide only the type for the elapsed times and no arguments at all:

      Cooperative scheduler for processes.
      Definition scheduler.hpp:82

      Otherwise, the scheduler alias is also available for the most common cases. It uses std::uint32_t as a default type:

      -
      entt::scheduler scheduler;
      +
      entt::scheduler scheduler;
      +
      basic_scheduler<> scheduler
      Alias declaration for the most common use case.
      Definition fwd.hpp:16

      The class has member functions to query its internal data structures, like empty or size, as well as a clear utility to reset it to a clean state:

      // checks if there are processes still running
      -
      const auto empty = scheduler.empty();
      +
      const auto empty = scheduler.empty();
      // gets the number of processes still running
      -
      entt::scheduler::size_type size = scheduler.size();
      +
      entt::scheduler::size_type size = scheduler.size();
      // resets the scheduler to its initial state and discards all the processes
      -
      scheduler.clear();
      -
      std::size_t size_type
      Unsigned integer type.
      Definition scheduler.hpp:97
      -

      To attach a process to a scheduler there are mainly two ways:

      +
      scheduler.clear();
      +
      bool empty() const noexcept
      Returns true if at least a process is currently scheduled.
      +
      size_type size() const noexcept
      Number of processes currently scheduled.
      + +
      void clear()
      Discards all scheduled processes.
      +

      To attach a process to a scheduler, there are mainly two ways:

        -
      • If the process inherits from the process class template, it's enough to indicate its type and submit all the parameters required to construct it to the attach member function:

        -
        scheduler.attach<my_process>(1000u);
        +
      • If the process inherits from the process class template, it is enough to indicate its type and submit all the parameters required to construct it to the attach member function:

        +
        scheduler.attach<my_process>(1000u);
        +
        basic_scheduler & attach(Args &&...args)
        Schedules a process for the next tick.
      • -
      • Otherwise, in case of a lambda or a functor, it's enough to provide an instance of the class to the attach member function:

        -
        scheduler.attach([](auto...){ /* ... */ });
        +
      • Otherwise, in case of a lambda or a functor, it is enough to provide an instance of the class to the attach member function:

        +
        scheduler.attach([](auto...){ /* ... */ });

      In both cases, the scheduler is returned and its then member function can be used to create chains of processes to run sequentially.
      As a minimal example of use:

      // schedules a task in the form of a lambda function
      -
      scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
      +
      scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
      // ...
      })
      // appends a child in the form of another lambda function
      @@ -194,21 +211,24 @@ The scheduler
      .then<my_process>(1000u);

      To update a scheduler and therefore all its processes, the update member function is the way to go:

      // updates all the processes, no user data are provided
      -
      scheduler.update(delta);
      +
      scheduler.update(delta);
      // updates all the processes and provides them with custom data
      -
      scheduler.update(delta, &data);
      +
      scheduler.update(delta, &data);
      +
      void update(const delta_type delta, void *data=nullptr)
      Updates all scheduled processes.

      In addition to these functions, the scheduler offers an abort member function that is used to discard all the running processes at once:

      // aborts all the processes abruptly ...
      -
      scheduler.abort(true);
      +
      scheduler.abort(true);
      // ... or gracefully during the next tick
      -
      scheduler.abort();
      +
      scheduler.abort();
      +
      void abort(const bool immediate=false)
      Aborts all scheduled processes.
    +
    diff --git a/md_docs_2md_2reference.html b/md_docs_2md_2reference.html index 163c4080c..708558091 100644 --- a/md_docs_2md_2reference.html +++ b/md_docs_2md_2reference.html @@ -3,13 +3,15 @@ - + EnTT: Similar projects + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Similar projects
    -

    +

    Table of Contents

      @@ -86,12 +99,12 @@ Introduction

      There are many projects similar to EnTT, both open source and not.
      Some even borrowed some ideas from this library and expressed them in different languages.
      Others developed different architectures from scratch and therefore offer alternative solutions with their pros and cons.

      -

      If you know of other similar projects out there, feel free to open an issue or a PR and I'll be glad to add them to this page.
      +

      If you know of other similar projects out there, feel free to open an issue or a PR, and I will be glad to add them to this page.
      I hope the following lists can grow much more in the future.

      Similar projects

      -

      Below an incomplete list of similar projects that I've come across so far.
      - If some terms or designs aren't clear, I recommend referring to the ECS Back and Forth series for all the details.

      +

      Below an incomplete list of similar projects that I have come across so far.
      + If some terms or designs are not clear, I recommend referring to the ECS Back and Forth series for all the details.

      • C:
        • destral_ecs: a single-file ECS based on sparse sets.
        • @@ -101,20 +114,21 @@ Similar projects
      • C++:
          -
        • decs: a chunk based archetype ECS.
        • +
        • decs: a chunk-based archetype ECS.
        • ecst: a multithreaded compile-time ECS that uses sparse sets to keep track of entities in systems.
        • EntityX: a bitset based ECS that uses a single large matrix of components indexed with entities.
        • -
        • Gaia-ECS: a chunk based archetype ECS.
        • +
        • Gaia-ECS: a chunk-based archetype ECS.
        • Polypropylene: a hybrid solution between an ECS and dynamic mixins.
      • C#
        • Arch: a simple, fast and unity entities inspired archetype ECS with optional multithreading.
        • Entitas: the ECS framework for C# and Unity, where reactive systems were invented.
        • -
        • Friflo Engine ECS: an archetype ECS with focus on performance, cache locality and DX.
        • +
        • Fennecs: the little archetype ECS that loves you back.
        • +
        • Friflo ECS: an archetype ECS with focus on performance and minimal GC allocations.
        • LeoECS: simple lightweight C# Entity Component System framework.
        • Massive ECS: sparse set based ECS featuring rollbacks.
        • -
        • Svelto.ECS: a very interesting platform agnostic and table based ECS framework.
        • +
        • Svelto.ECS: a very interesting platform-agnostic and table-based ECS framework.
      • Go:
          @@ -123,7 +137,7 @@ Similar projects
        • Javascript:
          • @javelin/ecs: an archetype ECS in TypeScript.
          • -
          • ecsy: I haven't had the time to investigate the underlying design of ecsy but it looks cool anyway.
          • +
          • ecsy: I have not had the time to investigate the underlying design of ecsy but it looks cool anyway.
        • Perl:
            @@ -149,7 +163,8 @@ Similar projects
    +
    diff --git a/md_docs_2md_2resource.html b/md_docs_2md_2resource.html index 3401f8acd..b5ed8bec7 100644 --- a/md_docs_2md_2resource.html +++ b/md_docs_2md_2resource.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: resource management + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: resource management
    -

    +

    Table of Contents

      @@ -90,14 +103,14 @@ Table of Contents Introduction

      Resource management is usually one of the most critical parts of a game. Solutions are often tuned to the particular application. There exist several approaches and all of them are perfectly fine as long as they fit the requirements of the piece of software in which they are used.
      Examples are loading everything on start, loading on request, predictive loading, and so on.

      -

      EnTT doesn't pretend to offer a one-fits-all solution for the different cases.
      +

      EnTT does not pretend to offer a one-fits-all solution for the different cases.
      Instead, the library comes with a minimal, general purpose resource cache that might be useful in many cases.

      The resource, the loader and the cache

      Resource, loader and cache are the three main actors for the purpose.
      The resource is an image, an audio, a video or any other type:

      struct my_resource { const int value; };
      -

      The loader is a callable type the aim of which is to load a specific resource:

      +

    The loader is a callable type, the aim of which is to load a specific resource:

    struct my_loader final {
    using result_type = std::shared_ptr<my_resource>;
    @@ -119,19 +132,19 @@ The resource, the loader and the cache As a (very) trivial example, audio tracks can survive in most of the scenes of an application while meshes can be associated with a single scene only, then discarded when a player leaves it.

    Resource handle

    -

    Resources aren't returned directly to the caller. Instead, they are wrapped in a resource handle, an instance of the entt::resource class template.
    - For those who know the flyweight design pattern already, that's exactly what it is. To all others, this is the time to brush up on some notions instead.

    +

    Resources are not returned directly to the caller. Instead, they are wrapped in a resource handle, an instance of the entt::resource class template.
    + For those who know the flyweight design pattern already, that is exactly what it is. To all others, this is the time to brush up on some notions instead.

    A shared pointer could have been used as a resource handle. In fact, the default implementation mostly maps the interface of its standard counterpart and only adds a few things on top of it.
    However, the handle in EnTT is designed as a standalone class template. This is due to the fact that specializing a class in the standard library is often undefined behavior while having the ability to specialize the handle for one, more or all resource types could help over time.

    Loaders

    A loader is responsible for loading resources (quite obviously).
    - By default, it's just a callable object that forwards its arguments to the resource itself. That is, a passthrough type. All the work is demanded to the constructor(s) of the resource itself.
    + By default, it is just a callable object that forwards its arguments to the resource itself. That is, a passthrough type. All the work is demanded to the constructor(s) of the resource itself.
    Loaders also are fully customizable as expected.

    A custom loader is a class with at least one function call operator and a member type named result_type.
    - The loader isn't required to return a resource handle. As long as return_type is suitable for constructing a handle, that's fine.

    + The loader is not required to return a resource handle. As long as return_type is suitable for constructing a handle, that is fine.

    When using the default handle, it expects a resource type which is convertible to or suitable for constructing an std::shared_ptr<Type> (where Type is the actual resource type).
    - In other terms, the loader should return shared pointers to the given resource type. However, this isn't mandatory. Users can easily get around this constraint by specializing both the handle and the loader.

    + In other terms, the loader should return shared pointers to the given resource type. However, this is not mandatory. Users can easily get around this constraint by specializing both the handle and the loader.

    A cache forwards all its arguments to the loader if required. This means that loaders can also support tag dispatching to offer different loading policies:

    struct my_loader {
    using result_type = std::shared_ptr<my_resource>;
    @@ -157,8 +170,8 @@ The cache class

    The cache is the class that is asked to connect the dots.
    It loads the resources, stores them aside and returns handles as needed:

    Under the hood, a cache is nothing more than a map where the key value has type entt::id_type while the mapped value is whatever type its loader returns.
    - For this reason, it offers most of the functionalities a user would expect from a map, such as empty or size and so on. Similarly, it's an iterable type that also supports indexing by resource id:

    +

    Under the hood, a cache is nothing more than a map where the key value has type entt::id_type while the mapped value is whatever type its loader returns.
    + For this reason, it offers most of the functionalities a user would expect from a map, such as empty or size and so on. Similarly, it is an iterable type that also supports indexing by resource id:

    for(auto [id, res]: cache) {
    // ...
    }
    @@ -169,7 +182,7 @@ The cache class
    Basic resource handle.
    Definition resource.hpp:22

    Please, refer to the inline documentation for all the details about the other functions (such as contains or erase).

    Set aside the part of the API that this class shares with a map, it also adds something on top of it in order to address the most common requirements of a resource cache.
    - In particular, it doesn't have an emplace member function which is replaced by load and force_load instead (where the former loads a new resource only if not present while the second triggers a forced loading in any case):

    + In particular, it does not have an emplace member function which is replaced by load and force_load instead (where the former loads a new resource only if not present while the second triggers a forced loading in any case):

    auto ret = cache.load("resource/id"_hs);
    // true only if the resource was not already present
    @@ -179,14 +192,15 @@ The cache class
    entt::resource<my_resource> res = ret.first->second;

    Note that the hashed string is used for convenience in the example above.
    Resource identifiers are nothing more than integral values. Therefore, plain numbers as well as non-class enum value are accepted.

    -

    It's worth mentioning that the iterators of a cache as well as its indexing operators return resource handles rather than instances of the mapped type.
    - Since the cache has no control over the loader and a resource isn't required to also be convertible to bool, these handles can be invalid. This usually means an error in the user logic but it may also be an expected event.
    - It's therefore recommended to verify handles validity with a check in debug (for example, when loading) or an appropriate logic in retail.

    +

    It is worth mentioning that the iterators of a cache as well as its indexing operators return resource handles rather than instances of the mapped type.
    + Since the cache has no control over the loader and a resource is not required to also be convertible to bool, these handles can be invalid. This usually means an error in the user logic, but it may also be an expected event.
    + It is therefore recommended to verify handles validity with a check in debug (for example, when loading) or an appropriate logic in retail.

    +
    diff --git a/md_docs_2md_2signal.html b/md_docs_2md_2signal.html index 686a8b30d..d9f5e4be5 100644 --- a/md_docs_2md_2signal.html +++ b/md_docs_2md_2signal.html @@ -3,13 +3,15 @@ - + EnTT: Crash Course: events, signals and everything in between + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Crash Course: events, signals and everything in between
    -

    +

    Table of Contents

      @@ -96,13 +109,13 @@ Table of Contents Introduction

      Signals are more often than not a core part of games and software architectures in general.
      They help to decouple the various parts of a system while allowing them to communicate with each other somehow.

      -

      The so called modern C++ comes with a tool that can be useful in this regard, the std::function. As an example, it can be used to create delegates.
      - However, there is no guarantee that an std::function doesn't perform allocations under the hood and this could be problematic sometimes. Furthermore, it solves a problem but may not adapt well to other requirements that may arise from time to time.

      -

      In case that the flexibility and power of an std::function isn't required or if the price to pay for them is too high, EnTT offers a complete set of lightweight classes to solve the same and many other problems.

      +

      The so-called modern C++ comes with a tool that can be useful in this regard, the std::function. As an example, it can be used to create delegates.
      + However, there is no guarantee that an std::function does not perform allocations under the hood and this could be problematic sometimes. Furthermore, it solves a problem but may not adapt well to other requirements that may arise from time to time.

      +

      In case that the flexibility and power of an std::function is not required or if the price to pay for them is too high, EnTT offers a complete set of lightweight classes to solve the same and many other problems.

      Delegate

      A delegate can be used as a general purpose invoker with no memory overhead for free functions, lambdas and members provided along with an instance on which to invoke them.
      - It doesn't claim to be a drop-in replacement for an std::function, so don't expect to use it whenever an std::function fits well. That said, it's most likely even a better fit than an std::function in a lot of cases, so expect to use it quite a lot anyway.

      + It does not claim to be a drop-in replacement for an std::function, so do not expect to use it whenever an std::function fits well. That said, it is most likely even a better fit than an std::function in a lot of cases, so expect to use it quite a lot anyway.

      The interface is trivial. It offers a default constructor to create empty delegates:

      entt::delegate<int(int)> delegate{};
      Basic delegate implementation.
      Definition delegate.hpp:51
      @@ -123,7 +136,7 @@ Delegate
      delegate.connect<&my_struct::f>(instance);
      delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
      Deduction guide.

      The delegate class also accepts data members, if needed. In this case, the function type of the delegate is such that the parameter list is empty and the value of the data member is at least convertible to the return type.

      -

      Free functions having type equivalent to void(T &, args...) are accepted as well. The first argument T & is considered a payload and the function will receive it back every time it's invoked. In other terms, this works just fine with the above definition:

      +

      Free functions having type equivalent to void(T &, args...) are accepted as well. The first argument T & is considered a payload, and the function will receive it back every time it is invoked. In other terms, this works just fine with the above definition:

      void g(const char &c, int i) { /* ... */ }
      const char c = 'c';
      @@ -136,34 +149,34 @@ Delegate
      delegate(42);

      Where the function type of the delegate is void(int) as above. It goes without saying that the extra arguments are silently discarded internally. This is a nice-to-have feature in a lot of cases, as an example when the delegate class is used as a building block of a signal-slot system.
      In fact, this filtering works both ways. The class tries to pass its first count arguments first, then the last count. Watch out for conversion rules if in doubt when connecting a listener!
      - Arbitrary functions that pull random arguments from the delegate list aren't supported instead. Other feature were preferred, such as support for functions with compatible argument lists although not equal to those of the delegate.

      + Arbitrary functions that pull random arguments from the delegate list are not supported instead. Other features were preferred, such as support for functions with compatible argument lists although not equal to those of the delegate.

      To create and initialize a delegate at once, there are a few specialized constructors. Because of the rules of the language, the listener is provided by means of the entt::connect_arg variable template:

      -
      -
      constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
      Uses-allocator construction utility (waiting for C++20).
      Definition memory.hpp:219
      -

      Aside connect, a disconnect counterpart isn't provided. Instead, there exists a reset member function to use to clear a delegate.
      +

      +
      constexpr connect_arg_t< Candidate > connect_arg
      Constant of type connect_arg_t used to disambiguate calls.
      Definition fwd.hpp:42
      +

      Aside connect, a disconnect counterpart is not provided. Instead, there exists a reset member function to use to clear a delegate.
      To know if a delegate is empty, it can be used explicitly in every conditional statement:

      if(delegate) {
      // ...
      }

      Finally, to invoke a delegate, the function call operator is the way to go as already shown in the examples above:

      auto ret = delegate(42);
      -

      In all cases, listeners don't have to strictly follow the signature of the delegate. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given result type, everything works just fine.

      -

      As a side note, members of classes may or may not be associated with instances. If they are not, the first argument of the function type must be that of the class on which the members operate and an instance of this class must obviously be passed when invoking the delegate:

      +

    In all cases, listeners do not have to strictly follow the signature of the delegate. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given result type, everything works just fine.

    +

    As a side note, members of classes may or may not be associated with instances. If they are not, the first argument of the function type must be that of the class on which the members operate, and an instance of this class must obviously be passed when invoking the delegate:

    entt::delegate<void(my_struct &, int)> delegate;
    delegate.connect<&my_struct::f>();
    my_struct instance;
    delegate(instance, 42);
    -

    In this case, it's not possible to deduce the function type since the first argument doesn't necessarily have to be a reference (for example, it can be a pointer, as well as a const reference).
    +

    In this case, it is not possible to deduce the function type since the first argument does not necessarily have to be a reference (for example, it can be a pointer, as well as a const reference).
    Therefore, the function type must be declared explicitly for unbound members.

    Runtime arguments

    The delegate class is meant to be used primarily with template arguments. However, as a consequence of its design, it also offers minimal support for runtime arguments.
    - When used like this, some features aren't supported though. In particular:

    + When used like this, some features are not supported though. In particular:

      -
    • Curried functions aren't accepted.
    • -
    • Functions with an argument list that differs from that of the delegate aren't supported.
    • -
    • Return type and types of arguments must coincide with those of the delegate and being at least convertible isn't enough anymore.
    • +
    • Curried functions are not accepted.
    • +
    • Functions with an argument list that differs from that of the delegate are not supported.
    • +
    • Return type and types of arguments must coincide with those of the delegate and being at least convertible is not enough anymore.

    Moreover, for a given function type Ret(Args...), the signature of the functions connected at runtime must necessarily be Ret(const void *, Args...).

    Runtime arguments can be passed both to the constructor of a delegate and to the connect member function. An optional parameter is also accepted in both cases. This argument is used to pass arbitrary user data back and forth as a const void * upon invocation.
    @@ -180,8 +193,8 @@ Runtime arguments Invoking a delegate built in this way follows the same rules as previously explained.

    Lambda support

    -

    In general, the delegate class doesn't fully support lambda functions in all their nuances. The reason is pretty simple: a delegate isn't a drop-in replacement for an std::function. Instead, it tries to overcome the problems with the latter.
    - That being said, non-capturing lambda functions are supported, even though some features aren't available in this case.

    +

    In general, the delegate class does not fully support lambda functions in all their nuances. The reason is pretty simple: a delegate is not a drop-in replacement for an std::function. Instead, it tries to overcome the problems with the latter.
    + That being said, non-capturing lambda functions are supported, even though some features are not available in this case.

    This is a logical consequence of the support for connecting functions at runtime. Therefore, lambda functions undergo the same rules and limitations.
    In fact, since non-capturing lambda functions decay to pointers to functions, they can be used with a delegate as if they were normal functions with optional payload:

    my_struct instance;
    @@ -195,7 +208,7 @@ Lambda support
    delegate.connect([](const void *ptr, int value) {
    return static_cast<const my_struct *>(ptr)->f(value);
    }, &instance);
    -

    As above, the first parameter (const void *) isn't part of the function type of the delegate and is used to dispatch arbitrary user data back and forth. In other terms, the function type of the delegate above is int(int).

    +

    As above, the first parameter (const void *) is not part of the function type of the delegate and is used to dispatch arbitrary user data back and forth. In other terms, the function type of the delegate above is int(int).

    Raw access

    While not recommended, a delegate also allows direct access to the stored callable function target and underlying data, if any.
    @@ -206,12 +219,12 @@ Raw access Another possible (and meaningful) use of this feature is that of identifying a particular delegate through its descriptive traits instead.

    Signals

    -

    Signal handlers work with references to classes, function pointers and pointers to members. Listeners can be any kind of objects and users are in charge of connecting and disconnecting them from a signal to avoid crashes due to different lifetimes. On the other side, performance shouldn't be affected that much by the presence of such a signal handler.
    - Signals make use of delegates internally and therefore they undergo the same rules and offer similar functionalities. It may be a good idea to consult the documentation of the delegate class for further information.

    +

    Signal handlers work with references to classes, function pointers, and pointers to members. Listeners can be any kind of objects, and users are in charge of connecting and disconnecting them from a signal to avoid crashes due to different lifetimes. On the other side, performance should not be affected that much by the presence of such a signal handler.
    + Signals make use of delegates internally, and therefore they undergo the same rules and offer similar functionalities. It may be a good idea to consult the documentation of the delegate class for further information.

    A signal handler is can be used as a private data member without exposing any publish functionality to the clients of a class.
    The basic idea is to impose a clear separation between the signal itself and the sink class, that is a tool to be used to connect and disconnect listeners on the fly.

    The API of a signal handler is straightforward. If a collector is supplied to the signal when something is published, all the values returned by its listeners are literally collected and used later by the caller. Otherwise, the class works just like a plain signal that emits events from time to time.
    - To create instances of signal handlers it's sufficient to provide the type of function to which they refer:

    + To create instances of signal handlers it is sufficient to provide the type of function to which they refer:

    entt::sigh<void(int, char)> signal;
    Unmanaged signal handler.
    Definition fwd.hpp:25

    Signals offer all the basic functionalities required to know how many listeners they contain (size) or if they contain at least a listener (empty), as well as a function to use to swap handlers (swap).

    @@ -245,7 +258,7 @@ Signals
    sink.disconnect();
    Sink class.
    Definition fwd.hpp:22
    sink(sigh< Ret(Args...), Allocator > &) -> sink< sigh< Ret(Args...), Allocator > >
    Deduction guide.
    -

    As shown above, listeners don't have to strictly follow the signature of the signal. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given return type, everything works just fine.
    +

    As shown above, listeners do not have to strictly follow the signature of the signal. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given return type, everything works just fine.
    In all cases, the connect member function returns by default a connection object to be used as an alternative to break a connection by means of its release member function.
    A scoped_connection can also be created from a connection. In this case, the link is broken automatically as soon as the object goes out of scope.

    Once listeners are attached (or even if there are no listeners at all), events and data in general are published through a signal by means of the publish member function:

    @@ -267,7 +280,7 @@ Signals
    assert(vec[0] == 0);
    assert(vec[1] == 1);
    -

    A collector must expose a function operator that accepts as an argument a type to which the return type of the listeners can be converted. Moreover, it can optionally return a boolean value that is true to stop collecting data, false otherwise. This way one can avoid calling all the listeners in case it isn't necessary.
    +

    A collector must expose a function operator that accepts as an argument a type to which the return type of the listeners can be converted. Moreover, it can optionally return a boolean value that is true to stop collecting data, false otherwise. This way one can avoid calling all the listeners in case it is not necessary.
    Functors can also be used in place of a lambda. Since the collector is copied when invoking the collect member function, std::ref is the way to go in this case:

    struct my_collector {
    std::vector<int> vec{};
    @@ -280,16 +293,15 @@ Signals
    // ...
    -
    my_collector collector;
    +
    my_collector collector;
    signal.collect(std::ref(collector));
    -
    constexpr basic_collector collector
    Variable template used to ease the definition of collectors.
    Definition observer.hpp:108

    Event dispatcher

    The event dispatcher class allows users to trigger immediate events or to queue and publish them all together later.
    - This class lazily instantiates its queues. Therefore, it's not necessary to announce the event types in advance:

    + This class lazily instantiates its queues. Therefore, it is not necessary to announce the event types in advance:

    // define a general purpose dispatcher
    -
    entt::dispatcher dispatcher{};
    -
    Basic dispatcher implementation.
    +
    entt::dispatcher dispatcher{};
    +
    basic_dispatcher<> dispatcher
    Alias declaration for the most common use case.
    Definition fwd.hpp:28

    A listener registered with a dispatcher is such that its type offers one or more member functions that take arguments of type Event & for any type of event, regardless of the return value.
    These functions are linked directly via connect to a sink:

    struct an_event { int value; };
    @@ -303,36 +315,40 @@ Event dispatcher
    // ...
    listener listener;
    -
    dispatcher.sink<an_event>().connect<&listener::receive>(listener);
    -
    dispatcher.sink<another_event>().connect<&listener::method>(listener);
    -
    basic_dispatcher<> dispatcher
    Alias declaration for the most common use case.
    Definition fwd.hpp:28
    +
    dispatcher.sink<an_event>().connect<&listener::receive>(listener);
    +
    dispatcher.sink<another_event>().connect<&listener::method>(listener);
    +
    auto sink(const id_type id=type_hash< Type >::value())
    Returns a sink object for the given event and queue.

    Note that connecting listeners within event handlers can result in undefined behavior.
    The disconnect member function is used to remove one listener at a time or all of them at once:

    -
    dispatcher.sink<an_event>().disconnect<&listener::receive>(listener);
    -
    dispatcher.sink<another_event>().disconnect(&listener);
    +
    dispatcher.sink<an_event>().disconnect<&listener::receive>(listener);
    +
    dispatcher.sink<another_event>().disconnect(&listener);

    The trigger member function serves the purpose of sending an immediate event to all the listeners registered so far:

    -
    dispatcher.trigger(an_event{42});
    -
    dispatcher.trigger<another_event>();
    -

    Listeners are invoked immediately, order of execution isn't guaranteed. This method can be used to push around urgent messages like an is terminating notification on a mobile app.

    +
    dispatcher.trigger(an_event{42});
    +
    dispatcher.trigger<another_event>();
    +
    void trigger(Type &&value={})
    Triggers an immediate event of a given type.
    +

    Listeners are invoked immediately, order of execution is not guaranteed. This method can be used to push around urgent messages like an is terminating notification on a mobile app.

    On the other hand, the enqueue member function queues messages together and helps to maintain control over the moment they are sent to listeners:

    -
    dispatcher.enqueue<an_event>(42);
    -
    dispatcher.enqueue(another_event{});
    +
    dispatcher.enqueue<an_event>(42);
    +
    dispatcher.enqueue(another_event{});
    +
    void enqueue(Args &&...args)
    Enqueues an event of the given type.

    Events are stored aside until the update member function is invoked:

    // emits all the events of the given type at once
    -
    dispatcher.update<an_event>();
    +
    dispatcher.update<an_event>();
    // emits all the events queued so far at once
    -
    dispatcher.update();
    +
    dispatcher.update();
    +
    void update(const id_type id=type_hash< Type >::value())
    Delivers all the pending events of a given queue.

    This way users can embed the dispatcher in a loop and literally dispatch events once per tick to their systems.

    Named queues

    All queues within a dispatcher are associated by default with an event type and then retrieved from it.
    - However, it's possible to create queues with different names (and therefore also multiple queues for a single type). In fact, more or less all functions also take an additional parameter. As an example:

    -
    dispatcher.sink<an_event>("custom"_hs).connect<&listener::receive>(listener);
    + However, it is possible to create queues with different names (and therefore also multiple queues for a single type). In fact, more or less all functions also take an additional parameter. As an example:

    +
    dispatcher.sink<an_event>("custom"_hs).connect<&listener::receive>(listener);

    In this case, the term name is misused as these are actual numeric identifiers of type id_type.
    An exception to this rule is the enqueue function. There is no additional parameter for it but rather a different function:

    -
    dispatcher.enqueue_hint<an_event>("custom"_hs, 42);
    -

    This is mainly due to the template argument deduction rules and unfortunately there is no real (elegant) way to avoid it.

    +
    dispatcher.enqueue_hint<an_event>("custom"_hs, 42);
    +
    void enqueue_hint(const id_type id, Args &&...args)
    Enqueues an event of the given type.
    +

    This is mainly due to the template argument deduction rules, and there is no real (elegant) way to avoid it.

    Event emitter

    A general purpose event emitter thought mainly for those cases where it comes to working with asynchronous stuff.
    @@ -341,7 +357,7 @@ Event emitter

    struct my_emitter: emitter<my_emitter> {
    // ...
    }
    -

    Handlers for the different events are created internally on the fly. It's not required to specify in advance the full list of accepted events.
    +

    Handlers for the different events are created internally on the fly. It is not required to specify in advance the full list of accepted events.
    Moreover, whenever an event is published, an emitter also passes a reference to itself to its listeners.

    To create new instances of an emitter, no arguments are required:

    my_emitter emitter{};
    @@ -369,12 +385,13 @@ Event emitter
    // ...
    }

    This class introduces a nice-to-have model based on events and listeners.
    - More in general, it's a handy tool when the derived classes wrap asynchronous operations but it's not limited to such uses.

    + More in general, it is a handy tool when the derived classes wrap asynchronous operations, but it is not limited to such uses.

    +
    diff --git a/md_docs_2md_2unreal.html b/md_docs_2md_2unreal.html index a64752c97..1f7fa8ba7 100644 --- a/md_docs_2md_2unreal.html +++ b/md_docs_2md_2unreal.html @@ -3,13 +3,15 @@ - + EnTT: EnTT and Unreal Engine + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    EnTT and Unreal Engine
    -

    +

    Table of Contents

      @@ -85,7 +98,7 @@ Table of Contents

      Enable Cpp17

      -

      ‍Skip this part if you are working with UE5, Since UE5 uses cpp17 by default.

      +

      Skip this part if you are working with UE5, Since UE5 uses cpp17 by default.

      As of writing (Unreal Engine v4.25), the default C++ standard of Unreal Engine is C++14.
      On the other hand, note that EnTT requires C++17 to compile. To enable it, in the main module of the project there should be a <Game Name>.Build.cs file, the constructor of which must contain the following lines:

      @@ -93,12 +106,12 @@ Enable Cpp17
      PrivatePCHHeaderFile = "<PCH filename>.h";
      CppStandard = CppStandardVersion.Cpp17;

    Replace <PCH filename>.h with the name of the already existing PCH header file, if any.
    - In case the project doesn't already contain a file of this type, it's possible to create one with the following content:

    + In case the project does not already contain a file of this type, it is possible to create one with the following content:

    #pragma once
    #include "CoreMinimal.h"

    Remember to remove any old PCHUsage = <...> line that was previously there. At this point, C++17 support should be in place.
    Try to compile the project to ensure it works as expected before following further steps.

    -

    Note that updating a project to C++17 doesn't necessarily mean that the IDE in use will also start to recognize its syntax.
    +

    Note that updating a project to C++17 does not necessarily mean that the IDE in use will also start to recognize its syntax.
    If the plan is to use C++17 in the project too, check the specific instructions for the IDE in use.

    EnTT as a third party module

    @@ -116,7 +129,7 @@ EnTT as a third party module
    | EnTT.Build.cs
    |
    \---entt (GitHub repository content inside)
    -

    To make this happen, create the folder ThirdParty under Source if it doesn't exist already. Then, add an EnTT folder under ThirdParty.
    +

    To make this happen, create the folder ThirdParty under Source if it does not exist already. Then, add an EnTT folder under ThirdParty.
    Within the latter, create a new file EnTT.Build.cs with the following content:

    using System.IO;
    using UnrealBuildTool;
    @@ -142,7 +155,8 @@ Include EnTT
    +
    diff --git a/memory_8hpp_source.html b/memory_8hpp_source.html index 0d0fb850d..08868ed43 100644 --- a/memory_8hpp_source.html +++ b/memory_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/memory.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    memory.hpp
    @@ -94,92 +102,92 @@ $(function() { codefold.init(0); });
    9#include "../config/config.h"
    10
    11namespace entt {
    -
    12
    +
    12
    19template<typename Type>
    -
    20[[nodiscard]] constexpr auto to_address(Type &&ptr) noexcept {
    +
    20[[nodiscard]] constexpr auto to_address(Type &&ptr) noexcept {
    21 if constexpr(std::is_pointer_v<std::decay_t<Type>>) {
    -
    22 return ptr;
    +
    22 return ptr;
    23 } else {
    -
    24 return to_address(std::forward<Type>(ptr).operator->());
    +
    24 return to_address(std::forward<Type>(ptr).operator->());
    25 }
    26}
    -
    27
    +
    27
    34template<typename Allocator>
    -
    35constexpr void propagate_on_container_copy_assignment([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    +
    35constexpr void propagate_on_container_copy_assignment([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    36 if constexpr(std::allocator_traits<Allocator>::propagate_on_container_copy_assignment::value) {
    -
    37 lhs = rhs;
    +
    37 lhs = rhs;
    38 }
    39}
    -
    40
    +
    40
    47template<typename Allocator>
    -
    48constexpr void propagate_on_container_move_assignment([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    +
    48constexpr void propagate_on_container_move_assignment([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    49 if constexpr(std::allocator_traits<Allocator>::propagate_on_container_move_assignment::value) {
    -
    50 lhs = std::move(rhs);
    +
    50 lhs = std::move(rhs);
    51 }
    52}
    -
    53
    +
    53
    60template<typename Allocator>
    -
    61constexpr void propagate_on_container_swap([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    +
    61constexpr void propagate_on_container_swap([[maybe_unused]] Allocator &lhs, [[maybe_unused]] Allocator &rhs) noexcept {
    62 if constexpr(std::allocator_traits<Allocator>::propagate_on_container_swap::value) {
    63 using std::swap;
    -
    64 swap(lhs, rhs);
    +
    64 swap(lhs, rhs);
    65 } else {
    -
    66 ENTT_ASSERT_CONSTEXPR(lhs == rhs, "Cannot swap the containers");
    +
    66 ENTT_ASSERT_CONSTEXPR(lhs == rhs, "Cannot swap the containers");
    67 }
    68}
    -
    69
    +
    69
    74template<typename Allocator>
    -
    75struct allocation_deleter: private Allocator {
    +
    75struct allocation_deleter: private Allocator {
    77 using allocator_type = Allocator;
    79 using pointer = typename std::allocator_traits<Allocator>::pointer;
    -
    80
    +
    80
    -
    85 constexpr allocation_deleter(const allocator_type &alloc) noexcept(std::is_nothrow_copy_constructible_v<allocator_type>)
    -
    86 : Allocator{alloc} {}
    +
    85 constexpr allocation_deleter(const allocator_type &alloc) noexcept(std::is_nothrow_copy_constructible_v<allocator_type>)
    +
    86 : Allocator{alloc} {}
    -
    87
    +
    87
    -
    92 constexpr void operator()(pointer ptr) noexcept(std::is_nothrow_destructible_v<typename allocator_type::value_type>) {
    +
    92 constexpr void operator()(pointer ptr) noexcept(std::is_nothrow_destructible_v<typename allocator_type::value_type>) {
    93 using alloc_traits = std::allocator_traits<Allocator>;
    -
    94 alloc_traits::destroy(*this, to_address(ptr));
    -
    95 alloc_traits::deallocate(*this, ptr, 1u);
    +
    94 alloc_traits::destroy(*this, to_address(ptr));
    +
    95 alloc_traits::deallocate(*this, ptr, 1u);
    96 }
    97};
    -
    98
    -
    108template<typename Type, typename Allocator, typename... Args>
    +
    98
    +
    108template<typename Type, typename Allocator, typename... Args>
    -
    109ENTT_CONSTEXPR auto allocate_unique(Allocator &allocator, Args &&...args) {
    +
    109ENTT_CONSTEXPR auto allocate_unique(Allocator &allocator, Args &&...args) {
    110 static_assert(!std::is_array_v<Type>, "Array types are not supported");
    111
    -
    112 using alloc_traits = typename std::allocator_traits<Allocator>::template rebind_traits<Type>;
    +
    112 using alloc_traits = typename std::allocator_traits<Allocator>::template rebind_traits<Type>;
    113 using allocator_type = typename alloc_traits::allocator_type;
    114
    -
    115 allocator_type alloc{allocator};
    -
    116 auto ptr = alloc_traits::allocate(alloc, 1u);
    +
    115 allocator_type alloc{allocator};
    +
    116 auto ptr = alloc_traits::allocate(alloc, 1u);
    117
    118 ENTT_TRY {
    -
    119 alloc_traits::construct(alloc, to_address(ptr), std::forward<Args>(args)...);
    +
    119 alloc_traits::construct(alloc, to_address(ptr), std::forward<Args>(args)...);
    120 }
    121 ENTT_CATCH {
    -
    122 alloc_traits::deallocate(alloc, ptr, 1u);
    +
    122 alloc_traits::deallocate(alloc, ptr, 1u);
    123 ENTT_THROW;
    124 }
    125
    -
    126 return std::unique_ptr<Type, allocation_deleter<allocator_type>>{ptr, alloc};
    +
    126 return std::unique_ptr<Type, allocation_deleter<allocator_type>>{ptr, alloc};
    127}
    -
    128
    +
    128
    130namespace internal {
    131
    132template<typename Type>
    @@ -235,24 +243,25 @@ $(function() { codefold.init(0); });
    182};
    183
    184} // namespace internal
    -
    200template<typename Type, typename Allocator, typename... Args>
    +
    186
    +
    200template<typename Type, typename Allocator, typename... Args>
    -
    201constexpr auto uses_allocator_construction_args(const Allocator &allocator, Args &&...args) noexcept {
    -
    202 return internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...);
    +
    201constexpr auto uses_allocator_construction_args(const Allocator &allocator, Args &&...args) noexcept {
    +
    202 return internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...);
    203}
    -
    204
    -
    218template<typename Type, typename Allocator, typename... Args>
    +
    204
    +
    218template<typename Type, typename Allocator, typename... Args>
    -
    219constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args) {
    -
    220 return std::make_from_tuple<Type>(internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...));
    +
    219constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args) {
    +
    220 return std::make_from_tuple<Type>(internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...));
    221}
    -
    222
    -
    237template<typename Type, typename Allocator, typename... Args>
    +
    222
    +
    237template<typename Type, typename Allocator, typename... Args>
    -
    238constexpr Type *uninitialized_construct_using_allocator(Type *value, const Allocator &allocator, Args &&...args) {
    -
    239 return std::apply([value](auto &&...curr) { return ::new(value) Type(std::forward<decltype(curr)>(curr)...); }, internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...));
    +
    238constexpr Type *uninitialized_construct_using_allocator(Type *value, const Allocator &allocator, Args &&...args) {
    +
    239 return std::apply([value](auto &&...curr) { return ::new(value) Type(std::forward<decltype(curr)>(curr)...); }, internal::uses_allocator_construction<Type>::args(allocator, std::forward<Args>(args)...));
    240}
    241
    @@ -262,14 +271,13 @@ $(function() { codefold.init(0); });
    EnTT default namespace.
    Definition dense_map.hpp:22
    constexpr void propagate_on_container_swap(Allocator &lhs, Allocator &rhs) noexcept
    Utility function to design allocation-aware containers.
    Definition memory.hpp:61
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs) noexcept
    Swaps two compressed pair objects.
    constexpr void propagate_on_container_move_assignment(Allocator &lhs, Allocator &rhs) noexcept
    Utility function to design allocation-aware containers.
    Definition memory.hpp:48
    constexpr Type * uninitialized_construct_using_allocator(Type *value, const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:238
    -
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
    Swaps two compressed pair objects.
    constexpr auto uses_allocator_construction_args(const Allocator &allocator, Args &&...args) noexcept
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:201
    constexpr auto allocate_unique(Allocator &allocator, Args &&...args)
    Allows std::unique_ptr to use allocators (waiting for C++20).
    Definition memory.hpp:109
    constexpr void propagate_on_container_copy_assignment(Allocator &lhs, Allocator &rhs) noexcept
    Utility function to design allocation-aware containers.
    Definition memory.hpp:35
    constexpr auto to_address(Type &&ptr) noexcept
    Unwraps fancy pointers, does nothing otherwise (waiting for C++20).
    Definition memory.hpp:20
    -
    Deleter for allocator-aware unique pointers (waiting for C++20).
    Definition memory.hpp:75
    typename std::allocator_traits< Allocator >::pointer pointer
    Pointer type.
    Definition memory.hpp:79
    constexpr allocation_deleter(const allocator_type &alloc) noexcept(std::is_nothrow_copy_constructible_v< allocator_type >)
    Inherited constructors.
    Definition memory.hpp:85
    constexpr void operator()(pointer ptr) noexcept(std::is_nothrow_destructible_v< typename allocator_type::value_type >)
    Destroys the pointed object and deallocates its memory.
    Definition memory.hpp:92
    @@ -277,7 +285,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/menu.js b/menu.js index 717761d01..0fd1e9901 100644 --- a/menu.js +++ b/menu.js @@ -22,7 +22,7 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { function makeTree(data,relPath) { let result=''; if ('children' in data) { @@ -91,7 +91,7 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { let prevWidth = 0; if ($mainMenuState.length) { const initResizableIfExists = function() { - if (typeof initResizable==='function') initResizable(); + if (typeof initResizable==='function') initResizable(treeview); } // animate mobile menu $mainMenuState.change(function() { diff --git a/meta_2fwd_8hpp_source.html b/meta_2fwd_8hpp_source.html index 3cfa91a19..d0b9ec563 100644 --- a/meta_2fwd_8hpp_source.html +++ b/meta_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -88,32 +96,39 @@ $(function() { codefold.init(0); });
    3
    4namespace entt {
    5
    -
    6class meta_sequence_container;
    +
    7
    -
    8class meta_associative_container;
    +
    9
    -
    10class meta_any;
    +
    10class meta_any;
    11
    -
    12struct meta_handle;
    +
    12struct meta_handle;
    13
    -
    14struct meta_prop;
    +
    14struct meta_custom;
    15
    -
    16struct meta_custom;
    +
    16struct meta_data;
    17
    -
    18struct meta_data;
    +
    18struct meta_func;
    19
    -
    20struct meta_func;
    +
    20class meta_type;
    21
    -
    22class meta_type;
    +
    22} // namespace entt
    23
    -
    24} // namespace entt
    -
    25
    -
    26#endif
    +
    24#endif
    +
    Opaque wrapper for values of any type.
    Definition meta.hpp:166
    +
    Proxy object for associative containers.
    Definition meta.hpp:94
    +
    Proxy object for sequence containers.
    Definition meta.hpp:31
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    Opaque wrapper for user defined data of any type.
    Definition meta.hpp:805
    +
    Opaque wrapper for data members.
    Definition meta.hpp:840
    +
    Opaque wrapper for member functions.
    Definition meta.hpp:963
    +
    Opaque pointers to instances of any type.
    Definition meta.hpp:688
    +
    diff --git a/meta_2type__traits_8hpp_source.html b/meta_2type__traits_8hpp_source.html index 58b59dc58..0432cc2b9 100644 --- a/meta_2type__traits_8hpp_source.html +++ b/meta_2type__traits_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/type_traits.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    type_traits.hpp
    @@ -90,22 +98,22 @@ $(function() { codefold.init(0); });
    5#include <utility>
    6
    7namespace entt {
    -
    8
    +
    8
    13template<typename>
    -
    15
    +
    15
    20template<typename>
    -
    22
    +
    22
    27template<typename>
    -
    29
    -
    34template<typename>
    +
    29
    +
    34template<typename, typename = void>
    35struct is_meta_pointer_like: std::false_type {};
    -
    36
    +
    36
    42template<typename Type>
    - -
    44
    +
    43struct is_meta_pointer_like<const Type>: is_meta_pointer_like<Type> {};
    +
    44
    49template<typename Type>
    51
    @@ -113,7 +121,6 @@ $(function() { codefold.init(0); });
    53
    54#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr auto is_meta_pointer_like_v
    Helper variable template.
    Provides the member constant value to true if a given type is a pointer-like type from the point of v...
    Traits class template to be specialized to enable support for meta associative containers.
    @@ -122,7 +129,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/meta_2utility_8hpp_source.html b/meta_2utility_8hpp_source.html index 80e4aac47..b67648523 100644 --- a/meta_2utility_8hpp_source.html +++ b/meta_2utility_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/utility.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    utility.hpp
    @@ -97,103 +105,103 @@ $(function() { codefold.init(0); });
    12#include "policy.hpp"
    13
    14namespace entt {
    -
    15
    +
    15
    23template<typename Ret, typename Args, bool Static, bool Const>
    - -
    28 using args_type = Args;
    -
    29
    -
    31 static constexpr bool is_static = Static;
    -
    33 static constexpr bool is_const = Const;
    +
    26 using return_type = Ret;
    +
    28 using args_type = Args;
    +
    29
    +
    31 static constexpr bool is_static = Static;
    +
    33 static constexpr bool is_const = Const;
    34};
    -
    35
    +
    35
    37template<typename, typename>
    -
    39
    -
    47template<typename Type, typename Ret, typename Class, typename... Args>
    +
    39
    +
    47template<typename Type, typename Ret, typename Class, typename... Args>
    -
    48struct meta_function_descriptor<Type, Ret (Class::*)(Args...) const>
    +
    48struct meta_function_descriptor<Type, Ret (Class::*)(Args...) const>
    50 Ret,
    51 std::conditional_t<std::is_base_of_v<Class, Type>, type_list<Args...>, type_list<const Class &, Args...>>,
    52 !std::is_base_of_v<Class, Type>,
    53 true> {};
    -
    54
    -
    62template<typename Type, typename Ret, typename Class, typename... Args>
    +
    54
    +
    62template<typename Type, typename Ret, typename Class, typename... Args>
    -
    63struct meta_function_descriptor<Type, Ret (Class::*)(Args...)>
    +
    63struct meta_function_descriptor<Type, Ret (Class::*)(Args...)>
    65 Ret,
    66 std::conditional_t<std::is_base_of_v<Class, Type>, type_list<Args...>, type_list<Class &, Args...>>,
    67 !std::is_base_of_v<Class, Type>,
    68 false> {};
    -
    69
    +
    69
    76template<typename Type, typename Ret, typename Class>
    - +
    77struct meta_function_descriptor<Type, Ret Class::*>
    79 Ret &,
    80 std::conditional_t<std::is_base_of_v<Class, Type>, type_list<>, type_list<Class &>>,
    81 !std::is_base_of_v<Class, Type>,
    82 false> {};
    -
    83
    -
    91template<typename Type, typename Ret, typename MaybeType, typename... Args>
    +
    83
    +
    91template<typename Type, typename Ret, typename MaybeType, typename... Args>
    - +
    92struct meta_function_descriptor<Type, Ret (*)(MaybeType, Args...)>
    -
    94 Ret,
    +
    94 Ret,
    95 std::conditional_t<
    96 std::is_same_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type> || std::is_base_of_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type>,
    -
    97 type_list<Args...>,
    - +
    97 type_list<Args...>,
    +
    98 type_list<MaybeType, Args...>>,
    99 !(std::is_same_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type> || std::is_base_of_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type>),
    100 std::is_const_v<std::remove_reference_t<MaybeType>> && (std::is_same_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type> || std::is_base_of_v<std::remove_cv_t<std::remove_reference_t<MaybeType>>, Type>)> {};
    -
    101
    +
    101
    107template<typename Type, typename Ret>
    -
    108struct meta_function_descriptor<Type, Ret (*)()>
    +
    108struct meta_function_descriptor<Type, Ret (*)()>
    -
    110 Ret,
    - +
    110 Ret,
    +
    112 true,
    113 false> {};
    -
    114
    +
    114
    124template<typename Type, typename Candidate>
    -
    126 template<typename Ret, typename... Args, typename Class>
    -
    127 static constexpr meta_function_descriptor<Type, Ret (Class::*)(Args...) const> get_rid_of_noexcept(Ret (Class::*)(Args...) const);
    +
    126 template<typename Ret, typename... Args, typename Class>
    +
    127 static constexpr meta_function_descriptor<Type, Ret (Class::*)(Args...) const> get_rid_of_noexcept(Ret (Class::*)(Args...) const);
    128
    -
    129 template<typename Ret, typename... Args, typename Class>
    -
    130 static constexpr meta_function_descriptor<Type, Ret (Class::*)(Args...)> get_rid_of_noexcept(Ret (Class::*)(Args...));
    +
    129 template<typename Ret, typename... Args, typename Class>
    +
    130 static constexpr meta_function_descriptor<Type, Ret (Class::*)(Args...)> get_rid_of_noexcept(Ret (Class::*)(Args...));
    131
    132 template<typename Ret, typename Class, typename = std::enable_if_t<std::is_member_object_pointer_v<Ret Class::*>>>
    -
    133 static constexpr meta_function_descriptor<Type, Ret Class::*> get_rid_of_noexcept(Ret Class::*);
    +
    133 static constexpr meta_function_descriptor<Type, Ret Class::*> get_rid_of_noexcept(Ret Class::*);
    134
    -
    135 template<typename Ret, typename... Args>
    -
    136 static constexpr meta_function_descriptor<Type, Ret (*)(Args...)> get_rid_of_noexcept(Ret (*)(Args...));
    +
    135 template<typename Ret, typename... Args>
    +
    136 static constexpr meta_function_descriptor<Type, Ret (*)(Args...)> get_rid_of_noexcept(Ret (*)(Args...));
    137
    138 template<typename Class>
    -
    139 static constexpr meta_function_descriptor<Class, decltype(&Class::operator())> get_rid_of_noexcept(Class);
    +
    139 static constexpr meta_function_descriptor<Class, decltype(&Class::operator())> get_rid_of_noexcept(Class);
    140
    141public:
    143 using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()));
    144};
    -
    145
    +
    145
    151template<typename Type, typename Candidate>
    -
    153
    +
    153
    167template<typename Policy = as_is_t, typename Type>
    -
    168[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_dispatch(const meta_ctx &ctx, [[maybe_unused]] Type &&value) {
    +
    168[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_dispatch(const meta_ctx &ctx, [[maybe_unused]] Type &&value) {
    169 if constexpr(std::is_same_v<Policy, as_void_t>) {
    170 return meta_any{ctx, std::in_place_type<void>};
    171 } else if constexpr(std::is_same_v<Policy, as_ref_t>) {
    @@ -206,253 +214,257 @@ $(function() { codefold.init(0); });
    178 }
    179}
    -
    180
    +
    180
    188template<typename Policy = as_is_t, typename Type>
    -
    189[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_dispatch(Type &&value) {
    -
    190 return meta_dispatch<Policy, Type>(locator<meta_ctx>::value_or(), std::forward<Type>(value));
    +
    189[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_dispatch(Type &&value) {
    +
    190 return meta_dispatch<Policy, Type>(locator<meta_ctx>::value_or(), std::forward<Type>(value));
    191}
    -
    192
    -
    200template<typename Type>
    -
    201[[nodiscard]] static meta_type meta_arg(const meta_ctx &ctx, const std::size_t index) noexcept {
    -
    202 auto &&context = internal::meta_context::from(ctx);
    -
    203 return {ctx, internal::meta_arg_node(context, Type{}, index)};
    +
    192
    +
    194namespace internal {
    +
    195
    +
    196template<typename Policy, typename Candidate, typename... Args>
    +
    197[[nodiscard]] meta_any meta_invoke_with_args(const meta_ctx &ctx, Candidate &&candidate, Args &&...args) {
    +
    198 if constexpr(std::is_void_v<decltype(std::invoke(std::forward<Candidate>(candidate), args...))>) {
    +
    199 std::invoke(std::forward<Candidate>(candidate), args...);
    +
    200 return meta_any{ctx, std::in_place_type<void>};
    +
    201 } else {
    +
    202 return meta_dispatch<Policy>(ctx, std::invoke(std::forward<Candidate>(candidate), args...));
    +
    203 }
    204}
    205
    -
    212template<typename Type>
    -
    213[[nodiscard]] static meta_type meta_arg(const std::size_t index) noexcept {
    - -
    215}
    -
    216
    -
    225template<typename Type, auto Data>
    -
    - -
    227 if constexpr(!std::is_same_v<decltype(Data), Type> && !std::is_same_v<decltype(Data), std::nullptr_t>) {
    -
    228 if constexpr(std::is_member_function_pointer_v<decltype(Data)> || std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    -
    229 using descriptor = meta_function_helper_t<Type, decltype(Data)>;
    - -
    231
    -
    232 if(auto *const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    -
    233 std::invoke(Data, *clazz, value.cast<data_type>());
    -
    234 return true;
    -
    235 }
    -
    236 } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    -
    237 using data_type = std::remove_reference_t<typename meta_function_helper_t<Type, decltype(Data)>::return_type>;
    -
    238
    -
    239 if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    -
    240 if(auto *const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    -
    241 std::invoke(Data, *clazz) = value.cast<data_type>();
    -
    242 return true;
    -
    243 }
    -
    244 }
    -
    245 } else {
    -
    246 using data_type = std::remove_reference_t<decltype(*Data)>;
    -
    247
    -
    248 if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    -
    249 if(value.allow_cast<data_type>()) {
    -
    250 *Data = value.cast<data_type>();
    -
    251 return true;
    -
    252 }
    -
    253 }
    -
    254 }
    -
    255 }
    -
    256
    -
    257 return false;
    -
    258}
    +
    206template<typename Type, typename Policy, typename Candidate, std::size_t... Index>
    +
    207[[nodiscard]] meta_any meta_invoke(meta_handle instance, Candidate &&candidate, [[maybe_unused]] meta_any *const args, std::index_sequence<Index...>) {
    +
    208 using descriptor = meta_function_helper_t<Type, std::remove_reference_t<Candidate>>;
    +
    209
    +
    210 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    +
    211 if constexpr(std::is_invocable_v<std::remove_reference_t<Candidate>, const Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    +
    212 if(const auto *const clazz = instance->try_cast<const Type>(); clazz && ((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    213 return meta_invoke_with_args<Policy>(instance->context(), std::forward<Candidate>(candidate), *clazz, (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    214 }
    +
    215 } else if constexpr(std::is_invocable_v<std::remove_reference_t<Candidate>, Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    +
    216 if(auto *const clazz = instance->try_cast<Type>(); clazz && ((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    217 return meta_invoke_with_args<Policy>(instance->context(), std::forward<Candidate>(candidate), *clazz, (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    218 }
    +
    219 } else {
    +
    220 if(((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    221 return meta_invoke_with_args<Policy>(instance->context(), std::forward<Candidate>(candidate), (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    222 }
    +
    223 }
    +
    224 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    225
    +
    226 return meta_any{meta_ctx_arg, instance->context()};
    +
    227}
    +
    228
    +
    229template<typename Type, typename... Args, std::size_t... Index>
    +
    230[[nodiscard]] meta_any meta_construct(const meta_ctx &ctx, meta_any *const args, std::index_sequence<Index...>) {
    +
    231 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    +
    232 if(((args + Index)->allow_cast<Args>() && ...)) {
    +
    233 return meta_any{ctx, std::in_place_type<Type>, (args + Index)->cast<Args>()...};
    +
    234 }
    +
    235 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    236
    +
    237 return meta_any{meta_ctx_arg, ctx};
    +
    238}
    +
    239
    +
    240} // namespace internal
    +
    242
    +
    250template<typename Type>
    +
    251[[nodiscard]] static meta_type meta_arg(const meta_ctx &ctx, const std::size_t index) noexcept {
    +
    252 auto &&context = internal::meta_context::from(ctx);
    +
    253 return {ctx, internal::meta_arg_node(context, Type{}, index)};
    +
    254}
    +
    255
    +
    262template<typename Type>
    +
    263[[nodiscard]] static meta_type meta_arg(const std::size_t index) noexcept {
    +
    264 return meta_arg<Type>(locator<meta_ctx>::value_or(), index);
    +
    265}
    +
    266
    +
    275template<typename Type, auto Data>
    +
    +
    276[[nodiscard]] bool meta_setter([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value) {
    +
    277 if constexpr(std::is_member_function_pointer_v<decltype(Data)> || std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    +
    278 using descriptor = meta_function_helper_t<Type, decltype(Data)>;
    + +
    280
    +
    281 if(auto *const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    +
    282 std::invoke(Data, *clazz, value.cast<data_type>());
    +
    283 return true;
    +
    284 }
    +
    285 } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    +
    286 using data_type = std::remove_reference_t<typename meta_function_helper_t<Type, decltype(Data)>::return_type>;
    +
    287
    +
    288 if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    +
    289 if(auto *const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    +
    290 std::invoke(Data, *clazz) = value.cast<data_type>();
    +
    291 return true;
    +
    292 }
    +
    293 }
    +
    294 } else if constexpr(std::is_pointer_v<decltype(Data)>) {
    +
    295 using data_type = std::remove_reference_t<decltype(*Data)>;
    +
    296
    +
    297 if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    +
    298 if(value.allow_cast<data_type>()) {
    +
    299 *Data = value.cast<data_type>();
    +
    300 return true;
    +
    301 }
    +
    302 }
    +
    303 }
    +
    304
    +
    305 return false;
    +
    306}
    -
    259
    -
    274template<typename Type, auto Data, typename Policy = as_is_t>
    -
    -
    275[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_getter(const meta_ctx &ctx, [[maybe_unused]] meta_handle instance) {
    -
    276 if constexpr(std::is_member_pointer_v<decltype(Data)> || std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    -
    277 if constexpr(!std::is_array_v<std::remove_cv_t<std::remove_reference_t<std::invoke_result_t<decltype(Data), Type &>>>>) {
    -
    278 if constexpr(std::is_invocable_v<decltype(Data), Type &>) {
    -
    279 if(auto *clazz = instance->try_cast<Type>(); clazz) {
    -
    280 return meta_dispatch<Policy>(ctx, std::invoke(Data, *clazz));
    -
    281 }
    -
    282 }
    -
    283
    -
    284 if constexpr(std::is_invocable_v<decltype(Data), const Type &>) {
    -
    285 if(auto *fallback = instance->try_cast<const Type>(); fallback) {
    -
    286 return meta_dispatch<Policy>(ctx, std::invoke(Data, *fallback));
    -
    287 }
    -
    288 }
    -
    289 }
    -
    290
    -
    291 return meta_any{meta_ctx_arg, ctx};
    -
    292 } else if constexpr(std::is_pointer_v<decltype(Data)>) {
    -
    293 if constexpr(std::is_array_v<std::remove_pointer_t<decltype(Data)>>) {
    -
    294 return meta_any{meta_ctx_arg, ctx};
    -
    295 } else {
    -
    296 return meta_dispatch<Policy>(ctx, *Data);
    -
    297 }
    -
    298 } else {
    -
    299 return meta_dispatch<Policy>(ctx, Data);
    -
    300 }
    -
    301}
    -
    -
    302
    -
    311template<typename Type, auto Data, typename Policy = as_is_t>
    -
    -
    312[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_getter(meta_handle instance) {
    - -
    314}
    -
    -
    315
    -
    317namespace internal {
    -
    318
    -
    319template<typename Policy, typename Candidate, typename... Args>
    -
    320[[nodiscard]] meta_any meta_invoke_with_args(const meta_ctx &ctx, Candidate &&candidate, Args &&...args) {
    -
    321 if constexpr(std::is_void_v<decltype(std::invoke(std::forward<Candidate>(candidate), args...))>) {
    -
    322 std::invoke(std::forward<Candidate>(candidate), args...);
    -
    323 return meta_any{ctx, std::in_place_type<void>};
    -
    324 } else {
    -
    325 return meta_dispatch<Policy>(ctx, std::invoke(std::forward<Candidate>(candidate), args...));
    -
    326 }
    -
    327}
    -
    328
    -
    329template<typename Type, typename Policy, typename Candidate, std::size_t... Index>
    -
    330[[nodiscard]] meta_any meta_invoke(const meta_ctx &ctx, [[maybe_unused]] meta_handle instance, Candidate &&candidate, [[maybe_unused]] meta_any *const args, std::index_sequence<Index...>) {
    -
    331 using descriptor = meta_function_helper_t<Type, std::remove_reference_t<Candidate>>;
    +
    307
    +
    316template<typename Type, auto Data, typename Policy = as_is_t>
    +
    +
    317[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_getter(meta_handle instance) {
    +
    318 if constexpr(std::is_member_pointer_v<decltype(Data)> || std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    +
    319 if constexpr(!std::is_array_v<std::remove_cv_t<std::remove_reference_t<std::invoke_result_t<decltype(Data), Type &>>>>) {
    +
    320 if constexpr(std::is_invocable_v<decltype(Data), Type &>) {
    +
    321 if(auto *clazz = instance->try_cast<Type>(); clazz) {
    +
    322 return meta_dispatch<Policy>(instance->context(), std::invoke(Data, *clazz));
    +
    323 }
    +
    324 }
    +
    325
    +
    326 if constexpr(std::is_invocable_v<decltype(Data), const Type &>) {
    +
    327 if(auto *fallback = instance->try_cast<const Type>(); fallback) {
    +
    328 return meta_dispatch<Policy>(instance->context(), std::invoke(Data, *fallback));
    +
    329 }
    +
    330 }
    +
    331 }
    332
    -
    333 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    -
    334 if constexpr(std::is_invocable_v<std::remove_reference_t<Candidate>, const Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    -
    335 if(const auto *const clazz = instance->try_cast<const Type>(); clazz && ((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    336 return meta_invoke_with_args<Policy>(ctx, std::forward<Candidate>(candidate), *clazz, (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    337 }
    -
    338 } else if constexpr(std::is_invocable_v<std::remove_reference_t<Candidate>, Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    -
    339 if(auto *const clazz = instance->try_cast<Type>(); clazz && ((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    340 return meta_invoke_with_args<Policy>(ctx, std::forward<Candidate>(candidate), *clazz, (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    341 }
    -
    342 } else {
    -
    343 if(((args + Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    344 return meta_invoke_with_args<Policy>(ctx, std::forward<Candidate>(candidate), (args + Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    345 }
    -
    346 }
    -
    347 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    -
    348
    -
    349 return meta_any{meta_ctx_arg, ctx};
    -
    350}
    -
    351
    -
    352template<typename Type, typename... Args, std::size_t... Index>
    -
    353[[nodiscard]] meta_any meta_construct(const meta_ctx &ctx, meta_any *const args, std::index_sequence<Index...>) {
    -
    354 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    -
    355 if(((args + Index)->allow_cast<Args>() && ...)) {
    -
    356 return meta_any{ctx, std::in_place_type<Type>, (args + Index)->cast<Args>()...};
    -
    357 }
    -
    358 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    -
    359
    -
    360 return meta_any{meta_ctx_arg, ctx};
    -
    361}
    -
    362
    -
    363} // namespace internal
    -
    382template<typename Type, typename Policy = as_is_t, typename Candidate>
    -
    -
    383[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args) {
    -
    384 return internal::meta_invoke<Type, Policy>(ctx, std::move(instance), std::forward<Candidate>(candidate), args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    -
    385}
    +
    333 return meta_any{meta_ctx_arg, instance->context()};
    +
    334 } else if constexpr(std::is_pointer_v<decltype(Data)>) {
    +
    335 if constexpr(std::is_array_v<std::remove_pointer_t<decltype(Data)>>) {
    +
    336 return meta_any{meta_ctx_arg, instance->context()};
    +
    337 } else {
    +
    338 return meta_dispatch<Policy>(instance->context(), *Data);
    +
    339 }
    +
    340 } else {
    +
    341 return meta_dispatch<Policy>(instance->context(), Data);
    +
    342 }
    +
    343}
    -
    386
    -
    397template<typename Type, typename Policy = as_is_t, typename Candidate>
    -
    -
    398[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args) {
    -
    399 return meta_invoke<Type, Policy>(locator<meta_ctx>::value_or(), std::move(instance), std::forward<Candidate>(candidate), args);
    -
    400}
    +
    344
    +
    354template<typename Type, auto Data, typename Policy = as_is_t>
    +
    +
    355[[deprecated("a context is no longer required, it is inferred from the meta_handle")]] [[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_getter(const meta_ctx &ctx, meta_handle instance) {
    +
    356 return meta_getter<Type, Data, Policy>(meta_handle{ctx, std::move(instance)});
    +
    357}
    -
    401
    -
    417template<typename Type, auto Candidate, typename Policy = as_is_t>
    -
    -
    418[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args) {
    -
    419 return internal::meta_invoke<Type, Policy>(ctx, std::move(instance), Candidate, args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<decltype(Candidate)>>::args_type::size>{});
    -
    420}
    +
    358
    +
    369template<typename Type, typename Policy = as_is_t, typename Candidate>
    +
    +
    370[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args) {
    +
    371 return internal::meta_invoke<Type, Policy>(std::move(instance), std::forward<Candidate>(candidate), args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    +
    372}
    -
    421
    -
    431template<typename Type, auto Candidate, typename Policy = as_is_t>
    -
    -
    432[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(meta_handle instance, meta_any *const args) {
    - -
    434}
    +
    373
    +
    385template<typename Type, typename Policy = as_is_t, typename Candidate>
    +
    +
    386[[deprecated("a context is no longer required, it is inferred from the meta_handle")]] [[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args) {
    +
    387 return meta_invoke<Type, Policy>(meta_handle{ctx, std::move(instance)}, std::forward<Candidate>(candidate), args);
    +
    388}
    -
    435
    -
    449template<typename Type, typename... Args>
    -
    - -
    451 return internal::meta_construct<Type, Args...>(ctx, args, std::index_sequence_for<Args...>{});
    -
    452}
    +
    389
    +
    399template<typename Type, auto Candidate, typename Policy = as_is_t>
    +
    +
    400[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(meta_handle instance, meta_any *const args) {
    +
    401 return internal::meta_invoke<Type, Policy>(std::move(instance), Candidate, args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<decltype(Candidate)>>::args_type::size>{});
    +
    402}
    -
    453
    -
    461template<typename Type, typename... Args>
    -
    - - -
    464}
    +
    403
    +
    414template<typename Type, auto Candidate, typename Policy = as_is_t>
    +
    +
    415[[deprecated("a context is no longer required, it is inferred from the meta_handle")]] [[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args) {
    +
    416 return meta_invoke<Type, Candidate, Policy>(meta_handle{ctx, std::move(instance)}, args);
    +
    417}
    -
    465
    -
    481template<typename Type, typename Policy = as_is_t, typename Candidate>
    -
    - -
    483 if constexpr(meta_function_helper_t<Type, Candidate>::is_static || std::is_class_v<std::remove_cv_t<std::remove_reference_t<Candidate>>>) {
    -
    484 return internal::meta_invoke<Type, Policy>(ctx, {}, std::forward<Candidate>(candidate), args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    -
    485 } else {
    -
    486 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    -
    487 return internal::meta_invoke<Type, Policy>(ctx, *args, std::forward<Candidate>(candidate), args + 1u, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    -
    488 }
    -
    489}
    +
    418
    +
    432template<typename Type, typename... Args>
    +
    +
    433[[nodiscard]] meta_any meta_construct(const meta_ctx &ctx, meta_any *const args) {
    +
    434 return internal::meta_construct<Type, Args...>(ctx, args, std::index_sequence_for<Args...>{});
    +
    435}
    -
    490
    -
    500template<typename Type, typename Policy = as_is_t, typename Candidate>
    -
    -
    501[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(Candidate &&candidate, meta_any *const args) {
    -
    502 return meta_construct<Type, Policy>(locator<meta_ctx>::value_or(), std::forward<Candidate>(candidate), args);
    -
    503}
    +
    436
    +
    444template<typename Type, typename... Args>
    +
    +
    445[[nodiscard]] meta_any meta_construct(meta_any *const args) {
    +
    446 return meta_construct<Type, Args...>(locator<meta_ctx>::value_or(), args);
    +
    447}
    -
    504
    -
    519template<typename Type, auto Candidate, typename Policy = as_is_t>
    -
    -
    520[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(const meta_ctx &ctx, meta_any *const args) {
    - -
    522}
    +
    448
    +
    464template<typename Type, typename Policy = as_is_t, typename Candidate>
    +
    +
    465[[nodiscard]] meta_any meta_construct(const meta_ctx &ctx, Candidate &&candidate, meta_any *const args) {
    +
    466 if constexpr(meta_function_helper_t<Type, Candidate>::is_static || std::is_class_v<std::remove_cv_t<std::remove_reference_t<Candidate>>>) {
    +
    467 return internal::meta_invoke<Type, Policy>(meta_handle{meta_ctx_arg, ctx}, std::forward<Candidate>(candidate), args, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    +
    468 } else {
    +
    469 meta_any handle{ctx, args->as_ref()};
    +
    470 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    +
    471 return internal::meta_invoke<Type, Policy>(handle, std::forward<Candidate>(candidate), args + 1u, std::make_index_sequence<meta_function_helper_t<Type, std::remove_reference_t<Candidate>>::args_type::size>{});
    +
    472 }
    +
    473}
    -
    523
    -
    532template<typename Type, auto Candidate, typename Policy = as_is_t>
    -
    -
    533[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(meta_any *const args) {
    - -
    535}
    +
    474
    +
    484template<typename Type, typename Policy = as_is_t, typename Candidate>
    +
    +
    485[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(Candidate &&candidate, meta_any *const args) {
    +
    486 return meta_construct<Type, Policy>(locator<meta_ctx>::value_or(), std::forward<Candidate>(candidate), args);
    +
    487}
    -
    536
    -
    537} // namespace entt
    -
    538
    -
    539#endif
    -
    Service locator, nothing more.
    Definition locator.hpp:27
    +
    488
    +
    503template<typename Type, auto Candidate, typename Policy = as_is_t>
    +
    +
    504[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(const meta_ctx &ctx, meta_any *const args) {
    +
    505 return meta_construct<Type, Policy>(ctx, Candidate, args);
    +
    506}
    +
    +
    507
    +
    516template<typename Type, auto Candidate, typename Policy = as_is_t>
    +
    +
    517[[nodiscard]] std::enable_if_t<is_meta_policy_v<Policy>, meta_any> meta_construct(meta_any *const args) {
    + +
    519}
    +
    +
    520
    +
    521} // namespace entt
    +
    522
    +
    523#endif
    static Service & value_or(Args &&...args)
    Returns a service if available or sets it from a fallback type.
    Definition locator.hpp:88
    -
    Opaque wrapper for values of any type.
    Definition meta.hpp:179
    +
    Opaque wrapper for values of any type.
    Definition meta.hpp:166
    +
    meta_any as_ref() noexcept
    Aliasing constructor.
    Definition meta.hpp:624
    +
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition meta.hpp:443
    +
    const meta_ctx & context() const noexcept
    Returns the underlying meta context.
    Definition meta.hpp:653
    Opaque meta context type.
    Definition context.hpp:34
    Meta function helper.
    Definition utility.hpp:125
    decltype(get_rid_of_noexcept(std::declval< Candidate >())) type
    The meta function descriptor of the given function.
    Definition utility.hpp:143
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)
    Tries to invoke an object given a list of erased parameters.
    Definition utility.hpp:383
    typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
    Helper type.
    Definition utility.hpp:152
    -
    meta_any meta_construct(const meta_ctx &ctx, meta_any *const args)
    Tries to construct an instance given a list of erased parameters.
    Definition utility.hpp:450
    +
    basic_handle< registry > handle
    Alias declaration for the most common use case.
    Definition fwd.hpp:101
    +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_getter(meta_handle instance)
    Gets the value of a given variable.
    Definition utility.hpp:317
    +
    meta_any meta_construct(const meta_ctx &ctx, meta_any *const args)
    Tries to construct an instance given a list of erased parameters.
    Definition utility.hpp:433
    +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)
    Tries to invoke an object given a list of erased parameters.
    Definition utility.hpp:370
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_dispatch(const meta_ctx &ctx, Type &&value)
    Wraps a value depending on the given policy.
    Definition utility.hpp:168
    -
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    +
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    constexpr meta_ctx_arg_t meta_ctx_arg
    Constant of type meta_context_arg_t used to disambiguate calls.
    Definition context.hpp:31
    -
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > meta_getter(const meta_ctx &ctx, meta_handle instance)
    Gets the value of a given variable.
    Definition utility.hpp:275
    -
    bool meta_setter(meta_handle instance, meta_any value)
    Sets the value of a given variable.
    Definition utility.hpp:226
    +
    bool meta_setter(meta_handle instance, meta_any value)
    Sets the value of a given variable.
    Definition utility.hpp:276
    Meta function descriptor traits.
    Definition utility.hpp:24
    static constexpr bool is_static
    True if the meta function is static, false otherwise.
    Definition utility.hpp:31
    Args args_type
    Meta function arguments.
    Definition utility.hpp:28
    static constexpr bool is_const
    True if the meta function is const, false otherwise.
    Definition utility.hpp:33
    Ret return_type
    Meta function return type.
    Definition utility.hpp:26
    -
    Primary template isn't defined on purpose.
    Definition utility.hpp:38
    -
    Opaque pointers to instances of any type.
    Definition meta.hpp:651
    -
    A class to use to push around lists of types, nothing more.
    +
    Primary template isn't defined on purpose.
    Definition utility.hpp:38
    +
    Opaque pointers to instances of any type.
    Definition meta.hpp:688
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/meta_8hpp_source.html b/meta_8hpp_source.html index 6c3984ef2..5d567f385 100644 --- a/meta_8hpp_source.html +++ b/meta_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/meta.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    meta.hpp
    @@ -109,1859 +117,1782 @@ $(function() { codefold.init(0); });
    24
    25namespace entt {
    26
    -
    27class meta_any;
    -
    28class meta_type;
    -
    29
    +
    27class meta_any;
    +
    28class meta_type;
    +
    29
    - -
    32 class meta_iterator;
    + +
    32 class meta_iterator;
    33
    34public:
    36 using size_type = std::size_t;
    - -
    39
    +
    38 using iterator = meta_iterator;
    +
    39
    -
    42
    -
    - -
    48 : ctx{&area} {}
    +
    42
    +
    49 template<typename Type>
    +
    +
    50 meta_sequence_container(const meta_ctx &area, Type &instance) noexcept
    +
    51 : ctx{&area},
    +
    52 data{&instance},
    +
    53 value_type_node{&internal::resolve<typename Type::value_type>},
    +
    54 const_reference_node{&internal::resolve<std::remove_const_t<std::remove_reference_t<typename Type::const_reference>>>},
    +
    55 size_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::size},
    +
    56 clear_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::clear},
    +
    57 reserve_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::reserve},
    +
    58 resize_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::resize},
    +
    59 begin_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::begin},
    +
    60 end_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::end},
    +
    61 insert_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::insert},
    +
    62 erase_fn{meta_sequence_container_traits<std::remove_const_t<Type>>::erase},
    +
    63 const_only{std::is_const_v<Type>} {}
    -
    49
    -
    55 template<typename Type>
    -
    -
    56 void rebind(Type &instance) noexcept {
    -
    57 value_type_node = &internal::resolve<typename Type::value_type>;
    -
    58 const_reference_node = &internal::resolve<std::remove_const_t<std::remove_reference_t<typename Type::const_reference>>>;
    - - - - - - - - -
    67 const_only = std::is_const_v<Type>;
    -
    68 data = &instance;
    -
    69 }
    +
    64
    +
    65 [[nodiscard]] inline meta_type value_type() const noexcept;
    +
    66 [[nodiscard]] inline size_type size() const noexcept;
    +
    67 inline bool resize(size_type);
    +
    68 inline bool clear();
    +
    69 inline bool reserve(size_type);
    +
    70 [[nodiscard]] inline iterator begin();
    +
    71 [[nodiscard]] inline iterator end();
    +
    72 inline iterator insert(const iterator &, meta_any);
    +
    73 inline iterator erase(const iterator &);
    +
    74 [[nodiscard]] inline meta_any operator[](size_type);
    +
    75 [[nodiscard]] inline explicit operator bool() const noexcept;
    +
    76
    +
    77private:
    +
    78 const meta_ctx *ctx{};
    +
    79 const void *data{};
    +
    80 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
    +
    81 internal::meta_type_node (*const_reference_node)(const internal::meta_context &){};
    +
    82 size_type (*size_fn)(const void *){};
    +
    83 bool (*clear_fn)(void *){};
    +
    84 bool (*reserve_fn)(void *, const size_type){};
    +
    85 bool (*resize_fn)(void *, const size_type){};
    +
    86 iterator (*begin_fn)(const meta_ctx &, void *, const void *){};
    +
    87 iterator (*end_fn)(const meta_ctx &, void *, const void *){};
    +
    88 iterator (*insert_fn)(const meta_ctx &, void *, const void *, const void *, const iterator &){};
    +
    89 iterator (*erase_fn)(const meta_ctx &, void *, const iterator &){};
    +
    90 bool const_only{};
    +
    91};
    -
    70
    - - - -
    74 inline bool clear();
    - - - - - - - -
    82
    - - -
    85 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
    -
    86 internal::meta_type_node (*const_reference_node)(const internal::meta_context &){};
    -
    87 size_type (*size_fn)(const void *){};
    -
    88 bool (*clear_fn)(void *){};
    -
    89 bool (*reserve_fn)(void *, const size_type){};
    -
    90 bool (*resize_fn)(void *, const size_type){};
    -
    91 iterator (*begin_fn)(const meta_ctx &, void *, const void *){};
    -
    92 iterator (*end_fn)(const meta_ctx &, void *, const void *){};
    -
    93 iterator (*insert_fn)(const meta_ctx &, void *, const void *, const void *, const iterator &){};
    -
    94 iterator (*erase_fn)(const meta_ctx &, void *, const iterator &){};
    -
    95 const void *data{};
    -
    96 bool const_only{};
    -
    97};
    -
    -
    98
    -
    - -
    101 class meta_iterator;
    -
    102
    -
    103public:
    -
    105 using size_type = std::size_t;
    - -
    108
    - -
    111
    - -
    118
    -
    124 template<typename Type>
    -
    -
    125 void rebind(Type &instance) noexcept {
    -
    126 key_type_node = &internal::resolve<typename Type::key_type>;
    -
    127 value_type_node = &internal::resolve<typename Type::value_type>;
    -
    128
    - -
    130 mapped_type_node = &internal::resolve<typename Type::mapped_type>;
    -
    131 }
    -
    132
    - - - - - - - - -
    141 const_only = std::is_const_v<Type>;
    -
    142 data = &instance;
    -
    143 }
    +
    92
    +
    + +
    95 class meta_iterator;
    +
    96
    +
    97public:
    +
    99 using size_type = std::size_t;
    +
    101 using iterator = meta_iterator;
    +
    102
    + +
    105
    +
    112 template<typename Type>
    +
    +
    113 meta_associative_container(const meta_ctx &area, Type &instance) noexcept
    +
    114 : ctx{&area},
    +
    115 data{&instance},
    +
    116 key_type_node{&internal::resolve<typename Type::key_type>},
    +
    117 value_type_node{&internal::resolve<typename Type::value_type>},
    +
    118 size_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::size},
    +
    119 clear_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::clear},
    +
    120 reserve_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::reserve},
    +
    121 begin_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::begin},
    +
    122 end_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::end},
    +
    123 insert_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::insert},
    +
    124 erase_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::erase},
    +
    125 find_fn{&meta_associative_container_traits<std::remove_const_t<Type>>::find},
    +
    126 const_only{std::is_const_v<Type>} {
    +
    127 if constexpr(!meta_associative_container_traits<std::remove_const_t<Type>>::key_only) {
    +
    128 mapped_type_node = &internal::resolve<typename Type::mapped_type>;
    +
    129 }
    +
    130 }
    +
    131
    +
    132 [[nodiscard]] inline meta_type key_type() const noexcept;
    +
    133 [[nodiscard]] inline meta_type mapped_type() const noexcept;
    +
    134 [[nodiscard]] inline meta_type value_type() const noexcept;
    +
    135 [[nodiscard]] inline size_type size() const noexcept;
    +
    136 inline bool clear();
    +
    137 inline bool reserve(size_type);
    +
    138 [[nodiscard]] inline iterator begin();
    +
    139 [[nodiscard]] inline iterator end();
    +
    140 inline bool insert(meta_any, meta_any);
    +
    141 inline size_type erase(meta_any);
    +
    142 [[nodiscard]] inline iterator find(meta_any);
    +
    143 [[nodiscard]] inline explicit operator bool() const noexcept;
    144
    - - - - -
    149 inline bool clear();
    - - - - - - - -
    157
    -
    158private:
    - -
    160 internal::meta_type_node (*key_type_node)(const internal::meta_context &){};
    -
    161 internal::meta_type_node (*mapped_type_node)(const internal::meta_context &){};
    -
    162 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
    -
    163 size_type (*size_fn)(const void *){};
    -
    164 bool (*clear_fn)(void *){};
    -
    165 bool (*reserve_fn)(void *, const size_type){};
    -
    166 iterator (*begin_fn)(const meta_ctx &, void *, const void *){};
    -
    167 iterator (*end_fn)(const meta_ctx &, void *, const void *){};
    -
    168 bool (*insert_fn)(void *, const void *, const void *){};
    -
    169 size_type (*erase_fn)(void *, const void *){};
    -
    170 iterator (*find_fn)(const meta_ctx &, void *, const void *, const void *){};
    -
    171 const void *data{};
    -
    172 bool const_only{};
    -
    173};
    +
    145private:
    +
    146 const meta_ctx *ctx{};
    +
    147 const void *data{};
    +
    148 internal::meta_type_node (*key_type_node)(const internal::meta_context &){};
    +
    149 internal::meta_type_node (*mapped_type_node)(const internal::meta_context &){};
    +
    150 internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
    +
    151 size_type (*size_fn)(const void *){};
    +
    152 bool (*clear_fn)(void *){};
    +
    153 bool (*reserve_fn)(void *, const size_type){};
    +
    154 iterator (*begin_fn)(const meta_ctx &, void *, const void *){};
    +
    155 iterator (*end_fn)(const meta_ctx &, void *, const void *){};
    +
    156 bool (*insert_fn)(void *, const void *, const void *){};
    +
    157 size_type (*erase_fn)(void *, const void *){};
    +
    158 iterator (*find_fn)(const meta_ctx &, void *, const void *, const void *){};
    +
    159 bool const_only{};
    +
    160};
    -
    174
    - -
    177
    -
    -
    179class meta_any {
    -
    180 using vtable_type = void(const internal::meta_traits op, const bool, const void *, void *);
    -
    181
    -
    182 template<typename Type>
    -
    183 static std::enable_if_t<std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, Type>> basic_vtable([[maybe_unused]] const internal::meta_traits req, [[maybe_unused]] const bool const_only, [[maybe_unused]] const void *value, [[maybe_unused]] void *other) {
    -
    184 if constexpr(is_meta_pointer_like_v<Type>) {
    -
    185 if(req == internal::meta_traits::is_meta_pointer_like) {
    -
    186 if constexpr(std::is_function_v<typename std::pointer_traits<Type>::element_type>) {
    -
    187 static_cast<meta_any *>(other)->emplace<Type>(*static_cast<const Type *>(value));
    -
    188 } else if constexpr(!std::is_void_v<std::remove_const_t<typename std::pointer_traits<Type>::element_type>>) {
    -
    189 using in_place_type = decltype(adl_meta_pointer_like<Type>::dereference(*static_cast<const Type *>(value)));
    +
    161
    +
    163using meta_any_policy [[deprecated("use any_policy instead")]] = any_policy;
    +
    164
    +
    +
    166class meta_any {
    +
    167 using vtable_type = void(const internal::meta_traits op, const meta_ctx &, const void *, void *);
    +
    168
    +
    169 template<typename Type>
    +
    170 static void basic_vtable([[maybe_unused]] const internal::meta_traits req, [[maybe_unused]] const meta_ctx &area, [[maybe_unused]] const void *value, [[maybe_unused]] void *other) {
    +
    171 static_assert(std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, Type>, "Invalid type");
    +
    172
    +
    173 if constexpr(is_meta_pointer_like_v<Type>) {
    +
    174 if(!!(req & internal::meta_traits::is_pointer_like)) {
    +
    175 if constexpr(std::is_function_v<typename std::pointer_traits<Type>::element_type>) {
    +
    176 static_cast<meta_any *>(other)->emplace<Type>(*static_cast<const Type *>(value));
    +
    177 } else if constexpr(!std::is_void_v<std::remove_const_t<typename std::pointer_traits<Type>::element_type>>) {
    +
    178 using in_place_type = decltype(adl_meta_pointer_like<Type>::dereference(std::declval<const Type &>()));
    +
    179
    +
    180 if constexpr(std::is_constructible_v<bool, Type>) {
    +
    181 if(const auto &pointer_like = *static_cast<const Type *>(value); pointer_like) {
    +
    182 static_cast<meta_any *>(other)->emplace<in_place_type>(adl_meta_pointer_like<Type>::dereference(pointer_like));
    +
    183 }
    +
    184 } else {
    +
    185 static_cast<meta_any *>(other)->emplace<in_place_type>(adl_meta_pointer_like<Type>::dereference(*static_cast<const Type *>(value)));
    +
    186 }
    +
    187 }
    +
    188 }
    +
    189 }
    190
    -
    191 if constexpr(std::is_constructible_v<bool, Type>) {
    -
    192 if(const auto &pointer_like = *static_cast<const Type *>(value); pointer_like) {
    - -
    194 }
    -
    195 } else {
    -
    196 static_cast<meta_any *>(other)->emplace<in_place_type>(adl_meta_pointer_like<Type>::dereference(*static_cast<const Type *>(value)));
    -
    197 }
    -
    198 }
    -
    199 }
    -
    200 }
    -
    201
    - -
    203 if(req == internal::meta_traits::is_meta_sequence_container) {
    -
    204 const_only ? static_cast<meta_sequence_container *>(other)->rebind(*static_cast<const Type *>(value)) : static_cast<meta_sequence_container *>(other)->rebind(*static_cast<Type *>(const_cast<void *>(value)));
    -
    205 }
    -
    206 }
    -
    207
    - -
    209 if(req == internal::meta_traits::is_meta_associative_container) {
    -
    210 const_only ? static_cast<meta_associative_container *>(other)->rebind(*static_cast<const Type *>(value)) : static_cast<meta_associative_container *>(other)->rebind(*static_cast<Type *>(const_cast<void *>(value)));
    -
    211 }
    -
    212 }
    -
    213 }
    -
    214
    -
    215 void release() {
    -
    216 if((node.dtor.dtor != nullptr) && (storage.policy() == any_policy::owner)) {
    -
    217 node.dtor.dtor(storage.data());
    + +
    192 if(!!(req & internal::meta_traits::is_sequence_container)) {
    +
    193 // NOLINTNEXTLINE(bugprone-casting-through-void)
    +
    194 *static_cast<meta_sequence_container *>(other) = !!(req & internal::meta_traits::is_const) ? meta_sequence_container{area, *static_cast<const Type *>(value)} : meta_sequence_container{area, *static_cast<Type *>(const_cast<void *>(value))};
    +
    195 }
    +
    196 }
    +
    197
    + +
    199 if(!!(req & internal::meta_traits::is_associative_container)) {
    +
    200 // NOLINTNEXTLINE(bugprone-casting-through-void)
    +
    201 *static_cast<meta_associative_container *>(other) = !!(req & internal::meta_traits::is_const) ? meta_associative_container{area, *static_cast<const Type *>(value)} : meta_associative_container{area, *static_cast<Type *>(const_cast<void *>(value))};
    +
    202 }
    +
    203 }
    +
    204 }
    +
    205
    +
    206 void release() {
    +
    207 if(storage.owner() && (node.dtor.dtor != nullptr)) {
    +
    208 node.dtor.dtor(storage.data());
    +
    209 }
    +
    210 }
    +
    211
    +
    212 meta_any(const meta_any &other, any ref) noexcept
    +
    213 : storage{std::move(ref)},
    +
    214 ctx{other.ctx} {
    +
    215 if(storage || !other.storage) {
    +
    216 node = other.node;
    +
    217 vtable = other.vtable;
    218 }
    219 }
    220
    - -
    222 : storage{std::move(ref)},
    -
    223 ctx{other.ctx},
    -
    224 node{storage ? other.node : internal::meta_type_node{}},
    -
    225 vtable{storage ? other.vtable : &basic_vtable<void>} {}
    -
    226
    -
    227public:
    -
    229 meta_any() = default;
    -
    230
    -
    - -
    236 : ctx{&area} {}
    +
    221public:
    +
    223 meta_any() = default;
    +
    224
    +
    + +
    230 : ctx{&area} {}
    -
    237
    -
    244 template<typename Type, typename... Args>
    -
    -
    245 explicit meta_any(std::in_place_type_t<Type>, Args &&...args)
    -
    246 : meta_any{locator<meta_ctx>::value_or(), std::in_place_type<Type>, std::forward<Args>(args)...} {}
    +
    231
    +
    238 template<typename Type, typename... Args>
    +
    +
    239 explicit meta_any(std::in_place_type_t<Type>, Args &&...args)
    +
    240 : meta_any{locator<meta_ctx>::value_or(), std::in_place_type<Type>, std::forward<Args>(args)...} {}
    -
    247
    -
    255 template<typename Type, typename... Args>
    -
    -
    256 explicit meta_any(const meta_ctx &area, std::in_place_type_t<Type>, Args &&...args)
    -
    257 : storage{std::in_place_type<Type>, std::forward<Args>(args)...},
    -
    258 ctx{&area},
    -
    259 node{internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx))},
    -
    260 vtable{&basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>} {}
    +
    241
    +
    249 template<typename Type, typename... Args>
    +
    +
    250 explicit meta_any(const meta_ctx &area, std::in_place_type_t<Type>, Args &&...args)
    +
    251 : storage{std::in_place_type<Type>, std::forward<Args>(args)...},
    +
    252 ctx{&area},
    +
    253 node{internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx))},
    +
    254 vtable{&basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>} {}
    -
    261
    -
    267 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    -
    -
    268 meta_any(Type &&value)
    -
    269 : meta_any{locator<meta_ctx>::value_or(), std::forward<Type>(value)} {}
    +
    255
    +
    261 template<typename Type>
    +
    +
    262 explicit meta_any(std::in_place_t, Type *value)
    +
    263 : meta_any{locator<meta_ctx>::value_or(), std::in_place, value} {}
    -
    270
    -
    277 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    -
    -
    278 meta_any(const meta_ctx &area, Type &&value)
    -
    279 : meta_any{area, std::in_place_type<std::decay_t<Type>>, std::forward<Type>(value)} {}
    +
    264
    +
    271 template<typename Type>
    +
    +
    272 explicit meta_any(const meta_ctx &area, std::in_place_t, Type *value)
    +
    273 : storage{std::in_place, value},
    +
    274 ctx{&area} {
    +
    275 if(storage) {
    +
    276 node = internal::resolve<Type>(internal::meta_context::from(*ctx));
    +
    277 vtable = &basic_vtable<Type>;
    +
    278 }
    +
    279 }
    -
    280
    -
    - - -
    288 ctx{&area},
    -
    289 node{(other.node.resolve != nullptr) ? other.node.resolve(internal::meta_context::from(*ctx)) : other.node},
    -
    290 vtable{other.vtable} {}
    +
    280
    +
    286 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    +
    +
    287 meta_any(Type &&value)
    +
    288 : meta_any{locator<meta_ctx>::value_or(), std::forward<Type>(value)} {}
    -
    291
    +
    289
    +
    296 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    - -
    298 : storage{std::move(other.storage)},
    -
    299 ctx{&area},
    -
    300 node{(other.node.resolve != nullptr) ? std::exchange(other.node, internal::meta_type_node{}).resolve(internal::meta_context::from(*ctx)) : std::exchange(other.node, internal::meta_type_node{})},
    -
    301 vtable{std::exchange(other.vtable, &basic_vtable<void>)} {}
    +
    297 meta_any(const meta_ctx &area, Type &&value)
    +
    298 : meta_any{area, std::in_place_type<std::decay_t<Type>>, std::forward<Type>(value)} {}
    -
    302
    -
    307 meta_any(const meta_any &other) = default;
    -
    308
    -
    - -
    314 : storage{std::move(other.storage)},
    -
    315 ctx{other.ctx},
    -
    316 node{std::exchange(other.node, internal::meta_type_node{})},
    -
    317 vtable{std::exchange(other.vtable, &basic_vtable<void>)} {}
    +
    299
    +
    +
    305 meta_any(const meta_ctx &area, const meta_any &other)
    +
    306 : storage{other.storage},
    +
    307 ctx{&area},
    +
    308 node{(other.node.resolve != nullptr) ? other.node.resolve(internal::meta_context::from(*ctx)) : other.node},
    +
    309 vtable{other.vtable} {}
    -
    318
    -
    - -
    321 release();
    -
    322 }
    +
    310
    +
    +
    316 meta_any(const meta_ctx &area, meta_any &&other)
    +
    317 : storage{std::move(other.storage)},
    +
    318 ctx{&area},
    +
    319 node{(other.node.resolve != nullptr) ? std::exchange(other.node, internal::meta_type_node{}).resolve(internal::meta_context::from(*ctx)) : std::exchange(other.node, internal::meta_type_node{})},
    +
    320 vtable{std::exchange(other.vtable, nullptr)} {}
    -
    323
    -
    - -
    330 if(this != &other) {
    -
    331 release();
    -
    332 storage = other.storage;
    -
    333 ctx = other.ctx;
    -
    334 node = other.node;
    -
    335 vtable = other.vtable;
    -
    336 }
    -
    337
    -
    338 return *this;
    -
    339 }
    +
    321
    +
    326 meta_any(const meta_any &other) = default;
    +
    327
    +
    +
    332 meta_any(meta_any &&other) noexcept
    +
    333 : storage{std::move(other.storage)},
    +
    334 ctx{other.ctx},
    +
    335 node{std::exchange(other.node, internal::meta_type_node{})},
    +
    336 vtable{std::exchange(other.vtable, nullptr)} {}
    -
    340
    -
    - -
    347 ENTT_ASSERT(this != &other, "Self move assignment");
    -
    348
    -
    349 release();
    -
    350 storage = std::move(other.storage);
    -
    351 ctx = other.ctx;
    -
    352 node = std::exchange(other.node, internal::meta_type_node{});
    -
    353 vtable = std::exchange(other.vtable, &basic_vtable<void>);
    -
    354 return *this;
    -
    355 }
    +
    337
    +
    + +
    340 release();
    +
    341 }
    +
    342
    +
    +
    348 meta_any &operator=(const meta_any &other) {
    +
    349 if(this != &other) {
    +
    350 release();
    +
    351 storage = other.storage;
    +
    352 ctx = other.ctx;
    +
    353 node = other.node;
    +
    354 vtable = other.vtable;
    +
    355 }
    356
    -
    363 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    -
    -
    364 meta_any &operator=(Type &&value) {
    -
    365 emplace<std::decay_t<Type>>(std::forward<Type>(value));
    -
    366 return *this;
    -
    367 }
    +
    357 return *this;
    +
    358 }
    -
    368
    - -
    371
    -
    - -
    374 return storage.data();
    -
    375 }
    +
    359
    +
    +
    369 meta_any &operator=(meta_any &&other) noexcept {
    +
    370 reset();
    +
    371 storage = std::move(other.storage);
    +
    372 ctx = other.ctx;
    +
    373 node = std::exchange(other.node, internal::meta_type_node{});
    +
    374 vtable = std::exchange(other.vtable, nullptr);
    +
    375 return *this;
    +
    376 }
    -
    376
    -
    -
    378 [[nodiscard]] void *data() noexcept {
    -
    379 return storage.data();
    -
    380 }
    +
    377
    +
    384 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    +
    +
    385 meta_any &operator=(Type &&value) {
    +
    386 emplace<std::decay_t<Type>>(std::forward<Type>(value));
    +
    387 return *this;
    +
    388 }
    -
    381
    -
    389 template<typename... Args>
    -
    390 meta_any invoke(id_type id, Args &&...args) const;
    -
    391
    -
    393 template<typename... Args>
    -
    394 meta_any invoke(id_type id, Args &&...args);
    -
    395
    -
    403 template<typename Type>
    -
    404 bool set(id_type id, Type &&value);
    -
    405
    -
    411 [[nodiscard]] meta_any get(id_type id) const;
    -
    412
    - -
    415
    -
    421 template<typename Type>
    -
    -
    422 [[nodiscard]] const Type *try_cast() const {
    -
    423 const auto other = internal::resolve<std::remove_cv_t<Type>>(internal::meta_context::from(*ctx));
    -
    424 return static_cast<const Type *>(internal::try_cast(internal::meta_context::from(*ctx), node, other, data()));
    -
    425 }
    +
    389
    +
    391 [[nodiscard]] inline meta_type type() const noexcept;
    +
    392
    +
    +
    394 [[nodiscard]] [[deprecated("use ::base().data() instead")]] const void *data() const noexcept {
    +
    395 return storage.data();
    +
    396 }
    -
    426
    -
    428 template<typename Type>
    -
    -
    429 [[nodiscard]] Type *try_cast() {
    -
    430 if constexpr(std::is_const_v<Type>) {
    -
    431 return std::as_const(*this).try_cast<std::remove_const_t<Type>>();
    -
    432 } else {
    -
    433 const auto other = internal::resolve<std::remove_cv_t<Type>>(internal::meta_context::from(*ctx));
    -
    434 return static_cast<Type *>(const_cast<void *>(internal::try_cast(internal::meta_context::from(*ctx), node, other, data())));
    -
    435 }
    -
    436 }
    +
    397
    +
    +
    399 [[nodiscard]] [[deprecated("no longer supported, use ::base().data() for const access")]] void *data() noexcept {
    +
    400 return storage.data();
    +
    401 }
    -
    437
    -
    443 template<typename Type>
    -
    -
    444 [[nodiscard]] std::remove_const_t<Type> cast() const {
    -
    445 auto *const instance = try_cast<std::remove_reference_t<Type>>();
    -
    446 ENTT_ASSERT(instance, "Invalid instance");
    -
    447 return static_cast<Type>(*instance);
    -
    448 }
    +
    402
    +
    410 template<typename... Args>
    +
    411 meta_any invoke(id_type id, Args &&...args) const;
    +
    412
    +
    414 template<typename... Args>
    +
    415 meta_any invoke(id_type id, Args &&...args);
    +
    416
    +
    424 template<typename Type>
    +
    425 bool set(id_type id, Type &&value);
    +
    426
    +
    432 [[nodiscard]] meta_any get(id_type id) const;
    +
    433
    +
    435 [[nodiscard]] meta_any get(id_type id);
    +
    436
    +
    442 template<typename Type>
    +
    +
    443 [[nodiscard]] const Type *try_cast() const {
    +
    444 const auto &other = type_id<std::remove_cv_t<Type>>();
    +
    445 return static_cast<const Type *>(internal::try_cast(internal::meta_context::from(*ctx), node, other, storage.data()));
    +
    446 }
    -
    449
    -
    451 template<typename Type>
    -
    -
    452 [[nodiscard]] std::remove_const_t<Type> cast() {
    -
    453 // forces const on non-reference types to make them work also with wrappers for const references
    -
    454 auto *const instance = try_cast<std::remove_reference_t<const Type>>();
    -
    455 ENTT_ASSERT(instance, "Invalid instance");
    -
    456 return static_cast<Type>(*instance);
    -
    457 }
    +
    447
    +
    449 template<typename Type>
    +
    +
    450 [[nodiscard]] Type *try_cast() {
    +
    451 if constexpr(std::is_const_v<Type>) {
    +
    452 return std::as_const(*this).try_cast<std::remove_const_t<Type>>();
    +
    453 } else {
    +
    454 const auto &other = type_id<Type>();
    +
    455 // NOLINTNEXTLINE(bugprone-casting-through-void)
    +
    456 return static_cast<Type *>(const_cast<void *>(internal::try_cast(internal::meta_context::from(*ctx), node, other, storage.data())));
    +
    457 }
    +
    458 }
    -
    458
    -
    465 [[nodiscard]] meta_any allow_cast(const meta_type &type) const;
    -
    466
    -
    - -
    473 if(auto other = std::as_const(*this).allow_cast(type); other) {
    -
    474 if((other.storage.policy() == any_policy::owner)) {
    -
    475 std::swap(*this, other);
    -
    476 }
    -
    477
    -
    478 return true;
    -
    479 }
    -
    480
    -
    481 return false;
    -
    482 }
    +
    459
    +
    465 template<typename Type>
    +
    +
    466 [[nodiscard]] std::remove_const_t<Type> cast() const {
    +
    467 auto *const instance = try_cast<std::remove_reference_t<Type>>();
    +
    468 ENTT_ASSERT(instance, "Invalid instance");
    +
    469 return static_cast<Type>(*instance);
    +
    470 }
    -
    483
    -
    490 template<typename Type>
    -
    - -
    492 if constexpr(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) {
    -
    493 return meta_any{meta_ctx_arg, *ctx};
    -
    494 } else {
    -
    495 auto other = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
    -
    496 return allow_cast(meta_type{*ctx, other});
    -
    497 }
    -
    498 }
    +
    471
    +
    473 template<typename Type>
    +
    +
    474 [[nodiscard]] std::remove_const_t<Type> cast() {
    +
    475 // forces const on non-reference types to make them work also with wrappers for const references
    +
    476 auto *const instance = try_cast<std::remove_reference_t<const Type>>();
    +
    477 ENTT_ASSERT(instance, "Invalid instance");
    +
    478 return static_cast<Type>(*instance);
    +
    479 }
    +
    480
    +
    487 [[nodiscard]] meta_any allow_cast(const meta_type &type) const;
    +
    488
    +
    +
    494 [[nodiscard]] bool allow_cast(const meta_type &type) {
    +
    495 if(auto other = std::as_const(*this).allow_cast(type); other) {
    +
    496 if(other.storage.owner()) {
    +
    497 std::swap(*this, other);
    +
    498 }
    499
    -
    505 template<typename Type>
    -
    - -
    507 auto other = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
    -
    508 return allow_cast(meta_type{*ctx, other}) && (!(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) || storage.data() != nullptr);
    -
    509 }
    +
    500 return true;
    +
    501 }
    +
    502
    +
    503 return false;
    +
    504 }
    -
    510
    -
    512 template<typename Type, typename... Args>
    +
    505
    +
    512 template<typename Type>
    -
    513 void emplace(Args &&...args) {
    -
    514 release();
    -
    515 storage.emplace<Type>(std::forward<Args>(args)...);
    -
    516 node = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
    - -
    518 }
    +
    513 [[nodiscard]] meta_any allow_cast() const {
    +
    514 if constexpr(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) {
    +
    515 return meta_any{meta_ctx_arg, *ctx};
    +
    516 } else {
    +
    517 // also support early return for performance reasons
    +
    518 return ((node.info != nullptr) && (*node.info == entt::type_id<Type>())) ? as_ref() : allow_cast(meta_type{*ctx, internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx))});
    +
    519 }
    +
    520 }
    -
    519
    -
    521 bool assign(const meta_any &other);
    -
    522
    -
    524 bool assign(meta_any &&other);
    -
    525
    -
    -
    527 void reset() {
    -
    528 release();
    -
    529 storage.reset();
    -
    530 node = {};
    -
    531 vtable = &basic_vtable<void>;
    -
    532 }
    +
    521
    +
    527 template<typename Type>
    +
    +
    528 [[nodiscard]] bool allow_cast() {
    +
    529 if constexpr(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) {
    +
    530 return allow_cast<const std::remove_reference_t<Type> &>() && (storage.data() != nullptr);
    +
    531 } else {
    +
    532 // also support early return for performance reasons
    +
    533 return ((node.info != nullptr) && (*node.info == entt::type_id<Type>())) || allow_cast(meta_type{*ctx, internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx))});
    +
    534 }
    +
    535 }
    -
    533
    -
    - - -
    540 vtable(internal::meta_traits::is_meta_sequence_container, policy() == meta_any_policy::cref, std::as_const(*this).data(), &proxy);
    -
    541 return proxy;
    -
    542 }
    +
    536
    +
    538 template<typename Type, typename... Args>
    +
    +
    539 void emplace(Args &&...args) {
    +
    540 release();
    +
    541 storage.emplace<Type>(std::forward<Args>(args)...);
    +
    542 node = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
    +
    543 vtable = &basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>;
    +
    544 }
    -
    543
    -
    - - -
    547 vtable(internal::meta_traits::is_meta_sequence_container, true, data(), &proxy);
    -
    548 return proxy;
    -
    549 }
    +
    545
    +
    547 bool assign(const meta_any &other);
    +
    548
    +
    550 bool assign(meta_any &&other);
    +
    551
    +
    +
    553 void reset() {
    +
    554 release();
    +
    555 storage.reset();
    +
    556 node = {};
    +
    557 vtable = nullptr;
    +
    558 }
    -
    550
    -
    - - -
    557 vtable(internal::meta_traits::is_meta_associative_container, policy() == meta_any_policy::cref, std::as_const(*this).data(), &proxy);
    -
    558 return proxy;
    -
    559 }
    +
    559
    +
    + +
    565 meta_sequence_container proxy = (storage.policy() == any_policy::cref) ? std::as_const(*this).as_sequence_container() : meta_sequence_container{};
    +
    566 if(!proxy && vtable != nullptr) { vtable(internal::meta_traits::is_sequence_container, *ctx, storage.data(), &proxy); }
    +
    567 return proxy;
    +
    568 }
    -
    560
    -
    - - -
    564 vtable(internal::meta_traits::is_meta_associative_container, true, data(), &proxy);
    -
    565 return proxy;
    -
    566 }
    +
    569
    +
    +
    571 [[nodiscard]] meta_sequence_container as_sequence_container() const noexcept {
    + +
    573 if(vtable != nullptr) { vtable(internal::meta_traits::is_sequence_container | internal::meta_traits::is_const, *ctx, storage.data(), &proxy); }
    +
    574 return proxy;
    +
    575 }
    -
    567
    -
    - -
    574 meta_any ret{meta_ctx_arg, *ctx};
    -
    575 vtable(internal::meta_traits::is_meta_pointer_like, true, storage.data(), &ret);
    -
    576 return ret;
    -
    577 }
    -
    -
    578
    -
    -
    583 [[nodiscard]] explicit operator bool() const noexcept {
    -
    584 return !(node.info == nullptr);
    +
    576
    +
    + +
    582 meta_associative_container proxy = (storage.policy() == any_policy::cref) ? std::as_const(*this).as_associative_container() : meta_associative_container{};
    +
    583 if(!proxy && vtable != nullptr) { vtable(internal::meta_traits::is_associative_container, *ctx, storage.data(), &proxy); }
    +
    584 return proxy;
    585 }
    -
    586
    +
    586
    -
    588 [[nodiscard]] bool operator==(const meta_any &other) const noexcept {
    -
    589 return (ctx == other.ctx) && (((node.info == nullptr) && (other.node.info == nullptr)) || ((node.info != nullptr) && (other.node.info != nullptr) && *node.info == *other.node.info && storage == other.storage));
    -
    590 }
    + + +
    590 if(vtable != nullptr) { vtable(internal::meta_traits::is_associative_container | internal::meta_traits::is_const, *ctx, storage.data(), &proxy); }
    +
    591 return proxy;
    +
    592 }
    -
    591
    -
    -
    593 [[nodiscard]] bool operator!=(const meta_any &other) const noexcept {
    -
    594 return !(*this == other);
    -
    595 }
    +
    593
    +
    +
    599 [[nodiscard]] meta_any operator*() const noexcept {
    +
    600 meta_any ret{meta_ctx_arg, *ctx};
    +
    601 if(vtable != nullptr) { vtable(internal::meta_traits::is_pointer_like, *ctx, storage.data(), &ret); }
    +
    602 return ret;
    +
    603 }
    -
    596
    -
    - -
    599 return meta_any{*this, storage.as_ref()};
    -
    600 }
    +
    604
    +
    +
    609 [[nodiscard]] explicit operator bool() const noexcept {
    +
    610 return !(node.info == nullptr);
    +
    611 }
    -
    601
    -
    - -
    604 return meta_any{*this, storage.as_ref()};
    -
    605 }
    +
    612
    +
    +
    614 [[nodiscard]] bool operator==(const meta_any &other) const noexcept {
    +
    615 return (ctx == other.ctx) && (((node.info == nullptr) && (other.node.info == nullptr)) || ((node.info != nullptr) && (other.node.info != nullptr) && *node.info == *other.node.info && storage == other.storage));
    +
    616 }
    -
    606
    -
    - -
    612 return storage.policy();
    -
    613 }
    +
    617
    +
    +
    619 [[nodiscard]] bool operator!=(const meta_any &other) const noexcept {
    +
    620 return !(*this == other);
    +
    621 }
    -
    614
    -
    615private:
    -
    616 any storage{};
    -
    617 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    -
    618 internal::meta_type_node node{};
    -
    619 vtable_type *vtable{&basic_vtable<void>};
    -
    620};
    +
    622
    +
    +
    624 [[nodiscard]] meta_any as_ref() noexcept {
    +
    625 return meta_any{*this, storage.as_ref()};
    +
    626 }
    -
    621
    -
    629template<typename Type>
    -
    -
    630[[nodiscard]] meta_any forward_as_meta(const meta_ctx &ctx, Type &&value) {
    -
    631 return meta_any{ctx, std::in_place_type<Type &&>, std::forward<Type>(value)};
    -
    632}
    +
    627
    +
    +
    629 [[nodiscard]] meta_any as_ref() const noexcept {
    +
    630 return meta_any{*this, storage.as_ref()};
    +
    631 }
    -
    633
    -
    640template<typename Type>
    -
    - -
    642 return forward_as_meta(locator<meta_ctx>::value_or(), std::forward<Type>(value));
    -
    643}
    +
    632
    +
    +
    637 [[nodiscard]] [[deprecated("use ::base().policy() instead")]] any_policy policy() const noexcept {
    +
    638 return storage.policy();
    +
    639 }
    -
    644
    -
    - -
    653 meta_handle() = default;
    -
    654
    -
    - -
    660 : any{meta_ctx_arg, area} {}
    +
    640
    +
    +
    645 [[nodiscard]] const any &base() const noexcept {
    +
    646 return storage;
    +
    647 }
    -
    661
    -
    - -
    667 : any{value.as_ref()} {}
    +
    648
    +
    +
    653 [[nodiscard]] const meta_ctx &context() const noexcept {
    +
    654 return *ctx;
    +
    655 }
    -
    668
    -
    -
    673 meta_handle(const meta_any &value)
    -
    674 : any{value.as_ref()} {}
    +
    656
    +
    657private:
    +
    658 any storage;
    + +
    660 internal::meta_type_node node{};
    +
    661 vtable_type *vtable{};
    +
    662};
    -
    675
    -
    682 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +
    663
    +
    671template<typename Type>
    +
    +
    672[[nodiscard]] meta_any forward_as_meta(const meta_ctx &ctx, Type &&value) {
    +
    673 return meta_any{ctx, std::in_place_type<Type &&>, std::forward<Type>(value)};
    +
    674}
    +
    +
    675
    +
    682template<typename Type>
    -
    683 meta_handle(const meta_ctx &ctx, Type &value)
    -
    684 : any{ctx, std::in_place_type<Type &>, value} {}
    +
    683[[nodiscard]] meta_any forward_as_meta(Type &&value) {
    +
    684 return forward_as_meta(locator<meta_ctx>::value_or(), std::forward<Type>(value));
    +
    685}
    -
    685
    -
    691 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    -
    -
    692 meta_handle(Type &value)
    -
    693 : meta_handle{locator<meta_ctx>::value_or(), value} {}
    +
    686
    +
    + +
    690 meta_handle() = default;
    +
    691
    +
    + +
    697 : any{meta_ctx_arg, area} {}
    -
    694
    -
    - -
    701 : any{area, other.any} {}
    +
    698
    +
    + +
    704 : any{value.as_ref()} {}
    -
    702
    -
    - -
    709 : any{area, std::move(other.any)} {}
    +
    705
    +
    +
    710 meta_handle(const meta_any &value)
    +
    711 : any{value.as_ref()} {}
    -
    710
    -
    712 meta_handle(const meta_handle &) = delete;
    -
    713
    - -
    716
    -
    718 ~meta_handle() = default;
    -
    719
    - -
    725
    - -
    731
    -
    -
    736 [[nodiscard]] explicit operator bool() const noexcept {
    -
    737 return static_cast<bool>(any);
    -
    738 }
    +
    712
    +
    719 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +
    +
    720 meta_handle(const meta_ctx &ctx, Type &value)
    +
    721 : any{ctx, std::in_place_type<Type &>, value} {}
    -
    739
    -
    -
    741 [[nodiscard]] bool operator==(const meta_handle &other) const noexcept {
    -
    742 return (any == other.any);
    -
    743 }
    +
    722
    +
    728 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +
    +
    729 meta_handle(Type &value)
    +
    730 : any{std::in_place_type<Type &>, value} {}
    -
    744
    -
    -
    746 [[nodiscard]] bool operator!=(const meta_handle &other) const noexcept {
    -
    747 return !(*this == other);
    -
    748 }
    +
    731
    +
    +
    737 meta_handle(const meta_ctx &area, const meta_handle &other)
    +
    738 : any{area, other.any} {}
    -
    749
    -
    - -
    755 return &any;
    -
    756 }
    +
    739
    +
    +
    745 meta_handle(const meta_ctx &area, meta_handle &&other)
    +
    746 : any{area, std::move(other.any)} {}
    -
    757
    -
    -
    759 [[nodiscard]] const meta_any *operator->() const {
    -
    760 return &any;
    -
    761 }
    +
    747
    +
    749 meta_handle(const meta_handle &) = delete;
    +
    750
    + +
    753
    +
    755 ~meta_handle() = default;
    +
    756
    + +
    762
    + +
    768
    +
    +
    773 [[nodiscard]] explicit operator bool() const noexcept {
    +
    774 return static_cast<bool>(any);
    +
    775 }
    -
    762
    -
    763private:
    - -
    765};
    +
    776
    +
    +
    778 [[nodiscard]] bool operator==(const meta_handle &other) const noexcept {
    +
    779 return (any == other.any);
    +
    780 }
    -
    766
    -
    -
    768struct meta_prop {
    - -
    771
    -
    - -
    778 : node{std::move(curr)},
    -
    779 ctx{&area} {}
    +
    781
    +
    +
    783 [[nodiscard]] bool operator!=(const meta_handle &other) const noexcept {
    +
    784 return !(*this == other);
    +
    785 }
    -
    780
    -
    - -
    786 return node.value ? node.type(internal::meta_context::from(*ctx)).from_void(*ctx, nullptr, node.value.get()) : meta_any{meta_ctx_arg, *ctx};
    -
    787 }
    +
    786
    +
    +
    791 [[nodiscard]] meta_any *operator->() {
    +
    792 return &any;
    +
    793 }
    -
    788
    -
    - -
    794 return node.value ? node.type(internal::meta_context::from(*ctx)).from_void(*ctx, node.value.get(), nullptr) : meta_any{meta_ctx_arg, *ctx};
    -
    795 }
    +
    794
    +
    +
    796 [[nodiscard]] const meta_any *operator->() const {
    +
    797 return &any;
    +
    798 }
    -
    796
    -
    -
    801 [[nodiscard]] explicit operator bool() const noexcept {
    -
    802 return static_cast<bool>(node.type);
    -
    803 }
    +
    799
    +
    800private:
    + +
    802};
    -
    804
    -
    -
    810 [[nodiscard]] bool operator==(const meta_prop &other) const noexcept {
    -
    811 return (ctx == other.ctx && node.value == other.node.value);
    -
    812 }
    +
    803
    +
    + +
    807 meta_custom() noexcept = default;
    +
    808
    +
    +
    813 meta_custom(internal::meta_custom_node curr) noexcept
    +
    814 : node{std::move(curr)} {}
    -
    813
    -
    814private:
    -
    815 internal::meta_prop_node node{};
    -
    816 const meta_ctx *ctx{};
    -
    817};
    +
    815
    +
    820 template<typename Type>
    +
    +
    821 [[nodiscard]] operator Type *() const noexcept {
    +
    822 return (type_id<Type>().hash() == node.type) ? std::static_pointer_cast<Type>(node.value).get() : nullptr;
    +
    823 }
    -
    818
    -
    -
    825[[nodiscard]] inline bool operator!=(const meta_prop &lhs, const meta_prop &rhs) noexcept {
    -
    826 return !(lhs == rhs);
    -
    827}
    +
    824
    +
    829 template<typename Type>
    +
    +
    830 [[nodiscard]] operator Type &() const noexcept {
    +
    831 ENTT_ASSERT(type_id<Type>().hash() == node.type, "Invalid type");
    +
    832 return *std::static_pointer_cast<Type>(node.value);
    +
    833 }
    -
    828
    -
    - - -
    833
    -
    - -
    839 : node{std::move(curr)} {}
    +
    834
    +
    835private:
    +
    836 internal::meta_custom_node node{};
    +
    837};
    -
    840
    -
    845 template<typename Type>
    -
    -
    846 [[nodiscard]] operator Type *() const noexcept {
    -
    847 return (type_id<Type>().hash() == node.type) ? std::static_pointer_cast<Type>(node.value).get() : nullptr;
    -
    848 }
    +
    838
    +
    +
    840struct meta_data {
    +
    842 using size_type = typename internal::meta_data_node::size_type;
    +
    843
    +
    845 meta_data() noexcept = default;
    +
    846
    +
    +
    852 meta_data(const meta_ctx &area, internal::meta_data_node curr) noexcept
    +
    853 : node{std::move(curr)},
    +
    854 ctx{&area} {}
    -
    849
    -
    854 template<typename Type>
    -
    -
    855 [[nodiscard]] operator Type &() const noexcept {
    -
    856 ENTT_ASSERT(type_id<Type>().hash() == node.type, "Invalid type");
    -
    857 return *std::static_pointer_cast<Type>(node.value);
    -
    858 }
    +
    855
    +
    +
    860 [[nodiscard]] size_type arity() const noexcept {
    +
    861 return node.arity;
    +
    862 }
    -
    859
    -
    860private:
    -
    861 internal::meta_custom_node node{};
    -
    862};
    +
    863
    +
    +
    868 [[nodiscard]] bool is_const() const noexcept {
    +
    869 return static_cast<bool>(node.traits & internal::meta_traits::is_const);
    +
    870 }
    -
    863
    -
    -
    865struct meta_data {
    -
    867 using size_type = typename internal::meta_data_node::size_type;
    -
    868
    - -
    871
    -
    - -
    878 : node{&curr},
    -
    879 ctx{&area} {}
    +
    871
    +
    +
    876 [[nodiscard]] bool is_static() const noexcept {
    +
    877 return static_cast<bool>(node.traits & internal::meta_traits::is_static);
    +
    878 }
    -
    880
    -
    - -
    886 return node->arity;
    -
    887 }
    +
    879
    +
    881 [[nodiscard]] inline meta_type type() const noexcept;
    +
    882
    +
    890 template<typename Type>
    +
    891 // NOLINTNEXTLINE(modernize-use-nodiscard)
    +
    +
    892 bool set(meta_handle instance, Type &&value) const {
    +
    893 return (node.set != nullptr) && node.set(meta_handle{*ctx, std::move(instance)}, meta_any{*ctx, std::forward<Type>(value)});
    +
    894 }
    -
    888
    -
    - -
    894 return static_cast<bool>(node->traits & internal::meta_traits::is_const);
    -
    895 }
    -
    -
    896
    +
    895
    - -
    902 return static_cast<bool>(node->traits & internal::meta_traits::is_static);
    +
    901 [[nodiscard]] meta_any get(meta_handle instance) const {
    +
    902 return (node.get != nullptr) ? node.get(meta_handle{*ctx, std::move(instance)}) : meta_any{meta_ctx_arg, *ctx};
    903 }
    -
    904
    - -
    907
    -
    915 template<typename Type>
    -
    916 // NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    -
    917 bool set(meta_handle instance, Type &&value) const {
    -
    918 return node->set && node->set(meta_handle{*ctx, std::move(instance)}, meta_any{*ctx, std::forward<Type>(value)});
    -
    919 }
    +
    904
    +
    910 [[nodiscard]] inline meta_type arg(size_type index) const noexcept;
    +
    911
    +
    917 template<typename Type>
    +
    +
    918 [[nodiscard]] Type traits() const noexcept {
    +
    919 return internal::meta_to_user_traits<Type>(node.traits);
    +
    920 }
    -
    920
    +
    921
    -
    926 [[nodiscard]] meta_any get(meta_handle instance) const {
    -
    927 return node->get(*ctx, meta_handle{*ctx, std::move(instance)});
    +
    926 [[nodiscard]] meta_custom custom() const noexcept {
    +
    927 return {node.custom};
    928 }
    -
    929
    -
    935 [[nodiscard]] inline meta_type arg(size_type index) const noexcept;
    -
    936
    -
    -
    941 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_range<meta_prop, typename decltype(internal::meta_data_node::prop)::const_iterator> prop() const noexcept {
    -
    942 return {{*ctx, node->prop.cbegin()}, {*ctx, node->prop.cend()}};
    -
    943 }
    +
    929
    +
    +
    934 [[nodiscard]] explicit operator bool() const noexcept {
    +
    935 return (node.get != nullptr);
    +
    936 }
    -
    944
    -
    -
    950 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_prop prop(const id_type key) const {
    -
    951 for(auto &&elem: node->prop) {
    -
    952 if(elem.id == key) {
    -
    953 return meta_prop{*ctx, elem};
    -
    954 }
    -
    955 }
    -
    956
    -
    957 return meta_prop{};
    -
    958 }
    +
    937
    +
    +
    943 [[nodiscard]] bool operator==(const meta_data &other) const noexcept {
    +
    944 return (ctx == other.ctx) && (node.set == other.node.set) && (node.get == other.node.get);
    +
    945 }
    -
    959
    -
    965 template<typename Type>
    -
    - -
    967 return internal::meta_to_user_traits<Type>(node->traits);
    -
    968 }
    +
    946
    +
    947private:
    +
    948 internal::meta_data_node node{};
    +
    949 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    +
    950};
    -
    969
    -
    - -
    975 return {node->custom};
    -
    976 }
    +
    951
    +
    +
    958[[nodiscard]] inline bool operator!=(const meta_data &lhs, const meta_data &rhs) noexcept {
    +
    959 return !(lhs == rhs);
    +
    960}
    -
    977
    -
    -
    982 [[nodiscard]] explicit operator bool() const noexcept {
    -
    983 return (node != nullptr);
    -
    984 }
    +
    961
    +
    +
    963struct meta_func {
    +
    965 using size_type = typename internal::meta_func_node::size_type;
    +
    966
    +
    968 meta_func() noexcept = default;
    +
    969
    +
    +
    975 meta_func(const meta_ctx &area, internal::meta_func_node curr) noexcept
    +
    976 : node{std::move(curr)},
    +
    977 ctx{&area} {}
    -
    985
    -
    -
    987 [[nodiscard]] bool operator==(const meta_data &other) const noexcept {
    -
    988 return (ctx == other.ctx && node == other.node);
    -
    989 }
    +
    978
    +
    +
    983 [[nodiscard]] size_type arity() const noexcept {
    +
    984 return node.arity;
    +
    985 }
    -
    990
    -
    991private:
    -
    992 const internal::meta_data_node *node{};
    -
    993 const meta_ctx *ctx{};
    -
    994};
    +
    986
    +
    +
    991 [[nodiscard]] bool is_const() const noexcept {
    +
    992 return static_cast<bool>(node.traits & internal::meta_traits::is_const);
    +
    993 }
    -
    995
    -
    -
    1002[[nodiscard]] inline bool operator!=(const meta_data &lhs, const meta_data &rhs) noexcept {
    -
    1003 return !(lhs == rhs);
    -
    1004}
    +
    994
    +
    +
    999 [[nodiscard]] bool is_static() const noexcept {
    +
    1000 return static_cast<bool>(node.traits & internal::meta_traits::is_static);
    +
    1001 }
    -
    1005
    -
    - -
    1009 using size_type = typename internal::meta_func_node::size_type;
    -
    1010
    - -
    1013
    -
    - -
    1020 : node{&curr},
    -
    1021 ctx{&area} {}
    +
    1002
    +
    1007 [[nodiscard]] inline meta_type ret() const noexcept;
    +
    1008
    +
    1014 [[nodiscard]] inline meta_type arg(size_type index) const noexcept;
    +
    1015
    +
    +
    1023 meta_any invoke(meta_handle instance, meta_any *const args, const size_type sz) const {
    +
    1024 return ((node.invoke != nullptr) && (sz == arity())) ? node.invoke(meta_handle{*ctx, std::move(instance)}, args) : meta_any{meta_ctx_arg, *ctx};
    +
    1025 }
    -
    1022
    -
    - -
    1028 return node->arity;
    -
    1029 }
    +
    1026
    +
    1034 template<typename... Args>
    +
    1035 // NOLINTNEXTLINE(modernize-use-nodiscard)
    +
    +
    1036 meta_any invoke(meta_handle instance, Args &&...args) const {
    +
    1037 return invoke(std::move(instance), std::array<meta_any, sizeof...(Args)>{meta_any{*ctx, std::forward<Args>(args)}...}.data(), sizeof...(Args));
    +
    1038 }
    -
    1030
    -
    - -
    1036 return static_cast<bool>(node->traits & internal::meta_traits::is_const);
    -
    1037 }
    +
    1039
    +
    1041 template<typename Type>
    +
    +
    1042 [[nodiscard]] Type traits() const noexcept {
    +
    1043 return internal::meta_to_user_traits<Type>(node.traits);
    +
    1044 }
    -
    1038
    -
    - -
    1044 return static_cast<bool>(node->traits & internal::meta_traits::is_static);
    -
    1045 }
    +
    1045
    +
    +
    1047 [[nodiscard]] meta_custom custom() const noexcept {
    +
    1048 return {node.custom};
    +
    1049 }
    -
    1046
    -
    1051 [[nodiscard]] inline meta_type ret() const noexcept;
    -
    1052
    - -
    1059
    -
    - -
    1068 return sz == arity() ? node->invoke(*ctx, meta_handle{*ctx, std::move(instance)}, args) : meta_any{meta_ctx_arg, *ctx};
    -
    1069 }
    +
    1050
    +
    +
    1055 [[nodiscard]] meta_func next() const {
    +
    1056 return (node.next != nullptr) ? meta_func{*ctx, *node.next} : meta_func{};
    +
    1057 }
    -
    1070
    -
    1078 template<typename... Args>
    -
    1079 // NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    -
    1080 meta_any invoke(meta_handle instance, Args &&...args) const {
    -
    1081 std::array<meta_any, sizeof...(Args)> arguments{meta_any{*ctx, std::forward<Args>(args)}...};
    -
    1082 return invoke(std::move(instance), arguments.data(), sizeof...(Args));
    -
    1083 }
    +
    1058
    +
    +
    1063 [[nodiscard]] explicit operator bool() const noexcept {
    +
    1064 return (node.invoke != nullptr);
    +
    1065 }
    -
    1084
    -
    -
    1086 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_range<meta_prop, typename decltype(internal::meta_func_node::prop)::const_iterator> prop() const noexcept {
    -
    1087 return {{*ctx, node->prop.cbegin()}, {*ctx, node->prop.cend()}};
    -
    1088 }
    +
    1066
    +
    +
    1068 [[nodiscard]] bool operator==(const meta_func &other) const noexcept {
    +
    1069 return (ctx == other.ctx) && (node.invoke == other.node.invoke);
    +
    1070 }
    -
    1089
    -
    -
    1095 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_prop prop(const id_type key) const {
    -
    1096 for(auto &&elem: node->prop) {
    -
    1097 if(elem.id == key) {
    -
    1098 return meta_prop{*ctx, elem};
    -
    1099 }
    -
    1100 }
    +
    1071
    +
    1072private:
    +
    1073 internal::meta_func_node node{};
    +
    1074 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    +
    1075};
    +
    +
    1076
    +
    +
    1083[[nodiscard]] inline bool operator!=(const meta_func &lhs, const meta_func &rhs) noexcept {
    +
    1084 return !(lhs == rhs);
    +
    1085}
    +
    +
    1086
    +
    + +
    1089 template<typename Func>
    +
    1090 [[nodiscard]] auto lookup(meta_any *const args, const typename internal::meta_type_node::size_type sz, [[maybe_unused]] bool constness, Func next) const {
    +
    1091 decltype(next()) candidate = nullptr;
    +
    1092 size_type same{};
    +
    1093 bool ambiguous{};
    +
    1094
    +
    1095 for(auto curr = next(); curr; curr = next()) {
    +
    1096 if constexpr(std::is_same_v<std::decay_t<decltype(*curr)>, internal::meta_func_node>) {
    +
    1097 if(constness && !static_cast<bool>(curr->traits & internal::meta_traits::is_const)) {
    +
    1098 continue;
    +
    1099 }
    +
    1100 }
    1101
    -
    1102 return meta_prop{};
    -
    1103 }
    -
    -
    1104
    -
    1106 template<typename Type>
    -
    - -
    1108 return internal::meta_to_user_traits<Type>(node->traits);
    -
    1109 }
    -
    +
    1102 if(curr->arity == sz) {
    +
    1103 size_type match{};
    +
    1104 size_type pos{};
    +
    1105
    +
    1106 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    +
    1107 for(; pos < sz && args[pos]; ++pos) {
    +
    1108 const auto other = curr->arg(*ctx, pos);
    +
    1109 const auto type = args[pos].type();
    1110
    -
    - -
    1113 return {node->custom};
    -
    1114 }
    -
    -
    1115
    -
    - -
    1121 return node->next ? meta_func{*ctx, *node->next} : meta_func{};
    -
    1122 }
    -
    -
    1123
    -
    -
    1128 [[nodiscard]] explicit operator bool() const noexcept {
    -
    1129 return (node != nullptr);
    -
    1130 }
    -
    -
    1131
    -
    -
    1133 [[nodiscard]] bool operator==(const meta_func &other) const noexcept {
    -
    1134 return (ctx == other.ctx && node == other.node);
    -
    1135 }
    -
    -
    1136
    -
    1137private:
    -
    1138 const internal::meta_func_node *node{};
    -
    1139 const meta_ctx *ctx{};
    -
    1140};
    -
    +
    1111 if(const auto &info = other.info(); info == type.info()) {
    +
    1112 ++match;
    +
    1113 } else if(!(type.node.conversion_helper && other.node.conversion_helper) && !(type.node.details && (internal::find_member<&internal::meta_base_node::type>(type.node.details->base, info.hash()) || internal::find_member<&internal::meta_conv_node::type>(type.node.details->conv, info.hash())))) {
    +
    1114 break;
    +
    1115 }
    +
    1116 }
    +
    1117 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    1118
    +
    1119 if(pos == sz) {
    +
    1120 if(!candidate || match > same) {
    +
    1121 candidate = curr;
    +
    1122 same = match;
    +
    1123 ambiguous = false;
    +
    1124 } else if(match == same) {
    +
    1125 if constexpr(std::is_same_v<std::decay_t<decltype(*curr)>, internal::meta_func_node>) {
    +
    1126 if(static_cast<bool>(curr->traits & internal::meta_traits::is_const) != static_cast<bool>(candidate->traits & internal::meta_traits::is_const)) {
    +
    1127 candidate = static_cast<bool>(candidate->traits & internal::meta_traits::is_const) ? curr : candidate;
    +
    1128 ambiguous = false;
    +
    1129 continue;
    +
    1130 }
    +
    1131 }
    +
    1132
    +
    1133 ambiguous = true;
    +
    1134 }
    +
    1135 }
    +
    1136 }
    +
    1137 }
    +
    1138
    +
    1139 return ambiguous ? nullptr : candidate;
    +
    1140 }
    1141
    -
    -
    1148[[nodiscard]] inline bool operator!=(const meta_func &lhs, const meta_func &rhs) noexcept {
    -
    1149 return !(lhs == rhs);
    -
    1150}
    +
    1142public:
    +
    1144 using size_type = typename internal::meta_type_node::size_type;
    +
    1145
    +
    1147 meta_type() noexcept = default;
    +
    1148
    +
    +
    1154 meta_type(const meta_ctx &area, internal::meta_type_node curr) noexcept
    +
    1155 : node{std::move(curr)},
    +
    1156 ctx{&area} {}
    -
    1151
    -
    - -
    1154 template<typename Func>
    -
    1155 [[nodiscard]] auto lookup(meta_any *const args, const typename internal::meta_type_node::size_type sz, [[maybe_unused]] bool constness, Func next) const {
    -
    1156 decltype(next()) candidate = nullptr;
    -
    1157 size_type same{};
    -
    1158 bool ambiguous{};
    -
    1159
    -
    1160 for(auto curr = next(); curr; curr = next()) {
    -
    1161 if constexpr(std::is_same_v<std::decay_t<decltype(*curr)>, internal::meta_func_node>) {
    -
    1162 if(constness && !static_cast<bool>(curr->traits & internal::meta_traits::is_const)) {
    -
    1163 continue;
    -
    1164 }
    -
    1165 }
    -
    1166
    -
    1167 if(curr->arity == sz) {
    -
    1168 size_type match{};
    -
    1169 size_type pos{};
    -
    1170
    -
    1171 // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) - waiting for C++20 (and std::span)
    -
    1172 for(; pos < sz && args[pos]; ++pos) {
    -
    1173 const auto other = curr->arg(*ctx, pos);
    -
    1174 const auto type = args[pos].type();
    -
    1175
    -
    1176 if(const auto &info = other.info(); info == type.info()) {
    -
    1177 ++match;
    -
    1178 } else if(!(type.node.conversion_helper && other.node.conversion_helper) && !(type.node.details && (internal::find_member<&internal::meta_base_node::type>(type.node.details->base, info.hash()) || internal::find_member<&internal::meta_conv_node::type>(type.node.details->conv, info.hash())))) {
    -
    1179 break;
    -
    1180 }
    -
    1181 }
    -
    1182 // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    -
    1183
    -
    1184 if(pos == sz) {
    -
    1185 if(!candidate || match > same) {
    -
    1186 candidate = curr;
    -
    1187 same = match;
    -
    1188 ambiguous = false;
    -
    1189 } else if(match == same) {
    -
    1190 if constexpr(std::is_same_v<std::decay_t<decltype(*curr)>, internal::meta_func_node>) {
    -
    1191 if(static_cast<bool>(curr->traits & internal::meta_traits::is_const) != static_cast<bool>(candidate->traits & internal::meta_traits::is_const)) {
    -
    1192 candidate = static_cast<bool>(candidate->traits & internal::meta_traits::is_const) ? curr : candidate;
    -
    1193 ambiguous = false;
    -
    1194 continue;
    -
    1195 }
    -
    1196 }
    -
    1197
    -
    1198 ambiguous = true;
    -
    1199 }
    -
    1200 }
    -
    1201 }
    -
    1202 }
    -
    1203
    -
    1204 return ambiguous ? nullptr : candidate;
    +
    1157
    +
    +
    1163 meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept
    +
    1164 : meta_type{area, curr.resolve(internal::meta_context::from(area))} {}
    +
    +
    1165
    +
    +
    1170 [[nodiscard]] const type_info &info() const noexcept {
    +
    1171 return (node.info != nullptr) ? *node.info : type_id<void>();
    +
    1172 }
    +
    +
    1173
    +
    +
    1178 [[nodiscard]] id_type id() const noexcept {
    +
    1179 return node.id;
    +
    1180 }
    +
    +
    1181
    +
    +
    1186 [[nodiscard]] size_type size_of() const noexcept {
    +
    1187 return node.size_of;
    +
    1188 }
    +
    +
    1189
    +
    +
    1195 [[nodiscard]] bool is_arithmetic() const noexcept {
    +
    1196 return static_cast<bool>(node.traits & internal::meta_traits::is_arithmetic);
    +
    1197 }
    +
    +
    1198
    +
    +
    1203 [[nodiscard]] bool is_integral() const noexcept {
    +
    1204 return static_cast<bool>(node.traits & internal::meta_traits::is_integral);
    1205 }
    -
    1206
    -
    1207public:
    -
    1209 using size_type = typename internal::meta_type_node::size_type;
    -
    1210
    - -
    1213
    +
    +
    1206
    +
    +
    1211 [[nodiscard]] bool is_signed() const noexcept {
    +
    1212 return static_cast<bool>(node.traits & internal::meta_traits::is_signed);
    +
    1213 }
    +
    +
    1214
    - -
    1220 : node{std::move(curr)},
    -
    1221 ctx{&area} {}
    +
    1219 [[nodiscard]] bool is_array() const noexcept {
    +
    1220 return static_cast<bool>(node.traits & internal::meta_traits::is_array);
    +
    1221 }
    -
    1222
    -
    -
    1228 meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept
    -
    1229 : meta_type{area, curr.resolve(internal::meta_context::from(area))} {}
    +
    1222
    +
    +
    1227 [[nodiscard]] bool is_enum() const noexcept {
    +
    1228 return static_cast<bool>(node.traits & internal::meta_traits::is_enum);
    +
    1229 }
    -
    1230
    +
    1230
    - -
    1236 return *node.info;
    +
    1235 [[nodiscard]] bool is_class() const noexcept {
    +
    1236 return static_cast<bool>(node.traits & internal::meta_traits::is_class);
    1237 }
    -
    1238
    +
    1238
    - -
    1244 return node.id;
    +
    1243 [[nodiscard]] bool is_pointer() const noexcept {
    +
    1244 return static_cast<bool>(node.traits & internal::meta_traits::is_pointer);
    1245 }
    -
    1246
    -
    - -
    1252 return node.size_of;
    -
    1253 }
    +
    1246
    +
    +
    1252 [[nodiscard]] meta_type remove_pointer() const noexcept {
    +
    1253 return (node.remove_pointer != nullptr) ? meta_type{*ctx, node.remove_pointer(internal::meta_context::from(*ctx))} : *this;
    +
    1254 }
    -
    1254
    +
    1255
    - -
    1261 return static_cast<bool>(node.traits & internal::meta_traits::is_arithmetic);
    +
    1260 [[nodiscard]] bool is_pointer_like() const noexcept {
    +
    1261 return static_cast<bool>(node.traits & internal::meta_traits::is_pointer_like);
    1262 }
    -
    1263
    +
    1263
    - -
    1269 return static_cast<bool>(node.traits & internal::meta_traits::is_integral);
    +
    1268 [[nodiscard]] bool is_sequence_container() const noexcept {
    +
    1269 return static_cast<bool>(node.traits & internal::meta_traits::is_sequence_container);
    1270 }
    -
    1271
    +
    1271
    - -
    1277 return static_cast<bool>(node.traits & internal::meta_traits::is_signed);
    +
    1276 [[nodiscard]] bool is_associative_container() const noexcept {
    +
    1277 return static_cast<bool>(node.traits & internal::meta_traits::is_associative_container);
    1278 }
    -
    1279
    -
    - -
    1285 return static_cast<bool>(node.traits & internal::meta_traits::is_array);
    -
    1286 }
    +
    1279
    +
    +
    1286 [[nodiscard]] bool is_template_specialization() const noexcept {
    +
    1287 return (node.templ.arity != 0u);
    +
    1288 }
    -
    1287
    -
    - -
    1293 return static_cast<bool>(node.traits & internal::meta_traits::is_enum);
    -
    1294 }
    +
    1289
    +
    +
    1294 [[nodiscard]] size_type template_arity() const noexcept {
    +
    1295 return node.templ.arity;
    +
    1296 }
    -
    1295
    -
    - -
    1301 return static_cast<bool>(node.traits & internal::meta_traits::is_class);
    -
    1302 }
    +
    1297
    +
    +
    1302 [[nodiscard]] meta_type template_type() const noexcept {
    +
    1303 return (node.templ.resolve != nullptr) ? meta_type{*ctx, node.templ.resolve(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1304 }
    -
    1303
    -
    - -
    1309 return static_cast<bool>(node.traits & internal::meta_traits::is_pointer);
    -
    1310 }
    +
    1305
    +
    +
    1311 [[nodiscard]] meta_type template_arg(const size_type index) const noexcept {
    +
    1312 return index < template_arity() ? meta_type{*ctx, node.templ.arg(internal::meta_context::from(*ctx), index)} : meta_type{};
    +
    1313 }
    -
    1311
    -
    - -
    1318 return {*ctx, node.remove_pointer(internal::meta_context::from(*ctx))};
    -
    1319 }
    +
    1314
    +
    +
    1320 [[nodiscard]] bool can_cast(const meta_type &other) const noexcept {
    +
    1321 // casting this is UB in all cases but we aren't going to use the resulting pointer, so...
    +
    1322 return other && (internal::try_cast(internal::meta_context::from(*ctx), node, *other.node.info, this) != nullptr);
    +
    1323 }
    -
    1320
    -
    - -
    1326 return static_cast<bool>(node.traits & internal::meta_traits::is_meta_pointer_like);
    -
    1327 }
    +
    1324
    +
    +
    1330 [[nodiscard]] bool can_convert(const meta_type &other) const noexcept {
    +
    1331 return (internal::try_convert(internal::meta_context::from(*ctx), node, other.info(), other.is_arithmetic() || other.is_enum(), nullptr, [](const void *, auto &&...args) { return ((static_cast<void>(args), 1) + ... + 0u); }) != 0u);
    +
    1332 }
    -
    1328
    -
    - -
    1334 return static_cast<bool>(node.traits & internal::meta_traits::is_meta_sequence_container);
    -
    1335 }
    +
    1333
    +
    +
    1338 [[nodiscard]] meta_range<meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator> base() const noexcept {
    +
    1339 using range_type = meta_range<meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator>;
    +
    1340 return node.details ? range_type{{*ctx, node.details->base.cbegin()}, {*ctx, node.details->base.cend()}} : range_type{};
    +
    1341 }
    -
    1336
    -
    - -
    1342 return static_cast<bool>(node.traits & internal::meta_traits::is_meta_associative_container);
    -
    1343 }
    +
    1342
    +
    +
    1347 [[nodiscard]] meta_range<meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator> data() const noexcept {
    +
    1348 using range_type = meta_range<meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator>;
    +
    1349 return node.details ? range_type{{*ctx, node.details->data.cbegin()}, {*ctx, node.details->data.cend()}} : range_type{};
    +
    1350 }
    -
    1344
    -
    - -
    1352 return (node.templ.arity != 0u);
    -
    1353 }
    +
    1351
    +
    +
    1357 [[nodiscard]] meta_data data(const id_type id) const {
    +
    1358 const auto *elem = internal::look_for<&internal::meta_type_descriptor::data>(internal::meta_context::from(*ctx), node, id);
    +
    1359 return (elem != nullptr) ? meta_data{*ctx, *elem} : meta_data{};
    +
    1360 }
    -
    1354
    -
    - -
    1360 return node.templ.arity;
    -
    1361 }
    -
    -
    1362
    -
    - -
    1368 return (node.templ.resolve != nullptr) ? meta_type{*ctx, node.templ.resolve(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1361
    +
    +
    1366 [[nodiscard]] meta_range<meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator> func() const noexcept {
    +
    1367 using return_type = meta_range<meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator>;
    +
    1368 return node.details ? return_type{{*ctx, node.details->func.cbegin()}, {*ctx, node.details->func.cend()}} : return_type{};
    1369 }
    -
    1370
    +
    1370
    -
    1376 [[nodiscard]] inline meta_type template_arg(const size_type index) const noexcept {
    -
    1377 return index < template_arity() ? meta_type{*ctx, node.templ.arg(internal::meta_context::from(*ctx), index)} : meta_type{};
    -
    1378 }
    +
    1376 [[nodiscard]] meta_func func(const id_type id) const {
    +
    1377 const auto *elem = internal::look_for<&internal::meta_type_descriptor::func>(internal::meta_context::from(*ctx), node, id);
    +
    1378 return (elem != nullptr) ? meta_func{*ctx, *elem} : meta_func{};
    +
    1379 }
    -
    1379
    -
    -
    1385 [[nodiscard]] bool can_cast(const meta_type &other) const noexcept {
    -
    1386 // casting this is UB in all cases but we aren't going to use the resulting pointer, so...
    -
    1387 return (internal::try_cast(internal::meta_context::from(*ctx), node, other.node, this) != nullptr);
    -
    1388 }
    +
    1380
    +
    +
    1387 [[nodiscard]] meta_any construct(meta_any *const args, const size_type sz) const {
    +
    1388 if(node.details) {
    +
    1389 if(const auto *candidate = lookup(args, sz, false, [first = node.details->ctor.cbegin(), last = node.details->ctor.cend()]() mutable { return first == last ? nullptr : &*(first++); }); candidate) {
    +
    1390 return candidate->invoke(*ctx, args);
    +
    1391 }
    +
    1392 }
    +
    1393
    +
    1394 if(sz == 0u && (node.default_constructor != nullptr)) {
    +
    1395 return node.default_constructor(*ctx);
    +
    1396 }
    +
    1397
    +
    1398 return meta_any{meta_ctx_arg, *ctx};
    +
    1399 }
    -
    1389
    -
    -
    1395 [[nodiscard]] bool can_convert(const meta_type &other) const noexcept {
    -
    1396 return (internal::try_convert(internal::meta_context::from(*ctx), node, other.info(), other.is_arithmetic() || other.is_enum(), nullptr, [](const void *, auto &&...args) { return ((static_cast<void>(args), 1) + ... + 0u); }) != 0u);
    -
    1397 }
    +
    1400
    +
    1407 template<typename... Args>
    +
    +
    1408 [[nodiscard]] meta_any construct(Args &&...args) const {
    +
    1409 return construct(std::array<meta_any, sizeof...(Args)>{meta_any{*ctx, std::forward<Args>(args)}...}.data(), sizeof...(Args));
    +
    1410 // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks)
    +
    1411 }
    -
    1398
    -
    -
    1403 [[nodiscard]] meta_range<meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator> base() const noexcept {
    -
    1404 using range_type = meta_range<meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator>;
    -
    1405 return node.details ? range_type{{*ctx, node.details->base.cbegin()}, {*ctx, node.details->base.cend()}} : range_type{};
    -
    1406 }
    +
    1412
    +
    +
    1419 [[nodiscard]] meta_any from_void(void *elem, bool transfer_ownership = false) const {
    +
    1420 return ((elem != nullptr) && (node.from_void != nullptr)) ? node.from_void(*ctx, elem, transfer_ownership ? elem : nullptr) : meta_any{meta_ctx_arg, *ctx};
    +
    1421 }
    -
    1407
    -
    -
    1412 [[nodiscard]] meta_range<meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator> data() const noexcept {
    -
    1413 using range_type = meta_range<meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator>;
    -
    1414 return node.details ? range_type{{*ctx, node.details->data.cbegin()}, {*ctx, node.details->data.cend()}} : range_type{};
    -
    1415 }
    +
    1422
    +
    +
    1428 [[nodiscard]] meta_any from_void(const void *elem) const {
    +
    1429 return ((elem != nullptr) && (node.from_void != nullptr)) ? node.from_void(*ctx, nullptr, elem) : meta_any{meta_ctx_arg, *ctx};
    +
    1430 }
    -
    1416
    -
    -
    1422 [[nodiscard]] meta_data data(const id_type id) const {
    -
    1423 const auto *elem = internal::look_for<&internal::meta_type_descriptor::data>(internal::meta_context::from(*ctx), node, id);
    -
    1424 return (elem != nullptr) ? meta_data{*ctx, *elem} : meta_data{};
    -
    1425 }
    +
    1431
    +
    1440 // NOLINTNEXTLINE(modernize-use-nodiscard)
    +
    +
    1441 meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const {
    +
    1442 if(node.details) {
    +
    1443 if(auto *elem = internal::find_member<&internal::meta_func_node::id>(node.details->func, id); elem != nullptr) {
    +
    1444 if(const auto *candidate = lookup(args, sz, (instance->base().policy() == any_policy::cref), [curr = elem]() mutable { return (curr != nullptr) ? std::exchange(curr, curr->next.get()) : nullptr; }); candidate) {
    +
    1445 return candidate->invoke(meta_handle{*ctx, std::move(instance)}, args);
    +
    1446 }
    +
    1447 }
    +
    1448 }
    +
    1449
    +
    1450 for(auto &&curr: base()) {
    +
    1451 if(auto elem = curr.second.invoke(id, *instance.operator->(), args, sz); elem) {
    +
    1452 return elem;
    +
    1453 }
    +
    1454 }
    +
    1455
    +
    1456 return meta_any{meta_ctx_arg, *ctx};
    +
    1457 }
    -
    1426
    -
    -
    1431 [[nodiscard]] meta_range<meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator> func() const noexcept {
    -
    1432 using return_type = meta_range<meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator>;
    -
    1433 return node.details ? return_type{{*ctx, node.details->func.cbegin()}, {*ctx, node.details->func.cend()}} : return_type{};
    -
    1434 }
    +
    1458
    +
    1467 template<typename... Args>
    +
    1468 // NOLINTNEXTLINE(modernize-use-nodiscard)
    +
    +
    1469 meta_any invoke(const id_type id, meta_handle instance, Args &&...args) const {
    +
    1470 return invoke(id, std::move(instance), std::array<meta_any, sizeof...(Args)>{meta_any{*ctx, std::forward<Args>(args)}...}.data(), sizeof...(Args));
    +
    1471 }
    -
    1435
    -
    -
    1444 [[nodiscard]] meta_func func(const id_type id) const {
    -
    1445 const auto *elem = internal::look_for<&internal::meta_type_descriptor::func>(internal::meta_context::from(*ctx), node, id);
    -
    1446 return (elem != nullptr) ? meta_func{*ctx, *elem} : meta_func{};
    -
    1447 }
    +
    1472
    +
    1481 template<typename Type>
    +
    1482 // NOLINTNEXTLINE(modernize-use-nodiscard)
    +
    +
    1483 bool set(const id_type id, meta_handle instance, Type &&value) const {
    +
    1484 const auto candidate = data(id);
    +
    1485 return candidate && candidate.set(std::move(instance), std::forward<Type>(value));
    +
    1486 }
    -
    1448
    -
    - -
    1456 if(node.details) {
    -
    1457 if(const auto *candidate = lookup(args, sz, false, [first = node.details->ctor.cbegin(), last = node.details->ctor.cend()]() mutable { return first == last ? nullptr : &*(first++); }); candidate) {
    -
    1458 return candidate->invoke(*ctx, args);
    -
    1459 }
    -
    1460 }
    -
    1461
    -
    1462 if(sz == 0u && (node.default_constructor != nullptr)) {
    -
    1463 return node.default_constructor(*ctx);
    -
    1464 }
    -
    1465
    -
    1466 return meta_any{meta_ctx_arg, *ctx};
    -
    1467 }
    +
    1487
    +
    +
    1494 [[nodiscard]] meta_any get(const id_type id, meta_handle instance) const {
    +
    1495 const auto candidate = data(id);
    +
    1496 return candidate ? candidate.get(std::move(instance)) : meta_any{meta_ctx_arg, *ctx};
    +
    1497 }
    -
    1468
    -
    1475 template<typename... Args>
    -
    - -
    1477 std::array<meta_any, sizeof...(Args)> arguments{meta_any{*ctx, std::forward<Args>(args)}...};
    -
    1478 return construct(arguments.data(), sizeof...(Args));
    -
    1479 }
    +
    1498
    +
    1500 template<typename Type>
    +
    +
    1501 [[nodiscard]] Type traits() const noexcept {
    +
    1502 return internal::meta_to_user_traits<Type>(node.traits);
    +
    1503 }
    -
    1480
    -
    - -
    1487 return ((elem != nullptr) && (node.from_void != nullptr)) ? node.from_void(*ctx, elem, nullptr) : meta_any{meta_ctx_arg, *ctx};
    -
    1488 }
    +
    1504
    +
    +
    1506 [[nodiscard]] meta_custom custom() const noexcept {
    +
    1507 return {node.custom};
    +
    1508 }
    -
    1489
    -
    -
    1491 [[nodiscard]] meta_any from_void(const void *elem) const {
    -
    1492 return ((elem != nullptr) && (node.from_void != nullptr)) ? node.from_void(*ctx, nullptr, elem) : meta_any{meta_ctx_arg, *ctx};
    -
    1493 }
    +
    1509
    +
    +
    1514 [[nodiscard]] explicit operator bool() const noexcept {
    +
    1515 return (node.info != nullptr);
    +
    1516 }
    -
    1494
    -
    -
    1503 meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const {
    -
    1504 if(node.details) {
    -
    1505 if(auto *elem = internal::find_member<&internal::meta_func_node::id>(node.details->func, id); elem != nullptr) {
    -
    1506 if(const auto *candidate = lookup(args, sz, instance && (instance->data() == nullptr), [curr = elem]() mutable { return (curr != nullptr) ? std::exchange(curr, curr->next.get()) : nullptr; }); candidate) {
    -
    1507 return candidate->invoke(*ctx, meta_handle{*ctx, std::move(instance)}, args);
    -
    1508 }
    -
    1509 }
    -
    1510 }
    -
    1511
    -
    1512 for(auto &&curr: base()) {
    -
    1513 if(auto elem = curr.second.invoke(id, *instance.operator->(), args, sz); elem) {
    -
    1514 return elem;
    -
    1515 }
    -
    1516 }
    -
    1517
    -
    1518 return meta_any{meta_ctx_arg, *ctx};
    -
    1519 }
    +
    1517
    +
    +
    1519 [[nodiscard]] bool operator==(const meta_type &other) const noexcept {
    +
    1520 // NOLINTNEXTLINE(clang-analyzer-core.NonNullParamChecker)
    +
    1521 return (ctx == other.ctx) && ((node.info == nullptr) == (other.node.info == nullptr)) && (node.info == nullptr || (*node.info == *other.node.info));
    +
    1522 }
    -
    1520
    -
    1529 template<typename... Args>
    -
    1530 // NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    -
    1531 meta_any invoke(const id_type id, meta_handle instance, Args &&...args) const {
    -
    1532 std::array<meta_any, sizeof...(Args)> arguments{meta_any{*ctx, std::forward<Args>(args)}...};
    -
    1533 return invoke(id, std::move(instance), arguments.data(), sizeof...(Args));
    -
    1534 }
    +
    1523
    +
    1524private:
    +
    1525 internal::meta_type_node node{};
    +
    1526 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    +
    1527};
    -
    1535
    -
    1544 template<typename Type>
    +
    1528
    +
    +
    1535[[nodiscard]] inline bool operator!=(const meta_type &lhs, const meta_type &rhs) noexcept {
    +
    1536 return !(lhs == rhs);
    +
    1537}
    +
    +
    1538
    +
    +
    1539[[nodiscard]] inline meta_type meta_any::type() const noexcept {
    +
    1540 return (node.info != nullptr) ? meta_type{*ctx, node} : meta_type{};
    +
    1541}
    +
    +
    1542
    +
    1543template<typename... Args>
    +
    1544// NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    1545 bool set(const id_type id, meta_handle instance, Type &&value) const {
    -
    1546 const auto candidate = data(id);
    -
    1547 return candidate && candidate.set(std::move(instance), std::forward<Type>(value));
    -
    1548 }
    +
    1545meta_any meta_any::invoke(const id_type id, Args &&...args) const {
    +
    1546 return type().invoke(id, *this, std::forward<Args>(args)...);
    +
    1547}
    -
    1549
    -
    -
    1556 [[nodiscard]] meta_any get(const id_type id, meta_handle instance) const {
    -
    1557 const auto candidate = data(id);
    -
    1558 return candidate ? candidate.get(std::move(instance)) : meta_any{meta_ctx_arg, *ctx};
    -
    1559 }
    +
    1548
    +
    1549template<typename... Args>
    +
    +
    1550meta_any meta_any::invoke(const id_type id, Args &&...args) {
    +
    1551 return type().invoke(id, *this, std::forward<Args>(args)...);
    +
    1552}
    -
    1560
    -
    -
    1565 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_range<meta_prop, typename decltype(internal::meta_type_descriptor::prop)::const_iterator> prop() const noexcept {
    -
    1566 using range_type = meta_range<meta_prop, typename decltype(internal::meta_type_descriptor::prop)::const_iterator>;
    -
    1567 return node.details ? range_type{{*ctx, node.details->prop.cbegin()}, {*ctx, node.details->prop.cend()}} : range_type{};
    -
    1568 }
    +
    1553
    +
    1554template<typename Type>
    +
    +
    1555bool meta_any::set(const id_type id, Type &&value) {
    +
    1556 return type().set(id, *this, std::forward<Type>(value));
    +
    1557}
    -
    1569
    -
    -
    1575 [[nodiscard]] [[deprecated("use ::custom() instead")]] meta_prop prop(const id_type key) const {
    -
    1576 const auto *elem = internal::look_for<&internal::meta_type_descriptor::prop>(internal::meta_context::from(*ctx), node, key);
    -
    1577 return (elem != nullptr) ? meta_prop{*ctx, *elem} : meta_prop{};
    -
    1578 }
    +
    1558
    +
    +
    1559[[nodiscard]] inline meta_any meta_any::get(const id_type id) const {
    +
    1560 return type().get(id, *this);
    +
    1561}
    -
    1579
    -
    1581 template<typename Type>
    -
    - -
    1583 return internal::meta_to_user_traits<Type>(node.traits);
    -
    1584 }
    +
    1562
    +
    +
    1563[[nodiscard]] inline meta_any meta_any::get(const id_type id) {
    +
    1564 return type().get(id, *this);
    +
    1565}
    +
    +
    1566
    +
    +
    1567[[nodiscard]] inline meta_any meta_any::allow_cast(const meta_type &type) const {
    +
    1568 return internal::try_convert(internal::meta_context::from(*ctx), node, type.info(), type.is_arithmetic() || type.is_enum(), storage.data(), [this, &type]([[maybe_unused]] const void *instance, [[maybe_unused]] auto &&...args) {
    +
    1569 if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, internal::meta_type_node> || ...)) {
    +
    1570 return (args.from_void(*ctx, nullptr, instance), ...);
    +
    1571 } else if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, internal::meta_conv_node> || ...)) {
    +
    1572 return (args.conv(*ctx, instance), ...);
    +
    1573 } else if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, decltype(internal::meta_type_node::conversion_helper)> || ...)) {
    +
    1574 // exploits the fact that arithmetic types and enums are also default constructible
    +
    1575 auto other = type.construct();
    +
    1576 const auto value = (args(nullptr, instance), ...);
    +
    1577 other.node.conversion_helper(other.storage.data(), &value);
    +
    1578 return other;
    +
    1579 } else {
    +
    1580 // forwards to force a compile-time error in case of available arguments
    +
    1581 return meta_any{meta_ctx_arg, *ctx, std::forward<decltype(args)>(args)...};
    +
    1582 }
    +
    1583 });
    +
    1584}
    1585
    -
    - -
    1588 return {node.custom};
    -
    1589 }
    +
    +
    1586inline bool meta_any::assign(const meta_any &other) {
    +
    1587 auto value = other.allow_cast({*ctx, node});
    +
    1588 return value && storage.assign(value.storage);
    +
    1589}
    1590
    -
    -
    1595 [[nodiscard]] explicit operator bool() const noexcept {
    -
    1596 return !(ctx == nullptr);
    -
    1597 }
    +
    +
    1591inline bool meta_any::assign(meta_any &&other) {
    +
    1592 if(*node.info == *other.node.info) {
    +
    1593 return storage.assign(std::move(other.storage));
    +
    1594 }
    +
    1595
    +
    1596 return assign(std::as_const(other));
    +
    1597}
    1598
    -
    -
    1600 [[nodiscard]] bool operator==(const meta_type &other) const noexcept {
    -
    1601 return (ctx == other.ctx) && (((node.info == nullptr) && (other.node.info == nullptr)) || ((node.info != nullptr) && (other.node.info != nullptr) && *node.info == *other.node.info));
    -
    1602 }
    +
    +
    1599[[nodiscard]] inline meta_type meta_data::type() const noexcept {
    +
    1600 return (node.type != nullptr) ? meta_type{*ctx, node.type(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1601}
    -
    1603
    -
    1604private:
    -
    1605 internal::meta_type_node node{};
    -
    1606 const meta_ctx *ctx{};
    -
    1607};
    +
    1602
    +
    +
    1603[[nodiscard]] inline meta_type meta_data::arg(const size_type index) const noexcept {
    +
    1604 return index < arity() ? node.arg(*ctx, index) : meta_type{};
    +
    1605}
    -
    1608
    -
    -
    1615[[nodiscard]] inline bool operator!=(const meta_type &lhs, const meta_type &rhs) noexcept {
    -
    1616 return !(lhs == rhs);
    -
    1617}
    +
    1606
    +
    +
    1607[[nodiscard]] inline meta_type meta_func::ret() const noexcept {
    +
    1608 return (node.ret != nullptr) ? meta_type{*ctx, node.ret(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1609}
    +
    1610
    +
    +
    1611[[nodiscard]] inline meta_type meta_func::arg(const size_type index) const noexcept {
    +
    1612 return index < arity() ? node.arg(*ctx, index) : meta_type{};
    +
    1613}
    +
    +
    1614
    +
    1616class meta_sequence_container::meta_iterator final {
    +
    1617 using vtable_type = void(const void *, const std::ptrdiff_t, meta_any *);
    1618
    -
    - -
    1620 return (node.info != nullptr) ? meta_type{*ctx, node} : meta_type{};
    -
    1621}
    -
    -
    1622
    -
    1623template<typename... Args>
    -
    1624// NOLINTNEXTLINE(modernize-use-nodiscard)
    -
    - -
    1626 return type().invoke(id, *this, std::forward<Args>(args)...);
    -
    1627}
    -
    -
    1628
    -
    1629template<typename... Args>
    -
    - -
    1631 return type().invoke(id, *this, std::forward<Args>(args)...);
    -
    1632}
    -
    -
    1633
    -
    1634template<typename Type>
    -
    -
    1635bool meta_any::set(const id_type id, Type &&value) {
    -
    1636 return type().set(id, *this, std::forward<Type>(value));
    -
    1637}
    -
    -
    1638
    -
    -
    1639[[nodiscard]] inline meta_any meta_any::get(const id_type id) const {
    -
    1640 return type().get(id, *this);
    -
    1641}
    -
    -
    1642
    -
    - -
    1644 return type().get(id, *this);
    -
    1645}
    -
    -
    1646
    -
    -
    1647[[nodiscard]] inline meta_any meta_any::allow_cast(const meta_type &type) const {
    -
    1648 return internal::try_convert(internal::meta_context::from(*ctx), node, type.info(), type.is_arithmetic() || type.is_enum(), data(), [this, &type]([[maybe_unused]] const void *instance, auto &&...args) {
    -
    1649 if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, internal::meta_type_node> || ...)) {
    -
    1650 return (args.from_void(*ctx, nullptr, instance), ...);
    -
    1651 } else if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, internal::meta_conv_node> || ...)) {
    -
    1652 return (args.conv(*ctx, instance), ...);
    -
    1653 } else if constexpr((std::is_same_v<std::remove_const_t<std::remove_reference_t<decltype(args)>>, decltype(internal::meta_type_node::conversion_helper)> || ...)) {
    -
    1654 // exploits the fact that arithmetic types and enums are also default constructible
    -
    1655 auto other = type.construct();
    -
    1656 const auto value = (args(nullptr, instance), ...);
    -
    1657 other.node.conversion_helper(other.data(), &value);
    -
    1658 return other;
    -
    1659 } else {
    -
    1660 // forwards to force a compile-time error in case of available arguments
    -
    1661 return meta_any{meta_ctx_arg, *ctx, std::forward<decltype(args)>(args)...};
    -
    1662 }
    -
    1663 });
    -
    1664}
    -
    -
    1665
    -
    -
    1666inline bool meta_any::assign(const meta_any &other) {
    -
    1667 auto value = other.allow_cast({*ctx, node});
    -
    1668 return value && storage.assign(value.storage);
    -
    1669}
    -
    -
    1670
    -
    - -
    1672 if(*node.info == *other.node.info) {
    -
    1673 return storage.assign(std::move(other.storage));
    -
    1674 }
    -
    1675
    -
    1676 return assign(std::as_const(other));
    -
    1677}
    -
    -
    1678
    -
    - -
    1680 return meta_type{*ctx, node->type(internal::meta_context::from(*ctx))};
    -
    1681}
    -
    -
    1682
    -
    -
    1683[[nodiscard]] inline meta_type meta_data::arg(const size_type index) const noexcept {
    -
    1684 return index < arity() ? node->arg(*ctx, index) : meta_type{};
    -
    1685}
    -
    -
    1686
    -
    - -
    1688 return meta_type{*ctx, node->ret(internal::meta_context::from(*ctx))};
    -
    1689}
    -
    -
    1690
    -
    -
    1691[[nodiscard]] inline meta_type meta_func::arg(const size_type index) const noexcept {
    -
    1692 return index < arity() ? node->arg(*ctx, index) : meta_type{};
    -
    1693}
    -
    +
    1619 template<typename It>
    +
    1620 static void basic_vtable(const void *value, const std::ptrdiff_t offset, meta_any *other) {
    +
    1621 const auto &it = *static_cast<const It *>(value);
    +
    1622 other ? other->emplace<decltype(*it)>(*it) : std::advance(const_cast<It &>(it), offset);
    +
    1623 }
    +
    1624
    +
    1625public:
    +
    1626 using value_type = meta_any;
    +
    1627 using pointer = input_iterator_pointer<value_type>;
    +
    1628 using reference = value_type;
    +
    1629 using difference_type = std::ptrdiff_t;
    +
    1630 using iterator_category = std::input_iterator_tag;
    +
    1631 using iterator_concept = std::bidirectional_iterator_tag;
    +
    1632
    +
    1633 meta_iterator() = default;
    +
    1634
    +
    1635 template<typename It>
    +
    1636 meta_iterator(const meta_ctx &area, It iter) noexcept
    +
    1637 : ctx{&area},
    +
    1638 vtable{&basic_vtable<It>},
    +
    1639 handle{iter} {}
    +
    1640
    +
    1641 meta_iterator &operator++() noexcept {
    +
    1642 vtable(handle.data(), 1, nullptr);
    +
    1643 return *this;
    +
    1644 }
    +
    1645
    +
    1646 meta_iterator operator++(int value) noexcept {
    +
    1647 meta_iterator orig = *this;
    +
    1648 vtable(handle.data(), ++value, nullptr);
    +
    1649 return orig;
    +
    1650 }
    +
    1651
    +
    1652 meta_iterator &operator--() noexcept {
    +
    1653 vtable(handle.data(), -1, nullptr);
    +
    1654 return *this;
    +
    1655 }
    +
    1656
    +
    1657 meta_iterator operator--(int value) noexcept {
    +
    1658 meta_iterator orig = *this;
    +
    1659 vtable(handle.data(), --value, nullptr);
    +
    1660 return orig;
    +
    1661 }
    +
    1662
    +
    1663 [[nodiscard]] reference operator*() const {
    +
    1664 reference other{meta_ctx_arg, *ctx};
    +
    1665 vtable(handle.data(), 0, &other);
    +
    1666 return other;
    +
    1667 }
    +
    1668
    +
    1669 [[nodiscard]] pointer operator->() const {
    +
    1670 return operator*();
    +
    1671 }
    +
    1672
    +
    1673 [[nodiscard]] explicit operator bool() const noexcept {
    +
    1674 return (vtable != nullptr);
    +
    1675 }
    +
    1676
    +
    1677 [[nodiscard]] bool operator==(const meta_iterator &other) const noexcept {
    +
    1678 return handle == other.handle;
    +
    1679 }
    +
    1680
    +
    1681 [[nodiscard]] bool operator!=(const meta_iterator &other) const noexcept {
    +
    1682 return !(*this == other);
    +
    1683 }
    +
    1684
    +
    1685 [[nodiscard]] const any &base() const noexcept {
    +
    1686 return handle;
    +
    1687 }
    +
    1688
    +
    1689private:
    +
    1690 const meta_ctx *ctx{};
    +
    1691 vtable_type *vtable{};
    +
    1692 any handle;
    +
    1693};
    1694
    -
    1696class meta_sequence_container::meta_iterator final {
    -
    1697 using vtable_type = void(const void *, const std::ptrdiff_t, meta_any *);
    -
    1698
    -
    1699 template<typename It>
    -
    1700 static void basic_vtable(const void *value, const std::ptrdiff_t offset, meta_any *other) {
    -
    1701 const auto &it = *static_cast<const It *>(value);
    -
    1702 other ? other->emplace<decltype(*it)>(*it) : std::advance(const_cast<It &>(it), offset);
    -
    1703 }
    -
    1704
    -
    1705public:
    -
    1706 using value_type = meta_any;
    -
    1707 using pointer = input_iterator_pointer<value_type>;
    -
    1708 using reference = value_type;
    -
    1709 using difference_type = std::ptrdiff_t;
    -
    1710 using iterator_category = std::input_iterator_tag;
    -
    1711 using iterator_concept = std::bidirectional_iterator_tag;
    -
    1712
    -
    1713 meta_iterator() = default;
    -
    1714
    -
    1715 template<typename It>
    -
    1716 meta_iterator(const meta_ctx &area, It iter) noexcept
    -
    1717 : ctx{&area},
    -
    1718 vtable{&basic_vtable<It>},
    -
    1719 handle{iter} {}
    -
    1720
    -
    1721 meta_iterator &operator++() noexcept {
    -
    1722 vtable(handle.data(), 1, nullptr);
    -
    1723 return *this;
    -
    1724 }
    -
    1725
    -
    1726 meta_iterator operator++(int value) noexcept {
    -
    1727 meta_iterator orig = *this;
    -
    1728 vtable(handle.data(), ++value, nullptr);
    -
    1729 return orig;
    -
    1730 }
    -
    1731
    -
    1732 meta_iterator &operator--() noexcept {
    -
    1733 vtable(handle.data(), -1, nullptr);
    -
    1734 return *this;
    -
    1735 }
    -
    1736
    -
    1737 meta_iterator operator--(int value) noexcept {
    -
    1738 meta_iterator orig = *this;
    -
    1739 vtable(handle.data(), --value, nullptr);
    -
    1740 return orig;
    -
    1741 }
    -
    1742
    -
    1743 [[nodiscard]] reference operator*() const {
    -
    1744 reference other{meta_ctx_arg, *ctx};
    -
    1745 vtable(handle.data(), 0, &other);
    -
    1746 return other;
    +
    1695class meta_associative_container::meta_iterator final {
    +
    1696 using vtable_type = void(const void *, std::pair<meta_any, meta_any> *);
    +
    1697
    +
    1698 template<bool KeyOnly, typename It>
    +
    1699 static void basic_vtable(const void *value, std::pair<meta_any, meta_any> *other) {
    +
    1700 if(const auto &it = *static_cast<const It *>(value); other) {
    +
    1701 if constexpr(KeyOnly) {
    +
    1702 other->first.emplace<decltype(*it)>(*it);
    +
    1703 } else {
    +
    1704 other->first.emplace<decltype((it->first))>(it->first);
    +
    1705 other->second.emplace<decltype((it->second))>(it->second);
    +
    1706 }
    +
    1707 } else {
    +
    1708 ++const_cast<It &>(it);
    +
    1709 }
    +
    1710 }
    +
    1711
    +
    1712public:
    +
    1713 using value_type = std::pair<meta_any, meta_any>;
    +
    1714 using pointer = input_iterator_pointer<value_type>;
    +
    1715 using reference = value_type;
    +
    1716 using difference_type = std::ptrdiff_t;
    +
    1717 using iterator_category = std::input_iterator_tag;
    +
    1718 using iterator_concept = std::forward_iterator_tag;
    +
    1719
    +
    1720 meta_iterator() = default;
    +
    1721
    +
    1722 template<bool KeyOnly, typename It>
    +
    1723 meta_iterator(const meta_ctx &area, std::bool_constant<KeyOnly>, It iter) noexcept
    +
    1724 : ctx{&area},
    +
    1725 vtable{&basic_vtable<KeyOnly, It>},
    +
    1726 handle{iter} {}
    +
    1727
    +
    1728 meta_iterator &operator++() noexcept {
    +
    1729 vtable(handle.data(), nullptr);
    +
    1730 return *this;
    +
    1731 }
    +
    1732
    +
    1733 meta_iterator operator++(int) noexcept {
    +
    1734 meta_iterator orig = *this;
    +
    1735 vtable(handle.data(), nullptr);
    +
    1736 return orig;
    +
    1737 }
    +
    1738
    +
    1739 [[nodiscard]] reference operator*() const {
    +
    1740 reference other{{meta_ctx_arg, *ctx}, {meta_ctx_arg, *ctx}};
    +
    1741 vtable(handle.data(), &other);
    +
    1742 return other;
    +
    1743 }
    +
    1744
    +
    1745 [[nodiscard]] pointer operator->() const {
    +
    1746 return operator*();
    1747 }
    1748
    -
    1749 [[nodiscard]] pointer operator->() const {
    -
    1750 return operator*();
    +
    1749 [[nodiscard]] explicit operator bool() const noexcept {
    +
    1750 return (vtable != nullptr);
    1751 }
    1752
    -
    1753 [[nodiscard]] explicit operator bool() const noexcept {
    -
    1754 return static_cast<bool>(handle);
    +
    1753 [[nodiscard]] bool operator==(const meta_iterator &other) const noexcept {
    +
    1754 return handle == other.handle;
    1755 }
    1756
    -
    1757 [[nodiscard]] bool operator==(const meta_iterator &other) const noexcept {
    -
    1758 return handle == other.handle;
    +
    1757 [[nodiscard]] bool operator!=(const meta_iterator &other) const noexcept {
    +
    1758 return !(*this == other);
    1759 }
    1760
    -
    1761 [[nodiscard]] bool operator!=(const meta_iterator &other) const noexcept {
    -
    1762 return !(*this == other);
    -
    1763 }
    -
    1764
    -
    1765 [[nodiscard]] const any &base() const noexcept {
    -
    1766 return handle;
    -
    1767 }
    -
    1768
    -
    1769private:
    -
    1770 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    -
    1771 vtable_type *vtable{};
    -
    1772 any handle{};
    -
    1773};
    -
    1774
    -
    1775class meta_associative_container::meta_iterator final {
    -
    1776 using vtable_type = void(const void *, std::pair<meta_any, meta_any> *);
    -
    1777
    -
    1778 template<bool KeyOnly, typename It>
    -
    1779 static void basic_vtable(const void *value, std::pair<meta_any, meta_any> *other) {
    -
    1780 if(const auto &it = *static_cast<const It *>(value); other) {
    -
    1781 if constexpr(KeyOnly) {
    -
    1782 other->first.emplace<decltype(*it)>(*it);
    -
    1783 } else {
    -
    1784 other->first.emplace<decltype((it->first))>(it->first);
    -
    1785 other->second.emplace<decltype((it->second))>(it->second);
    -
    1786 }
    -
    1787 } else {
    -
    1788 ++const_cast<It &>(it);
    -
    1789 }
    -
    1790 }
    -
    1791
    -
    1792public:
    -
    1793 using value_type = std::pair<meta_any, meta_any>;
    -
    1794 using pointer = input_iterator_pointer<value_type>;
    -
    1795 using reference = value_type;
    -
    1796 using difference_type = std::ptrdiff_t;
    -
    1797 using iterator_category = std::input_iterator_tag;
    -
    1798 using iterator_concept = std::forward_iterator_tag;
    -
    1799
    -
    1800 meta_iterator() = default;
    -
    1801
    -
    1802 template<bool KeyOnly, typename It>
    -
    1803 meta_iterator(const meta_ctx &area, std::bool_constant<KeyOnly>, It iter) noexcept
    -
    1804 : ctx{&area},
    -
    1805 vtable{&basic_vtable<KeyOnly, It>},
    -
    1806 handle{iter} {}
    -
    1807
    -
    1808 meta_iterator &operator++() noexcept {
    -
    1809 vtable(handle.data(), nullptr);
    -
    1810 return *this;
    -
    1811 }
    -
    1812
    -
    1813 meta_iterator operator++(int) noexcept {
    -
    1814 meta_iterator orig = *this;
    -
    1815 vtable(handle.data(), nullptr);
    -
    1816 return orig;
    -
    1817 }
    -
    1818
    -
    1819 [[nodiscard]] reference operator*() const {
    -
    1820 reference other{{meta_ctx_arg, *ctx}, {meta_ctx_arg, *ctx}};
    -
    1821 vtable(handle.data(), &other);
    -
    1822 return other;
    -
    1823 }
    -
    1824
    -
    1825 [[nodiscard]] pointer operator->() const {
    -
    1826 return operator*();
    -
    1827 }
    -
    1828
    -
    1829 [[nodiscard]] explicit operator bool() const noexcept {
    -
    1830 return static_cast<bool>(handle);
    -
    1831 }
    -
    1832
    -
    1833 [[nodiscard]] bool operator==(const meta_iterator &other) const noexcept {
    -
    1834 return handle == other.handle;
    -
    1835 }
    -
    1836
    -
    1837 [[nodiscard]] bool operator!=(const meta_iterator &other) const noexcept {
    -
    1838 return !(*this == other);
    -
    1839 }
    -
    1840
    -
    1841private:
    -
    1842 const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
    -
    1843 vtable_type *vtable{};
    -
    1844 any handle{};
    -
    1845};
    -
    - -
    1853 return (value_type_node != nullptr) ? meta_type{*ctx, value_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    -
    1854}
    +
    1761private:
    +
    1762 const meta_ctx *ctx{};
    +
    1763 vtable_type *vtable{};
    +
    1764 any handle;
    +
    1765};
    +
    1767
    +
    +
    1772[[nodiscard]] inline meta_type meta_sequence_container::value_type() const noexcept {
    +
    1773 return (value_type_node != nullptr) ? meta_type{*ctx, value_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1774}
    -
    1855
    -
    - -
    1861 return size_fn(data);
    -
    1862}
    +
    1775
    +
    + +
    1781 return size_fn(data);
    +
    1782}
    -
    1863
    -
    - -
    1870 return !const_only && resize_fn(const_cast<void *>(data), sz);
    -
    1871}
    +
    1783
    +
    + +
    1790 return !const_only && resize_fn(const_cast<void *>(data), sz);
    +
    1791}
    -
    1872
    -
    - -
    1878 return !const_only && clear_fn(const_cast<void *>(data));
    -
    1879}
    +
    1792
    +
    + +
    1798 return !const_only && clear_fn(const_cast<void *>(data));
    +
    1799}
    -
    1880
    -
    - -
    1887 return !const_only && reserve_fn(const_cast<void *>(data), sz);
    -
    1888}
    +
    1800
    +
    + +
    1807 return !const_only && reserve_fn(const_cast<void *>(data), sz);
    +
    1808}
    -
    1889
    -
    - -
    1895 return begin_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    -
    1896}
    +
    1809
    +
    + +
    1815 return begin_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    +
    1816}
    -
    1897
    +
    1817
    +
    + +
    1823 return end_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    +
    1824}
    +
    +
    1825
    +
    + +
    1833 // this abomination is necessary because only on macos value_type and const_reference are different types for std::vector<bool>
    +
    1834 if(const auto vtype = value_type_node(internal::meta_context::from(*ctx)); !const_only && (value.allow_cast({*ctx, vtype}) || value.allow_cast({*ctx, const_reference_node(internal::meta_context::from(*ctx))}))) {
    +
    1835 const bool is_value_type = (value.type().info() == *vtype.info);
    +
    1836 return insert_fn(*ctx, const_cast<void *>(data), is_value_type ? value.base().data() : nullptr, is_value_type ? nullptr : value.base().data(), it);
    +
    1837 }
    +
    1838
    +
    1839 return iterator{};
    +
    1840}
    +
    +
    1841
    +
    + +
    1848 return const_only ? iterator{} : erase_fn(*ctx, const_cast<void *>(data), it);
    +
    1849}
    +
    +
    1850
    +
    + +
    1857 auto it = begin();
    +
    1858 it.operator++(static_cast<int>(pos) - 1);
    +
    1859 return *it;
    +
    1860}
    +
    +
    1861
    +
    +
    1866[[nodiscard]] inline meta_sequence_container::operator bool() const noexcept {
    +
    1867 return (data != nullptr);
    +
    1868}
    +
    +
    1869
    +
    +
    1874[[nodiscard]] inline meta_type meta_associative_container::key_type() const noexcept {
    +
    1875 return (key_type_node != nullptr) ? meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1876}
    +
    +
    1877
    +
    +
    1882[[nodiscard]] inline meta_type meta_associative_container::mapped_type() const noexcept {
    +
    1883 return (mapped_type_node != nullptr) ? meta_type{*ctx, mapped_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1884}
    +
    +
    1885
    +
    +
    1887[[nodiscard]] inline meta_type meta_associative_container::value_type() const noexcept {
    +
    1888 return (value_type_node != nullptr) ? meta_type{*ctx, value_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    +
    1889}
    +
    +
    1890
    +
    + +
    1893 return size_fn(data);
    +
    1894}
    +
    +
    1895
    +
    + +
    1898 return !const_only && clear_fn(const_cast<void *>(data));
    +
    1899}
    +
    +
    1900
    - -
    1903 return end_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    + +
    1903 return !const_only && reserve_fn(const_cast<void *>(data), sz);
    1904}
    -
    1905
    +
    1905
    +
    + +
    1908 return begin_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    +
    1909}
    +
    +
    1910
    - -
    1913 // this abomination is necessary because only on macos value_type and const_reference are different types for std::vector<bool>
    -
    1914 if(const auto vtype = value_type_node(internal::meta_context::from(*ctx)); !const_only && (value.allow_cast({*ctx, vtype}) || value.allow_cast({*ctx, const_reference_node(internal::meta_context::from(*ctx))}))) {
    -
    1915 const bool is_value_type = (value.type().info() == *vtype.info);
    -
    1916 return insert_fn(*ctx, const_cast<void *>(data), is_value_type ? std::as_const(value).data() : nullptr, is_value_type ? nullptr : std::as_const(value).data(), it);
    -
    1917 }
    -
    1918
    -
    1919 return iterator{};
    -
    1920}
    + +
    1913 return end_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    +
    1914}
    -
    1921
    -
    - -
    1928 return const_only ? iterator{} : erase_fn(*ctx, const_cast<void *>(data), it);
    -
    1929}
    +
    1915
    +
    + +
    1923 return !const_only && key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))})
    +
    1924 && ((mapped_type_node == nullptr) || value.allow_cast(meta_type{*ctx, mapped_type_node(internal::meta_context::from(*ctx))}))
    +
    1925 && insert_fn(const_cast<void *>(data), key.base().data(), value.base().data());
    +
    1926}
    -
    1930
    -
    - -
    1937 auto it = begin();
    -
    1938 it.operator++(static_cast<int>(pos) - 1);
    -
    1939 return *it;
    -
    1940}
    +
    1927
    +
    + +
    1934 return (!const_only && key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))})) ? erase_fn(const_cast<void *>(data), key.base().data()) : 0u;
    +
    1935}
    -
    1941
    -
    -
    1946[[nodiscard]] inline meta_sequence_container::operator bool() const noexcept {
    -
    1947 return (data != nullptr);
    -
    1948}
    +
    1936
    +
    + +
    1943 return key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))}) ? find_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data, key.base().data()) : iterator{};
    +
    1944}
    -
    1949
    -
    - -
    1955 return (key_type_node != nullptr) ? meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    -
    1956}
    +
    1945
    +
    +
    1950[[nodiscard]] inline meta_associative_container::operator bool() const noexcept {
    +
    1951 return (data != nullptr);
    +
    1952}
    -
    1957
    -
    - -
    1963 return (mapped_type_node != nullptr) ? meta_type{*ctx, mapped_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    -
    1964}
    -
    -
    1965
    -
    - -
    1968 return (value_type_node != nullptr) ? meta_type{*ctx, value_type_node(internal::meta_context::from(*ctx))} : meta_type{};
    -
    1969}
    -
    -
    1970
    - -
    1975
    -
    - -
    1978 return !const_only && clear_fn(const_cast<void *>(data));
    -
    1979}
    -
    -
    1980
    -
    - -
    1983 return !const_only && reserve_fn(const_cast<void *>(data), sz);
    -
    1984}
    -
    -
    1985
    -
    - -
    1988 return begin_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    -
    1989}
    -
    -
    1990
    -
    - -
    1993 return end_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data);
    -
    1994}
    -
    -
    1995
    -
    - -
    2003 return !const_only && key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))})
    -
    2004 && ((mapped_type_node == nullptr) || value.allow_cast(meta_type{*ctx, mapped_type_node(internal::meta_context::from(*ctx))}))
    -
    2005 && insert_fn(const_cast<void *>(data), std::as_const(key).data(), std::as_const(value).data());
    -
    2006}
    -
    -
    2007
    -
    - -
    2014 return (!const_only && key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))})) ? erase_fn(const_cast<void *>(data), std::as_const(key).data()) : 0u;
    -
    2015}
    -
    -
    2016
    -
    - -
    2023 return key.allow_cast(meta_type{*ctx, key_type_node(internal::meta_context::from(*ctx))}) ? find_fn(*ctx, const_only ? nullptr : const_cast<void *>(data), data, std::as_const(key).data()) : iterator{};
    -
    2024}
    -
    -
    2025
    -
    -
    2030[[nodiscard]] inline meta_associative_container::operator bool() const noexcept {
    -
    2031 return (data != nullptr);
    -
    2032}
    -
    -
    2033
    -
    2034} // namespace entt
    -
    2035
    -
    2036#endif
    - -
    pointer data() const noexcept
    Direct access to the internal packed array.
    -
    deletion_policy policy() const noexcept
    Returns the deletion policy of a sparse set.
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    value_type & emplace(const entity_type entt, Args &&...args)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:675
    +
    1953
    +
    1954} // namespace entt
    +
    1955
    +
    1956#endif
    +
    const void * data() const noexcept
    Returns an opaque pointer to the contained instance.
    Definition any.hpp:305
    +
    any_policy policy() const noexcept
    Returns the current mode of an any object.
    Definition any.hpp:441
    Service locator, nothing more.
    Definition locator.hpp:27
    static Service & value_or(Args &&...args)
    Returns a service if available or sets it from a fallback type.
    Definition locator.hpp:88
    -
    Opaque wrapper for values of any type.
    Definition meta.hpp:179
    -
    bool assign(const meta_any &other)
    Assigns a value to the contained object without replacing it.
    Definition meta.hpp:1666
    -
    meta_any & operator=(const meta_any &other)
    Copy assignment operator.
    Definition meta.hpp:329
    -
    meta_associative_container as_associative_container() noexcept
    Returns an associative container proxy.
    Definition meta.hpp:555
    -
    meta_type type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition meta.hpp:1619
    -
    meta_any(const meta_ctx &area, const meta_any &other)
    Context aware copy constructor.
    Definition meta.hpp:286
    +
    Opaque wrapper for values of any type.
    Definition meta.hpp:166
    +
    bool assign(const meta_any &other)
    Assigns a value to the contained object without replacing it.
    Definition meta.hpp:1586
    +
    any_policy policy() const noexcept
    Returns the current mode of a meta any object.
    Definition meta.hpp:637
    +
    meta_any & operator=(const meta_any &other)
    Copy assignment operator.
    Definition meta.hpp:348
    +
    meta_associative_container as_associative_container() noexcept
    Returns an associative container proxy.
    Definition meta.hpp:581
    +
    meta_type type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition meta.hpp:1539
    +
    meta_any(const meta_ctx &area, const meta_any &other)
    Context aware copy constructor.
    Definition meta.hpp:305
    meta_any()=default
    -
    meta_any invoke(id_type id, Args &&...args) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1625
    -
    std::remove_const_t< Type > cast()
    Tries to cast an instance to a given type.
    Definition meta.hpp:452
    -
    meta_any(meta_any &&other) noexcept
    Move constructor.
    Definition meta.hpp:313
    -
    void * data() noexcept
    Returns an opaque pointer to the contained instance.
    Definition meta.hpp:378
    -
    meta_any(std::in_place_type_t< Type >, Args &&...args)
    Constructs a wrapper by directly initializing the new object.
    Definition meta.hpp:245
    -
    std::remove_const_t< Type > cast() const
    Tries to cast an instance to a given type.
    Definition meta.hpp:444
    -
    meta_any as_ref() noexcept
    Aliasing constructor.
    Definition meta.hpp:598
    -
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition meta.hpp:422
    -
    void emplace(Args &&...args)
    Replaces the contained object by creating a new instance directly.
    Definition meta.hpp:513
    -
    meta_any(const meta_ctx &area, meta_any &&other)
    Context aware move constructor.
    Definition meta.hpp:297
    -
    meta_sequence_container as_sequence_container() noexcept
    Returns a sequence container proxy.
    Definition meta.hpp:538
    -
    Type * try_cast()
    Tries to cast an instance to a given type.
    Definition meta.hpp:429
    -
    meta_associative_container as_associative_container() const noexcept
    Returns an associative container proxy.
    Definition meta.hpp:562
    -
    meta_any_policy policy() const noexcept
    Returns the current mode of a meta any object.
    Definition meta.hpp:611
    +
    meta_any invoke(id_type id, Args &&...args) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1545
    +
    std::remove_const_t< Type > cast()
    Tries to cast an instance to a given type.
    Definition meta.hpp:474
    +
    meta_any(meta_any &&other) noexcept
    Move constructor.
    Definition meta.hpp:332
    +
    void * data() noexcept
    Returns an opaque pointer to the contained instance.
    Definition meta.hpp:399
    +
    meta_any(std::in_place_type_t< Type >, Args &&...args)
    Constructs a wrapper by directly initializing the new object.
    Definition meta.hpp:239
    +
    std::remove_const_t< Type > cast() const
    Tries to cast an instance to a given type.
    Definition meta.hpp:466
    +
    meta_any as_ref() noexcept
    Aliasing constructor.
    Definition meta.hpp:624
    +
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition meta.hpp:443
    +
    void emplace(Args &&...args)
    Replaces the contained object by creating a new instance directly.
    Definition meta.hpp:539
    +
    meta_any(std::in_place_t, Type *value)
    Constructs a wrapper taking ownership of the passed object.
    Definition meta.hpp:262
    +
    meta_any(const meta_ctx &area, meta_any &&other)
    Context aware move constructor.
    Definition meta.hpp:316
    +
    meta_sequence_container as_sequence_container() noexcept
    Returns a sequence container proxy.
    Definition meta.hpp:564
    +
    Type * try_cast()
    Tries to cast an instance to a given type.
    Definition meta.hpp:450
    +
    meta_associative_container as_associative_container() const noexcept
    Returns an associative container proxy.
    Definition meta.hpp:588
    meta_any(const meta_any &other)=default
    Copy constructor.
    -
    meta_any operator*() const noexcept
    Indirection operator for dereferencing opaque objects.
    Definition meta.hpp:573
    -
    meta_any allow_cast(const meta_type &type) const
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:1647
    -
    meta_any(const meta_ctx &area, Type &&value)
    Constructs a wrapper from a given value.
    Definition meta.hpp:278
    -
    meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)
    Constructs a wrapper by directly initializing the new object.
    Definition meta.hpp:256
    -
    meta_any as_ref() const noexcept
    Aliasing constructor.
    Definition meta.hpp:603
    -
    meta_any allow_cast() const
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:491
    -
    meta_any(meta_ctx_arg_t, const meta_ctx &area)
    Context aware constructor.
    Definition meta.hpp:235
    -
    meta_any(Type &&value)
    Constructs a wrapper from a given value.
    Definition meta.hpp:268
    -
    ~meta_any()
    Frees the internal storage, whatever it means.
    Definition meta.hpp:320
    -
    void reset()
    Destroys contained object.
    Definition meta.hpp:527
    -
    meta_any & operator=(Type &&value)
    Value assignment operator.
    Definition meta.hpp:364
    -
    meta_sequence_container as_sequence_container() const noexcept
    Returns a sequence container proxy.
    Definition meta.hpp:545
    -
    bool operator==(const meta_any &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:588
    -
    const void * data() const noexcept
    Returns an opaque pointer to the contained instance.
    Definition meta.hpp:373
    -
    bool operator!=(const meta_any &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:593
    -
    bool set(id_type id, Type &&value)
    Sets the value of a given variable.
    Definition meta.hpp:1635
    -
    bool allow_cast()
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:506
    -
    meta_any get(id_type id) const
    Gets the value of a given variable.
    Definition meta.hpp:1639
    -
    bool allow_cast(const meta_type &type)
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:472
    -
    meta_any & operator=(meta_any &&other) noexcept
    Move assignment operator.
    Definition meta.hpp:346
    -
    Proxy object for associative containers.
    Definition meta.hpp:100
    +
    meta_any operator*() const noexcept
    Indirection operator for dereferencing opaque objects.
    Definition meta.hpp:599
    +
    meta_any allow_cast(const meta_type &type) const
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:1567
    +
    meta_any(const meta_ctx &area, Type &&value)
    Constructs a wrapper from a given value.
    Definition meta.hpp:297
    +
    meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)
    Constructs a wrapper by directly initializing the new object.
    Definition meta.hpp:250
    +
    const any & base() const noexcept
    Returns the underlying storage.
    Definition meta.hpp:645
    +
    meta_any as_ref() const noexcept
    Aliasing constructor.
    Definition meta.hpp:629
    +
    meta_any allow_cast() const
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:513
    +
    meta_any(meta_ctx_arg_t, const meta_ctx &area)
    Context aware constructor.
    Definition meta.hpp:229
    +
    meta_any(Type &&value)
    Constructs a wrapper from a given value.
    Definition meta.hpp:287
    +
    ~meta_any()
    Frees the internal storage, whatever it means.
    Definition meta.hpp:339
    +
    void reset()
    Destroys contained object.
    Definition meta.hpp:553
    +
    meta_any & operator=(Type &&value)
    Value assignment operator.
    Definition meta.hpp:385
    +
    meta_any(const meta_ctx &area, std::in_place_t, Type *value)
    Constructs a wrapper taking ownership of the passed object.
    Definition meta.hpp:272
    +
    meta_sequence_container as_sequence_container() const noexcept
    Returns a sequence container proxy.
    Definition meta.hpp:571
    +
    bool operator==(const meta_any &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:614
    +
    const void * data() const noexcept
    Returns an opaque pointer to the contained instance.
    Definition meta.hpp:394
    +
    bool operator!=(const meta_any &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:619
    +
    bool set(id_type id, Type &&value)
    Sets the value of a given variable.
    Definition meta.hpp:1555
    +
    bool allow_cast()
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:528
    +
    meta_any get(id_type id) const
    Gets the value of a given variable.
    Definition meta.hpp:1559
    +
    bool allow_cast(const meta_type &type)
    Converts an object in such a way that a given cast becomes viable.
    Definition meta.hpp:494
    +
    meta_any & operator=(meta_any &&other) noexcept
    Move assignment operator.
    Definition meta.hpp:369
    +
    const meta_ctx & context() const noexcept
    Returns the underlying meta context.
    Definition meta.hpp:653
    +
    Proxy object for associative containers.
    Definition meta.hpp:94
    meta_associative_container()=default
    Default constructor.
    -
    meta_associative_container(const meta_ctx &area) noexcept
    Context aware constructor.
    Definition meta.hpp:116
    -
    size_type erase(meta_any)
    Removes the specified element from a container.
    Definition meta.hpp:2013
    -
    iterator find(meta_any)
    Returns an iterator to the element with a given key, if any.
    Definition meta.hpp:2022
    -
    bool insert(meta_any, meta_any)
    Inserts a key-only or key/value element into a container.
    Definition meta.hpp:2002
    -
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition meta.hpp:1992
    -
    bool reserve(size_type)
    Reserves storage for at least the given number of elements.
    Definition meta.hpp:1982
    -
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition meta.hpp:1987
    -
    size_type size() const noexcept
    Returns the size of a container.
    Definition meta.hpp:1972
    -
    meta_type mapped_type() const noexcept
    Returns the meta mapped type of a container.
    Definition meta.hpp:1962
    -
    std::size_t size_type
    Unsigned integer type.
    Definition meta.hpp:105
    -
    meta_iterator iterator
    Meta iterator type.
    Definition meta.hpp:107
    -
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition meta.hpp:1967
    -
    void rebind(Type &instance) noexcept
    Rebinds a proxy object to an associative container type.
    Definition meta.hpp:125
    -
    meta_type key_type() const noexcept
    Returns the meta key type of a container.
    Definition meta.hpp:1954
    -
    bool clear()
    Clears the content of a container.
    Definition meta.hpp:1977
    +
    size_type erase(meta_any)
    Removes the specified element from a container.
    Definition meta.hpp:1933
    +
    iterator find(meta_any)
    Returns an iterator to the element with a given key, if any.
    Definition meta.hpp:1942
    +
    bool insert(meta_any, meta_any)
    Inserts a key-only or key/value element into a container.
    Definition meta.hpp:1922
    +
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition meta.hpp:1912
    +
    bool reserve(size_type)
    Reserves storage for at least the given number of elements.
    Definition meta.hpp:1902
    +
    meta_associative_container(const meta_ctx &area, Type &instance) noexcept
    Context aware constructor.
    Definition meta.hpp:113
    +
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition meta.hpp:1907
    +
    size_type size() const noexcept
    Returns the size of a container.
    Definition meta.hpp:1892
    +
    meta_type mapped_type() const noexcept
    Returns the meta mapped type of a container.
    Definition meta.hpp:1882
    +
    std::size_t size_type
    Unsigned integer type.
    Definition meta.hpp:99
    +
    meta_iterator iterator
    Meta iterator type.
    Definition meta.hpp:101
    +
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition meta.hpp:1887
    +
    meta_type key_type() const noexcept
    Returns the meta key type of a container.
    Definition meta.hpp:1874
    +
    bool clear()
    Clears the content of a container.
    Definition meta.hpp:1897
    Disambiguation tag for constructors and the like.
    Definition context.hpp:28
    Opaque meta context type.
    Definition context.hpp:34
    Proxy object for sequence containers.
    Definition meta.hpp:31
    -
    bool reserve(size_type)
    Reserves storage for at least the given number of elements.
    Definition meta.hpp:1886
    -
    iterator insert(const iterator &, meta_any)
    Inserts an element at a specified location of a container.
    Definition meta.hpp:1912
    -
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition meta.hpp:1852
    -
    meta_any operator[](size_type)
    Returns a reference to the element at a given location of a container.
    Definition meta.hpp:1936
    +
    bool reserve(size_type)
    Reserves storage for at least the given number of elements.
    Definition meta.hpp:1806
    +
    iterator insert(const iterator &, meta_any)
    Inserts an element at a specified location of a container.
    Definition meta.hpp:1832
    +
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition meta.hpp:1772
    +
    meta_any operator[](size_type)
    Returns a reference to the element at a given location of a container.
    Definition meta.hpp:1856
    meta_sequence_container()=default
    Default constructor.
    -
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition meta.hpp:1902
    -
    void rebind(Type &instance) noexcept
    Rebinds a proxy object to a sequence container type.
    Definition meta.hpp:56
    -
    iterator erase(const iterator &)
    Removes a given element from a container.
    Definition meta.hpp:1927
    +
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition meta.hpp:1822
    +
    iterator erase(const iterator &)
    Removes a given element from a container.
    Definition meta.hpp:1847
    +
    meta_sequence_container(const meta_ctx &area, Type &instance) noexcept
    Context aware constructor.
    Definition meta.hpp:50
    meta_iterator iterator
    Meta iterator type.
    Definition meta.hpp:38
    std::size_t size_type
    Unsigned integer type.
    Definition meta.hpp:36
    -
    meta_sequence_container(const meta_ctx &area) noexcept
    Context aware constructor.
    Definition meta.hpp:47
    -
    bool resize(size_type)
    Resizes a container to contain a given number of elements.
    Definition meta.hpp:1869
    -
    size_type size() const noexcept
    Returns the size of a container.
    Definition meta.hpp:1860
    -
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition meta.hpp:1894
    -
    bool clear()
    Clears the content of a container.
    Definition meta.hpp:1877
    -
    Opaque wrapper for types.
    Definition meta.hpp:1153
    -
    bool is_pointer() const noexcept
    Checks whether a type refers to a pointer or not.
    Definition meta.hpp:1308
    -
    bool is_arithmetic() const noexcept
    Checks whether a type refers to an arithmetic type or not.
    Definition meta.hpp:1260
    -
    meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > func() const noexcept
    Returns a range to visit registered top-level functions.
    Definition meta.hpp:1431
    -
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:1587
    -
    id_type id() const noexcept
    Returns the identifier assigned to a type.
    Definition meta.hpp:1243
    -
    meta_func func(const id_type id) const
    Lookup utility for meta functions (bases are also visited).
    Definition meta.hpp:1444
    -
    meta_type remove_pointer() const noexcept
    Provides the type for which the pointer is defined.
    Definition meta.hpp:1317
    -
    meta_any construct(Args &&...args) const
    Creates an instance of the underlying type, if possible.
    Definition meta.hpp:1476
    -
    meta_type template_arg(const size_type index) const noexcept
    Returns the type of the i-th template argument of a type.
    Definition meta.hpp:1376
    -
    bool is_array() const noexcept
    Checks whether a type refers to an array type or not.
    Definition meta.hpp:1284
    -
    meta_range< meta_prop, typename decltype(internal::meta_type_descriptor::prop)::const_iterator > prop() const noexcept
    Returns a range to visit registered top-level meta properties.
    Definition meta.hpp:1565
    -
    meta_data data(const id_type id) const
    Lookup utility for meta data (bases are also visited).
    Definition meta.hpp:1422
    -
    bool is_class() const noexcept
    Checks whether a type refers to a class or not.
    Definition meta.hpp:1300
    -
    bool set(const id_type id, meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition meta.hpp:1545
    -
    typename internal::meta_type_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:1209
    -
    meta_any from_void(void *elem) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1486
    -
    meta_any from_void(const void *elem) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1491
    -
    meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > data() const noexcept
    Returns a range to visit registered top-level meta data.
    Definition meta.hpp:1412
    -
    meta_prop prop(const id_type key) const
    Lookup utility for meta properties (bases are also visited).
    Definition meta.hpp:1575
    -
    meta_any invoke(const id_type id, meta_handle instance, Args &&...args) const
    Invokes a function given an identifier, if possible.
    Definition meta.hpp:1531
    -
    bool can_convert(const meta_type &other) const noexcept
    Checks if a type supports conversion it to another type.
    Definition meta.hpp:1395
    -
    bool is_signed() const noexcept
    Checks whether a type refers to a signed type or not.
    Definition meta.hpp:1276
    -
    bool is_enum() const noexcept
    Checks whether a type refers to an enum or not.
    Definition meta.hpp:1292
    -
    bool can_cast(const meta_type &other) const noexcept
    Checks if a type supports direct casting to another type.
    Definition meta.hpp:1385
    +
    bool resize(size_type)
    Resizes a container to contain a given number of elements.
    Definition meta.hpp:1789
    +
    size_type size() const noexcept
    Returns the size of a container.
    Definition meta.hpp:1780
    +
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition meta.hpp:1814
    +
    bool clear()
    Clears the content of a container.
    Definition meta.hpp:1797
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088
    +
    bool is_pointer() const noexcept
    Checks whether a type refers to a pointer or not.
    Definition meta.hpp:1243
    +
    bool is_arithmetic() const noexcept
    Checks whether a type refers to an arithmetic type or not.
    Definition meta.hpp:1195
    +
    meta_range< meta_func, typename decltype(internal::meta_type_descriptor::func)::const_iterator > func() const noexcept
    Returns a range to visit registered top-level functions.
    Definition meta.hpp:1366
    +
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:1506
    +
    meta_any from_void(void *elem, bool transfer_ownership=false) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1419
    +
    id_type id() const noexcept
    Returns the identifier assigned to a type.
    Definition meta.hpp:1178
    +
    meta_func func(const id_type id) const
    Lookup utility for meta functions (bases are also visited).
    Definition meta.hpp:1376
    +
    meta_type remove_pointer() const noexcept
    Provides the type for which the pointer is defined.
    Definition meta.hpp:1252
    +
    meta_any construct(Args &&...args) const
    Creates an instance of the underlying type, if possible.
    Definition meta.hpp:1408
    +
    meta_type template_arg(const size_type index) const noexcept
    Returns the type of the i-th template argument of a type.
    Definition meta.hpp:1311
    +
    bool is_array() const noexcept
    Checks whether a type refers to an array type or not.
    Definition meta.hpp:1219
    +
    meta_data data(const id_type id) const
    Lookup utility for meta data (bases are also visited).
    Definition meta.hpp:1357
    +
    bool is_class() const noexcept
    Checks whether a type refers to a class or not.
    Definition meta.hpp:1235
    +
    bool set(const id_type id, meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition meta.hpp:1483
    +
    typename internal::meta_type_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:1144
    +
    meta_any from_void(const void *elem) const
    Wraps an opaque element of the underlying type.
    Definition meta.hpp:1428
    +
    meta_range< meta_data, typename decltype(internal::meta_type_descriptor::data)::const_iterator > data() const noexcept
    Returns a range to visit registered top-level meta data.
    Definition meta.hpp:1347
    +
    meta_any invoke(const id_type id, meta_handle instance, Args &&...args) const
    Invokes a function given an identifier, if possible.
    Definition meta.hpp:1469
    +
    bool can_convert(const meta_type &other) const noexcept
    Checks if a type supports conversion it to another type.
    Definition meta.hpp:1330
    +
    bool is_signed() const noexcept
    Checks whether a type refers to a signed type or not.
    Definition meta.hpp:1211
    +
    bool is_enum() const noexcept
    Checks whether a type refers to an enum or not.
    Definition meta.hpp:1227
    +
    bool can_cast(const meta_type &other) const noexcept
    Checks if a type supports direct casting to another type.
    Definition meta.hpp:1320
    meta_type() noexcept=default
    Default constructor.
    -
    bool operator==(const meta_type &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:1600
    -
    meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > base() const noexcept
    Returns a range to visit registered top-level base meta types.
    Definition meta.hpp:1403
    -
    bool is_pointer_like() const noexcept
    Checks whether a type is a pointer-like type or not.
    Definition meta.hpp:1325
    -
    meta_any get(const id_type id, meta_handle instance) const
    Gets the value of a given variable.
    Definition meta.hpp:1556
    -
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:1582
    -
    meta_any construct(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition meta.hpp:1455
    -
    bool is_integral() const noexcept
    Checks whether a type refers to an integral type or not.
    Definition meta.hpp:1268
    -
    meta_type template_type() const noexcept
    Returns a tag for the class template of the underlying type.
    Definition meta.hpp:1367
    -
    meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept
    Context aware constructor for meta objects.
    Definition meta.hpp:1228
    -
    const type_info & info() const noexcept
    Returns the type info object of the underlying type.
    Definition meta.hpp:1235
    -
    bool is_template_specialization() const noexcept
    Checks whether a type refers to a recognized class template specialization or not.
    Definition meta.hpp:1351
    -
    meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes a function given an identifier, if possible.
    Definition meta.hpp:1503
    -
    bool is_associative_container() const noexcept
    Checks whether a type refers to an associative container or not.
    Definition meta.hpp:1341
    -
    size_type template_arity() const noexcept
    Returns the number of template arguments.
    Definition meta.hpp:1359
    -
    size_type size_of() const noexcept
    Returns the size of the underlying type if known.
    Definition meta.hpp:1251
    -
    bool is_sequence_container() const noexcept
    Checks whether a type refers to a sequence container or not.
    Definition meta.hpp:1333
    +
    bool operator==(const meta_type &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:1519
    +
    meta_range< meta_type, typename decltype(internal::meta_type_descriptor::base)::const_iterator > base() const noexcept
    Returns a range to visit registered top-level base meta types.
    Definition meta.hpp:1338
    +
    bool is_pointer_like() const noexcept
    Checks whether a type is a pointer-like type or not.
    Definition meta.hpp:1260
    +
    meta_any get(const id_type id, meta_handle instance) const
    Gets the value of a given variable.
    Definition meta.hpp:1494
    +
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:1501
    +
    meta_any construct(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition meta.hpp:1387
    +
    bool is_integral() const noexcept
    Checks whether a type refers to an integral type or not.
    Definition meta.hpp:1203
    +
    meta_type template_type() const noexcept
    Returns a tag for the class template of the underlying type.
    Definition meta.hpp:1302
    +
    meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept
    Context aware constructor for meta objects.
    Definition meta.hpp:1163
    +
    const type_info & info() const noexcept
    Returns the type info object of the underlying type.
    Definition meta.hpp:1170
    +
    bool is_template_specialization() const noexcept
    Checks whether a type refers to a recognized class template specialization or not.
    Definition meta.hpp:1286
    +
    meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes a function given an identifier, if possible.
    Definition meta.hpp:1441
    +
    bool is_associative_container() const noexcept
    Checks whether a type refers to an associative container or not.
    Definition meta.hpp:1276
    +
    size_type template_arity() const noexcept
    Returns the number of template arguments.
    Definition meta.hpp:1294
    +
    size_type size_of() const noexcept
    Returns the size of the underlying type if known.
    Definition meta.hpp:1186
    +
    bool is_sequence_container() const noexcept
    Checks whether a type refers to a sequence container or not.
    Definition meta.hpp:1268
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    basic_handle< registry > handle
    Alias declaration for the most common use case.
    Definition fwd.hpp:102
    -
    basic_any<> any
    Alias declaration for the most common use case.
    Definition fwd.hpp:17
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    meta_type resolve() noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:32
    +
    basic_handle< registry > handle
    Alias declaration for the most common use case.
    Definition fwd.hpp:101
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    basic_any<> any
    Alias declaration for the most common use case.
    Definition fwd.hpp:32
    +
    iterable_adaptor< internal::meta_range_iterator< Type, It > > meta_range
    Iterable range to use to iterate all types of meta objects.
    Definition range.hpp:147
    +
    constexpr bool is_complete_v
    Helper variable template.
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    constexpr meta_ctx_arg_t meta_ctx_arg
    Constant of type meta_context_arg_t used to disambiguate calls.
    Definition context.hpp:31
    -
    meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition meta.hpp:630
    +
    constexpr auto is_meta_pointer_like_v
    Helper variable template.
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    +
    meta_any forward_as_meta(const meta_ctx &ctx, Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition meta.hpp:672
    +
    meta_type resolve(const meta_ctx &ctx) noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:21
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    any_policy
    Possible modes of an any object.
    Definition any.hpp:33
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    -
    @ cref
    Const aliasing mode, the object points to a const element.
    -
    @ owner
    Default mode, the object owns the contained element.
    +
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.
    +
    any_policy
    Possible modes of an any object.
    Definition fwd.hpp:11
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    +
    @ cref
    Const aliasing mode, the object points to a const element.
    Definition fwd.hpp:21
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    Fake ADL based lookup function for meta pointer-like types.
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    static decltype(auto) dereference(const Type &value)
    Uses the default ADL based lookup method to resolve the call.
    -
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    -
    Traits class template to be specialized to enable support for meta associative containers.
    -
    Opaque wrapper for user defined data of any type.
    Definition meta.hpp:830
    +
    Opaque wrapper for user defined data of any type.
    Definition meta.hpp:805
    meta_custom() noexcept=default
    Default constructor.
    -
    Opaque wrapper for data members.
    Definition meta.hpp:865
    -
    bool is_const() const noexcept
    Indicates whether a data member is constant or not.
    Definition meta.hpp:893
    -
    meta_type arg(size_type index) const noexcept
    Returns the type accepted by the i-th setter.
    Definition meta.hpp:1683
    -
    typename internal::meta_data_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:867
    -
    meta_prop prop(const id_type key) const
    Lookup utility for meta properties.
    Definition meta.hpp:950
    -
    meta_any get(meta_handle instance) const
    Gets the value of a given variable.
    Definition meta.hpp:926
    -
    size_type arity() const noexcept
    Returns the number of setters available.
    Definition meta.hpp:885
    -
    meta_range< meta_prop, typename decltype(internal::meta_data_node::prop)::const_iterator > prop() const noexcept
    Returns a range to visit registered meta properties.
    Definition meta.hpp:941
    -
    bool operator==(const meta_data &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:987
    -
    bool set(meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition meta.hpp:917
    -
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:974
    -
    meta_type type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition meta.hpp:1679
    +
    Opaque wrapper for data members.
    Definition meta.hpp:840
    +
    bool is_const() const noexcept
    Indicates whether a data member is constant or not.
    Definition meta.hpp:868
    +
    meta_type arg(size_type index) const noexcept
    Returns the type accepted by the i-th setter.
    Definition meta.hpp:1603
    +
    typename internal::meta_data_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:842
    +
    meta_any get(meta_handle instance) const
    Gets the value of a given variable.
    Definition meta.hpp:901
    +
    size_type arity() const noexcept
    Returns the number of setters available.
    Definition meta.hpp:860
    +
    bool operator==(const meta_data &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:943
    +
    bool set(meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition meta.hpp:892
    +
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:926
    +
    meta_type type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition meta.hpp:1599
    meta_data() noexcept=default
    Default constructor.
    -
    bool is_static() const noexcept
    Indicates whether a data member is static or not.
    Definition meta.hpp:901
    -
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:966
    -
    Opaque wrapper for member functions.
    Definition meta.hpp:1007
    -
    bool is_static() const noexcept
    Indicates whether a member function is static or not.
    Definition meta.hpp:1043
    -
    typename internal::meta_func_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:1009
    +
    bool is_static() const noexcept
    Indicates whether a data member is static or not.
    Definition meta.hpp:876
    +
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:918
    +
    Opaque wrapper for member functions.
    Definition meta.hpp:963
    +
    bool is_static() const noexcept
    Indicates whether a member function is static or not.
    Definition meta.hpp:999
    +
    typename internal::meta_func_node::size_type size_type
    Unsigned integer type.
    Definition meta.hpp:965
    meta_func() noexcept=default
    Default constructor.
    -
    meta_type ret() const noexcept
    Returns the return type of a member function.
    Definition meta.hpp:1687
    -
    bool operator==(const meta_func &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:1133
    -
    meta_prop prop(const id_type key) const
    Lookup utility for meta properties.
    Definition meta.hpp:1095
    -
    meta_range< meta_prop, typename decltype(internal::meta_func_node::prop)::const_iterator > prop() const noexcept
    Returns a range to visit registered meta properties.
    Definition meta.hpp:1086
    -
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:1107
    -
    meta_any invoke(meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1067
    -
    bool is_const() const noexcept
    Indicates whether a member function is constant or not.
    Definition meta.hpp:1035
    -
    meta_any invoke(meta_handle instance, Args &&...args) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1080
    -
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:1112
    -
    meta_func next() const
    Returns the next overload of a given function, if any.
    Definition meta.hpp:1120
    -
    meta_type arg(size_type index) const noexcept
    Returns the type of the i-th argument of a member function.
    Definition meta.hpp:1691
    -
    size_type arity() const noexcept
    Returns the number of arguments accepted by a member function.
    Definition meta.hpp:1027
    -
    Opaque pointers to instances of any type.
    Definition meta.hpp:651
    -
    bool operator!=(const meta_handle &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:746
    -
    meta_handle(const meta_any &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:673
    +
    meta_type ret() const noexcept
    Returns the return type of a member function.
    Definition meta.hpp:1607
    +
    bool operator==(const meta_func &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:1068
    +
    Type traits() const noexcept
    Returns all meta traits for a given meta object.
    Definition meta.hpp:1042
    +
    meta_any invoke(meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1023
    +
    bool is_const() const noexcept
    Indicates whether a member function is constant or not.
    Definition meta.hpp:991
    +
    meta_any invoke(meta_handle instance, Args &&...args) const
    Invokes the underlying function, if possible.
    Definition meta.hpp:1036
    +
    meta_custom custom() const noexcept
    Returns user defined data for a given meta object.
    Definition meta.hpp:1047
    +
    meta_func next() const
    Returns the next overload of a given function, if any.
    Definition meta.hpp:1055
    +
    meta_type arg(size_type index) const noexcept
    Returns the type of the i-th argument of a member function.
    Definition meta.hpp:1611
    +
    size_type arity() const noexcept
    Returns the number of arguments accepted by a member function.
    Definition meta.hpp:983
    +
    Opaque pointers to instances of any type.
    Definition meta.hpp:688
    +
    bool operator!=(const meta_handle &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:783
    +
    meta_handle(const meta_any &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:710
    meta_handle & operator=(const meta_handle &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    meta_handle(const meta_ctx &ctx, Type &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:683
    +
    meta_handle(const meta_ctx &ctx, Type &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:720
    ~meta_handle()=default
    Default destructor.
    meta_handle()=default
    -
    meta_handle(const meta_ctx &area, const meta_handle &other)
    Context aware copy constructor.
    Definition meta.hpp:700
    -
    bool operator==(const meta_handle &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:741
    +
    meta_handle(const meta_ctx &area, const meta_handle &other)
    Context aware copy constructor.
    Definition meta.hpp:737
    +
    bool operator==(const meta_handle &other) const noexcept
    Checks if two wrappers differ in their content.
    Definition meta.hpp:778
    meta_handle(meta_handle &&)=default
    Default move constructor.
    -
    meta_handle(const meta_ctx &area, meta_handle &&other)
    Context aware move constructor.
    Definition meta.hpp:708
    -
    const meta_any * operator->() const
    Access operator for accessing the contained opaque object.
    Definition meta.hpp:759
    +
    meta_handle(const meta_ctx &area, meta_handle &&other)
    Context aware move constructor.
    Definition meta.hpp:745
    +
    const meta_any * operator->() const
    Access operator for accessing the contained opaque object.
    Definition meta.hpp:796
    meta_handle(const meta_handle &)=delete
    Default copy constructor, deleted on purpose.
    -
    meta_handle(meta_ctx_arg_t, const meta_ctx &area)
    Context aware constructor.
    Definition meta.hpp:659
    -
    meta_handle(meta_any &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:666
    -
    meta_handle(Type &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:692
    +
    meta_handle(meta_ctx_arg_t, const meta_ctx &area)
    Context aware constructor.
    Definition meta.hpp:696
    +
    meta_handle(meta_any &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:703
    +
    meta_handle(Type &value)
    Creates a handle that points to an unmanaged object.
    Definition meta.hpp:729
    meta_handle & operator=(meta_handle &&)=default
    Default move assignment operator.
    -
    meta_any * operator->()
    Access operator for accessing the contained opaque object.
    Definition meta.hpp:754
    -
    Opaque wrapper for properties of any type.
    Definition meta.hpp:768
    -
    meta_any value()
    Returns the stored value by reference.
    Definition meta.hpp:793
    -
    meta_any value() const
    Returns the stored value by const reference.
    Definition meta.hpp:785
    -
    meta_prop() noexcept=default
    Default constructor.
    -
    bool operator==(const meta_prop &other) const noexcept
    Checks if two objects refer to the same type.
    Definition meta.hpp:810
    -
    Traits class template to be specialized to enable support for meta sequence containers.
    +
    meta_any * operator->()
    Access operator for accessing the contained opaque object.
    Definition meta.hpp:791
    Implementation specific information about a type.
    -
    constexpr id_type hash() const noexcept
    Type hash.
    +
    diff --git a/mixin_8hpp_source.html b/mixin_8hpp_source.html index 8b4aa32da..69667a5c0 100644 --- a/mixin_8hpp_source.html +++ b/mixin_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/mixin.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    mixin.hpp
    @@ -96,7 +104,7 @@ $(function() { codefold.init(0); });
    11#include "fwd.hpp"
    12
    13namespace entt {
    -
    14
    +
    14
    16namespace internal {
    17
    18template<typename, typename, typename = void>
    @@ -120,462 +128,500 @@ $(function() { codefold.init(0); });
    36struct has_on_destroy<Type, Registry, std::void_t<decltype(Type::on_destroy(std::declval<Registry &>(), std::declval<Registry>().create()))>>
    37 : std::true_type {};
    38
    -
    39template<typename Type>
    -
    40auto *any_to_owner(any &value) noexcept {
    -
    41 using base_type = basic_registry<typename Type::entity_type, typename Type::allocator_type>;
    -
    42 auto *reg = any_cast<base_type>(&value);
    -
    43
    -
    44 if constexpr(!std::is_same_v<Type, base_type>) {
    -
    45 if(!reg) {
    -
    46 reg = any_cast<Type>(&value);
    -
    47 }
    -
    48 }
    -
    49
    -
    50 return reg;
    -
    51}
    -
    52
    -
    53} // namespace internal
    -
    70template<typename Type, typename Registry>
    -
    -
    71class basic_sigh_mixin final: public Type {
    -
    72 using underlying_type = Type;
    -
    73 using owner_type = Registry;
    -
    74
    - -
    76 using sigh_type = sigh<void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type>;
    -
    77 using underlying_iterator = typename underlying_type::base_type::basic_iterator;
    -
    78
    -
    79 static_assert(std::is_base_of_v<basic_registry_type, owner_type>, "Invalid registry type");
    -
    80
    -
    81 [[nodiscard]] auto &owner_or_assert() const noexcept {
    -
    82 ENTT_ASSERT(owner != nullptr, "Invalid pointer to registry");
    -
    83 return static_cast<owner_type &>(*owner);
    +
    39} // namespace internal
    +
    41
    +
    56template<typename Type, typename Registry>
    +
    +
    57class basic_sigh_mixin final: public Type {
    +
    58 using underlying_type = Type;
    +
    59 using owner_type = Registry;
    +
    60
    + +
    62 using sigh_type = sigh<void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type>;
    +
    63 using underlying_iterator = typename underlying_type::base_type::basic_iterator;
    +
    64
    +
    65 static_assert(std::is_base_of_v<basic_registry_type, owner_type>, "Invalid registry type");
    +
    66
    +
    67 [[nodiscard]] auto &owner_or_assert() const noexcept {
    +
    68 ENTT_ASSERT(owner != nullptr, "Invalid pointer to registry");
    +
    69 return static_cast<owner_type &>(*owner);
    +
    70 }
    +
    71
    +
    72private:
    +
    73 void pop(underlying_iterator first, underlying_iterator last) final {
    +
    74 if(auto &reg = owner_or_assert(); destruction.empty()) {
    +
    75 underlying_type::pop(first, last);
    +
    76 } else {
    +
    77 for(; first != last; ++first) {
    +
    78 const auto entt = *first;
    +
    79 destruction.publish(reg, entt);
    +
    80 const auto it = underlying_type::find(entt);
    +
    81 underlying_type::pop(it, it + 1u);
    +
    82 }
    +
    83 }
    84 }
    85
    -
    86private:
    -
    87 void pop(underlying_iterator first, underlying_iterator last) final {
    -
    88 if(auto &reg = owner_or_assert(); destruction.empty()) {
    -
    89 underlying_type::pop(first, last);
    -
    90 } else {
    -
    91 for(; first != last; ++first) {
    -
    92 const auto entt = *first;
    -
    93 destruction.publish(reg, entt);
    -
    94 const auto it = underlying_type::find(entt);
    -
    95 underlying_type::pop(it, it + 1u);
    -
    96 }
    -
    97 }
    -
    98 }
    -
    99
    -
    100 void pop_all() final {
    -
    101 if(auto &reg = owner_or_assert(); !destruction.empty()) {
    -
    102 if constexpr(std::is_same_v<typename underlying_type::element_type, entity_type>) {
    -
    103 for(typename underlying_type::size_type pos{}, last = underlying_type::free_list(); pos < last; ++pos) {
    -
    104 destruction.publish(reg, underlying_type::base_type::operator[](pos));
    -
    105 }
    -
    106 } else {
    -
    107 for(auto entt: static_cast<typename underlying_type::base_type &>(*this)) {
    -
    108 if constexpr(underlying_type::storage_policy == deletion_policy::in_place) {
    -
    109 if(entt != tombstone) {
    -
    110 destruction.publish(reg, entt);
    -
    111 }
    -
    112 } else {
    -
    113 destruction.publish(reg, entt);
    -
    114 }
    -
    115 }
    -
    116 }
    -
    117 }
    -
    118
    -
    119 underlying_type::pop_all();
    -
    120 }
    -
    121
    -
    122 underlying_iterator try_emplace(const typename underlying_type::entity_type entt, const bool force_back, const void *value) final {
    -
    123 const auto it = underlying_type::try_emplace(entt, force_back, value);
    -
    124
    -
    125 if(auto &reg = owner_or_assert(); it != underlying_type::base_type::end()) {
    -
    126 construction.publish(reg, *it);
    -
    127 }
    -
    128
    -
    129 return it;
    -
    130 }
    -
    131
    -
    132 void bind_any(any value) noexcept final {
    -
    133 owner = internal::any_to_owner<registry_type>(value);
    -
    134 underlying_type::bind_any(std::move(value));
    -
    135 }
    -
    136
    -
    137public:
    -
    139 using allocator_type = typename underlying_type::allocator_type;
    -
    141 using entity_type = typename underlying_type::entity_type;
    -
    143 using registry_type = owner_type;
    -
    144
    +
    86 void pop_all() final {
    +
    87 if(auto &reg = owner_or_assert(); !destruction.empty()) {
    +
    88 if constexpr(std::is_same_v<typename underlying_type::element_type, entity_type>) {
    +
    89 for(typename underlying_type::size_type pos{}, last = underlying_type::free_list(); pos < last; ++pos) {
    +
    90 destruction.publish(reg, underlying_type::base_type::operator[](pos));
    +
    91 }
    +
    92 } else {
    +
    93 for(auto entt: static_cast<typename underlying_type::base_type &>(*this)) {
    +
    94 if constexpr(underlying_type::storage_policy == deletion_policy::in_place) {
    +
    95 if(entt != tombstone) {
    +
    96 destruction.publish(reg, entt);
    +
    97 }
    +
    98 } else {
    +
    99 destruction.publish(reg, entt);
    +
    100 }
    +
    101 }
    +
    102 }
    +
    103 }
    +
    104
    +
    105 underlying_type::pop_all();
    +
    106 }
    +
    107
    +
    108 underlying_iterator try_emplace(const typename underlying_type::entity_type entt, const bool force_back, const void *value) final {
    +
    109 const auto it = underlying_type::try_emplace(entt, force_back, value);
    +
    110
    +
    111 if(auto &reg = owner_or_assert(); it != underlying_type::base_type::end()) {
    +
    112 construction.publish(reg, *it);
    +
    113 }
    +
    114
    +
    115 return it;
    +
    116 }
    +
    117
    +
    118 void bind_any(any value) noexcept final {
    +
    119 owner = any_cast<basic_registry_type>(&value);
    +
    120
    +
    121 if constexpr(!std::is_same_v<registry_type, basic_registry_type>) {
    +
    122 if(owner == nullptr) {
    +
    123 owner = any_cast<registry_type>(&value);
    +
    124 }
    +
    125 }
    +
    126
    +
    127 underlying_type::bind_any(std::move(value));
    +
    128 }
    +
    129
    +
    130public:
    +
    132 using allocator_type = typename underlying_type::allocator_type;
    +
    134 using entity_type = typename underlying_type::entity_type;
    +
    136 using registry_type = owner_type;
    +
    137
    + +
    141
    - - +
    146 explicit basic_sigh_mixin(const allocator_type &allocator)
    +
    147 : underlying_type{allocator},
    +
    148 owner{},
    +
    149 construction{allocator},
    +
    150 destruction{allocator},
    +
    151 update{allocator} {
    +
    152 if constexpr(internal::has_on_construct<typename underlying_type::element_type, Registry>::value) {
    +
    153 entt::sink{construction}.template connect<&underlying_type::element_type::on_construct>();
    +
    154 }
    +
    155
    +
    156 if constexpr(internal::has_on_update<typename underlying_type::element_type, Registry>::value) {
    +
    157 entt::sink{update}.template connect<&underlying_type::element_type::on_update>();
    +
    158 }
    +
    159
    +
    160 if constexpr(internal::has_on_destroy<typename underlying_type::element_type, Registry>::value) {
    +
    161 entt::sink{destruction}.template connect<&underlying_type::element_type::on_destroy>();
    +
    162 }
    +
    163 }
    -
    148
    -
    - -
    154 : underlying_type{allocator},
    -
    155 owner{},
    -
    156 construction{allocator},
    -
    157 destruction{allocator},
    -
    158 update{allocator} {
    -
    159 if constexpr(internal::has_on_construct<typename underlying_type::element_type, Registry>::value) {
    - -
    161 }
    -
    162
    -
    163 if constexpr(internal::has_on_update<typename underlying_type::element_type, Registry>::value) {
    - -
    165 }
    -
    166
    -
    167 if constexpr(internal::has_on_destroy<typename underlying_type::element_type, Registry>::value) {
    - -
    169 }
    -
    170 }
    +
    164
    + +
    167
    +
    172 // NOLINTBEGIN(bugprone-use-after-move)
    +
    + +
    174 : underlying_type{std::move(other)},
    +
    175 owner{other.owner},
    +
    176 construction{std::move(other.construction)},
    +
    177 destruction{std::move(other.destruction)},
    +
    178 update{std::move(other.update)} {}
    -
    171
    - -
    174
    -
    - -
    180 : underlying_type{std::move(other)},
    -
    181 owner{other.owner},
    -
    182 construction{std::move(other.construction)},
    -
    183 destruction{std::move(other.destruction)},
    -
    184 update{std::move(other.update)} {}
    +
    179 // NOLINTEND(bugprone-use-after-move)
    +
    180
    +
    186 // NOLINTBEGIN(bugprone-use-after-move)
    +
    + +
    188 : underlying_type{std::move(other), allocator},
    +
    189 owner{other.owner},
    +
    190 construction{std::move(other.construction), allocator},
    +
    191 destruction{std::move(other.destruction), allocator},
    +
    192 update{std::move(other.update), allocator} {}
    -
    185
    -
    - -
    192 : underlying_type{std::move(other), allocator},
    -
    193 owner{other.owner},
    -
    194 construction{std::move(other.construction), allocator},
    -
    195 destruction{std::move(other.destruction), allocator},
    -
    196 update{std::move(other.update), allocator} {}
    +
    193 // NOLINTEND(bugprone-use-after-move)
    +
    194
    +
    196 ~basic_sigh_mixin() override = default;
    +
    197
    + +
    203
    +
    + +
    210 swap(other);
    +
    211 return *this;
    +
    212 }
    -
    197
    -
    199 ~basic_sigh_mixin() override = default;
    -
    200
    - -
    206
    -
    - -
    213 swap(other);
    -
    214 return *this;
    -
    215 }
    +
    213
    +
    +
    218 void swap(basic_sigh_mixin &other) noexcept {
    +
    219 using std::swap;
    +
    220 swap(owner, other.owner);
    +
    221 swap(construction, other.construction);
    +
    222 swap(destruction, other.destruction);
    +
    223 swap(update, other.update);
    +
    224 underlying_type::swap(other);
    +
    225 }
    -
    216
    -
    -
    221 void swap(basic_sigh_mixin &other) noexcept {
    -
    222 using std::swap;
    -
    223 swap(owner, other.owner);
    -
    224 swap(construction, other.construction);
    -
    225 swap(destruction, other.destruction);
    -
    226 swap(update, other.update);
    -
    227 underlying_type::swap(other);
    -
    228 }
    +
    226
    +
    +
    238 [[nodiscard]] auto on_construct() noexcept {
    +
    239 return sink{construction};
    +
    240 }
    -
    229
    -
    - -
    242 return sink{construction};
    -
    243 }
    +
    241
    +
    +
    253 [[nodiscard]] auto on_update() noexcept {
    +
    254 return sink{update};
    +
    255 }
    -
    244
    -
    - -
    257 return sink{update};
    -
    258 }
    +
    256
    +
    +
    268 [[nodiscard]] auto on_destroy() noexcept {
    +
    269 return sink{destruction};
    +
    270 }
    -
    259
    -
    - -
    272 return sink{destruction};
    -
    273 }
    +
    271
    +
    +
    276 [[nodiscard]] explicit operator bool() const noexcept {
    +
    277 return (owner != nullptr);
    +
    278 }
    -
    274
    -
    -
    279 [[nodiscard]] explicit operator bool() const noexcept {
    -
    280 return (owner != nullptr);
    -
    281 }
    +
    279
    +
    +
    284 [[nodiscard]] const registry_type &registry() const noexcept {
    +
    285 return owner_or_assert();
    +
    286 }
    -
    282
    -
    - -
    288 return owner_or_assert();
    -
    289 }
    +
    287
    +
    +
    289 [[nodiscard]] registry_type &registry() noexcept {
    +
    290 return owner_or_assert();
    +
    291 }
    -
    290
    -
    - -
    293 return owner_or_assert();
    -
    294 }
    +
    292
    +
    +
    297 auto generate() {
    +
    298 const auto entt = underlying_type::generate();
    +
    299 construction.publish(owner_or_assert(), entt);
    +
    300 return entt;
    +
    301 }
    -
    295
    -
    -
    305 auto emplace() {
    -
    306 const auto entt = underlying_type::emplace();
    -
    307 construction.publish(owner_or_assert(), entt);
    -
    308 return entt;
    -
    309 }
    +
    302
    +
    + +
    309 const auto entt = underlying_type::generate(hint);
    +
    310 construction.publish(owner_or_assert(), entt);
    +
    311 return entt;
    +
    312 }
    -
    310
    -
    323 template<typename... Args>
    -
    324 std::conditional_t<std::is_same_v<typename underlying_type::element_type, entity_type>, entity_type, decltype(std::declval<underlying_type>().get({}))>
    -
    - -
    326 if constexpr(std::is_same_v<typename underlying_type::element_type, entity_type>) {
    -
    327 const auto entt = underlying_type::emplace(hint, std::forward<Args>(args)...);
    -
    328 construction.publish(owner_or_assert(), entt);
    -
    329 return entt;
    -
    330 } else {
    -
    331 underlying_type::emplace(hint, std::forward<Args>(args)...);
    -
    332 construction.publish(owner_or_assert(), hint);
    -
    333 return this->get(hint);
    -
    334 }
    -
    335 }
    +
    313
    +
    320 template<typename It>
    +
    +
    321 void generate(It first, It last) {
    +
    322 underlying_type::generate(first, last);
    +
    323
    +
    324 if(auto &reg = owner_or_assert(); !construction.empty()) {
    +
    325 for(; first != last; ++first) {
    +
    326 construction.publish(reg, *first);
    +
    327 }
    +
    328 }
    +
    329 }
    -
    336
    -
    344 template<typename... Func>
    -
    -
    345 decltype(auto) patch(const entity_type entt, Func &&...func) {
    -
    346 underlying_type::patch(entt, std::forward<Func>(func)...);
    -
    347 update.publish(owner_or_assert(), entt);
    -
    348 return this->get(entt);
    -
    349 }
    +
    330
    +
    338 template<typename... Args>
    +
    +
    339 decltype(auto) emplace(const entity_type entt, Args &&...args) {
    +
    340 underlying_type::emplace(entt, std::forward<Args>(args)...);
    +
    341 construction.publish(owner_or_assert(), entt);
    +
    342 return this->get(entt);
    +
    343 }
    -
    350
    -
    364 template<typename It, typename... Args>
    -
    -
    365 void insert(It first, It last, Args &&...args) {
    -
    366 auto from = underlying_type::size();
    -
    367 underlying_type::insert(first, last, std::forward<Args>(args)...);
    -
    368
    -
    369 if(auto &reg = owner_or_assert(); !construction.empty()) {
    -
    370 for(const auto to = underlying_type::size(); from != to; ++from) {
    -
    371 construction.publish(reg, underlying_type::operator[](from));
    -
    372 }
    -
    373 }
    -
    374 }
    +
    344
    +
    352 template<typename... Func>
    +
    +
    353 decltype(auto) patch(const entity_type entt, Func &&...func) {
    +
    354 underlying_type::patch(entt, std::forward<Func>(func)...);
    +
    355 update.publish(owner_or_assert(), entt);
    +
    356 return this->get(entt);
    +
    357 }
    -
    375
    -
    376private:
    -
    377 basic_registry_type *owner;
    -
    378 sigh_type construction;
    -
    379 sigh_type destruction;
    -
    380 sigh_type update;
    -
    381};
    +
    358
    +
    368 template<typename It, typename... Args>
    +
    +
    369 void insert(It first, It last, Args &&...args) {
    +
    370 auto from = underlying_type::size();
    +
    371 underlying_type::insert(first, last, std::forward<Args>(args)...);
    +
    372
    +
    373 if(auto &reg = owner_or_assert(); !construction.empty()) {
    +
    374 // fine as long as insert passes force_back true to try_emplace
    +
    375 for(const auto to = underlying_type::size(); from != to; ++from) {
    +
    376 construction.publish(reg, underlying_type::operator[](from));
    +
    377 }
    +
    378 }
    +
    379 }
    -
    382
    -
    388template<typename Type, typename Registry>
    -
    -
    389class basic_reactive_mixin final: public Type {
    -
    390 using underlying_type = Type;
    -
    391 using owner_type = Registry;
    -
    392
    - -
    394
    -
    395 static_assert(std::is_base_of_v<basic_registry_type, owner_type>, "Invalid registry type");
    -
    396
    -
    397 [[nodiscard]] auto &owner_or_assert() const noexcept {
    -
    398 ENTT_ASSERT(owner != nullptr, "Invalid pointer to registry");
    -
    399 return static_cast<owner_type &>(*owner);
    -
    400 }
    +
    380
    +
    381private:
    +
    382 basic_registry_type *owner;
    +
    383 sigh_type construction;
    +
    384 sigh_type destruction;
    +
    385 sigh_type update;
    +
    386};
    +
    +
    387
    +
    393template<typename Type, typename Registry>
    +
    +
    394class basic_reactive_mixin final: public Type {
    +
    395 using underlying_type = Type;
    +
    396 using owner_type = Registry;
    +
    397
    +
    398 using alloc_traits = std::allocator_traits<typename underlying_type::allocator_type>;
    + +
    400 using container_type = std::vector<connection, typename alloc_traits::template rebind_alloc<connection>>;
    401
    -
    402 void emplace_element(const Registry &, typename underlying_type::entity_type entity) {
    -
    403 if(!underlying_type::contains(entity)) {
    -
    404 underlying_type::emplace(entity);
    -
    405 }
    -
    406 }
    -
    407
    -
    408private:
    -
    409 void bind_any(any value) noexcept final {
    -
    410 owner = internal::any_to_owner<registry_type>(value);
    -
    411 underlying_type::bind_any(std::move(value));
    -
    412 }
    -
    413
    -
    414public:
    -
    416 using allocator_type = typename underlying_type::allocator_type;
    -
    418 using entity_type = typename underlying_type::entity_type;
    -
    420 using registry_type = owner_type;
    -
    421
    -
    - - +
    402 static_assert(std::is_base_of_v<basic_registry_type, owner_type>, "Invalid registry type");
    +
    403
    +
    404 [[nodiscard]] auto &owner_or_assert() const noexcept {
    +
    405 ENTT_ASSERT(owner != nullptr, "Invalid pointer to registry");
    +
    406 return static_cast<owner_type &>(*owner);
    +
    407 }
    +
    408
    +
    409 void emplace_element(const Registry &, typename underlying_type::entity_type entity) {
    +
    410 if(!underlying_type::contains(entity)) {
    +
    411 underlying_type::emplace(entity);
    +
    412 }
    +
    413 }
    +
    414
    +
    415private:
    +
    416 void bind_any(any value) noexcept final {
    +
    417 owner = any_cast<basic_registry_type>(&value);
    +
    418
    +
    419 if constexpr(!std::is_same_v<registry_type, basic_registry_type>) {
    +
    420 if(owner == nullptr) {
    +
    421 owner = any_cast<registry_type>(&value);
    +
    422 }
    +
    423 }
    +
    424
    +
    425 underlying_type::bind_any(std::move(value));
    +
    426 }
    +
    427
    +
    428public:
    +
    430 using allocator_type = typename underlying_type::allocator_type;
    +
    432 using entity_type = typename underlying_type::entity_type;
    +
    434 using registry_type = owner_type;
    +
    435
    + -
    425
    -
    - -
    431 : underlying_type{allocator},
    -
    432 owner{} {
    -
    433 }
    +
    439
    +
    +
    444 explicit basic_reactive_mixin(const allocator_type &allocator)
    +
    445 : underlying_type{allocator},
    +
    446 owner{},
    +
    447 conn{allocator} {
    +
    448 }
    -
    434
    - -
    437
    -
    - -
    443 : underlying_type{std::move(other)},
    -
    444 owner{other.owner} {}
    +
    449
    + +
    452
    +
    457 // NOLINTBEGIN(bugprone-use-after-move)
    +
    + +
    459 : underlying_type{std::move(other)},
    +
    460 owner{other.owner},
    +
    461 conn{} {
    +
    462 }
    -
    445
    -
    - -
    452 : underlying_type{std::move(other), allocator},
    -
    453 owner{other.owner} {}
    +
    463 // NOLINTEND(bugprone-use-after-move)
    +
    464
    +
    470 // NOLINTBEGIN(bugprone-use-after-move)
    +
    + +
    472 : underlying_type{std::move(other), allocator},
    +
    473 owner{other.owner},
    +
    474 conn{allocator} {
    +
    475 }
    -
    454
    -
    456 ~basic_reactive_mixin() override = default;
    -
    457
    - -
    463
    -
    - -
    470 swap(other);
    -
    471 return *this;
    -
    472 }
    -
    -
    473
    -
    - -
    479 using std::swap;
    -
    480 swap(owner, other.owner);
    -
    481 underlying_type::swap(other);
    -
    482 }
    -
    -
    483
    -
    491 template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
    +
    476 // NOLINTEND(bugprone-use-after-move)
    +
    477
    +
    479 ~basic_reactive_mixin() override = default;
    +
    480
    + +
    486
    - -
    493 owner_or_assert().template storage<Clazz>(id).on_construct().template connect<Candidate>(*this);
    + +
    493 underlying_type::swap(other);
    494 return *this;
    495 }
    -
    496
    +
    496
    504 template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
    - -
    506 owner_or_assert().template storage<Clazz>(id).on_update().template connect<Candidate>(*this);
    -
    507 return *this;
    -
    508 }
    + +
    506 auto curr = owner_or_assert().template storage<Clazz>(id).on_construct().template connect<Candidate>(*this);
    +
    507 conn.push_back(std::move(curr));
    +
    508 return *this;
    +
    509 }
    -
    509
    -
    517 template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
    -
    - -
    519 owner_or_assert().template storage<Clazz>(id).on_destroy().template connect<Candidate>(*this);
    -
    520 return *this;
    -
    521 }
    +
    510
    +
    518 template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
    +
    + +
    520 auto curr = owner_or_assert().template storage<Clazz>(id).on_update().template connect<Candidate>(*this);
    +
    521 conn.push_back(std::move(curr));
    +
    522 return *this;
    +
    523 }
    -
    522
    -
    -
    527 [[nodiscard]] explicit operator bool() const noexcept {
    -
    528 return (owner != nullptr);
    -
    529 }
    -
    -
    530
    -
    - -
    536 return owner_or_assert();
    +
    524
    +
    532 template<typename Clazz, auto Candidate = &basic_reactive_mixin::emplace_element>
    +
    + +
    534 auto curr = owner_or_assert().template storage<Clazz>(id).on_destroy().template connect<Candidate>(*this);
    +
    535 conn.push_back(std::move(curr));
    +
    536 return *this;
    537 }
    -
    538
    -
    - -
    541 return owner_or_assert();
    -
    542 }
    +
    538
    +
    +
    543 [[nodiscard]] explicit operator bool() const noexcept {
    +
    544 return (owner != nullptr);
    +
    545 }
    -
    543
    -
    550 template<typename... Get, typename... Exclude>
    - -
    - -
    553 const owner_type &parent = owner_or_assert();
    - -
    555 [&elem](const auto *...curr) { ((curr ? elem.storage(*curr) : void()), ...); }(parent.template storage<std::remove_const_t<Exclude>>()..., parent.template storage<std::remove_const_t<Get>>()..., this);
    -
    556 return elem;
    -
    557 }
    +
    546
    +
    +
    551 [[nodiscard]] const registry_type &registry() const noexcept {
    +
    552 return owner_or_assert();
    +
    553 }
    -
    558
    -
    560 template<typename... Get, typename... Exclude>
    - -
    - -
    563 owner_type &parent = owner_or_assert();
    -
    564 return {*this, parent.template storage<std::remove_const_t<Get>>()..., parent.template storage<std::remove_const_t<Exclude>>()...};
    -
    565 }
    +
    554
    +
    +
    556 [[nodiscard]] registry_type &registry() noexcept {
    +
    557 return owner_or_assert();
    +
    558 }
    -
    566
    -
    567private:
    -
    568 basic_registry_type *owner;
    -
    569};
    +
    559
    +
    566 template<typename... Get, typename... Exclude>
    + +
    + +
    569 const owner_type &parent = owner_or_assert();
    + +
    571 [&elem](const auto *...curr) { ((curr ? elem.storage(*curr) : void()), ...); }(parent.template storage<std::remove_const_t<Exclude>>()..., parent.template storage<std::remove_const_t<Get>>()..., this);
    +
    572 return elem;
    +
    573 }
    -
    570
    -
    571} // namespace entt
    -
    572
    -
    573#endif
    - -
    Mixin type used to add reactive support to storage types.
    Definition mixin.hpp:389
    -
    basic_reactive_mixin & operator=(basic_reactive_mixin &&other) noexcept
    Move assignment operator.
    Definition mixin.hpp:469
    -
    basic_reactive_mixin(const allocator_type &allocator)
    Constructs an empty storage with a given allocator.
    Definition mixin.hpp:430
    -
    const registry_type & registry() const noexcept
    Returns a pointer to the underlying registry, if any.
    Definition mixin.hpp:535
    -
    basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > view(exclude_t< Exclude... >=exclude_t{})
    Returns a view that is filtered by the underlying storage.
    Definition mixin.hpp:562
    -
    basic_reactive_mixin(basic_reactive_mixin &&other) noexcept
    Move constructor.
    Definition mixin.hpp:442
    -
    void swap(basic_reactive_mixin &other) noexcept
    Exchanges the contents with those of a given storage.
    Definition mixin.hpp:478
    -
    basic_reactive_mixin()
    Default constructor.
    Definition mixin.hpp:423
    -
    ~basic_reactive_mixin() override=default
    Default destructor.
    -
    basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
    Returns a view that is filtered by the underlying storage.
    Definition mixin.hpp:552
    -
    basic_reactive_mixin(basic_reactive_mixin &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition mixin.hpp:451
    -
    typename underlying_type::allocator_type allocator_type
    Allocator type.
    Definition mixin.hpp:416
    -
    typename underlying_type::entity_type entity_type
    Underlying entity identifier.
    Definition mixin.hpp:418
    -
    basic_reactive_mixin(const basic_reactive_mixin &)=delete
    Default copy constructor, deleted on purpose.
    -
    basic_reactive_mixin & on_update(const id_type id=type_hash< Clazz >::value())
    Makes storage react to update of objects of the given type.
    Definition mixin.hpp:505
    -
    owner_type registry_type
    Expected registry type.
    Definition mixin.hpp:420
    -
    basic_reactive_mixin & on_destroy(const id_type id=type_hash< Clazz >::value())
    Makes storage react to destruction of objects of the given type.
    Definition mixin.hpp:518
    -
    registry_type & registry() noexcept
    Returns a pointer to the underlying registry, if any.
    Definition mixin.hpp:540
    -
    basic_reactive_mixin & operator=(const basic_reactive_mixin &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    basic_reactive_mixin & on_construct(const id_type id=type_hash< Clazz >::value())
    Makes storage react to creation of objects of the given type.
    Definition mixin.hpp:492
    +
    574
    +
    576 template<typename... Get, typename... Exclude>
    +
    577 [[nodiscard]] basic_view<get_t<const basic_reactive_mixin, typename basic_registry_type::template storage_for_type<Get>...>, exclude_t<typename basic_registry_type::template storage_for_type<Exclude>...>>
    +
    + +
    579 std::conditional_t<((std::is_const_v<Get> && ...) && (std::is_const_v<Exclude> && ...)), const owner_type, owner_type> &parent = owner_or_assert();
    +
    580 return {*this, parent.template storage<std::remove_const_t<Get>>()..., parent.template storage<std::remove_const_t<Exclude>>()...};
    +
    581 }
    +
    +
    582
    +
    +
    584 void reset() {
    +
    585 for(auto &&curr: conn) {
    +
    586 curr.release();
    +
    587 }
    +
    588
    +
    589 conn.clear();
    +
    590 }
    +
    +
    591
    +
    592private:
    +
    593 basic_registry_type *owner;
    +
    594 container_type conn;
    +
    595};
    +
    +
    596
    +
    597} // namespace entt
    +
    598
    +
    599#endif
    + + + + +
    basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< Exclude >... > > view(exclude_t< Exclude... >=exclude_t{})
    Definition mixin.hpp:578
    + +
    basic_reactive_mixin()
    Default constructor.
    Definition mixin.hpp:437
    + +
    basic_view< get_t< const basic_reactive_mixin, typename basic_registry_type::template storage_for_type< const Get >... >, exclude_t< typename basic_registry_type::template storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
    Definition mixin.hpp:568
    + + + + + + + + + +
    Fast and reliable entity-component system.
    Definition registry.hpp:234
    -
    Mixin type used to add signal support to storage types.
    Definition mixin.hpp:71
    -
    auto on_update() noexcept
    Returns a sink object.
    Definition mixin.hpp:256
    -
    typename underlying_type::entity_type entity_type
    Underlying entity identifier.
    Definition mixin.hpp:141
    -
    auto on_construct() noexcept
    Returns a sink object.
    Definition mixin.hpp:241
    -
    const registry_type & registry() const noexcept
    Returns a pointer to the underlying registry, if any.
    Definition mixin.hpp:287
    -
    decltype(auto) patch(const entity_type entt, Func &&...func)
    Patches the given instance for an entity.
    Definition mixin.hpp:345
    -
    auto emplace()
    Emplace elements into a storage.
    Definition mixin.hpp:305
    -
    typename underlying_type::allocator_type allocator_type
    Allocator type.
    Definition mixin.hpp:139
    -
    void swap(basic_sigh_mixin &other) noexcept
    Exchanges the contents with those of a given storage.
    Definition mixin.hpp:221
    -
    basic_sigh_mixin & operator=(basic_sigh_mixin &&other) noexcept
    Move assignment operator.
    Definition mixin.hpp:212
    -
    basic_sigh_mixin(const allocator_type &allocator)
    Constructs an empty storage with a given allocator.
    Definition mixin.hpp:153
    -
    owner_type registry_type
    Expected registry type.
    Definition mixin.hpp:143
    -
    basic_sigh_mixin()
    Default constructor.
    Definition mixin.hpp:146
    -
    registry_type & registry() noexcept
    Returns a pointer to the underlying registry, if any.
    Definition mixin.hpp:292
    -
    basic_sigh_mixin(basic_sigh_mixin &&other) noexcept
    Move constructor.
    Definition mixin.hpp:179
    -
    ~basic_sigh_mixin() override=default
    Default destructor.
    -
    basic_sigh_mixin(const basic_sigh_mixin &)=delete
    Default copy constructor, deleted on purpose.
    -
    void insert(It first, It last, Args &&...args)
    Emplace elements into a storage.
    Definition mixin.hpp:365
    -
    basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition mixin.hpp:191
    -
    auto on_destroy() noexcept
    Returns a sink object.
    Definition mixin.hpp:271
    -
    basic_sigh_mixin & operator=(const basic_sigh_mixin &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    std::conditional_t< std::is_same_v< typename underlying_type::element_type, entity_type >, entity_type, decltype(std::declval< underlying_type >().get({}))> emplace(const entity_type hint, Args &&...args)
    Emplace elements into a storage.
    Definition mixin.hpp:325
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    View implementation.
    Definition fwd.hpp:42
    - + + + + + + + + +
    void swap(basic_sigh_mixin &other) noexcept
    Exchanges the contents with those of a given storage.
    Definition mixin.hpp:218
    + + + +
    basic_sigh_mixin()
    Default constructor.
    Definition mixin.hpp:139
    + + + + + + + + + + +
    View implementation.
    Definition fwd.hpp:47
    +
    Unmanaged signal handler.
    Definition fwd.hpp:25
    Sink class.
    Definition fwd.hpp:22
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >
    Deduction guide.
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
    Performs type-safe access to the contained object.
    Definition any.hpp:464
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    @ in_place
    In-place deletion policy.
    -
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:76
    -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Type hash.
    Definition type_info.hpp:92
    +
    basic_any<> any
    Alias declaration for the most common use case.
    Definition fwd.hpp:32
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    +
    Alias for exclusion lists.
    Definition fwd.hpp:140
    +
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    +
    diff --git a/monostate_8hpp_source.html b/monostate_8hpp_source.html index 2bbcb1652..833934b54 100644 --- a/monostate_8hpp_source.html +++ b/monostate_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/monostate.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    monostate.hpp
    @@ -90,22 +98,22 @@ $(function() { codefold.init(0); });
    5#include "fwd.hpp"
    6
    7namespace entt {
    -
    8
    +
    8
    20template<id_type>
    21struct monostate {
    28 template<typename Type>
    -
    29 monostate &operator=(Type val) noexcept {
    - +
    29 monostate &operator=(Type val) noexcept {
    +
    30 value<Type> = val;
    31 return *this;
    32 }
    -
    33
    +
    33
    39 template<typename Type>
    -
    40 operator Type() const noexcept {
    -
    41 return value<Type>;
    +
    40 operator Type() const noexcept {
    +
    41 return value<Type>;
    42 }
    43
    @@ -115,7 +123,7 @@ $(function() { codefold.init(0); });
    47 inline static ENTT_MAYBE_ATOMIC(Type) value{};
    48};
    -
    49
    +
    49
    54template<id_type Value>
    55// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
    @@ -124,14 +132,14 @@ $(function() { codefold.init(0); });
    59
    60#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    monostate< Value > monostate_v
    Helper variable template.
    Definition monostate.hpp:56
    Minimal implementation of the monostate pattern.
    Definition monostate.hpp:21
    monostate & operator=(Type val) noexcept
    Assigns a value of a specific type to a given key.
    Definition monostate.hpp:29
    +
    diff --git a/namespaceentt.html b/namespaceentt.html index 99579f88a..7771911c4 100644 --- a/namespaceentt.html +++ b/namespaceentt.html @@ -3,13 +3,15 @@ - + EnTT: entt Namespace Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Classes | @@ -116,15 +129,6 @@ Classes class  basic_any  A SBO friendly, type-safe container for single values of any type. More...
      -struct  basic_collector - Collector. More...
    -  -struct  basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > - Collector. More...
    -  -struct  basic_collector<> - Collector. More...
    -  class  basic_common_view  Basic storage view implementation. More...
      @@ -161,9 +165,6 @@ Classes struct  basic_meta_sequence_container_traits  General purpose implementation of meta sequence container traits. More...
      -class  basic_observer - Observer. More...
    -  class  basic_organizer  Utility class for creating a static task graph. More...
      @@ -200,8 +201,8 @@ Classes class  basic_storage< Entity, Entity, Allocator >  Swap-only entity storage specialization. More...
      -class  basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > - Default constructor. More...
    +class  basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > > + Default constructor. More...
      class  basic_storage_view  Basic storage view implementation. More...
    @@ -222,7 +223,7 @@ Classes  Utility class to disambiguate overloaded functions. More...
      struct  choice_t< 0 > - Utility class to disambiguate overloaded functions. More...
    + Utility class to disambiguate overloaded functions. More...
      struct  component_traits  Common way to access various properties of components. More...
    @@ -240,13 +241,13 @@ Classes  Transcribes the constness of a type to another type. More...
      struct  constness_as< To, const From > - Transcribes the constness of a type to another type. More...
    + Transcribes the constness of a type to another type. More...
      class  delegate  Basic delegate implementation. More...
      -class  delegate< Ret(Args...)> - Utility class to use to send around functions and members. More...
    +class  delegate< Ret(Args...)> + Utility class to use to send around functions and members.
      class  dense_map  Associative container for key-value pairs with unique keys. More...
    @@ -267,7 +268,7 @@ Classes  Enable bitmask support for enum classes. More...
      struct  enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> > - Enable bitmask support for enum classes. More...
    + Enable bitmask support for enum classes. More...
      struct  exclude_t  Alias for exclusion lists. More...
    @@ -300,22 +301,22 @@ Classes  Same as std::is_invocable, but with tuples. More...
      struct  is_applicable< Func, const Tuple< Args... > > - Same as std::is_invocable, but with tuples. More...
    + Same as std::is_invocable, but with tuples. More...
      struct  is_applicable< Func, Tuple< Args... > > - Same as std::is_invocable, but with tuples. More...
    + Same as std::is_invocable, but with tuples. More...
      struct  is_applicable_r  Same as std::is_invocable_r, but with tuples for arguments. More...
      struct  is_applicable_r< Ret, Func, std::tuple< Args... > > - Same as std::is_invocable_r, but with tuples for arguments. More...
    + Same as std::is_invocable_r, but with tuples for arguments. More...
      struct  is_complete  Provides the member constant value to true if a given type is complete, false otherwise. More...
      struct  is_complete< Type, std::void_t< decltype(sizeof(Type))> > - Provides the member constant value to true if a given type is complete, false otherwise. More...
    + Provides the member constant value to true if a given type is complete, false otherwise. More...
      struct  is_ebco_eligible  Provides the member constant value to true if a given type is both an empty and non-final class, false otherwise. More...
    @@ -324,13 +325,13 @@ Classes  Provides the member constant value to true if a given type is equality comparable, false otherwise. More...
      struct  is_equality_comparable< const Type > - Provides the member constant value to true if a given type is equality comparable, false otherwise. More...
    + Provides the member constant value to true if a given type is equality comparable, false otherwise. More...
      struct  is_iterator  Provides the member constant value to true if a given type is an iterator, false otherwise. More...
      struct  is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > > - Provides the member constant value to true if a given type is an iterator, false otherwise. More...
    + Provides the member constant value to true if a given type is an iterator, false otherwise. More...
      struct  is_meta_pointer_like  Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise. More...
    @@ -350,6 +351,9 @@ Classes struct  is_meta_pointer_like< Type(*)[N]>  Partial specialization used to reject pointers to arrays. More...
      +struct  is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > > + Specialization for self-proclaimed meta pointer like types. More...
    +  struct  is_meta_policy  Provides the member constant value to true if a type also is a meta policy, false otherwise. More...
      @@ -357,20 +361,20 @@ Classes  Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. More...
      struct  is_transparent< Type, std::void_t< typename Type::is_transparent > > - Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. More...
    + Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. More...
      struct  is_tuple  Provides the member constant value to true if a given type is a tuple, false otherwise. More...
      +struct  is_tuple< std::tuple< Args... > > + Provides the member constant value to true if a given type is a tuple, false otherwise. More...
    +  struct  iterable_adaptor  Utility class to create an iterable object from a pair of iterators. More...
      class  locator  Service locator, nothing more. More...
      -struct  matcher - Grouping matcher. More...
    -  class  member_class  Extracts the class of a non-static member object or function. More...
      @@ -449,9 +453,6 @@ Classes struct  meta_handle  Opaque pointers to instances of any type. More...
      -struct  meta_prop - Opaque wrapper for properties of any type. More...
    -  class  meta_sequence_container  Proxy object for sequence containers. More...
      @@ -486,8 +487,7 @@ Classes  Extracts the n-th argument of a callable type. More...
      struct  null_t - Null object for all identifiers.
    - More...
    + Null object for all identifiers. More...
      struct  overloaded  Helper type for visitors. More...
    @@ -531,8 +531,8 @@ Classes class  sigh  Unmanaged signal handler. More...
      -class  sigh< Ret(Args...), Allocator > - Unmanaged signal handler. More...
    +class  sigh< Ret(Args...), Allocator > + Unmanaged signal handler.
      struct  sigh_helper  Primary template isn't defined on purpose. More...
    @@ -546,14 +546,14 @@ Classes class  sink  Sink class. More...
      -class  sink< sigh< Ret(Args...), Allocator > > - Sink class. More...
    +class  sink< sigh< Ret(Args...), Allocator > > + Sink class.
      struct  size_of  A type-only sizeof wrapper that returns 0 where sizeof complains. More...
      struct  size_of< Type, std::void_t< decltype(sizeof(Type))> > - A type-only sizeof wrapper that returns 0 where sizeof complains. More...
    + A type-only sizeof wrapper that returns 0 where sizeof complains. More...
      struct  std_sort  Function object to wrap std::sort in a class type. More...
    @@ -566,8 +566,7 @@ Classes struct  storage_type< reactive, Entity, Allocator >   struct  tombstone_t - Tombstone object for all identifiers.
    - More...
    + Tombstone object for all identifiers. More...
      struct  type_hash  Type hash. More...
    @@ -600,7 +599,7 @@ Classes  Provides the member constant value to true if a type list contains a given type, false otherwise. More...
      struct  type_list_contains< type_list< Type... >, Other > - Provides the member constant value to true if a type list contains a given type, false otherwise. More...
    + Provides the member constant value to true if a type list contains a given type, false otherwise. More...
      struct  type_list_diff  Primary template isn't defined on purpose. More...
    @@ -672,7 +671,7 @@ Classes  Provides the member constant value to true if a value list contains a given value, false otherwise. More...
      struct  value_list_contains< value_list< Value... >, Other > - Provides the member constant value to true if a value list contains a given value, false otherwise. More...
    + Provides the member constant value to true if a value list contains a given value, false otherwise. More...
      struct  value_list_diff  Primary template isn't defined on purpose. More...
    @@ -717,184 +716,183 @@ Classes

    Typedefs

    template<typename... Type> -using table = basic_table<std::vector<Type>...> +using table = basic_table<std::vector<Type>...>  Alias declaration for the most common use case.
      -using id_type = std::uint32_t - Alias declaration for type identifiers.
    -  -using any = basic_any<> +using id_type = std::uint32_t + Alias declaration for type identifiers.
    +  +using any = basic_any<>  Alias declaration for the most common use case.
      -using hashed_string = basic_hashed_string<char> +using hashed_string = basic_hashed_string<char>  Aliases for common character types.
      -using hashed_wstring = basic_hashed_string<wchar_t> +using hashed_wstring = basic_hashed_string<wchar_t>  Aliases for common character types.
      -template<typename Type > -using type_identity_t = typename type_identity<Type>::type +template<typename Type> +using type_identity_t = typename type_identity<Type>::type  Helper type.
      -template<typename Type , typename > -using unpack_as_type = Type +template<typename Type, typename> +using unpack_as_type = Type  Using declaration to be used to repeat the same type a number of times equal to the size of a given parameter pack.
      -template<auto Value> -using integral_constant = std::integral_constant<decltype(Value), Value> +template<auto Value> +using integral_constant = std::integral_constant<decltype(Value), Value>  Wraps a static constant.
      -template<id_type Value> -using tag = integral_constant<Value> +template<id_type Value> +using tag = integral_constant<Value>  Alias template to facilitate the creation of named values.
      -template<std::size_t Index, typename List > -using type_list_element_t = typename type_list_element<Index, List>::type +template<std::size_t Index, typename List> +using type_list_element_t = typename type_list_element<Index, List>::type  Helper type.
      template<typename... List> -using type_list_cat_t = typename type_list_cat<List...>::type +using type_list_cat_t = typename type_list_cat<List...>::type  Helper type.
      -template<typename List > -using type_list_unique_t = typename type_list_unique<List>::type +template<typename List> +using type_list_unique_t = typename type_list_unique<List>::type  Helper type.
      template<typename... List> -using type_list_diff_t = typename type_list_diff<List...>::type +using type_list_diff_t = typename type_list_diff<List...>::type  Helper type.
      -template<typename List , template< typename... > class Op> -using type_list_transform_t = typename type_list_transform<List, Op>::type +template<typename List, template< typename... > class Op> +using type_list_transform_t = typename type_list_transform<List, Op>::type  Helper type.
      -template<std::size_t Index, typename List > -using value_list_element_t = typename value_list_element<Index, List>::type +template<std::size_t Index, typename List> +using value_list_element_t = typename value_list_element<Index, List>::type  Helper type.
      template<typename... List> -using value_list_cat_t = typename value_list_cat<List...>::type +using value_list_cat_t = typename value_list_cat<List...>::type  Helper type.
      -template<typename Type > -using value_list_unique_t = typename value_list_unique<Type>::type +template<typename Type> +using value_list_unique_t = typename value_list_unique<Type>::type  Helper type.
      template<typename... List> -using value_list_diff_t = typename value_list_diff<List...>::type +using value_list_diff_t = typename value_list_diff<List...>::type  Helper type.
      -template<typename To , typename From > -using constness_as_t = typename constness_as<To, From>::type +template<typename To, typename From> +using constness_as_t = typename constness_as<To, From>::type  Alias template to facilitate the transcription of the constness.
      -template<typename Member > -using member_class_t = typename member_class<Member>::type +template<typename Member> +using member_class_t = typename member_class<Member>::type  Helper type.
      -template<std::size_t Index, typename Candidate > -using nth_argument_t = typename nth_argument<Index, Candidate>::type +template<std::size_t Index, typename Candidate> +using nth_argument_t = typename nth_argument<Index, Candidate>::type  Helper type.
      -using sparse_set = basic_sparse_set<> +using sparse_set = basic_sparse_set<>  Alias declaration for the most common use case.
      -template<typename Type > -using storage = basic_storage<Type> +template<typename Type> +using storage = basic_storage<Type>  Alias declaration for the most common use case.
      -template<typename Type > -using sigh_mixin = basic_sigh_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>> +template<typename Type> +using sigh_mixin = basic_sigh_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>  Alias declaration for the most common use case.
      -template<typename Type > -using reactive_mixin = basic_reactive_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>> +template<typename Type> +using reactive_mixin = basic_reactive_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>  Alias declaration for the most common use case.
      -using registry = basic_registry<> +using registry = basic_registry<>  Alias declaration for the most common use case.
      -using observer = basic_observer<registry> - Alias declaration for the most common use case.
    -  -using organizer = basic_organizer<registry> +using organizer = basic_organizer<registry>  Alias declaration for the most common use case.
      -using handle = basic_handle<registry> +using handle = basic_handle<registry>  Alias declaration for the most common use case.
      -using const_handle = basic_handle<const registry> +using const_handle = basic_handle<const registry>  Alias declaration for the most common use case.
      template<typename... Args> -using handle_view = basic_handle<registry, Args...> +using handle_view = basic_handle<registry, Args...>  Alias declaration for the most common use case.
      template<typename... Args> -using const_handle_view = basic_handle<const registry, Args...> +using const_handle_view = basic_handle<const registry, Args...>  Alias declaration for the most common use case.
      -using snapshot = basic_snapshot<registry> +using snapshot = basic_snapshot<registry>  Alias declaration for the most common use case.
      -using snapshot_loader = basic_snapshot_loader<registry> +using snapshot_loader = basic_snapshot_loader<registry>  Alias declaration for the most common use case.
      -using continuous_loader = basic_continuous_loader<registry> +using continuous_loader = basic_continuous_loader<registry>  Alias declaration for the most common use case.
      -using runtime_view = basic_runtime_view<sparse_set> +using runtime_view = basic_runtime_view<sparse_set>  Alias declaration for the most common use case.
      -using const_runtime_view = basic_runtime_view<const sparse_set> +using const_runtime_view = basic_runtime_view<const sparse_set>  Alias declaration for the most common use case.
      template<typename... Args> -using storage_type_t = typename storage_type<Args...>::type +using storage_type_t = typename storage_type<Args...>::type  Helper type.
      template<typename... Args> -using storage_for_t = typename storage_for<Args...>::type +using storage_for_t = typename storage_for<Args...>::type  Helper type.
      -template<typename Get , typename Exclude = exclude_t<>> -using view = basic_view<type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>> +template<typename Get, typename Exclude = exclude_t<>> +using view = basic_view<type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>>  Alias declaration for the most common use case.
      -template<typename Owned , typename Get , typename Exclude > -using group = basic_group<type_list_transform_t<Owned, storage_for>, type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>> +template<typename Owned, typename Get = get_t<>, typename Exclude = exclude_t<>> +using group = basic_group<type_list_transform_t<Owned, storage_for>, type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>>  Alias declaration for the most common use case.
      -using flow = basic_flow<> +using flow = basic_flow<>  Alias declaration for the most common use case.
      -using meta_any_policy = any_policy - Possible modes of a meta any object.
    -  -template<typename Type , typename It > -using meta_range = iterable_adaptor<internal::meta_range_iterator<Type, It>> +template<typename Type, typename It> +using meta_range = iterable_adaptor<internal::meta_range_iterator<Type, It>>  Iterable range to use to iterate all types of meta objects.
      -template<typename Type , typename Candidate > -using meta_function_helper_t = typename meta_function_helper<Type, Candidate>::type +template<typename Type, typename Candidate> +using meta_function_helper_t = typename meta_function_helper<Type, Candidate>::type  Helper type.
      -template<typename Concept > -using poly = basic_poly<Concept> +template<typename Concept> +using poly = basic_poly<Concept>  Alias declaration for the most common use case.
      -using scheduler = basic_scheduler<> +using scheduler = basic_scheduler<>  Alias declaration for the most common use case.
      -using dispatcher = basic_dispatcher<> +using dispatcher = basic_dispatcher<>  Alias declaration for the most common use case.
      - @@ -904,258 +902,262 @@ Enumerations + + +

    Enumerations

    enum class  any_policy : std::uint8_t { owner +
    enum class  any_policy : std::uint8_t {
    +  empty +, dynamic +, embedded , ref -, cref +,
    +  cref +
    }
     Possible modes of an any object. More...
     
    enum class  deletion_policy : std::uint8_t { swap_and_pop = 0u , in_place = 1u , swap_only = 2u +, unspecified = swap_and_pop }
     Storage deletion policy. More...
     
    enum class  any_policy
     Possible modes of an any object. More...
     
    - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - + - - + + @@ -1163,312 +1165,306 @@ Functions - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + - - - - + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - - - - - + + - - - - - - + + + + + + - - - - - - + + + + + + - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

    Functions

    template<typename Type , std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (const basic_any< Len, Align > &data) noexcept
    template<typename Type, std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (const basic_any< Len, Align > &data) noexcept
     Performs type-safe access to the contained object.
     
    template<typename Type , std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (basic_any< Len, Align > &data) noexcept
     Performs type-safe access to the contained object.
    template<typename Type, std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (basic_any< Len, Align > &data) noexcept
     Performs type-safe access to the contained object.
     
    template<typename Type , std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (basic_any< Len, Align > &&data) noexcept
     Performs type-safe access to the contained object.
    template<typename Type, std::size_t Len, std::size_t Align>
    std::remove_const_t< Type > any_cast (basic_any< Len, Align > &&data) noexcept
     Performs type-safe access to the contained object.
     
    template<typename Type , std::size_t Len, std::size_t Align>
    const Type * any_cast (const basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object.
    template<typename Type, std::size_t Len, std::size_t Align>
    const Type * any_cast (const basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object.
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type * any_cast (basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object.
    template<typename Type, std::size_t Len, std::size_t Align>
    Type * any_cast (basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object.
     
    template<typename Type , std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    basic_any< Len, Alignmake_any (Args &&...args)
    template<typename Type, std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    basic_any< Len, Align > make_any (Args &&...args)
     Constructs a wrapper from a given type, passing it all arguments.
     
    template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type >
    basic_any< Len, Alignforward_as_any (Type &&value)
    template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type>
    basic_any< Len, Align > forward_as_any (Type &&value)
     Forwards its argument and avoids copies for lvalue references.
     
    template<typename Type >
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, intpopcount (const Type value) noexcept
    template<typename Type>
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, int > popcount (const Type value) noexcept
     Returns the number of set bits in a value (waiting for C++20 and std::popcount).
     
    template<typename Type >
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, boolhas_single_bit (const Type value) noexcept
    template<typename Type>
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, bool > has_single_bit (const Type value) noexcept
     Checks whether a value is a power of two or not (waiting for C++20 and std::has_single_bit).
     
    template<typename Type >
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > next_power_of_two (const Type value) noexcept
    template<typename Type>
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > next_power_of_two (const Type value) noexcept
     Computes the smallest power of two greater than or equal to a value (waiting for C++20 and std::bit_ceil).
     
    template<typename Type >
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod (const Type value, const std::size_t mod) noexcept
    template<typename Type>
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod (const Type value, const std::size_t mod) noexcept
     Fast module utility function (powers of two only).
     
    template<typename Type , typename Other >
     compressed_pair (Type &&, Other &&) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >
    template<typename Type, typename Other>
     compressed_pair (Type &&, Other &&) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >
     Deduction guide.
     
    template<typename First , typename Second >
    constexpr void swap (compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
     Swaps two compressed pair objects.
     
    template<typename Char >
     basic_hashed_string (const Char *str, std::size_t len) -> basic_hashed_string< Char >
    template<typename First, typename Second>
    constexpr void swap (compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs) noexcept
     Swaps two compressed pair objects.
     
    template<typename Char>
     basic_hashed_string (const Char *str, std::size_t len) -> basic_hashed_string< Char >
     Deduction guide.
     
    template<typename Char , std::size_t N>
     basic_hashed_string (const Char(&str)[N]) -> basic_hashed_string< Char >
    template<typename Char, std::size_t N>
     basic_hashed_string (const Char(&str)[N]) -> basic_hashed_string< Char >
     Deduction guide.
     
    template<typename Char >
    constexpr bool operator== (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator== (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    template<typename Char >
    constexpr bool operator!= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator!= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    template<typename Char >
    constexpr bool operator< (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator< (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    template<typename Char >
    constexpr bool operator<= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator<= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    template<typename Char >
    constexpr bool operator> (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator> (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    template<typename Char >
    constexpr bool operator>= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    template<typename Char>
    constexpr bool operator>= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings.
     
    constexpr hashed_string operator""_hs (const char *str, std::size_t) noexcept
    constexpr hashed_string operator""_hs (const char *str, std::size_t) noexcept
     User defined literal for hashed strings.
     
    constexpr hashed_wstring operator""_hws (const wchar_t *str, std::size_t) noexcept
    constexpr hashed_wstring operator""_hws (const wchar_t *str, std::size_t) noexcept
     User defined literal for hashed wstrings.
     
    template<typename Type >
    constexpr bool operator== (const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept
    template<typename Type>
    constexpr bool operator== (const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept
     Comparison operator.
     
    template<typename Type >
    constexpr bool operator!= (const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept
    template<typename Type>
    constexpr bool operator!= (const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept
     Comparison operator.
     
    template<typename Type >
    constexpr auto to_address (Type &&ptr) noexcept
    template<typename Type>
    constexpr auto to_address (Type &&ptr) noexcept
     Unwraps fancy pointers, does nothing otherwise (waiting for C++20).
     
    template<typename Allocator >
    constexpr void propagate_on_container_copy_assignment (Allocator &lhs, Allocator &rhs) noexcept
    template<typename Allocator>
    constexpr void propagate_on_container_copy_assignment (Allocator &lhs, Allocator &rhs) noexcept
     Utility function to design allocation-aware containers.
     
    template<typename Allocator >
    constexpr void propagate_on_container_move_assignment (Allocator &lhs, Allocator &rhs) noexcept
    template<typename Allocator>
    constexpr void propagate_on_container_move_assignment (Allocator &lhs, Allocator &rhs) noexcept
     Utility function to design allocation-aware containers.
     
    template<typename Allocator >
    constexpr void propagate_on_container_swap (Allocator &lhs, Allocator &rhs) noexcept
    template<typename Allocator>
    constexpr void propagate_on_container_swap (Allocator &lhs, Allocator &rhs) noexcept
     Utility function to design allocation-aware containers.
     
    template<typename Type , typename Allocator , typename... Args>
    constexpr auto allocate_unique (Allocator &allocator, Args &&...args)
    template<typename Type, typename Allocator, typename... Args>
    constexpr auto allocate_unique (Allocator &allocator, Args &&...args)
     Allows std::unique_ptr to use allocators (waiting for C++20).
     
    template<typename Type , typename Allocator , typename... Args>
    constexpr auto uses_allocator_construction_args (const Allocator &allocator, Args &&...args) noexcept
    template<typename Type, typename Allocator, typename... Args>
    constexpr auto uses_allocator_construction_args (const Allocator &allocator, Args &&...args) noexcept
     Uses-allocator construction utility (waiting for C++20).
     
    template<typename Type , typename Allocator , typename... Args>
    template<typename Type, typename Allocator, typename... Args>
    constexpr Type make_obj_using_allocator (const Allocator &allocator, Args &&...args)
     Uses-allocator construction utility (waiting for C++20).
     
    template<typename Type , typename Allocator , typename... Args>
    constexpr Type * uninitialized_construct_using_allocator (Type *value, const Allocator &allocator, Args &&...args)
    template<typename Type, typename Allocator, typename... Args>
    constexpr Type * uninitialized_construct_using_allocator (Type *value, const Allocator &allocator, Args &&...args)
     Uses-allocator construction utility (waiting for C++20).
     
    template<typename Type >
    constexpr decltype(autounwrap_tuple (Type &&value) noexcept
    template<typename Type>
    constexpr decltype(auto) unwrap_tuple (Type &&value) noexcept
     Utility function to unwrap tuples of a single element.
     
    template<typename Func >
    template<typename Func>
     forward_apply (Func) -> forward_apply< std::remove_reference_t< std::remove_cv_t< Func > > >
     Deduction guide.
     
    constexpr bool operator== (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator== (const type_info &lhs, const type_info &rhs) noexcept
     Compares the contents of two type info objects.
     
    constexpr bool operator!= (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator!= (const type_info &lhs, const type_info &rhs) noexcept
     Compares the contents of two type info objects.
     
    constexpr bool operator< (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator< (const type_info &lhs, const type_info &rhs) noexcept
     Compares two type info objects.
     
    constexpr bool operator<= (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator<= (const type_info &lhs, const type_info &rhs) noexcept
     Compares two type info objects.
     
    constexpr bool operator> (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator> (const type_info &lhs, const type_info &rhs) noexcept
     Compares two type info objects.
     
    constexpr bool operator>= (const type_info &lhs, const type_info &rhs) noexcept
    constexpr bool operator>= (const type_info &lhs, const type_info &rhs) noexcept
     Compares two type info objects.
     
    template<typename Type >
    const type_infotype_id () noexcept
    template<typename Type>
    const type_infotype_id () noexcept
     Returns the type info object associated to a given type.
     
    template<typename Type >
    const type_infotype_id (Type &&) noexcept
     Returns the type info object associated to a given type.
    template<typename Type>
    const type_infotype_id (Type &&) noexcept
     Returns the type info object associated to a given type.
     
    template<typename... Type, typename... Other>
    constexpr type_list< Type..., Other... > operator+ (type_list< Type... >, type_list< Other... >)
    constexpr type_list< Type..., Other... > operator+ (type_list< Type... >, type_list< Other... >)
     Concatenates multiple type lists.
     
    template<auto... Value, auto... Other>
    constexpr value_list< Value..., Other... > operator+ (value_list< Value... >, value_list< Other... >)
    constexpr value_list< Value..., Other... > operator+ (value_list< Value... >, value_list< Other... >)
     Concatenates multiple value lists.
     
    template<typename Type , typename Class >
    constexpr auto overload (Type Class::*member) noexcept
    template<typename Type, typename Class>
    constexpr auto overload (Type Class::*member) noexcept
     Constant utility to disambiguate overloaded members of a class.
     
    template<typename Func >
    constexpr auto overload (Func *func) noexcept
    template<typename Func>
    constexpr auto overload (Func *func) noexcept
     Constant utility to disambiguate overloaded functions.
     
    template<typename... Func>
     overloaded (Func...) -> overloaded< Func... >
     Deduction guide.
     
    template<typename Entity >
    constexpr entt_traits< Entity >::entity_type to_integral (const Entity value) noexcept
    template<typename Entity>
    constexpr entt_traits< Entity >::entity_type to_integral (const Entity value) noexcept
     Converts an entity to its underlying type.
     
    template<typename Entity >
    constexpr entt_traits< Entity >::entity_type to_entity (const Entity value) noexcept
    template<typename Entity>
    constexpr entt_traits< Entity >::entity_type to_entity (const Entity value) noexcept
     Returns the entity part once converted to the underlying type.
     
    template<typename Entity >
    constexpr entt_traits< Entity >::version_type to_version (const Entity value) noexcept
    template<typename Entity>
    constexpr entt_traits< Entity >::version_type to_version (const Entity value) noexcept
     Returns the version part once converted to the underlying type.
     
    template<typename Entity >
    constexpr bool operator== (const Entity lhs, const null_t rhs) noexcept
    template<typename Entity>
    constexpr bool operator== (const Entity lhs, const null_t rhs) noexcept
     Compares a null object and an identifier of any type.
     
    template<typename Entity >
    constexpr bool operator!= (const Entity lhs, const null_t rhs) noexcept
    template<typename Entity>
    constexpr bool operator!= (const Entity lhs, const null_t rhs) noexcept
     Compares a null object and an identifier of any type.
     
    template<typename Entity >
    constexpr bool operator== (const Entity lhs, const tombstone_t rhs) noexcept
    template<typename Entity>
    constexpr bool operator== (const Entity lhs, const tombstone_t rhs) noexcept
     Compares a tombstone object and an identifier of any type.
     
    template<typename Entity >
    constexpr bool operator!= (const Entity lhs, const tombstone_t rhs) noexcept
    template<typename Entity>
    constexpr bool operator!= (const Entity lhs, const tombstone_t rhs) noexcept
     Compares a tombstone object and an identifier of any type.
     
    template<typename... Args, typename... Other>
    bool operator== (const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept
    bool operator== (const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept
     Compares two handles.
     
    template<typename... Args, typename... Other>
    bool operator!= (const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept
    bool operator!= (const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept
     Compares two handles.
     
    template<typename... Args>
    constexpr bool operator== (const basic_handle< Args... > &lhs, const null_t rhs) noexcept
    constexpr bool operator== (const basic_handle< Args... > &lhs, const null_t rhs) noexcept
     Compares a handle with the null object.
     
    template<typename... Args>
    constexpr bool operator== (const null_t lhs, const basic_handle< Args... > &rhs) noexcept
    constexpr bool operator== (const null_t lhs, const basic_handle< Args... > &rhs) noexcept
     Compares a handle with the null object.
     
    template<typename... Args>
    constexpr bool operator!= (const basic_handle< Args... > &lhs, const null_t rhs) noexcept
    constexpr bool operator!= (const basic_handle< Args... > &lhs, const null_t rhs) noexcept
     Compares a handle with the null object.
     
    template<typename... Args>
    constexpr bool operator!= (const null_t lhs, const basic_handle< Args... > &rhs) noexcept
    constexpr bool operator!= (const null_t lhs, const basic_handle< Args... > &rhs) noexcept
     Compares a handle with the null object.
     
    template<auto Member, typename Registry = std::decay_t<nth_argument_t<0u, decltype(Member)>>>
    void invoke (Registry &reg, const typename Registry::entity_type entt)
    template<auto Member, typename Registry = std::decay_t<nth_argument_t<0u, decltype(Member)>>>
    void invoke (Registry &reg, const typename Registry::entity_type entt)
     Helper to create a listener that directly invokes a member function.
     
    template<typename... Args>
    basic_storage< Args... >::entity_type to_entity (const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)
    basic_storage< Args... >::entity_type to_entity (const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)
     Returns the entity associated with a given element.
     
    template<typename Registry >
     sigh_helper (Registry &) -> sigh_helper< Registry >
    template<typename Registry>
     sigh_helper (Registry &) -> sigh_helper< Registry >
     Deduction guide.
     
    template<typename... Type>
     Deduction guide.
     
    template<typename... Get, typename... Exclude>
     basic_view (std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >
     basic_view (std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >
     Deduction guide.
     
    template<typename Graph , typename Writer >
    void dot (std::ostream &out, const Graph &graph, Writer writer)
    template<typename Graph, typename Writer>
    void dot (std::ostream &out, const Graph &graph, Writer writer)
     Outputs a graph in dot format.
     
    template<typename Graph >
    void dot (std::ostream &out, const Graph &graph)
    template<typename Graph>
    void dot (std::ostream &out, const Graph &graph)
     Outputs a graph in dot format.
     
    template<typename Type >
    decltype(autodereference_meta_pointer_like (const Type &value)
    template<typename Type>
    decltype(auto) dereference_meta_pointer_like (const Type &value)
     ADL based lookup function for dereferencing meta pointer-like types.
     
    template<typename Type >
    auto meta (meta_ctx &ctx) noexcept
    template<typename Type>
    auto meta (meta_ctx &ctx) noexcept
     Utility function to use for reflection.
     
    template<typename Type >
    auto meta () noexcept
    template<typename Type>
    auto meta () noexcept
     Utility function to use for reflection.
     
    void meta_reset (meta_ctx &ctx, const id_type id) noexcept
    void meta_reset (meta_ctx &ctx, const id_type id) noexcept
     Resets a type and all its parts.
     
    void meta_reset (const id_type id) noexcept
    void meta_reset (const id_type id) noexcept
     Resets a type and all its parts.
     
    template<typename Type >
    void meta_reset (meta_ctx &ctx) noexcept
    template<typename Type>
    void meta_reset (meta_ctx &ctx) noexcept
     Resets a type and all its parts.
     
    template<typename Type >
    void meta_reset () noexcept
    template<typename Type>
    void meta_reset () noexcept
     Resets a type and all its parts.
     
    void meta_reset (meta_ctx &ctx) noexcept
    void meta_reset (meta_ctx &ctx) noexcept
     Resets all meta types.
     
    void meta_reset () noexcept
    void meta_reset () noexcept
     Resets all meta types.
     
    template<typename Type >
    meta_any forward_as_meta (const meta_ctx &ctx, Type &&value)
    template<typename Type>
    meta_any forward_as_meta (const meta_ctx &ctx, Type &&value)
     Forwards its argument and avoids copies for lvalue references.
     
    template<typename Type >
    template<typename Type>
    meta_any forward_as_meta (Type &&value)
     Forwards its argument and avoids copies for lvalue references.
     
    bool operator!= (const meta_prop &lhs, const meta_prop &rhs) noexcept
     Checks if two objects refer to the same type.
     
    bool operator!= (const meta_data &lhs, const meta_data &rhs) noexcept
    bool operator!= (const meta_data &lhs, const meta_data &rhs) noexcept
     Checks if two objects refer to the same type.
     
    bool operator!= (const meta_func &lhs, const meta_func &rhs) noexcept
    bool operator!= (const meta_func &lhs, const meta_func &rhs) noexcept
     Checks if two objects refer to the same type.
     
    bool operator!= (const meta_type &lhs, const meta_type &rhs) noexcept
    bool operator!= (const meta_type &lhs, const meta_type &rhs) noexcept
     Checks if two objects refer to the same type.
     
    template<typename Type >
    meta_type resolve (const meta_ctx &ctx) noexcept
    template<typename Type>
    meta_type resolve (const meta_ctx &ctx) noexcept
     Returns the meta type associated with a given type.
     
    template<typename Type >
    meta_type resolve () noexcept
    template<typename Type>
    meta_type resolve () noexcept
     Returns the meta type associated with a given type.
     
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > resolve (const meta_ctx &ctx) noexcept
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > resolve (const meta_ctx &ctx) noexcept
     Returns a range to use to visit all meta types.
     
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > resolve () noexcept
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > resolve () noexcept
     Returns a range to use to visit all meta types.
     
    meta_type resolve (const meta_ctx &ctx, const id_type id) noexcept
    meta_type resolve (const meta_ctx &ctx, const id_type id) noexcept
     Returns the meta type associated with a given identifier, if any.
     
    meta_type resolve (const id_type id) noexcept
    meta_type resolve (const id_type id) noexcept
     Returns the meta type associated with a given identifier, if any.
     
    meta_type resolve (const meta_ctx &ctx, const type_info &info) noexcept
    meta_type resolve (const meta_ctx &ctx, const type_info &info) noexcept
     Returns the meta type associated with a given type info object.
     
    meta_type resolve (const type_info &info) noexcept
    meta_type resolve (const type_info &info) noexcept
     Returns the meta type associated with a given type info object.
     
    template<typename Policy = as_is_t, typename Type >
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_dispatch (const meta_ctx &ctx, Type &&value)
    template<typename Policy = as_is_t, typename Type>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_dispatch (const meta_ctx &ctx, Type &&value)
     Wraps a value depending on the given policy.
     
    template<typename Policy = as_is_t, typename Type >
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_dispatch (Type &&value)
    template<typename Policy = as_is_t, typename Type>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_dispatch (Type &&value)
     Wraps a value depending on the given policy.
     
    template<typename Type , auto Data>
    bool meta_setter (meta_handle instance, meta_any value)
    template<typename Type, auto Data>
    bool meta_setter (meta_handle instance, meta_any value)
     Sets the value of a given variable.
     
    template<typename Type , auto Data, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_getter (const meta_ctx &ctx, meta_handle instance)
     Gets the value of a given variable.
     
    template<typename Type , auto Data, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_getter (meta_handle instance)
    template<typename Type, auto Data, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_getter (meta_handle instance)
     Gets the value of a given variable.
     
    template<typename Type , typename Policy = as_is_t, typename Candidate >
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)
     Tries to invoke an object given a list of erased parameters.
     
    template<typename Type , typename Policy = as_is_t, typename Candidate >
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (meta_handle instance, Candidate &&candidate, meta_any *const args)
    template<typename Type, auto Data, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_getter (const meta_ctx &ctx, meta_handle instance)
     Gets the value of a given variable.
     
    template<typename Type, typename Policy = as_is_t, typename Candidate>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (meta_handle instance, Candidate &&candidate, meta_any *const args)
     Tries to invoke an object given a list of erased parameters.
     
    template<typename Type , auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (const meta_ctx &ctx, meta_handle instance, meta_any *const args)
     Tries to invoke a function given a list of erased parameters.
     
    template<typename Type , auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (meta_handle instance, meta_any *const args)
    template<typename Type, typename Policy = as_is_t, typename Candidate>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)
     Tries to invoke an object given a list of erased parameters.
     
    template<typename Type, auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (meta_handle instance, meta_any *const args)
     Tries to invoke a function given a list of erased parameters.
     
    template<typename Type , typename... Args>
    meta_any meta_construct (const meta_ctx &ctx, meta_any *const args)
    template<typename Type, auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_invoke (const meta_ctx &ctx, meta_handle instance, meta_any *const args)
     Tries to invoke a function given a list of erased parameters.
     
    template<typename Type, typename... Args>
    meta_any meta_construct (const meta_ctx &ctx, meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<typename Type , typename... Args>
    meta_any meta_construct (meta_any *const args)
    template<typename Type, typename... Args>
    meta_any meta_construct (meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<typename Type , typename Policy = as_is_t, typename Candidate >
    meta_any meta_construct (const meta_ctx &ctx, Candidate &&candidate, meta_any *const args)
    template<typename Type, typename Policy = as_is_t, typename Candidate>
    meta_any meta_construct (const meta_ctx &ctx, Candidate &&candidate, meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<typename Type , typename Policy = as_is_t, typename Candidate >
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (Candidate &&candidate, meta_any *const args)
    template<typename Type, typename Policy = as_is_t, typename Candidate>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (Candidate &&candidate, meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<typename Type , auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (const meta_ctx &ctx, meta_any *const args)
    template<typename Type, auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (const meta_ctx &ctx, meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<typename Type , auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (meta_any *const args)
    template<typename Type, auto Candidate, typename Policy = as_is_t>
    std::enable_if_t< is_meta_policy_v< Policy >, meta_anymeta_construct (meta_any *const args)
     Tries to construct an instance given a list of erased parameters.
     
    template<std::size_t Member, typename Poly , typename... Args>
    decltype(autopoly_call (Poly &&self, Args &&...args)
    template<std::size_t Member, typename Poly, typename... Args>
    decltype(auto) poly_call (Poly &&self, Args &&...args)
     Shortcut for calling poly_base<Type>::invoke.
     
    template<typename Lhs , typename Rhs >
    bool operator== (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator== (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Lhs , typename Rhs >
    bool operator!= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator!= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Lhs , typename Rhs >
    bool operator< (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator< (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Lhs , typename Rhs >
    bool operator> (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator> (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Lhs , typename Rhs >
    bool operator<= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator<= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Lhs , typename Rhs >
    bool operator>= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
    template<typename Lhs, typename Rhs>
    bool operator>= (const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept
     Compares two handles.
     
    template<typename Ret , typename... Args>
    bool operator!= (const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept
    template<typename Ret, typename... Args>
    bool operator!= (const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept
     Compares the contents of two delegates.
     
    template<auto Candidate>
     delegate (connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
    template<auto Candidate>
     delegate (connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
     Deduction guide.
     
    template<auto Candidate, typename Type >
     delegate (connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >
    template<auto Candidate, typename Type>
     delegate (connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >
     Deduction guide.
     
    template<typename Ret , typename... Args>
     delegate (Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>
    template<typename Ret, typename... Args>
     delegate (Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>
     Deduction guide.
     
    template<typename Ret , typename... Args, typename Allocator >
     sink (sigh< Ret(Args...), Allocator > &) -> sink< sigh< Ret(Args...), Allocator > >
    template<typename Ret, typename... Args, typename Allocator>
     sink (sigh< Ret(Args...), Allocator > &) -> sink< sigh< Ret(Args...), Allocator > >
     Deduction guide.
     
    - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - - - + - - + + - - + + - - + +

    Variables

    template<typename Type >
    constexpr bool enum_as_bitmask_v = enum_as_bitmask<Type>::value
    template<typename Type>
    constexpr bool enum_as_bitmask_v = enum_as_bitmask<Type>::value
     Helper variable template.
     
    template<id_type Value>
    monostate< Valuemonostate_v {}
    template<id_type Value>
    monostate< Value > monostate_v {}
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_tuple_v = is_tuple<Type>::value
    template<typename Type>
    constexpr bool is_tuple_v = is_tuple<Type>::value
     Helper variable template.
     
    template<std::size_t N>
    constexpr choice_t< Nchoice {}
    constexpr choice_t< N > choice {}
     Variable template for the choice trick.
     
    template<typename Type >
    constexpr std::size_t size_of_v = size_of<Type>::value
    template<typename Type>
    constexpr std::size_t size_of_v = size_of<Type>::value
     Helper variable template.
     
    template<auto Value, typename >
    constexpr auto unpack_as_value = Value
    template<auto Value, typename>
    constexpr auto unpack_as_value = Value
     Helper variable template to be used to repeat the same value a number of times equal to the size of a given parameter pack.
     
    template<typename Type , typename List >
    constexpr std::size_t type_list_index_v = type_list_index<Type, List>::value
    template<typename Type, typename List>
    constexpr std::size_t type_list_index_v = type_list_index<Type, List>::value
     Helper variable template.
     
    template<typename List , typename Type >
    constexpr bool type_list_contains_v = type_list_contains<List, Type>::value
    template<typename List, typename Type>
    constexpr bool type_list_contains_v = type_list_contains<List, Type>::value
     Helper variable template.
     
    template<std::size_t Index, typename List >
    constexpr auto value_list_element_v = value_list_element<Index, List>::value
    template<std::size_t Index, typename List>
    constexpr auto value_list_element_v = value_list_element<Index, List>::value
     Helper type.
     
    template<auto Value, typename List >
    constexpr std::size_t value_list_index_v = value_list_index<Value, List>::value
    template<auto Value, typename List>
    constexpr std::size_t value_list_index_v = value_list_index<Value, List>::value
     Helper variable template.
     
    template<typename List , auto Value>
    constexpr bool value_list_contains_v = value_list_contains<List, Value>::value
    template<typename List, auto Value>
    constexpr bool value_list_contains_v = value_list_contains<List, Value>::value
     Helper variable template.
     
    template<typename Func , typename Args >
    constexpr bool is_applicable_v = is_applicable<Func, Args>::value
    template<typename Func, typename Args>
    constexpr bool is_applicable_v = is_applicable<Func, Args>::value
     Helper variable template.
     
    template<typename Ret , typename Func , typename Args >
    constexpr bool is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
    template<typename Ret, typename Func, typename Args>
    constexpr bool is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_complete_v = is_complete<Type>::value
    template<typename Type>
    constexpr bool is_complete_v = is_complete<Type>::value
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_iterator_v = is_iterator<Type>::value
    template<typename Type>
    constexpr bool is_iterator_v = is_iterator<Type>::value
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_ebco_eligible_v = is_ebco_eligible<Type>::value
    template<typename Type>
    constexpr bool is_ebco_eligible_v = is_ebco_eligible<Type>::value
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_transparent_v = is_transparent<Type>::value
    template<typename Type>
    constexpr bool is_transparent_v = is_transparent<Type>::value
     Helper variable template.
     
    template<typename Type >
    constexpr bool is_equality_comparable_v = is_equality_comparable<Type>::value
    template<typename Type>
    constexpr bool is_equality_comparable_v = is_equality_comparable<Type>::value
     Helper variable template.
     
    constexpr null_t null {}
    constexpr null_t null {}
     Compile-time constant for null entities.
     
    constexpr tombstone_t tombstone {}
    constexpr tombstone_t tombstone {}
     Compile-time constant for tombstone entities.
     
    template<typename... Type>
    constexpr exclude_t< Type... > exclude {}
    constexpr exclude_t< Type... > exclude {}
     Variable template for exclusion lists.
     
    template<typename... Type>
    constexpr get_t< Type... > get {}
    constexpr get_t< Type... > get {}
     Variable template for lists of observed elements.
     
    template<typename... Type>
    constexpr owned_t< Type... > owned {}
    constexpr owned_t< Type... > owned {}
     Variable template for lists of owned elements.
     
    constexpr basic_collector collector {}
     Variable template used to ease the definition of collectors.
     
    constexpr meta_ctx_arg_t meta_ctx_arg {}
    constexpr meta_ctx_arg_t meta_ctx_arg {}
     Constant of type meta_context_arg_t used to disambiguate calls.
     
    template<typename Type >
    constexpr bool is_meta_policy_v = is_meta_policy<Type>::value
    template<typename Type>
    constexpr bool is_meta_policy_v = is_meta_policy<Type>::value
     Helper variable template.
     
    template<typename Type >
    constexpr auto is_meta_pointer_like_v = is_meta_pointer_like<Type>::value
    template<typename Type>
    constexpr auto is_meta_pointer_like_v = is_meta_pointer_like<Type>::value
     Helper variable template.
     
    template<auto Candidate>
    constexpr connect_arg_t< Candidateconnect_arg {}
    template<auto Candidate>
    constexpr connect_arg_t< Candidate > connect_arg {}
     Constant of type connect_arg_t used to disambiguate calls.
     
    @@ -1482,14 +1478,14 @@ Variables

    Alias declaration for the most common use case.

    -

    Definition at line 17 of file fwd.hpp.

    +

    Definition at line 32 of file fwd.hpp.

    @@ -1500,14 +1496,14 @@ Variables

    Alias declaration for the most common use case.

    -

    Definition at line 105 of file fwd.hpp.

    +

    Definition at line 104 of file fwd.hpp.

    @@ -1520,7 +1516,7 @@ Variables template<typename... Args>
    - +
    using entt::const_handle_view = basic_handle<const registry, Args...>using entt::const_handle_view = basic_handle<const registry, Args...>
    @@ -1533,7 +1529,7 @@ template<typename... Args>
    -

    Definition at line 119 of file fwd.hpp.

    +

    Definition at line 118 of file fwd.hpp.

    @@ -1544,14 +1540,14 @@ template<typename... Args>

    Alias declaration for the most common use case.

    -

    Definition at line 134 of file fwd.hpp.

    +

    Definition at line 133 of file fwd.hpp.

    @@ -1561,10 +1557,10 @@ template<typename... Args>
    -template<typename To , typename From >
    +template<typename To, typename From>
    - +
    using entt::constness_as_t = typename constness_as<To, From>::typeusing entt::constness_as_t = typename constness_as<To, From>::type
    @@ -1578,7 +1574,7 @@ template<typename -

    Definition at line 839 of file type_traits.hpp.

    +

    Definition at line 841 of file type_traits.hpp.

    @@ -1589,14 +1585,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 128 of file fwd.hpp.

    +

    Definition at line 127 of file fwd.hpp.

    @@ -1607,7 +1603,7 @@ template<typename
    @@ -1625,7 +1621,7 @@ template<typename
    @@ -1642,10 +1638,10 @@ template<typename
    @@ -1660,7 +1656,7 @@ template<typename -

    Definition at line 287 of file fwd.hpp.

    +

    Definition at line 286 of file fwd.hpp.

    @@ -1671,14 +1667,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 102 of file fwd.hpp.

    +

    Definition at line 101 of file fwd.hpp.

    @@ -1691,7 +1687,7 @@ template<typename template<typename... Args>
    - +
    using entt::handle_view = basic_handle<registry, Args...>using entt::handle_view = basic_handle<registry, Args...>
    @@ -1704,7 +1700,7 @@ template<typename... Args>
    -

    Definition at line 112 of file fwd.hpp.

    +

    Definition at line 111 of file fwd.hpp.

    @@ -1715,14 +1711,14 @@ template<typename... Args>

    Aliases for common character types.

    -

    Definition at line 26 of file fwd.hpp.

    +

    Definition at line 41 of file fwd.hpp.

    @@ -1733,32 +1729,32 @@ template<typename... Args>

    Aliases for common character types.

    -

    Definition at line 29 of file fwd.hpp.

    +

    Definition at line 44 of file fwd.hpp.

    - -

    ◆ id_type

    + +

    ◆ id_type

    - +
    using entt::id_type = std::uint32_tusing entt::id_type = std::uint32_t

    Alias declaration for type identifiers.

    -

    Definition at line 14 of file fwd.hpp.

    +

    Definition at line 29 of file fwd.hpp.

    @@ -1768,10 +1764,10 @@ template<typename... Args>
    -template<auto Value>
    +template<auto Value>
    - +
    using entt::integral_constant = std::integral_constant<decltype(Value), Value>using entt::integral_constant = std::integral_constant<decltype(Value), Value>
    @@ -1784,7 +1780,7 @@ template<auto Val -

    Definition at line 96 of file type_traits.hpp.

    +

    Definition at line 97 of file type_traits.hpp.

    @@ -1794,10 +1790,10 @@ template<auto Val
    -template<typename Member >
    +template<typename Member>
    - +
    using entt::member_class_t = typename member_class<Member>::typeusing entt::member_class_t = typename member_class<Member>::type
    @@ -1810,25 +1806,7 @@ template<typename -

    Definition at line 868 of file type_traits.hpp.

    - -
    -
    - -

    ◆ meta_any_policy

    - -
    -
    - -

    Possible modes of a meta any object.

    - -

    Definition at line 176 of file meta.hpp.

    +

    Definition at line 870 of file type_traits.hpp.

    @@ -1838,10 +1816,10 @@ template<typename
    -template<typename Type , typename Candidate >
    +template<typename Type, typename Candidate>
    - +
    using entt::meta_function_helper_t = typename meta_function_helper<Type, Candidate>::typeusing entt::meta_function_helper_t = typename meta_function_helper<Type, Candidate>::type
    @@ -1865,10 +1843,10 @@ template<typename
    -template<typename Type , typename It >
    +template<typename Type, typename It>
    - +
    using entt::meta_range = iterable_adaptor<internal::meta_range_iterator<Type, It>>using entt::meta_range = iterable_adaptor<internal::meta_range_iterator<Type, It>>
    @@ -1892,10 +1870,10 @@ template<typename
    -template<std::size_t Index, typename Candidate >
    +template<std::size_t Index, typename Candidate>
    - +
    using entt::nth_argument_t = typename nth_argument<Index, Candidate>::typeusing entt::nth_argument_t = typename nth_argument<Index, Candidate>::type
    @@ -1909,25 +1887,7 @@ template<std::size_t Index, Definition at line 903 of file type_traits.hpp.

    - -
    -
    - -

    ◆ observer

    - -
    -
    - -

    Alias declaration for the most common use case.

    - -

    Definition at line 96 of file fwd.hpp.

    +

    Definition at line 905 of file type_traits.hpp.

    @@ -1938,14 +1898,14 @@ template<std::size_t Index, - +
    using entt::organizer = basic_organizer<registry>using entt::organizer = basic_organizer<registry>
    @@ -1955,10 +1915,10 @@ template<std::size_t Index,
    +template<typename Concept>
    - +
    using entt::poly = basic_poly<Concept>using entt::poly = basic_poly<Concept>
    @@ -1981,10 +1941,10 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - +
    using entt::reactive_mixin = basic_reactive_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>using entt::reactive_mixin = basic_reactive_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>
    @@ -1997,7 +1957,7 @@ template<typename -

    Definition at line 90 of file fwd.hpp.

    +

    Definition at line 92 of file fwd.hpp.

    @@ -2008,14 +1968,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 93 of file fwd.hpp.

    +

    Definition at line 95 of file fwd.hpp.

    @@ -2026,14 +1986,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 131 of file fwd.hpp.

    +

    Definition at line 130 of file fwd.hpp.

    @@ -2044,7 +2004,7 @@ template<typename
    @@ -2061,10 +2021,10 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - +
    using entt::sigh_mixin = basic_sigh_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>using entt::sigh_mixin = basic_sigh_mixin<Type, basic_registry<typename Type::entity_type, typename Type::base_type::allocator_type>>
    @@ -2077,7 +2037,7 @@ template<typename -

    Definition at line 83 of file fwd.hpp.

    +

    Definition at line 85 of file fwd.hpp.

    @@ -2088,14 +2048,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 122 of file fwd.hpp.

    +

    Definition at line 121 of file fwd.hpp.

    @@ -2106,14 +2066,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 125 of file fwd.hpp.

    +

    Definition at line 124 of file fwd.hpp.

    @@ -2124,14 +2084,14 @@ template<typename

    Alias declaration for the most common use case.

    -

    Definition at line 69 of file fwd.hpp.

    +

    Definition at line 71 of file fwd.hpp.

    @@ -2141,10 +2101,10 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - +
    using entt::storage = basic_storage<Type>using entt::storage = basic_storage<Type>
    @@ -2157,7 +2117,7 @@ template<typename -

    Definition at line 76 of file fwd.hpp.

    +

    Definition at line 78 of file fwd.hpp.

    @@ -2170,7 +2130,7 @@ template<typename template<typename... Args>
    - +
    using entt::storage_for_t = typename storage_for<Args...>::typeusing entt::storage_for_t = typename storage_for<Args...>::type
    @@ -2183,7 +2143,7 @@ template<typename... Args>
    -

    Definition at line 270 of file fwd.hpp.

    +

    Definition at line 269 of file fwd.hpp.

    @@ -2196,7 +2156,7 @@ template<typename... Args>
    template<typename... Args>
    - +
    using entt::storage_type_t = typename storage_type<Args...>::typeusing entt::storage_type_t = typename storage_type<Args...>::type
    @@ -2209,7 +2169,7 @@ template<typename... Args>
    -

    Definition at line 251 of file fwd.hpp.

    +

    Definition at line 250 of file fwd.hpp.

    @@ -2222,7 +2182,7 @@ template<typename... Args>
    template<typename... Type>
    - +
    using entt::table = basic_table<std::vector<Type>...>using entt::table = basic_table<std::vector<Type>...>
    @@ -2245,10 +2205,10 @@ template<typename... Type>
    -template<id_type Value>
    +template<id_type Value>
    - +
    using entt::tag = integral_constant<Value>using entt::tag = integral_constant<Value>
    @@ -2256,12 +2216,12 @@ template<id_type

    Alias template to facilitate the creation of named values.

    Template Parameters
    - +
    ValueA constant value at least convertible to id_type.
    ValueA constant value at least convertible to id_type.
    -

    Definition at line 103 of file type_traits.hpp.

    +

    Definition at line 104 of file type_traits.hpp.

    @@ -2271,10 +2231,10 @@ template<id_type
    -template<typename Type >
    +template<typename Type>
    - +
    using entt::type_identity_t = typename type_identity<Type>::typeusing entt::type_identity_t = typename type_identity<Type>::type
    @@ -2300,7 +2260,7 @@ template<typename template<typename... List>
    - +
    using entt::type_list_cat_t = typename type_list_cat<List...>::typeusing entt::type_list_cat_t = typename type_list_cat<List...>::type
    @@ -2313,7 +2273,7 @@ template<typename... List>
    -

    Definition at line 251 of file type_traits.hpp.

    +

    Definition at line 252 of file type_traits.hpp.

    @@ -2326,7 +2286,7 @@ template<typename... List>
    template<typename... List>
    - +
    using entt::type_list_diff_t = typename type_list_diff<List...>::typeusing entt::type_list_diff_t = typename type_list_diff<List...>::type
    @@ -2339,7 +2299,7 @@ template<typename... List>
    -

    Definition at line 334 of file type_traits.hpp.

    +

    Definition at line 335 of file type_traits.hpp.

    @@ -2349,10 +2309,10 @@ template<typename... List>
    -template<std::size_t Index, typename List >
    +template<std::size_t Index, typename List>
    - +
    using entt::type_list_element_t = typename type_list_element<Index, List>::typeusing entt::type_list_element_t = typename type_list_element<Index, List>::type
    @@ -2366,7 +2326,7 @@ template<std::size_t Index, Definition at line 148 of file type_traits.hpp.

    +

    Definition at line 149 of file type_traits.hpp.

    @@ -2376,10 +2336,10 @@ template<std::size_t Index,
    -template<typename List , template< typename... > class Op>
    +template<typename List, template< typename... > class Op>
    - +
    using entt::type_list_transform_t = typename type_list_transform<List, Op>::typeusing entt::type_list_transform_t = typename type_list_transform<List, Op>::type
    @@ -2393,7 +2353,7 @@ template<typename -

    Definition at line 357 of file type_traits.hpp.

    +

    Definition at line 359 of file type_traits.hpp.

    @@ -2403,10 +2363,10 @@ template<typename
    -template<typename List >
    +template<typename List>
    - +
    using entt::type_list_unique_t = typename type_list_unique<List>::typeusing entt::type_list_unique_t = typename type_list_unique<List>::type
    @@ -2419,7 +2379,7 @@ template<typename -

    Definition at line 286 of file type_traits.hpp.

    +

    Definition at line 287 of file type_traits.hpp.

    @@ -2429,10 +2389,10 @@ template<typename
    -template<typename Type , typename >
    +template<typename Type, typename>
    - +
    using entt::unpack_as_type = Typeusing entt::unpack_as_type = Type
    @@ -2445,7 +2405,7 @@ template<typename -

    Definition at line 81 of file type_traits.hpp.

    +

    Definition at line 82 of file type_traits.hpp.

    @@ -2458,7 +2418,7 @@ template<typename template<typename... List>
    - +
    using entt::value_list_cat_t = typename value_list_cat<List...>::typeusing entt::value_list_cat_t = typename value_list_cat<List...>::type
    @@ -2471,7 +2431,7 @@ template<typename... List>
    -

    Definition at line 515 of file type_traits.hpp.

    +

    Definition at line 517 of file type_traits.hpp.

    @@ -2484,7 +2444,7 @@ template<typename... List>
    template<typename... List>
    - +
    using entt::value_list_diff_t = typename value_list_diff<List...>::typeusing entt::value_list_diff_t = typename value_list_diff<List...>::type
    @@ -2497,7 +2457,7 @@ template<typename... List>
    -

    Definition at line 595 of file type_traits.hpp.

    +

    Definition at line 597 of file type_traits.hpp.

    @@ -2507,10 +2467,10 @@ template<typename... List>
    -template<std::size_t Index, typename List >
    +template<std::size_t Index, typename List>
    - +
    using entt::value_list_element_t = typename value_list_element<Index, List>::typeusing entt::value_list_element_t = typename value_list_element<Index, List>::type
    @@ -2524,7 +2484,7 @@ template<std::size_t Index, Definition at line 404 of file type_traits.hpp.

    +

    Definition at line 406 of file type_traits.hpp.

    @@ -2534,10 +2494,10 @@ template<std::size_t Index,
    +template<typename Type>
    - +
    using entt::value_list_unique_t = typename value_list_unique<Type>::typeusing entt::value_list_unique_t = typename value_list_unique<Type>::type
    @@ -2550,7 +2510,7 @@ template<typename -

    Definition at line 547 of file type_traits.hpp.

    +

    Definition at line 549 of file type_traits.hpp.

    @@ -2560,10 +2520,10 @@ template<typename
    -template<typename Get , typename Exclude = exclude_t<>>
    +template<typename Get, typename Exclude = exclude_t<>>
    - +
    using entt::view = basic_view<type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>>using entt::view = basic_view<type_list_transform_t<Get, storage_for>, type_list_transform_t<Exclude, storage_for>>
    @@ -2577,13 +2537,13 @@ template<typename -

    Definition at line 278 of file fwd.hpp.

    +

    Definition at line 277 of file fwd.hpp.

    Enumeration Type Documentation

    -

    ◆ any_policy

    +

    ◆ any_policy [1/2]

    @@ -2592,19 +2552,23 @@ template<typename - +
    enum class entt::any_policy : std::uint8_tenum class entt::any_policy : std::uint8_t
    -strong +strong

    Possible modes of an any object.

    - + + @@ -2612,7 +2576,33 @@ template<typename
    Enumerator
    owner 

    Default mode, the object owns the contained element.

    +
    Enumerator
    empty 

    Default mode, the object does not own any elements.

    +
    dynamic 

    Owning mode, the object owns a dynamically allocated element.

    +
    embedded 

    Owning mode, the object owns an embedded element.

    ref 

    Aliasing mode, the object points to a non-const element.

    -

    Definition at line 33 of file any.hpp.

    +

    Definition at line 11 of file fwd.hpp.

    + +
    +
    + +

    ◆ any_policy [2/2]

    + +
    +
    + + + + + +
    + + + + +
    enum class entt::any_policy : std::uint8_t
    +
    +strong
    +
    + +

    Possible modes of an any object.

    + +

    Definition at line 11 of file fwd.hpp.

    @@ -2626,12 +2616,12 @@ template<typename - +
    enum class entt::deletion_policy : std::uint8_tenum class entt::deletion_policy : std::uint8_t
    -strong +strong
    @@ -2644,6 +2634,8 @@ template<typename swap_only 

    Swap-only deletion policy.

    +unspecified 

    Unspecified deletion policy.

    +

    Definition at line 17 of file fwd.hpp.

    @@ -2660,12 +2652,12 @@ template<typename - +
    enum class entt::entity : id_typeenum class entt::entity : id_type
    -strong +strong
    @@ -2683,25 +2675,25 @@ template<typename
    -template<typename Type , typename Allocator , typename... Args>
    +template<typename Type, typename Allocator, typename... Args>
    +constexpr
    - + - + - +
    constexpr auto entt::allocate_unique auto entt::allocate_unique (Allocator & allocator, Allocator & allocator,
    Args &&... args )Args &&... args )
    -constexpr
    @@ -2734,7 +2726,7 @@ template<typename
    -template<typename Type , std::size_t Len, std::size_t Align>
    +template<typename Type, std::size_t Len, std::size_t Align>
    - +
    @@ -2742,18 +2734,18 @@ template<typename
    std::remove_const_t< Type > entt::any_cast (basic_any< Len, Align > && data)basic_any< Len, Align > && data)
    -noexcept +nodiscardnoexcept
    -

    Performs type-safe access to the contained object.

    +

    Performs type-safe access to the contained object.

    Template Parameters
    @@ -2768,9 +2760,9 @@ template<typename
    TypeType to which conversion is required.
    -
    Returns
    The element converted to the requested type.
    +
    Returns
    The element converted to the requested type.
    -

    Definition at line 452 of file any.hpp.

    +

    Definition at line 482 of file any.hpp.

    @@ -2780,7 +2772,7 @@ template<typename
    -template<typename Type , std::size_t Len, std::size_t Align>
    +template<typename Type, std::size_t Len, std::size_t Align>
    - +
    @@ -2788,18 +2780,18 @@ template<typename
    std::remove_const_t< Type > entt::any_cast (basic_any< Len, Align > & data)basic_any< Len, Align > & data)
    -noexcept +nodiscardnoexcept
    -

    Performs type-safe access to the contained object.

    +

    Performs type-safe access to the contained object.

    Template Parameters
    @@ -2814,9 +2806,9 @@ template<typename
    TypeType to which conversion is required.
    -
    Returns
    The element converted to the requested type.
    +
    Returns
    The element converted to the requested type.
    -

    Definition at line 443 of file any.hpp.

    +

    Definition at line 472 of file any.hpp.

    @@ -2826,7 +2818,7 @@ template<typename
    -template<typename Type , std::size_t Len, std::size_t Align>
    +template<typename Type, std::size_t Len, std::size_t Align>
    - +
    @@ -2834,18 +2826,18 @@ template<typename
    Type * entt::any_cast (basic_any< Len, Align > * data)basic_any< Len, Align > * data)
    -noexcept +nodiscardnoexcept
    -

    Performs type-safe access to the contained object.

    +

    Performs type-safe access to the contained object.

    Template Parameters
    @@ -2860,9 +2852,9 @@ template<typename
    TypeType to which conversion is required.
    -
    Returns
    The element converted to the requested type.
    +
    Returns
    The element converted to the requested type.
    -

    Definition at line 475 of file any.hpp.

    +

    Definition at line 505 of file any.hpp.

    @@ -2872,7 +2864,7 @@ template<typename
    -template<typename Type , std::size_t Len, std::size_t Align>
    +template<typename Type, std::size_t Len, std::size_t Align>
    - +
    @@ -2880,13 +2872,13 @@ template<typename
    std::remove_const_t< Type > entt::any_cast (const basic_any< Len, Align > & data)const basic_any< Len, Align > & data)
    -noexcept +nodiscardnoexcept
    @@ -2908,7 +2900,7 @@ template<typename
    Returns
    The element converted to the requested type.
    -

    Definition at line 435 of file any.hpp.

    +

    Definition at line 464 of file any.hpp.

    @@ -2918,26 +2910,26 @@ template<typename
    -template<typename Type , std::size_t Len, std::size_t Align>
    +template<typename Type, std::size_t Len, std::size_t Align>
    +nodiscardnoexcept
    - + - +
    const Type * entt::any_cast const Type * entt::any_cast (const basic_any< Len, Align > * data)const basic_any< Len, Align > * data)
    -noexcept
    -

    Performs type-safe access to the contained object.

    +

    Performs type-safe access to the contained object.

    Template Parameters
    @@ -2952,9 +2944,9 @@ template<typename
    TypeType to which conversion is required.
    -
    Returns
    The element converted to the requested type.
    +
    Returns
    The element converted to the requested type.
    -

    Definition at line 468 of file any.hpp.

    +

    Definition at line 498 of file any.hpp.

    @@ -2964,17 +2956,17 @@ template<typename
    -template<typename Char >
    +template<typename Char>
    - + - +
    entt::basic_hashed_string (const Char * str, const Char * str,
    std::size_t len ) -> basic_hashed_string< Char >std::size_t len ) -> basic_hashed_string< Char >
    @@ -3002,13 +2994,13 @@ template<typename
    -template<typename Char , std::size_t N>
    +template<typename Char, std::size_t N>
    - - + +
    entt::basic_hashed_string (const Char(&) str[N]) -> basic_hashed_string< Char >const Char(&) str[N]) -> basic_hashed_string< Char >
    @@ -3041,12 +3033,12 @@ template<typename... Get, typename... Exclude>
    entt::basic_view ( - std::tuple< Get &... > , + std::tuple< Get &... > , - std::tuple< Exclude &... > = {} ) -> basic_view< get_t< Get... >, exclude_t< Exclude... > > + std::tuple< Exclude &... > = {} ) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >
    @@ -3101,17 +3093,17 @@ template<typename... Type>
    -template<typename Type , typename Other >
    +template<typename Type, typename Other>
    - + - +
    entt::compressed_pair (Type && , Type && ,
    Other &&  ) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >Other &&  ) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >
    @@ -3133,13 +3125,13 @@ template<typename
    -template<auto Candidate>
    +template<auto Candidate>
    - - + +
    entt::delegate (connect_arg_t< Candidate > ) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >connect_arg_t< Candidate > ) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
    @@ -3160,17 +3152,17 @@ template<auto Can
    -template<auto Candidate, typename Type >
    +template<auto Candidate, typename Type>
    - + - +
    entt::delegate (connect_arg_t< Candidate > , connect_arg_t< Candidate > ,
    Type &&  ) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >Type &&  ) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >
    @@ -3192,17 +3184,17 @@ template<auto Can
    -template<typename Ret , typename... Args>
    +template<typename Ret, typename... Args>
    - + - +
    entt::delegate (Ret(*)(const void *, Args...) , Ret(*  )(const void *, Args...),
    const void * = nullptr ) -> delegate< Ret(Args...)>const void * = nullptr ) -> delegate< Ret(Args...)>
    @@ -3224,12 +3216,12 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - + - +
    decltype(auto) entt::dereference_meta_pointer_like decltype(auto) entt::dereference_meta_pointer_like (const Type & value)const Type & value)
    @@ -3260,17 +3252,17 @@ template<typename
    -template<typename Graph >
    +template<typename Graph>
    - + - + - +
    void entt::dot void entt::dot (std::ostream & out, std::ostream & out,
    const Graph & graph )const Graph & graph )
    @@ -3300,22 +3292,22 @@ template<typename
    -template<typename Graph , typename Writer >
    +template<typename Graph, typename Writer>
    - + - + - + - +
    void entt::dot void entt::dot (std::ostream & out, std::ostream & out,
    const Graph & graph, const Graph & graph,
    Writer writer )Writer writer )
    @@ -3347,25 +3339,25 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > entt::fast_mod std::enable_if_t< std::is_unsigned_v< Type >, Type > entt::fast_mod (const Type value, const Type value,
    const std::size_t mod )const std::size_t mod )
    -constexprnoexcept
    @@ -3386,7 +3378,7 @@ template<typename
    Returns
    The common remainder.
    -

    Definition at line 62 of file bit.hpp.

    +

    Definition at line 63 of file bit.hpp.

    @@ -3396,12 +3388,12 @@ template<typename
    -template<typename Func >
    +template<typename Func>
    - +
    entt::forward_apply (Func )Func ) -> forward_apply< std::remove_reference_t< std::remove_cv_t< Func > > >
    @@ -3423,15 +3415,23 @@ template<typename
    -template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type >
    +template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type>
    + + + + + +
    - +
    basic_any< Len, Align > entt::forward_as_any basic_any< Len, Align > entt::forward_as_any ( Type && value)
    +
    +nodiscard

    Forwards its argument and avoids copies for lvalue references.

    @@ -3451,7 +3451,7 @@ template<std::size_t Len = basic_any<>::length, std::size_t Align = bas
    Returns
    A properly initialized and not necessarily owning wrapper.
    -

    Definition at line 508 of file any.hpp.

    +

    Definition at line 538 of file any.hpp.

    @@ -3461,12 +3461,15 @@ template<std::size_t Len = basic_any<>::length, std::size_t Align = bas
    -template<typename Type >
    +template<typename Type>
    + + + + + +
    - + @@ -3474,6 +3477,11 @@ template<typename
    meta_any entt::forward_as_meta (const meta_ctx & ctx, const meta_ctx & ctx,
    Type && value )
    +
    +nodiscard

    Forwards its argument and avoids copies for lvalue references.

    @@ -3492,7 +3500,7 @@ template<typename
    Returns
    A properly initialized and not necessarily owning wrapper.
    -

    Definition at line 630 of file meta.hpp.

    +

    Definition at line 672 of file meta.hpp.

    @@ -3502,7 +3510,10 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    + + + + + +
    @@ -3511,6 +3522,11 @@ template<typename
    meta_any entt::forward_as_meta
    +
    +nodiscard

    Forwards its argument and avoids copies for lvalue references.

    @@ -3528,7 +3544,7 @@ template<typename
    Returns
    A properly initialized and not necessarily owning wrapper.
    -

    Definition at line 641 of file meta.hpp.

    +

    Definition at line 683 of file meta.hpp.

    @@ -3538,21 +3554,21 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, bool > entt::has_single_bit std::enable_if_t< std::is_unsigned_v< Type >, bool > entt::has_single_bit (const Type value)const Type value)
    -constexprnoexcept
    @@ -3582,17 +3598,17 @@ template<typename
    -template<auto Member, typename Registry = std::decay_t<nth_argument_t<0u, decltype(Member)>>>
    +template<auto Member, typename Registry = std::decay_t<nth_argument_t<0u, decltype(Member)>>>
    - + - + - +
    void entt::invoke void entt::invoke (Registry & reg, Registry & reg,
    const typename Registry::entity_type entt )const typename Registry::entity_type entt )
    @@ -3623,15 +3639,23 @@ template<auto Mem
    -template<typename Type , std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    +template<typename Type, std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    + + + + + +
    - + - +
    basic_any< Len, Align > entt::make_any basic_any< Len, Align > entt::make_any (Args &&... args)Args &&... args)
    +
    +nodiscard

    Constructs a wrapper from a given type, passing it all arguments.

    @@ -3652,7 +3676,7 @@ template<typename
    Returns
    A properly initialized wrapper for an object of the given type.
    -

    Definition at line 495 of file any.hpp.

    +

    Definition at line 525 of file any.hpp.

    @@ -3662,15 +3686,15 @@ template<typename
    -template<typename Type , typename Allocator , typename... Args>
    +template<typename Type, typename Allocator, typename... Args>
    +constexpr
    - + - + @@ -3680,7 +3704,7 @@ template<typename Type , typename Allocator , typename... Args>
    constexpr Type entt::make_obj_using_allocator Type entt::make_obj_using_allocator (const Allocator & allocator, const Allocator & allocator,
    -constexpr
    @@ -3714,21 +3738,21 @@ template<typename Type , typename Allocator , typename... Args>
    -template<typename Type >
    +template<typename Type>
    +nodiscardnoexcept
    - + - +
    auto entt::meta auto entt::meta ())
    -noexcept
    @@ -3744,7 +3768,7 @@ template<typename
    Returns
    A meta factory for the given type.
    -

    Definition at line 573 of file factory.hpp.

    +

    Definition at line 535 of file factory.hpp.

    @@ -3754,13 +3778,13 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardnoexcept
    - + @@ -3768,7 +3792,7 @@ template<typename
    auto entt::meta auto entt::meta ( meta_ctx & ctx)
    -noexcept
    @@ -3790,7 +3814,7 @@ template<typename
    Returns
    A meta factory for the given type.
    -

    Definition at line 554 of file factory.hpp.

    +

    Definition at line 519 of file factory.hpp.

    @@ -3800,19 +3824,27 @@ template<typename
    -template<typename Type , typename Policy = as_is_t, typename Candidate >
    +template<typename Type, typename Policy = as_is_t, typename Candidate>
    + + + + + +
    - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct (Candidate && candidate, Candidate && candidate,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -3833,7 +3865,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 501 of file utility.hpp.

    +

    Definition at line 485 of file utility.hpp.

    @@ -3843,24 +3875,32 @@ template<typename
    -template<typename Type , typename Policy = as_is_t, typename Candidate >
    +template<typename Type, typename Policy = as_is_t, typename Candidate>
    + + + + + +
    - + - + - +
    meta_any entt::meta_construct (const meta_ctx & ctx, const meta_ctx & ctx,
    Candidate && candidate, Candidate && candidate,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -3884,7 +3924,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 482 of file utility.hpp.

    +

    Definition at line 465 of file utility.hpp.

    @@ -3894,19 +3934,27 @@ template<typename
    -template<typename Type , typename... Args>
    +template<typename Type, typename... Args>
    + + + + + +
    - + - +
    meta_any entt::meta_construct (const meta_ctx & ctx, const meta_ctx & ctx,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -3928,7 +3976,7 @@ template<typename
    Returns
    A meta any containing the new instance, if any.
    -

    Definition at line 450 of file utility.hpp.

    +

    Definition at line 433 of file utility.hpp.

    @@ -3938,19 +3986,27 @@ template<typename
    -template<typename Type , auto Candidate, typename Policy = as_is_t>
    +template<typename Type, auto Candidate, typename Policy = as_is_t>
    + + + + + +
    - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct (const meta_ctx & ctx, const meta_ctx & ctx,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -3973,7 +4029,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 520 of file utility.hpp.

    +

    Definition at line 504 of file utility.hpp.

    @@ -3983,15 +4039,23 @@ template<typename
    -template<typename Type , typename... Args>
    +template<typename Type, typename... Args>
    + + + + + +
    - +
    meta_any entt::meta_construct (meta_any *const args)meta_any *const args)
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -4010,7 +4074,7 @@ template<typename
    Returns
    A meta any containing the new instance, if any.
    -

    Definition at line 462 of file utility.hpp.

    +

    Definition at line 445 of file utility.hpp.

    @@ -4020,15 +4084,23 @@ template<typename
    -template<typename Type , auto Candidate, typename Policy = as_is_t>
    +template<typename Type, auto Candidate, typename Policy = as_is_t>
    + + + + + +
    - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_construct (meta_any *const args)meta_any *const args)
    +
    +nodiscard

    Tries to construct an instance given a list of erased parameters.

    @@ -4048,7 +4120,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 533 of file utility.hpp.

    +

    Definition at line 517 of file utility.hpp.

    @@ -4058,12 +4130,15 @@ template<typename
    -template<typename Policy = as_is_t, typename Type >
    +template<typename Policy = as_is_t, typename Type>
    + + + + + +
    - + - + @@ -4071,6 +4146,11 @@ template<typename
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_dispatch std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_dispatch (const meta_ctx & ctx, const meta_ctx & ctx,
    Type && value )
    +
    +nodiscard

    Wraps a value depending on the given policy.

    @@ -4102,15 +4182,23 @@ template<typename
    -template<typename Policy = as_is_t, typename Type >
    +template<typename Policy = as_is_t, typename Type>
    + + + + + +
    - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_dispatch std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_dispatch ( Type && value)
    +
    +nodiscard

    Wraps a value depending on the given policy.

    @@ -4139,12 +4227,15 @@ template<typename
    -template<typename Type , auto Data, typename Policy = as_is_t>
    +template<typename Type, auto Data, typename Policy = as_is_t>
    + + + + + +
    - + - + @@ -4152,11 +4243,14 @@ template<typename
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_getter std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_getter (const meta_ctx & ctx, const meta_ctx & ctx,
    meta_handle instance )
    +
    +nodiscard

    Gets the value of a given variable.

    -
    Warning
    The context provided is used only for the return type.
    - It's up to the caller to bind the arguments to the right context(s).
    Template Parameters
    @@ -4174,7 +4268,7 @@ template<typename
    Returns
    A meta any containing the value of the underlying variable.
    -

    Definition at line 275 of file utility.hpp.

    +

    Definition at line 355 of file utility.hpp.

    @@ -4184,15 +4278,23 @@ template<typename
    -template<typename Type , auto Data, typename Policy = as_is_t>
    +template<typename Type, auto Data, typename Policy = as_is_t>
    +
    TypeReflected type to which the variable is associated.
    + + + + +
    - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_getter std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_getter ( meta_handle instance)
    +
    +nodiscard

    Gets the value of a given variable.

    @@ -4212,7 +4314,7 @@ template<typename
    Returns
    A meta any containing the value of the underlying variable.
    -

    Definition at line 312 of file utility.hpp.

    +

    Definition at line 317 of file utility.hpp.

    @@ -4222,34 +4324,40 @@ template<typename
    -template<typename Type , typename Policy = as_is_t, typename Candidate >
    +template<typename Type, typename Policy = as_is_t, typename Candidate>
    + + + + + +
    - + - + - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke (const meta_ctx & ctx, const meta_ctx & ctx,
    meta_handle instance, meta_handle instance,
    Candidate && candidate, Candidate && candidate,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to invoke an object given a list of erased parameters.

    -
    Warning
    The context provided is used only for the return type.
    - It's up to the caller to bind the arguments to the right context(s).
    Template Parameters
    @@ -4279,7 +4387,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 383 of file utility.hpp.

    +

    Definition at line 386 of file utility.hpp.

    @@ -4289,29 +4397,35 @@ template<typename
    -template<typename Type , auto Candidate, typename Policy = as_is_t>
    +template<typename Type, auto Candidate, typename Policy = as_is_t>
    +
    TypeReflected type to which the object to invoke is associated.
    + + + + +
    - + - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke (const meta_ctx & ctx, const meta_ctx & ctx,
    meta_handle instance, meta_handle instance,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to invoke a function given a list of erased parameters.

    -
    Warning
    The context provided is used only for the return type.
    - It's up to the caller to bind the arguments to the right context(s).
    Template Parameters
    @@ -4330,7 +4444,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 418 of file utility.hpp.

    +

    Definition at line 415 of file utility.hpp.

    @@ -4340,24 +4454,32 @@ template<typename
    -template<typename Type , typename Policy = as_is_t, typename Candidate >
    +template<typename Type, typename Policy = as_is_t, typename Candidate>
    +
    TypeReflected type to which the function is associated.
    + + + + +
    - + - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke (meta_handle instance, meta_handle instance,
    Candidate && candidate, Candidate && candidate,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to invoke an object given a list of erased parameters.

    @@ -4379,7 +4501,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 398 of file utility.hpp.

    +

    Definition at line 370 of file utility.hpp.

    @@ -4389,19 +4511,27 @@ template<typename
    -template<typename Type , auto Candidate, typename Policy = as_is_t>
    +template<typename Type, auto Candidate, typename Policy = as_is_t>
    + + + + + +
    - + - + - +
    std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke std::enable_if_t< is_meta_policy_v< Policy >, meta_any > entt::meta_invoke (meta_handle instance, meta_handle instance,
    meta_any *const args )meta_any *const args )
    +
    +nodiscard

    Tries to invoke a function given a list of erased parameters.

    @@ -4422,7 +4552,7 @@ template<typename
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 432 of file utility.hpp.

    +

    Definition at line 400 of file utility.hpp.

    @@ -4432,21 +4562,21 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +noexcept
    - + - +
    void entt::meta_reset void entt::meta_reset ())
    -noexcept
    @@ -4460,7 +4590,7 @@ template<typename -

    Definition at line 637 of file factory.hpp.

    +

    Definition at line 599 of file factory.hpp.

    @@ -4474,15 +4604,15 @@ template<typename - + - +
    void entt::meta_reset void entt::meta_reset ())
    -inlinenoexcept +inlinenoexcept
    @@ -4490,7 +4620,7 @@ template<typename

    Resets all meta types.

    See also
    meta_reset
    -

    Definition at line 657 of file factory.hpp.

    +

    Definition at line 619 of file factory.hpp.

    @@ -4504,15 +4634,15 @@ template<typename - + - +
    void entt::meta_reset void entt::meta_reset (const id_type id)const id_type id)
    -inlinenoexcept +inlinenoexcept
    @@ -4528,7 +4658,7 @@ template<typename -

    Definition at line 612 of file factory.hpp.

    +

    Definition at line 574 of file factory.hpp.

    @@ -4538,13 +4668,13 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +noexcept
    - + @@ -4552,7 +4682,7 @@ template<typename
    void entt::meta_reset void entt::meta_reset ( meta_ctx & ctx)
    -noexcept
    @@ -4572,7 +4702,7 @@ template<typename -

    Definition at line 625 of file factory.hpp.

    +

    Definition at line 587 of file factory.hpp.

    @@ -4586,7 +4716,7 @@ template<typename - + @@ -4594,7 +4724,7 @@ template<typename
    void entt::meta_reset void entt::meta_reset ( meta_ctx & ctx)
    -inlinenoexcept +inlinenoexcept
    @@ -4608,7 +4738,7 @@ template<typename -

    Definition at line 648 of file factory.hpp.

    +

    Definition at line 610 of file factory.hpp.

    @@ -4622,19 +4752,19 @@ template<typename - + - + - +
    void entt::meta_reset void entt::meta_reset (meta_ctx & ctx, meta_ctx & ctx,
    const id_type id )const id_type id )
    -inlinenoexcept +inlinenoexcept
    @@ -4651,7 +4781,7 @@ template<typename -

    Definition at line 589 of file factory.hpp.

    +

    Definition at line 551 of file factory.hpp.

    @@ -4661,12 +4791,15 @@ template<typename
    -template<typename Type , auto Data>
    +template<typename Type, auto Data>
    + + + + + +
    - + - + @@ -4674,6 +4807,11 @@ template<typename
    bool entt::meta_setter bool entt::meta_setter (meta_handle instance, meta_handle instance,
    meta_any value )
    +
    +nodiscard

    Sets the value of a given variable.

    @@ -4693,7 +4831,7 @@ template<typename
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 226 of file utility.hpp.

    +

    Definition at line 276 of file utility.hpp.

    @@ -4703,21 +4841,21 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > entt::next_power_of_two std::enable_if_t< std::is_unsigned_v< Type >, Type > entt::next_power_of_two (const Type value)const Type value)
    -constexprnoexcept
    @@ -4742,7 +4880,7 @@ template<typename
    -

    ◆ operator!=() [1/14]

    +

    ◆ operator!=() [1/13]

    @@ -4753,19 +4891,19 @@ template<typename... Args, typename... Other>
    - + - + - +
    bool entt::operator!= bool entt::operator!= (const basic_handle< Args... > & lhs, const basic_handle< Args... > & lhs,
    const basic_handle< Other... > & rhs )const basic_handle< Other... > & rhs )
    -noexcept +nodiscardnoexcept
    @@ -4792,7 +4930,7 @@ template<typename... Args, typename... Other>
    -

    ◆ operator!=() [2/14]

    +

    ◆ operator!=() [2/13]

    @@ -4803,19 +4941,19 @@ template<typename... Args>
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const basic_handle< Args... > & lhs, const basic_handle< Args... > & lhs,
    const null_t rhs )const null_t rhs )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -4841,30 +4979,30 @@ template<typename... Args>
    -

    ◆ operator!=() [3/14]

    +

    ◆ operator!=() [3/13]

    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -4890,30 +5028,30 @@ template<typename
    -

    ◆ operator!=() [4/14]

    +

    ◆ operator!=() [4/13]

    -template<typename Ret , typename... Args>
    +template<typename Ret, typename... Args>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator!= bool entt::operator!= (const delegate< Ret(Args...)> & lhs, const delegate< Ret(Args...)> & lhs,
    const delegate< Ret(Args...)> & rhs )const delegate< Ret(Args...)> & rhs )
    -noexcept
    @@ -4940,30 +5078,30 @@ template<typename
    -

    ◆ operator!=() [5/14]

    +

    ◆ operator!=() [5/13]

    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const Entity lhs, const Entity lhs,
    const null_t rhs )const null_t rhs )
    -constexprnoexcept
    @@ -4989,30 +5127,30 @@ template<typename
    -

    ◆ operator!=() [6/14]

    +

    ◆ operator!=() [6/13]

    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const Entity lhs, const Entity lhs,
    const tombstone_t rhs )const tombstone_t rhs )
    -constexprnoexcept
    @@ -5038,30 +5176,30 @@ template<typename
    -

    ◆ operator!=() [7/14]

    +

    ◆ operator!=() [7/13]

    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const iota_iterator< Type > & lhs, const iota_iterator< Type > & lhs,
    const iota_iterator< Type > & rhs )const iota_iterator< Type > & rhs )
    -constexprnoexcept
    @@ -5087,7 +5225,7 @@ template<typename
    -

    ◆ operator!=() [8/14]

    +

    ◆ operator!=() [8/13]

    @@ -5096,19 +5234,19 @@ template<typename - + - + - +
    bool entt::operator!= bool entt::operator!= (const meta_data & lhs, const meta_data & lhs,
    const meta_data & rhs )const meta_data & rhs )
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -5123,12 +5261,12 @@ template<typename
    Returns
    False if the objects refer to the same node, true otherwise.
    -

    Definition at line 1002 of file meta.hpp.

    +

    Definition at line 958 of file meta.hpp.

    -

    ◆ operator!=() [9/14]

    +

    ◆ operator!=() [9/13]

    @@ -5137,19 +5275,19 @@ template<typename - + - + - +
    bool entt::operator!= bool entt::operator!= (const meta_func & lhs, const meta_func & lhs,
    const meta_func & rhs )const meta_func & rhs )
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -5164,53 +5302,12 @@ template<typename
    Returns
    False if the objects refer to the same node, true otherwise.
    -

    Definition at line 1148 of file meta.hpp.

    - -
    -
    - -

    ◆ operator!=() [10/14]

    - -
    -
    - - - - - -
    - - - - - - - - - - - -
    bool entt::operator!= (const meta_prop & lhs,
    const meta_prop & rhs )
    -
    -inlinenoexcept
    -
    - -

    Checks if two objects refer to the same type.

    -
    Parameters
    - - - -
    lhsAn object, either valid or not.
    rhsAn object, either valid or not.
    -
    -
    -
    Returns
    False if the objects refer to the same node, true otherwise.
    - -

    Definition at line 825 of file meta.hpp.

    +

    Definition at line 1083 of file meta.hpp.

    -

    ◆ operator!=() [11/14]

    +

    ◆ operator!=() [10/13]

    @@ -5219,19 +5316,19 @@ template<typename - + - + - +
    bool entt::operator!= bool entt::operator!= (const meta_type & lhs, const meta_type & lhs,
    const meta_type & rhs )const meta_type & rhs )
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -5246,12 +5343,12 @@ template<typename
    Returns
    False if the objects refer to the same node, true otherwise.
    -

    Definition at line 1615 of file meta.hpp.

    +

    Definition at line 1535 of file meta.hpp.

    -

    ◆ operator!=() [12/14]

    +

    ◆ operator!=() [11/13]

    @@ -5262,19 +5359,19 @@ template<typename... Args>
    - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const null_t lhs, const null_t lhs,
    const basic_handle< Args... > & rhs )const basic_handle< Args... > & rhs )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -5300,30 +5397,30 @@ template<typename... Args>
    -

    ◆ operator!=() [13/14]

    +

    ◆ operator!=() [12/13]

    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator!= bool entt::operator!= (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -5350,7 +5447,7 @@ template<typename
    -

    ◆ operator!=() [14/14]

    +

    ◆ operator!=() [13/13]

    @@ -5359,19 +5456,19 @@ template<typename - + - + - +
    constexpr bool entt::operator!= bool entt::operator!= (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -5400,19 +5497,19 @@ template<typename - + - + - +
    constexpr hashed_string entt::literals::operator""_hs hashed_string entt::literals::operator""_hs (const char * str, const char * str,
    std::size_t  )std::size_t  )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -5440,19 +5537,19 @@ template<typename - + - + - +
    constexpr hashed_wstring entt::literals::operator""_hws hashed_wstring entt::literals::operator""_hws (const wchar_t * str, const wchar_t * str,
    std::size_t  )std::size_t  )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -5482,19 +5579,19 @@ template<typename... Type, typename... Other>
    - + - + - +
    constexpr type_list< Type..., Other... > entt::operator+ type_list< Type..., Other... > entt::operator+ (type_list< Type... > , type_list< Type... > ,
    type_list< Other... >  )type_list< Other... >  )
    -constexpr +constexpr
    @@ -5509,7 +5606,7 @@ template<typename... Type, typename... Other>
    Returns
    A type list composed by the types of both the type lists.
    -

    Definition at line 209 of file type_traits.hpp.

    +

    Definition at line 210 of file type_traits.hpp.

    @@ -5525,19 +5622,19 @@ template<auto... Value, auto... Other>
    - + - + - +
    constexpr value_list< Value..., Other... > entt::operator+ value_list< Value..., Other... > entt::operator+ (value_list< Value... > , value_list< Value... > ,
    value_list< Other... >  )value_list< Other... >  )
    -constexpr +constexpr
    @@ -5552,7 +5649,7 @@ template<auto... Value, auto... Other>
    Returns
    A value list composed by the values of both the value lists.
    -

    Definition at line 473 of file type_traits.hpp.

    +

    Definition at line 475 of file type_traits.hpp.

    @@ -5562,25 +5659,25 @@ template<auto... Value, auto... Other>
    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator< bool entt::operator< (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -5611,25 +5708,25 @@ template<typename
    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator< bool entt::operator< (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -5665,19 +5762,19 @@ template<typename - + - + - +
    constexpr bool entt::operator< bool entt::operator< (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -5702,25 +5799,25 @@ template<typename
    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator<= bool entt::operator<= (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -5751,25 +5848,25 @@ template<typename
    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator<= bool entt::operator<= (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -5805,19 +5902,19 @@ template<typename - + - + - +
    constexpr bool entt::operator<= bool entt::operator<= (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -5848,19 +5945,19 @@ template<typename... Args, typename... Other>
    - + - + - +
    bool entt::operator== bool entt::operator== (const basic_handle< Args... > & lhs, const basic_handle< Args... > & lhs,
    const basic_handle< Other... > & rhs )const basic_handle< Other... > & rhs )
    -noexcept +nodiscardnoexcept
    @@ -5898,19 +5995,19 @@ template<typename... Args>
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const basic_handle< Args... > & lhs, const basic_handle< Args... > & lhs,
    const null_t rhs )const null_t rhs )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -5941,25 +6038,25 @@ template<typename... Args>
    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -5990,25 +6087,25 @@ template<typename
    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const Entity lhs, const Entity lhs,
    const null_t rhs )const null_t rhs )
    -constexprnoexcept
    @@ -6039,25 +6136,25 @@ template<typename
    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const Entity lhs, const Entity lhs,
    const tombstone_t rhs )const tombstone_t rhs )
    -constexprnoexcept
    @@ -6088,25 +6185,25 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const iota_iterator< Type > & lhs, const iota_iterator< Type > & lhs,
    const iota_iterator< Type > & rhs )const iota_iterator< Type > & rhs )
    -constexprnoexcept
    @@ -6143,19 +6240,19 @@ template<typename... Args>
    - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const null_t lhs, const null_t lhs,
    const basic_handle< Args... > & rhs )const basic_handle< Args... > & rhs )
    -constexprnoexcept +nodiscardconstexprnoexcept
    @@ -6186,25 +6283,25 @@ template<typename... Args>
    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator== bool entt::operator== (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -6240,19 +6337,19 @@ template<typename - + - + - +
    constexpr bool entt::operator== bool entt::operator== (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -6277,25 +6374,25 @@ template<typename
    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator> bool entt::operator> (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -6326,25 +6423,25 @@ template<typename
    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator> bool entt::operator> (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -6380,19 +6477,19 @@ template<typename - + - + - +
    constexpr bool entt::operator> bool entt::operator> (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -6417,25 +6514,25 @@ template<typename
    -template<typename Char >
    +template<typename Char>
    +nodiscardconstexprnoexcept
    - + - + - +
    constexpr bool entt::operator>= bool entt::operator>= (const basic_hashed_string< Char > & lhs, const basic_hashed_string< Char > & lhs,
    const basic_hashed_string< Char > & rhs )const basic_hashed_string< Char > & rhs )
    -constexprnoexcept
    @@ -6466,25 +6563,25 @@ template<typename
    -template<typename Lhs , typename Rhs >
    +template<typename Lhs, typename Rhs>
    +nodiscardnoexcept
    - + - + - +
    bool entt::operator>= bool entt::operator>= (const resource< Lhs > & lhs, const resource< Lhs > & lhs,
    const resource< Rhs > & rhs )const resource< Rhs > & rhs )
    -noexcept
    @@ -6520,19 +6617,19 @@ template<typename - + - + - +
    constexpr bool entt::operator>= bool entt::operator>= (const type_info & lhs, const type_info & lhs,
    const type_info & rhs )const type_info & rhs )
    -inlineconstexprnoexcept +nodiscardconstexprnoexcept
    @@ -6557,13 +6654,13 @@ template<typename
    -template<typename Func >
    +template<typename Func>
    +nodiscardconstexprnoexcept
    - + @@ -6571,7 +6668,7 @@ template<typename
    constexpr auto entt::overload auto entt::overload ( Func * func)
    -constexprnoexcept
    @@ -6601,13 +6698,13 @@ template<typename
    -template<typename Type , typename Class >
    +template<typename Type, typename Class>
    +nodiscardconstexprnoexcept
    - + @@ -6615,7 +6712,7 @@ template<typename
    constexpr auto entt::overload auto entt::overload ( Type Class::* member)
    -constexprnoexcept
    @@ -6651,7 +6748,7 @@ template<typename... Func>
    entt::overloaded ( - Func... ) + Func... ) -> overloaded< Func... > @@ -6673,17 +6770,17 @@ template<typename... Func>
    -template<std::size_t Member, typename Poly , typename... Args>
    +template<std::size_t Member, typename Poly, typename... Args>
    - + - + - +
    decltype(auto) entt::poly_call decltype(auto) entt::poly_call (Poly && self, Poly && self,
    Args &&... args )Args &&... args )
    @@ -6716,21 +6813,21 @@ template<std::size_t Member,
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, int > entt::popcount std::enable_if_t< std::is_unsigned_v< Type >, int > entt::popcount (const Type value)const Type value)
    -constexprnoexcept
    @@ -6760,15 +6857,15 @@ template<typename
    -template<typename Allocator >
    +template<typename Allocator>
    +constexprnoexcept
    - + - + @@ -6778,7 +6875,7 @@ template<typename
    constexpr void entt::propagate_on_container_copy_assignment void entt::propagate_on_container_copy_assignment (Allocator & lhs, Allocator & lhs,
    -constexprnoexcept
    @@ -6808,15 +6905,15 @@ template<typename
    -template<typename Allocator >
    +template<typename Allocator>
    +constexprnoexcept
    - + - + @@ -6826,7 +6923,7 @@ template<typename
    constexpr void entt::propagate_on_container_move_assignment void entt::propagate_on_container_move_assignment (Allocator & lhs, Allocator & lhs,
    -constexprnoexcept
    @@ -6856,15 +6953,15 @@ template<typename
    -template<typename Allocator >
    +template<typename Allocator>
    +constexprnoexcept
    - + - + @@ -6874,7 +6971,7 @@ template<typename
    constexpr void entt::propagate_on_container_swap void entt::propagate_on_container_swap (Allocator & lhs, Allocator & lhs,
    -constexprnoexcept
    @@ -6904,7 +7001,7 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - +
    @@ -6912,13 +7009,13 @@ template<typename
    meta_type entt::resolve ())
    -noexcept +nodiscardnoexcept
    @@ -6946,15 +7043,15 @@ template<typename - + - +
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > entt::resolve meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > entt::resolve ())
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -6978,13 +7075,13 @@ template<typename meta_type entt::resolve ( - const id_type id) + const id_type id) -inlinenoexcept +inlinenodiscardnoexcept
    @@ -7008,7 +7105,7 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    - +
    @@ -7016,13 +7113,13 @@ template<typename
    meta_type entt::resolve (const meta_ctx & ctx)const meta_ctx & ctx)
    -noexcept +nodiscardnoexcept
    @@ -7056,15 +7153,15 @@ template<typename - + - +
    meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > entt::resolve meta_range< meta_type, typename decltype(internal::meta_context::value)::const_iterator > entt::resolve (const meta_ctx & ctx)const meta_ctx & ctx)
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -7094,17 +7191,17 @@ template<typename meta_type entt::resolve ( - const meta_ctx & ctx, + const meta_ctx & ctx, - const id_type id ) + const id_type id ) -inlinenoexcept +inlinenodiscardnoexcept
    @@ -7135,17 +7232,17 @@ template<typename meta_type entt::resolve ( - const meta_ctx & ctx, + const meta_ctx & ctx, - const type_info & info ) + const type_info & info ) -inlinenoexcept +inlinenodiscardnoexcept
    @@ -7176,13 +7273,13 @@ template<typename meta_type entt::resolve ( - const type_info & info) + const type_info & info) -inlinenoexcept +inlinenodiscardnoexcept
    @@ -7206,13 +7303,13 @@ template<typename
    -template<typename Registry >
    +template<typename Registry>
    - - + +
    entt::sigh_helper (Registry & ) -> sigh_helper< Registry >Registry & ) -> sigh_helper< Registry >
    @@ -7233,13 +7330,13 @@ template<typename
    -template<typename Ret , typename... Args, typename Allocator >
    +template<typename Ret, typename... Args, typename Allocator>
    - - + +
    entt::sink (sigh< Ret(Args...), Allocator > & ) -> sink< sigh< Ret(Args...), Allocator > >sigh< Ret(Args...), Allocator > & ) -> sink< sigh< Ret(Args...), Allocator > >
    @@ -7257,31 +7354,31 @@ template<typename
    - -

    ◆ swap()

    + +

    ◆ swap()

    -template<typename First , typename Second >
    +template<typename First, typename Second>
    +constexprnoexcept
    - + - + - +
    constexpr void entt::swap void entt::swap (compressed_pair< First, Second > & lhs, compressed_pair< First, Second > & lhs,
    compressed_pair< First, Second > & rhs )compressed_pair< First, Second > & rhs )
    -inlineconstexpr
    @@ -7312,13 +7409,13 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardconstexprnoexcept
    - + @@ -7326,7 +7423,7 @@ template<typename
    constexpr auto entt::to_address auto entt::to_address ( Type && ptr)
    -constexprnoexcept
    @@ -7361,12 +7458,12 @@ template<typename... Args>
    basic_storage< Args... >::entity_type entt::to_entity ( - const basic_storage< Args... > & storage, + const basic_storage< Args... > & storage, - const typename basic_storage< Args... >::value_type & instance ) + const typename basic_storage< Args... >::value_type & instance )
    @@ -7398,21 +7495,21 @@ template<typename... Args>
    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr entt_traits< Entity >::entity_type entt::to_entity entt_traits< Entity >::entity_type entt::to_entity (const Entity value)const Entity value)
    -constexprnoexcept
    @@ -7442,21 +7539,21 @@ template<typename
    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr entt_traits< Entity >::entity_type entt::to_integral entt_traits< Entity >::entity_type entt::to_integral (const Entity value)const Entity value)
    -constexprnoexcept
    @@ -7486,21 +7583,21 @@ template<typename
    -template<typename Entity >
    +template<typename Entity>
    +nodiscardconstexprnoexcept
    - + - +
    constexpr entt_traits< Entity >::version_type entt::to_version entt_traits< Entity >::version_type entt::to_version (const Entity value)const Entity value)
    -constexprnoexcept
    @@ -7530,21 +7627,21 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardnoexcept
    - + - +
    const type_info & entt::type_id const type_info & entt::type_id ())
    -noexcept
    @@ -7570,26 +7667,26 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +nodiscardnoexcept
    - + - +
    const type_info & entt::type_id const type_info & entt::type_id (Type && )Type && )
    -noexcept
    -

    Returns the type info object associated to a given type.

    +

    Returns the type info object associated to a given type.

    The returned element refers to an object with static storage duration.
    The type doesn't need to be a complete type. If the type is a reference, the result refers to the referenced type. In all cases, top-level cv-qualifiers are ignored.

    Template Parameters
    @@ -7598,9 +7695,9 @@ template<typename
    -
    Returns
    A reference to a properly initialized type info object.
    +
    Returns
    A reference to a properly initialized type info object.
    -

    Definition at line 262 of file type_info.hpp.

    +

    Definition at line 263 of file type_info.hpp.

    @@ -7610,30 +7707,30 @@ template<typename
    -template<typename Type , typename Allocator , typename... Args>
    +template<typename Type, typename Allocator, typename... Args>
    +constexpr
    - + - + - + - +
    constexpr Type * entt::uninitialized_construct_using_allocator Type * entt::uninitialized_construct_using_allocator (Type * value, Type * value,
    const Allocator & allocator, const Allocator & allocator,
    Args &&... args )Args &&... args )
    -constexpr
    @@ -7668,13 +7765,13 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +constexprnoexcept
    - + @@ -7682,7 +7779,7 @@ template<typename
    constexpr decltype(auto) entt::unwrap_tuple decltype(auto) entt::unwrap_tuple ( Type && value)
    -constexprnoexcept
    @@ -7702,7 +7799,7 @@ template<typename
    Returns
    The tuple itself if it contains more than one element, the first element otherwise.
    -

    Definition at line 45 of file tuple.hpp.

    +

    Definition at line 40 of file tuple.hpp.

    @@ -7712,25 +7809,25 @@ template<typename
    -template<typename Type , typename Allocator , typename... Args>
    +template<typename Type, typename Allocator, typename... Args>
    +constexprnoexcept
    - + - + - +
    constexpr auto entt::uses_allocator_construction_args auto entt::uses_allocator_construction_args (const Allocator & allocator, const Allocator & allocator,
    Args &&... args )Args &&... args )
    -constexprnoexcept
    @@ -7771,12 +7868,12 @@ template<std::size_t N>
    - +
    constexpr choice_t<N> entt::choice {}choice_t<N> entt::choice {}
    -inlineconstexpr +inlineconstexpr
    @@ -7791,32 +7888,6 @@ template<std::size_t N>

    Definition at line 33 of file type_traits.hpp.

    -
    -
    - -

    ◆ collector

    - -
    -
    - - - - - -
    - - - - -
    constexpr basic_collector entt::collector {}
    -
    -inlineconstexpr
    -
    - -

    Variable template used to ease the definition of collectors.

    - -

    Definition at line 108 of file observer.hpp.

    -
    @@ -7825,18 +7896,18 @@ template<std::size_t N>
    -template<auto Candidate>
    +template<auto Candidate>
    +inlineconstexpr
    - +
    constexpr connect_arg_t<Candidate> entt::connect_arg {}connect_arg_t<Candidate> entt::connect_arg {}
    -inlineconstexpr
    @@ -7859,18 +7930,18 @@ template<auto Can
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::enum_as_bitmask_v = enum_as_bitmask<Type>::valuebool entt::enum_as_bitmask_v = enum_as_bitmask<Type>::value
    -inlineconstexpr
    @@ -7899,12 +7970,12 @@ template<typename... Type>
    - +
    constexpr exclude_t<Type...> entt::exclude {}exclude_t<Type...> entt::exclude {}
    -inlineconstexpr +inlineconstexpr
    @@ -7917,7 +7988,7 @@ template<typename... Type>
    -

    Definition at line 151 of file fwd.hpp.

    +

    Definition at line 150 of file fwd.hpp.

    @@ -7933,12 +8004,12 @@ template<typename... Type>
    - +
    constexpr get_t<Type...> entt::get {}get_t<Type...> entt::get {}
    -inlineconstexpr +inlineconstexpr
    @@ -7951,7 +8022,7 @@ template<typename... Type>
    -

    Definition at line 168 of file fwd.hpp.

    +

    Definition at line 167 of file fwd.hpp.

    @@ -7961,18 +8032,18 @@ template<typename... Type>
    -template<typename Ret , typename Func , typename Args >
    +template<typename Ret, typename Func, typename Args>
    +inlineconstexpr
    - +
    constexpr bool entt::is_applicable_r_v = is_applicable_r<Ret, Func, Args>::valuebool entt::is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
    -inlineconstexpr
    @@ -7987,7 +8058,7 @@ template<typename -

    Definition at line 649 of file type_traits.hpp.

    +

    Definition at line 651 of file type_traits.hpp.

    @@ -7997,18 +8068,18 @@ template<typename
    -template<typename Func , typename Args >
    +template<typename Func, typename Args>
    +inlineconstexpr
    - +
    constexpr bool entt::is_applicable_v = is_applicable<Func, Args>::valuebool entt::is_applicable_v = is_applicable<Func, Args>::value
    -inlineconstexpr
    @@ -8022,7 +8093,7 @@ template<typename -

    Definition at line 625 of file type_traits.hpp.

    +

    Definition at line 627 of file type_traits.hpp.

    @@ -8032,18 +8103,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_complete_v = is_complete<Type>::valuebool entt::is_complete_v = is_complete<Type>::value
    -inlineconstexpr
    @@ -8056,7 +8127,7 @@ template<typename -

    Definition at line 668 of file type_traits.hpp.

    +

    Definition at line 670 of file type_traits.hpp.

    @@ -8066,18 +8137,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_ebco_eligible_v = is_ebco_eligible<Type>::valuebool entt::is_ebco_eligible_v = is_ebco_eligible<Type>::value
    -inlineconstexpr
    @@ -8090,7 +8161,7 @@ template<typename -

    Definition at line 716 of file type_traits.hpp.

    +

    Definition at line 718 of file type_traits.hpp.

    @@ -8100,18 +8171,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_equality_comparable_v = is_equality_comparable<Type>::valuebool entt::is_equality_comparable_v = is_equality_comparable<Type>::value
    -inlineconstexpr
    @@ -8124,7 +8195,7 @@ template<typename -

    Definition at line 813 of file type_traits.hpp.

    +

    Definition at line 815 of file type_traits.hpp.

    @@ -8134,18 +8205,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_iterator_v = is_iterator<Type>::valuebool entt::is_iterator_v = is_iterator<Type>::value
    -inlineconstexpr
    @@ -8158,7 +8229,7 @@ template<typename -

    Definition at line 700 of file type_traits.hpp.

    +

    Definition at line 702 of file type_traits.hpp.

    @@ -8168,18 +8239,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr auto entt::is_meta_pointer_like_v = is_meta_pointer_like<Type>::valueauto entt::is_meta_pointer_like_v = is_meta_pointer_like<Type>::value
    -inlineconstexpr
    @@ -8202,18 +8273,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_meta_policy_v = is_meta_policy<Type>::valuebool entt::is_meta_policy_v = is_meta_policy<Type>::value
    -inlineconstexpr
    @@ -8236,18 +8307,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_transparent_v = is_transparent<Type>::valuebool entt::is_transparent_v = is_transparent<Type>::value
    -inlineconstexpr
    @@ -8260,7 +8331,7 @@ template<typename -

    Definition at line 735 of file type_traits.hpp.

    +

    Definition at line 737 of file type_traits.hpp.

    @@ -8270,18 +8341,18 @@ template<typename
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::is_tuple_v = is_tuple<Type>::valuebool entt::is_tuple_v = is_tuple<Type>::value
    -inlineconstexpr
    @@ -8294,7 +8365,7 @@ template<typename -

    Definition at line 35 of file tuple.hpp.

    +

    Definition at line 30 of file tuple.hpp.

    @@ -8308,12 +8379,12 @@ template<typename - +
    constexpr meta_ctx_arg_t entt::meta_ctx_arg {}meta_ctx_arg_t entt::meta_ctx_arg {}
    -inlineconstexpr +inlineconstexpr
    @@ -8330,18 +8401,18 @@ template<typename
    -template<id_type Value>
    +template<id_type Value>
    +inline
    - +
    monostate<Value> entt::monostate_v {}monostate<Value> entt::monostate_v {}
    -inline
    @@ -8368,12 +8439,12 @@ template<id_type - +
    constexpr null_t entt::null {}null_t entt::null {}
    -inlineconstexpr +inlineconstexpr
    @@ -8397,12 +8468,12 @@ template<typename... Type>
    - +
    constexpr owned_t<Type...> entt::owned {}owned_t<Type...> entt::owned {}
    -inlineconstexpr +inlineconstexpr
    @@ -8415,7 +8486,7 @@ template<typename... Type>
    -

    Definition at line 185 of file fwd.hpp.

    +

    Definition at line 184 of file fwd.hpp.

    @@ -8425,18 +8496,18 @@ template<typename... Type>
    -template<typename Type >
    +template<typename Type>
    +inlineconstexpr
    - +
    constexpr std::size_t entt::size_of_v = size_of<Type>::valuestd::size_t entt::size_of_v = size_of<Type>::value
    -inlineconstexpr
    @@ -8449,7 +8520,7 @@ template<typename -

    Definition at line 73 of file type_traits.hpp.

    +

    Definition at line 74 of file type_traits.hpp.

    @@ -8463,12 +8534,12 @@ template<typename - +
    constexpr tombstone_t entt::tombstone {}tombstone_t entt::tombstone {}
    -inlineconstexpr +inlineconstexpr
    @@ -8486,18 +8557,18 @@ template<typename
    -template<typename List , typename Type >
    +template<typename List, typename Type>
    +inlineconstexpr
    - +
    constexpr bool entt::type_list_contains_v = type_list_contains<List, Type>::valuebool entt::type_list_contains_v = type_list_contains<List, Type>::value
    -inlineconstexpr
    @@ -8511,7 +8582,7 @@ template<typename -

    Definition at line 312 of file type_traits.hpp.

    +

    Definition at line 313 of file type_traits.hpp.

    @@ -8521,18 +8592,18 @@ template<typename
    -template<typename Type , typename List >
    +template<typename Type, typename List>
    +inlineconstexpr
    - +
    constexpr std::size_t entt::type_list_index_v = type_list_index<Type, List>::valuestd::size_t entt::type_list_index_v = type_list_index<Type, List>::value
    -inlineconstexpr
    @@ -8546,7 +8617,7 @@ template<typename -

    Definition at line 200 of file type_traits.hpp.

    +

    Definition at line 201 of file type_traits.hpp.

    @@ -8556,18 +8627,18 @@ template<typename
    -template<auto Value, typename >
    +template<auto Value, typename>
    +inlineconstexpr
    - +
    constexpr auto entt::unpack_as_value = Valueauto entt::unpack_as_value = Value
    -inlineconstexpr
    @@ -8580,7 +8651,7 @@ template<auto Val -

    Definition at line 89 of file type_traits.hpp.

    +

    Definition at line 90 of file type_traits.hpp.

    @@ -8590,18 +8661,18 @@ template<auto Val
    -template<typename List , auto Value>
    +template<typename List, auto Value>
    +inlineconstexpr
    - +
    constexpr bool entt::value_list_contains_v = value_list_contains<List, Value>::valuebool entt::value_list_contains_v = value_list_contains<List, Value>::value
    -inlineconstexpr
    @@ -8615,7 +8686,7 @@ template<typename -

    Definition at line 573 of file type_traits.hpp.

    +

    Definition at line 575 of file type_traits.hpp.

    @@ -8625,18 +8696,18 @@ template<typename
    -template<std::size_t Index, typename List >
    +template<std::size_t Index, typename List>
    +inlineconstexpr
    - +
    constexpr auto entt::value_list_element_v = value_list_element<Index, List>::valueauto entt::value_list_element_v = value_list_element<Index, List>::value
    -inlineconstexpr
    @@ -8650,7 +8721,7 @@ template<std::size_t Index, Definition at line 412 of file type_traits.hpp.

    +

    Definition at line 414 of file type_traits.hpp.

    @@ -8660,18 +8731,18 @@ template<std::size_t Index,
    +template<auto Value, typename List>
    +inlineconstexpr
    - +
    constexpr std::size_t entt::value_list_index_v = value_list_index<Value, List>::valuestd::size_t entt::value_list_index_v = value_list_index<Value, List>::value
    -inlineconstexpr
    @@ -8685,14 +8756,15 @@ template<auto Val -

    Definition at line 464 of file type_traits.hpp.

    +

    Definition at line 466 of file type_traits.hpp.

    +
    diff --git a/namespacemembers.html b/namespacemembers.html index 90f7cd1be..6f9f9705f 100644 --- a/namespacemembers.html +++ b/namespacemembers.html @@ -3,13 +3,15 @@ - + EnTT: Namespace Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - c -
    • choice : entt
    • -
    • collector : entt
    • compressed_pair() : entt
    • connect_arg : entt
    • const_handle : entt
    • @@ -141,7 +153,7 @@ $(function() {

      - i -

        -
      • id_type : entt
      • +
      • id_type : entt
      • integral_constant : entt
      • invoke() : entt
      • is_applicable_r_v : entt
      • @@ -162,13 +174,12 @@ $(function() {
      • make_obj_using_allocator() : entt
      • member_class_t : entt
      • meta() : entt
      • -
      • meta_any_policy : entt
      • meta_construct() : entt
      • meta_ctx_arg : entt
      • meta_dispatch() : entt
      • meta_function_helper_t : entt
      • -
      • meta_getter() : entt
      • -
      • meta_invoke() : entt
      • +
      • meta_getter() : entt
      • +
      • meta_invoke() : entt
      • meta_range : entt
      • meta_reset() : entt
      • meta_setter() : entt
      • @@ -184,7 +195,6 @@ $(function() {

        - o -

          -
        • observer : entt
        • operator!=() : entt
        • operator""_hs() : entt
        • operator""_hws() : entt
        • @@ -231,7 +241,7 @@ $(function() {
        • storage : entt
        • storage_for_t : entt
        • storage_type_t : entt
        • -
        • swap() : entt
        • +
        • swap() : entt
        @@ -277,7 +287,8 @@ $(function() {
    +
    diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html index 2fa6b30c0..f244cee2a 100644 --- a/namespacemembers_enum.html +++ b/namespacemembers_enum.html @@ -3,13 +3,15 @@ - + EnTT: Namespace Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/namespacemembers_func.html b/namespacemembers_func.html index f38fff8f4..01d3dfee1 100644 --- a/namespacemembers_func.html +++ b/namespacemembers_func.html @@ -3,13 +3,15 @@ - + EnTT: Namespace Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    meta() : entt
  • meta_construct() : entt
  • meta_dispatch() : entt
  • -
  • meta_getter() : entt
  • -
  • meta_invoke() : entt
  • +
  • meta_getter() : entt
  • +
  • meta_invoke() : entt
  • meta_reset() : entt
  • meta_setter() : entt
  • @@ -165,7 +178,7 @@ $(function() {

    - s -

    @@ -186,7 +199,8 @@ $(function() {
    +
    diff --git a/namespacemembers_type.html b/namespacemembers_type.html index 00eff0708..4e5458952 100644 --- a/namespacemembers_type.html +++ b/namespacemembers_type.html @@ -3,13 +3,15 @@ - + EnTT: Namespace Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    - i -
      -
    • id_type : entt
    • +
    • id_type : entt
    • integral_constant : entt

    - m -

    • member_class_t : entt
    • -
    • meta_any_policy : entt
    • meta_function_helper_t : entt
    • meta_range : entt
    @@ -130,7 +142,6 @@ $(function() {

    - o -

    @@ -186,7 +197,8 @@ $(function() {
    +
    diff --git a/namespacemembers_vars.html b/namespacemembers_vars.html index e719f0760..1804fe8e6 100644 --- a/namespacemembers_vars.html +++ b/namespacemembers_vars.html @@ -3,13 +3,15 @@ - + EnTT: Namespace Members + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented namespace variables with links to the namespaces they belong to:
    • choice : entt
    • -
    • collector : entt
    • connect_arg : entt
    • enum_as_bitmask_v : entt
    • exclude : entt
    • @@ -104,7 +116,8 @@ $(function() {
    +
    diff --git a/namespaces.html b/namespaces.html index 28f234335..fa238f53f 100644 --- a/namespaces.html +++ b/namespaces.html @@ -3,13 +3,15 @@ - + EnTT: Namespace List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    -
    [detail level 123]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
     NenttEnTT default namespace
    +
     NenttEnTT default namespace
    +
    diff --git a/navtree.css b/navtree.css new file mode 100644 index 000000000..69211d4a7 --- /dev/null +++ b/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/node_8hpp_source.html b/node_8hpp_source.html index fd38f282d..ebae8e4c1 100644 --- a/node_8hpp_source.html +++ b/node_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/node.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    node.hpp
    @@ -104,10 +112,10 @@ $(function() { codefold.init(0); });
    19
    20namespace entt {
    21
    -
    22class meta_any;
    -
    23class meta_type;
    -
    24struct meta_handle;
    -
    25
    +
    22class meta_any;
    +
    23class meta_type;
    +
    24struct meta_handle;
    +
    25
    27namespace internal {
    28
    29enum class meta_traits : std::uint32_t {
    @@ -121,9 +129,9 @@ $(function() { codefold.init(0); });
    37 is_enum = 0x0040,
    38 is_class = 0x0080,
    39 is_pointer = 0x0100,
    -
    40 is_meta_pointer_like = 0x0200,
    -
    41 is_meta_sequence_container = 0x0400,
    -
    42 is_meta_associative_container = 0x0800,
    +
    40 is_pointer_like = 0x0200,
    +
    41 is_sequence_container = 0x0400,
    +
    42 is_associative_container = 0x0800,
    43 _user_defined_traits = 0xFFFF,
    44 _entt_enum_as_bitmask = 0xFFFF
    45};
    @@ -147,245 +155,245 @@ $(function() { codefold.init(0); });
    63struct meta_type_node;
    64
    65struct meta_custom_node {
    -
    66 id_type type{};
    -
    67 std::shared_ptr<void> value{};
    +
    66 id_type type{};
    +
    67 std::shared_ptr<void> value;
    68};
    69
    -
    70struct meta_prop_node {
    -
    71 id_type id{};
    -
    72 meta_type_node (*type)(const meta_context &) noexcept {};
    -
    73 std::shared_ptr<void> value{};
    +
    70struct meta_base_node {
    +
    71 id_type type{};
    +
    72 meta_type_node (*resolve)(const meta_context &) noexcept {};
    +
    73 const void *(*cast)(const void *) noexcept {};
    74};
    75
    -
    76struct meta_base_node {
    -
    77 id_type type{};
    -
    78 meta_type_node (*resolve)(const meta_context &) noexcept {};
    -
    79 const void *(*cast)(const void *) noexcept {};
    -
    80};
    -
    81
    -
    82struct meta_conv_node {
    -
    83 id_type type{};
    -
    84 meta_any (*conv)(const meta_ctx &, const void *){};
    -
    85};
    -
    86
    -
    87struct meta_ctor_node {
    -
    88 using size_type = std::size_t;
    +
    76struct meta_conv_node {
    +
    77 id_type type{};
    +
    78 meta_any (*conv)(const meta_ctx &, const void *){};
    +
    79};
    +
    80
    +
    81struct meta_ctor_node {
    +
    82 using size_type = std::size_t;
    +
    83
    +
    84 id_type id{};
    +
    85 size_type arity{0u};
    +
    86 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    +
    87 meta_any (*invoke)(const meta_ctx &, meta_any *const){};
    +
    88};
    89
    -
    90 id_type id{};
    -
    91 size_type arity{0u};
    -
    92 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    -
    93 meta_any (*invoke)(const meta_ctx &, meta_any *const){};
    -
    94};
    -
    95
    -
    96struct meta_dtor_node {
    -
    97 void (*dtor)(void *){};
    -
    98};
    -
    99
    -
    100struct meta_data_node {
    -
    101 using size_type = std::size_t;
    -
    102
    -
    103 id_type id{};
    -
    104 meta_traits traits{meta_traits::is_none};
    -
    105 size_type arity{0u};
    -
    106 meta_type_node (*type)(const meta_context &) noexcept {};
    -
    107 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    -
    108 bool (*set)(meta_handle, meta_any){};
    -
    109 meta_any (*get)(const meta_ctx &, meta_handle){};
    -
    110 meta_custom_node custom{};
    -
    111 std::vector<meta_prop_node> prop{};
    -
    112};
    -
    113
    -
    114struct meta_func_node {
    -
    115 using size_type = std::size_t;
    -
    116
    -
    117 id_type id{};
    -
    118 meta_traits traits{meta_traits::is_none};
    -
    119 size_type arity{0u};
    -
    120 meta_type_node (*ret)(const meta_context &) noexcept {};
    -
    121 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    -
    122 meta_any (*invoke)(const meta_ctx &, meta_handle, meta_any *const){};
    -
    123 std::shared_ptr<meta_func_node> next{};
    -
    124 meta_custom_node custom{};
    -
    125 std::vector<meta_prop_node> prop{};
    +
    90struct meta_dtor_node {
    +
    91 void (*dtor)(void *){};
    +
    92};
    +
    93
    +
    94struct meta_data_node {
    +
    95 using size_type = std::size_t;
    +
    96
    +
    97 id_type id{};
    +
    98 meta_traits traits{meta_traits::is_none};
    +
    99 size_type arity{0u};
    +
    100 meta_type_node (*type)(const meta_context &) noexcept {};
    +
    101 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    +
    102 bool (*set)(meta_handle, meta_any){};
    +
    103 meta_any (*get)(meta_handle){};
    +
    104 meta_custom_node custom{};
    +
    105};
    +
    106
    +
    107struct meta_func_node {
    +
    108 using size_type = std::size_t;
    +
    109
    +
    110 id_type id{};
    +
    111 meta_traits traits{meta_traits::is_none};
    +
    112 size_type arity{0u};
    +
    113 meta_type_node (*ret)(const meta_context &) noexcept {};
    +
    114 meta_type (*arg)(const meta_ctx &, const size_type) noexcept {};
    +
    115 meta_any (*invoke)(meta_handle, meta_any *const){};
    +
    116 std::shared_ptr<meta_func_node> next;
    +
    117 meta_custom_node custom{};
    +
    118};
    +
    119
    +
    120struct meta_template_node {
    +
    121 using size_type = std::size_t;
    +
    122
    +
    123 size_type arity{0u};
    +
    124 meta_type_node (*resolve)(const meta_context &) noexcept {};
    +
    125 meta_type_node (*arg)(const meta_context &, const size_type) noexcept {};
    126};
    127
    -
    128struct meta_template_node {
    -
    129 using size_type = std::size_t;
    -
    130
    -
    131 size_type arity{0u};
    -
    132 meta_type_node (*resolve)(const meta_context &) noexcept {};
    -
    133 meta_type_node (*arg)(const meta_context &, const size_type) noexcept {};
    +
    128struct meta_type_descriptor {
    +
    129 std::vector<meta_ctor_node> ctor;
    +
    130 std::vector<meta_base_node> base;
    +
    131 std::vector<meta_conv_node> conv;
    +
    132 std::vector<meta_data_node> data;
    +
    133 std::vector<meta_func_node> func;
    134};
    135
    -
    136struct meta_type_descriptor {
    -
    137 std::vector<meta_ctor_node> ctor{};
    -
    138 std::vector<meta_base_node> base{};
    -
    139 std::vector<meta_conv_node> conv{};
    -
    140 std::vector<meta_data_node> data{};
    -
    141 std::vector<meta_func_node> func{};
    -
    142 std::vector<meta_prop_node> prop{};
    -
    143};
    -
    144
    -
    145struct meta_type_node {
    -
    146 using size_type = std::size_t;
    -
    147
    -
    148 const type_info *info{};
    -
    149 id_type id{};
    -
    150 meta_traits traits{meta_traits::is_none};
    -
    151 size_type size_of{0u};
    -
    152 meta_type_node (*resolve)(const meta_context &) noexcept {};
    -
    153 meta_type_node (*remove_pointer)(const meta_context &) noexcept {};
    -
    154 meta_any (*default_constructor)(const meta_ctx &){};
    -
    155 double (*conversion_helper)(void *, const void *){};
    -
    156 meta_any (*from_void)(const meta_ctx &, void *, const void *){};
    -
    157 meta_template_node templ{};
    -
    158 meta_dtor_node dtor{};
    -
    159 meta_custom_node custom{};
    -
    160 std::shared_ptr<meta_type_descriptor> details{};
    -
    161};
    -
    162
    -
    163template<auto Member, typename Type, typename Value>
    -
    164[[nodiscard]] auto *find_member(Type &from, const Value value) {
    -
    165 for(auto &&elem: from) {
    -
    166 if((elem.*Member) == value) {
    -
    167 return &elem;
    -
    168 }
    -
    169 }
    -
    170
    -
    171 return static_cast<typename Type::value_type *>(nullptr);
    -
    172}
    +
    136struct meta_type_node {
    +
    137 using size_type = std::size_t;
    +
    138
    +
    139 const type_info *info{};
    +
    140 id_type id{};
    +
    141 meta_traits traits{meta_traits::is_none};
    +
    142 size_type size_of{0u};
    +
    143 meta_type_node (*resolve)(const meta_context &) noexcept {};
    +
    144 meta_type_node (*remove_pointer)(const meta_context &) noexcept {};
    +
    145 meta_any (*default_constructor)(const meta_ctx &){};
    +
    146 double (*conversion_helper)(void *, const void *){};
    +
    147 meta_any (*from_void)(const meta_ctx &, void *, const void *){};
    +
    148 meta_template_node templ{};
    +
    149 meta_dtor_node dtor{};
    +
    150 meta_custom_node custom{};
    +
    151 std::shared_ptr<meta_type_descriptor> details;
    +
    152};
    +
    153
    +
    154template<auto Member, typename Type, typename Value>
    +
    155[[nodiscard]] auto *find_member(Type &from, const Value value) {
    +
    156 for(auto &&elem: from) {
    +
    157 if((elem.*Member) == value) {
    +
    158 return &elem;
    +
    159 }
    +
    160 }
    +
    161
    +
    162 return static_cast<typename Type::value_type *>(nullptr);
    +
    163}
    +
    164
    +
    165[[nodiscard]] inline auto *find_overload(meta_func_node *curr, std::remove_pointer_t<decltype(meta_func_node::invoke)> *const ref) {
    +
    166 while((curr != nullptr) && (curr->invoke != ref)) { curr = curr->next.get(); }
    +
    167 return curr;
    +
    168}
    +
    169
    +
    170template<auto Member>
    +
    171[[nodiscard]] auto *look_for(const meta_context &context, const meta_type_node &node, const id_type id) {
    +
    172 using value_type = typename std::remove_reference_t<decltype((node.details.get()->*Member))>::value_type;
    173
    -
    174[[nodiscard]] inline auto *find_overload(meta_func_node *curr, std::remove_pointer_t<decltype(meta_func_node::invoke)> *const ref) {
    -
    175 while((curr != nullptr) && (curr->invoke != ref)) { curr = curr->next.get(); }
    -
    176 return curr;
    -
    177}
    +
    174 if(node.details) {
    +
    175 if(auto *member = find_member<&value_type::id>((node.details.get()->*Member), id); member != nullptr) {
    +
    176 return member;
    +
    177 }
    178
    -
    179template<auto Member>
    -
    180[[nodiscard]] auto *look_for(const meta_context &context, const meta_type_node &node, const id_type id) {
    -
    181 using value_type = typename std::remove_reference_t<decltype((node.details.get()->*Member))>::value_type;
    -
    182
    -
    183 if(node.details) {
    -
    184 if(auto *member = find_member<&value_type::id>((node.details.get()->*Member), id); member != nullptr) {
    -
    185 return member;
    -
    186 }
    -
    187
    -
    188 for(auto &&curr: node.details->base) {
    -
    189 if(auto *elem = look_for<Member>(context, curr.resolve(context), id); elem) {
    -
    190 return elem;
    -
    191 }
    -
    192 }
    -
    193 }
    -
    194
    -
    195 return static_cast<value_type *>(nullptr);
    -
    196}
    -
    197
    -
    198template<typename Type>
    -
    199meta_type_node resolve(const meta_context &) noexcept;
    +
    179 for(auto &&curr: node.details->base) {
    +
    180 if(auto *elem = look_for<Member>(context, curr.resolve(context), id); elem) {
    +
    181 return elem;
    +
    182 }
    +
    183 }
    +
    184 }
    +
    185
    +
    186 return static_cast<value_type *>(nullptr);
    +
    187}
    +
    188
    +
    189template<typename Type>
    +
    190meta_type_node resolve(const meta_context &) noexcept;
    +
    191
    +
    192template<typename... Args>
    +
    193[[nodiscard]] auto meta_arg_node(const meta_context &context, type_list<Args...>, [[maybe_unused]] const std::size_t index) noexcept {
    +
    194 meta_type_node (*value)(const meta_context &) noexcept = nullptr;
    +
    195
    +
    196 if constexpr(sizeof...(Args) != 0u) {
    +
    197 std::size_t pos{};
    +
    198 ((value = (pos++ == index ? &resolve<std::remove_cv_t<std::remove_reference_t<Args>>> : value)), ...);
    +
    199 }
    200
    -
    201template<typename... Args>
    -
    202[[nodiscard]] auto meta_arg_node(const meta_context &context, type_list<Args...>, [[maybe_unused]] const std::size_t index) noexcept {
    -
    203 [[maybe_unused]] std::size_t pos{};
    -
    204 meta_type_node (*value)(const meta_context &) noexcept = nullptr;
    -
    205 ((value = (pos++ == index ? &resolve<std::remove_cv_t<std::remove_reference_t<Args>>> : value)), ...);
    -
    206 ENTT_ASSERT(value != nullptr, "Out of bounds");
    -
    207 return value(context);
    -
    208}
    +
    201 ENTT_ASSERT(value != nullptr, "Out of bounds");
    +
    202 return value(context);
    +
    203}
    +
    204
    +
    205[[nodiscard]] inline const void *try_cast(const meta_context &context, const meta_type_node &from, const type_info &to, const void *instance) noexcept {
    +
    206 if((from.info != nullptr) && *from.info == to) {
    +
    207 return instance;
    +
    208 }
    209
    -
    210[[nodiscard]] inline const void *try_cast(const meta_context &context, const meta_type_node &from, const meta_type_node &to, const void *instance) noexcept {
    -
    211 if((from.info != nullptr) && (to.info != nullptr) && *from.info == *to.info) {
    -
    212 return instance;
    -
    213 }
    -
    214
    -
    215 if(from.details) {
    -
    216 for(auto &&curr: from.details->base) {
    -
    217 if(const void *elem = try_cast(context, curr.resolve(context), to, curr.cast(instance)); elem) {
    -
    218 return elem;
    -
    219 }
    -
    220 }
    -
    221 }
    -
    222
    -
    223 return nullptr;
    -
    224}
    -
    225
    -
    226template<typename Func>
    -
    227[[nodiscard]] inline auto try_convert(const meta_context &context, const meta_type_node &from, const type_info &to, const bool arithmetic_or_enum, const void *instance, Func func) {
    -
    228 if(from.info && *from.info == to) {
    -
    229 return func(instance, from);
    -
    230 }
    -
    231
    -
    232 if(from.details) {
    -
    233 for(auto &&elem: from.details->conv) {
    -
    234 if(elem.type == to.hash()) {
    -
    235 return func(instance, elem);
    -
    236 }
    -
    237 }
    -
    238
    -
    239 for(auto &&curr: from.details->base) {
    -
    240 if(auto other = try_convert(context, curr.resolve(context), to, arithmetic_or_enum, curr.cast(instance), func); other) {
    -
    241 return other;
    -
    242 }
    -
    243 }
    -
    244 }
    -
    245
    -
    246 if(from.conversion_helper && arithmetic_or_enum) {
    -
    247 return func(instance, from.conversion_helper);
    -
    248 }
    -
    249
    -
    250 return func(instance);
    +
    210 if(from.details) {
    +
    211 for(auto &&curr: from.details->base) {
    +
    212 if(const void *elem = try_cast(context, curr.resolve(context), to, curr.cast(instance)); elem) {
    +
    213 return elem;
    +
    214 }
    +
    215 }
    +
    216 }
    +
    217
    +
    218 return nullptr;
    +
    219}
    +
    220
    +
    221template<typename Func>
    +
    222[[nodiscard]] inline auto try_convert(const meta_context &context, const meta_type_node &from, const type_info &to, const bool arithmetic_or_enum, const void *instance, Func func) {
    +
    223 if(from.info && *from.info == to) {
    +
    224 return func(instance, from);
    +
    225 }
    +
    226
    +
    227 if(from.details) {
    +
    228 for(auto &&elem: from.details->conv) {
    +
    229 if(elem.type == to.hash()) {
    +
    230 return func(instance, elem);
    +
    231 }
    +
    232 }
    +
    233
    +
    234 for(auto &&curr: from.details->base) {
    +
    235 if(auto other = try_convert(context, curr.resolve(context), to, arithmetic_or_enum, curr.cast(instance), func); other) {
    +
    236 return other;
    +
    237 }
    +
    238 }
    +
    239 }
    +
    240
    +
    241 if(from.conversion_helper && arithmetic_or_enum) {
    +
    242 return func(instance, from.conversion_helper);
    +
    243 }
    +
    244
    +
    245 return func(instance);
    +
    246}
    +
    247
    +
    248[[nodiscard]] inline const meta_type_node *try_resolve(const meta_context &context, const type_info &info) noexcept {
    +
    249 const auto it = context.value.find(info.hash());
    +
    250 return it != context.value.end() ? &it->second : nullptr;
    251}
    252
    -
    253[[nodiscard]] inline const meta_type_node *try_resolve(const meta_context &context, const type_info &info) noexcept {
    -
    254 const auto it = context.value.find(info.hash());
    -
    255 return it != context.value.end() ? &it->second : nullptr;
    -
    256}
    -
    257
    -
    258template<typename Type>
    -
    259[[nodiscard]] meta_type_node resolve(const meta_context &context) noexcept {
    -
    260 static_assert(std::is_same_v<Type, std::remove_const_t<std::remove_reference_t<Type>>>, "Invalid type");
    -
    261
    -
    262 if(auto *elem = try_resolve(context, type_id<Type>()); elem) {
    -
    263 return *elem;
    -
    264 }
    -
    265
    -
    266 meta_type_node node{
    -
    267 &type_id<Type>(),
    -
    268 type_id<Type>().hash(),
    -
    269 (std::is_arithmetic_v<Type> ? meta_traits::is_arithmetic : meta_traits::is_none)
    -
    270 | (std::is_integral_v<Type> ? meta_traits::is_integral : meta_traits::is_none)
    -
    271 | (std::is_signed_v<Type> ? meta_traits::is_signed : meta_traits::is_none)
    -
    272 | (std::is_array_v<Type> ? meta_traits::is_array : meta_traits::is_none)
    -
    273 | (std::is_enum_v<Type> ? meta_traits::is_enum : meta_traits::is_none)
    -
    274 | (std::is_class_v<Type> ? meta_traits::is_class : meta_traits::is_none)
    -
    275 | (std::is_pointer_v<Type> ? meta_traits::is_pointer : meta_traits::is_none)
    -
    276 | (is_meta_pointer_like_v<Type> ? meta_traits::is_meta_pointer_like : meta_traits::is_none)
    -
    277 | (is_complete_v<meta_sequence_container_traits<Type>> ? meta_traits::is_meta_sequence_container : meta_traits::is_none)
    -
    278 | (is_complete_v<meta_associative_container_traits<Type>> ? meta_traits::is_meta_associative_container : meta_traits::is_none),
    -
    279 size_of_v<Type>,
    -
    280 &resolve<Type>,
    -
    281 &resolve<std::remove_cv_t<std::remove_pointer_t<Type>>>};
    -
    282
    -
    283 if constexpr(std::is_default_constructible_v<Type>) {
    -
    284 node.default_constructor = +[](const meta_ctx &ctx) {
    -
    285 return meta_any{ctx, std::in_place_type<Type>};
    -
    286 };
    -
    287 }
    -
    288
    -
    289 if constexpr(std::is_arithmetic_v<Type>) {
    -
    290 node.conversion_helper = +[](void *lhs, const void *rhs) {
    -
    291 return lhs ? static_cast<double>(*static_cast<Type *>(lhs) = static_cast<Type>(*static_cast<const double *>(rhs))) : static_cast<double>(*static_cast<const Type *>(rhs));
    -
    292 };
    -
    293 } else if constexpr(std::is_enum_v<Type>) {
    -
    294 node.conversion_helper = +[](void *lhs, const void *rhs) {
    -
    295 return lhs ? static_cast<double>(*static_cast<Type *>(lhs) = static_cast<Type>(static_cast<std::underlying_type_t<Type>>(*static_cast<const double *>(rhs)))) : static_cast<double>(*static_cast<const Type *>(rhs));
    -
    296 };
    -
    297 }
    -
    298
    -
    299 if constexpr(!std::is_void_v<Type> && !std::is_function_v<Type>) {
    -
    300 node.from_void = +[](const meta_ctx &ctx, void *elem, const void *celem) {
    -
    301 if(elem) {
    -
    302 return meta_any{ctx, std::in_place_type<std::decay_t<Type> &>, *static_cast<std::decay_t<Type> *>(elem)};
    -
    303 }
    -
    304
    +
    253template<typename Type>
    +
    254[[nodiscard]] meta_type_node resolve(const meta_context &context) noexcept {
    +
    255 static_assert(std::is_same_v<Type, std::remove_const_t<std::remove_reference_t<Type>>>, "Invalid type");
    +
    256
    +
    257 if(auto *elem = try_resolve(context, type_id<Type>()); elem) {
    +
    258 return *elem;
    +
    259 }
    +
    260
    +
    261 meta_type_node node{
    +
    262 &type_id<Type>(),
    +
    263 type_id<Type>().hash(),
    +
    264 (std::is_arithmetic_v<Type> ? meta_traits::is_arithmetic : meta_traits::is_none)
    +
    265 | (std::is_integral_v<Type> ? meta_traits::is_integral : meta_traits::is_none)
    +
    266 | (std::is_signed_v<Type> ? meta_traits::is_signed : meta_traits::is_none)
    +
    267 | (std::is_array_v<Type> ? meta_traits::is_array : meta_traits::is_none)
    +
    268 | (std::is_enum_v<Type> ? meta_traits::is_enum : meta_traits::is_none)
    +
    269 | (std::is_class_v<Type> ? meta_traits::is_class : meta_traits::is_none)
    +
    270 | (std::is_pointer_v<Type> ? meta_traits::is_pointer : meta_traits::is_none)
    +
    271 | (is_meta_pointer_like_v<Type> ? meta_traits::is_pointer_like : meta_traits::is_none)
    +
    272 | (is_complete_v<meta_sequence_container_traits<Type>> ? meta_traits::is_sequence_container : meta_traits::is_none)
    +
    273 | (is_complete_v<meta_associative_container_traits<Type>> ? meta_traits::is_associative_container : meta_traits::is_none),
    +
    274 size_of_v<Type>,
    +
    275 &resolve<Type>,
    +
    276 &resolve<std::remove_cv_t<std::remove_pointer_t<Type>>>};
    +
    277
    +
    278 if constexpr(std::is_default_constructible_v<Type>) {
    +
    279 node.default_constructor = +[](const meta_ctx &ctx) {
    +
    280 return meta_any{ctx, std::in_place_type<Type>};
    +
    281 };
    +
    282 }
    +
    283
    +
    284 if constexpr(std::is_arithmetic_v<Type>) {
    +
    285 node.conversion_helper = +[](void *lhs, const void *rhs) {
    +
    286 return lhs ? static_cast<double>(*static_cast<Type *>(lhs) = static_cast<Type>(*static_cast<const double *>(rhs))) : static_cast<double>(*static_cast<const Type *>(rhs));
    +
    287 };
    +
    288 } else if constexpr(std::is_enum_v<Type>) {
    +
    289 node.conversion_helper = +[](void *lhs, const void *rhs) {
    +
    290 return lhs ? static_cast<double>(*static_cast<Type *>(lhs) = static_cast<Type>(static_cast<std::underlying_type_t<Type>>(*static_cast<const double *>(rhs)))) : static_cast<double>(*static_cast<const Type *>(rhs));
    +
    291 };
    +
    292 }
    +
    293
    +
    294 if constexpr(!std::is_void_v<Type> && !std::is_function_v<Type>) {
    +
    295 node.from_void = +[](const meta_ctx &ctx, void *elem, const void *celem) {
    +
    296 if(elem && celem) { // ownership construction request
    +
    297 return meta_any{ctx, std::in_place, static_cast<std::decay_t<Type> *>(elem)};
    +
    298 }
    +
    299
    +
    300 if(elem) { // non-const reference construction request
    +
    301 return meta_any{ctx, std::in_place_type<std::decay_t<Type> &>, *static_cast<std::decay_t<Type> *>(elem)};
    +
    302 }
    +
    303
    +
    304 // const reference construction request
    305 return meta_any{ctx, std::in_place_type<const std::decay_t<Type> &>, *static_cast<const std::decay_t<Type> *>(celem)};
    306 };
    307 }
    @@ -401,20 +409,22 @@ $(function() { codefold.init(0); });
    317}
    318
    319} // namespace internal
    +
    321
    322} // namespace entt
    323
    324#endif
    +
    Opaque wrapper for values of any type.
    Definition meta.hpp:166
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr std::size_t size_of_v
    Helper variable template.
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr bool is_complete_v
    Helper variable template.
    -
    constexpr auto is_meta_pointer_like_v
    Helper variable template.
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    meta_type resolve(const meta_ctx &ctx) noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:21
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, int > popcount(const Type value) noexcept
    Returns the number of set bits in a value (waiting for C++20 and std::popcount).
    Definition bit.hpp:19
    +
    Opaque pointers to instances of any type.
    Definition meta.hpp:688
    +
    diff --git a/observer_8hpp_source.html b/observer_8hpp_source.html deleted file mode 100644 index e978cfa5b..000000000 --- a/observer_8hpp_source.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - -EnTT: src/entt/entity/observer.hpp Source File - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    observer.hpp
    -
    -
    -
    1#ifndef ENTT_ENTITY_OBSERVER_HPP
    -
    2#define ENTT_ENTITY_OBSERVER_HPP
    -
    3
    -
    4#include <cstddef>
    -
    5#include <cstdint>
    -
    6#include <limits>
    -
    7#include <type_traits>
    -
    8#include <utility>
    -
    9#include "../core/type_traits.hpp"
    -
    10#include "fwd.hpp"
    -
    11#include "storage.hpp"
    -
    12
    -
    13namespace entt {
    -
    14
    -
    16template<typename...>
    -
    17struct matcher {};
    -
    18
    -
    25template<typename...>
    - -
    27
    -
    36template<>
    -
    - -
    44 template<typename... AllOf, typename... NoneOf>
    -
    -
    45 static constexpr auto group(exclude_t<NoneOf...> = exclude_t{}) noexcept {
    - -
    47 }
    -
    -
    48
    -
    54 template<typename AnyOf>
    -
    -
    55 static constexpr auto update() noexcept {
    - -
    57 }
    -
    -
    58};
    -
    -
    59
    -
    68template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    -
    -
    69struct [[deprecated("use reactive mixin instead")]] basic_collector<matcher<type_list<Reject...>, type_list<Require...>, Rule...>, Other...> {
    - -
    72
    -
    79 template<typename... AllOf, typename... NoneOf>
    -
    -
    80 static constexpr auto group(exclude_t<NoneOf...> = exclude_t{}) noexcept {
    -
    81 return basic_collector<matcher<type_list<>, type_list<>, type_list<NoneOf...>, AllOf...>, current_type, Other...>{};
    -
    82 }
    -
    -
    83
    -
    89 template<typename AnyOf>
    -
    -
    90 static constexpr auto update() noexcept {
    - -
    92 }
    -
    -
    93
    -
    100 template<typename... AllOf, typename... NoneOf>
    -
    -
    101 static constexpr auto where(exclude_t<NoneOf...> = exclude_t{}) noexcept {
    -
    102 using extended_type = matcher<type_list<Reject..., NoneOf...>, type_list<Require..., AllOf...>, Rule...>;
    -
    103 return basic_collector<extended_type, Other...>{};
    -
    104 }
    -
    -
    105};
    -
    -
    106
    -
    108inline constexpr basic_collector<> collector{};
    -
    109
    -
    159template<typename Registry, typename Allocator>
    -
    - -
    161 using mask_type = std::uint64_t;
    - -
    163
    -
    164 template<std::size_t Index>
    -
    165 static void discard_if(storage_type &storage, Registry &, const typename Registry::entity_type entt) {
    -
    166 if(storage.contains(entt) && !(storage.get(entt) &= (~(1 << Index)))) {
    - -
    168 }
    -
    169 }
    -
    170
    -
    171 template<typename>
    -
    172 struct matcher_handler;
    -
    173
    -
    174 template<typename... Reject, typename... Require, typename AnyOf>
    -
    175 struct matcher_handler<matcher<type_list<Reject...>, type_list<Require...>, AnyOf>> {
    -
    176 template<std::size_t Index>
    -
    177 static void maybe_valid_if(storage_type &storage, Registry &parent, const typename Registry::entity_type entt) {
    -
    178 if(parent.template all_of<Require...>(entt) && !parent.template any_of<Reject...>(entt)) {
    -
    179 if(!storage.contains(entt)) {
    - -
    181 }
    -
    182
    -
    183 storage.get(entt) |= (1 << Index);
    -
    184 }
    -
    185 }
    -
    186
    -
    187 template<std::size_t Index>
    -
    188 static void connect(storage_type &storage, Registry &parent) {
    -
    189 (parent.template on_destroy<Require>().template connect<&discard_if<Index>>(storage), ...);
    -
    190 (parent.template on_construct<Reject>().template connect<&discard_if<Index>>(storage), ...);
    -
    191 parent.template on_update<AnyOf>().template connect<&maybe_valid_if<Index>>(storage);
    -
    192 parent.template on_destroy<AnyOf>().template connect<&discard_if<Index>>(storage);
    -
    193 }
    -
    194
    -
    195 static void disconnect(storage_type &storage, Registry &parent) {
    -
    196 (parent.template on_destroy<Require>().disconnect(&storage), ...);
    -
    197 (parent.template on_construct<Reject>().disconnect(&storage), ...);
    -
    198 parent.template on_update<AnyOf>().disconnect(&storage);
    -
    199 parent.template on_destroy<AnyOf>().disconnect(&storage);
    -
    200 }
    -
    201 };
    -
    202
    -
    203 template<typename... Reject, typename... Require, typename... NoneOf, typename... AllOf>
    -
    204 struct matcher_handler<matcher<type_list<Reject...>, type_list<Require...>, type_list<NoneOf...>, AllOf...>> {
    -
    205 template<std::size_t Index, typename... Ignore>
    -
    206 static void maybe_valid_if(storage_type &storage, Registry &parent, const typename Registry::entity_type entt) {
    -
    207 bool guard{};
    -
    208
    -
    209 if constexpr(sizeof...(Ignore) == 0) {
    -
    210 guard = parent.template all_of<AllOf..., Require...>(entt) && !parent.template any_of<NoneOf..., Reject...>(entt);
    -
    211 } else {
    -
    212 guard = parent.template all_of<AllOf..., Require...>(entt) && ((std::is_same_v<Ignore..., NoneOf> || !parent.template any_of<NoneOf>(entt)) && ...) && !parent.template any_of<Reject...>(entt);
    -
    213 }
    -
    214
    -
    215 if(guard) {
    -
    216 if(!storage.contains(entt)) {
    - -
    218 }
    -
    219
    -
    220 storage.get(entt) |= (1 << Index);
    -
    221 }
    -
    222 }
    -
    223
    -
    224 template<std::size_t Index>
    -
    225 static void connect(storage_type &storage, Registry &parent) {
    -
    226 (parent.template on_destroy<Require>().template connect<&discard_if<Index>>(storage), ...);
    -
    227 (parent.template on_construct<Reject>().template connect<&discard_if<Index>>(storage), ...);
    -
    228 (parent.template on_construct<AllOf>().template connect<&maybe_valid_if<Index>>(storage), ...);
    -
    229 (parent.template on_destroy<NoneOf>().template connect<&maybe_valid_if<Index, NoneOf>>(storage), ...);
    -
    230 (parent.template on_destroy<AllOf>().template connect<&discard_if<Index>>(storage), ...);
    -
    231 (parent.template on_construct<NoneOf>().template connect<&discard_if<Index>>(storage), ...);
    -
    232 }
    -
    233
    -
    234 static void disconnect(storage_type &storage, Registry &parent) {
    -
    235 (parent.template on_destroy<Require>().disconnect(&storage), ...);
    -
    236 (parent.template on_construct<Reject>().disconnect(&storage), ...);
    -
    237 (parent.template on_construct<AllOf>().disconnect(&storage), ...);
    -
    238 (parent.template on_destroy<NoneOf>().disconnect(&storage), ...);
    -
    239 (parent.template on_destroy<AllOf>().disconnect(&storage), ...);
    -
    240 (parent.template on_construct<NoneOf>().disconnect(&storage), ...);
    -
    241 }
    -
    242 };
    -
    243
    -
    244 template<typename... Matcher>
    -
    245 static void disconnect(Registry &parent, storage_type &storage) {
    -
    246 (matcher_handler<Matcher>::disconnect(storage, parent), ...);
    -
    247 }
    -
    248
    -
    249 template<typename... Matcher, std::size_t... Index>
    -
    250 static void connect(Registry &parent, storage_type &storage, std::index_sequence<Index...>) {
    -
    251 static_assert(sizeof...(Matcher) < std::numeric_limits<mask_type>::digits, "Too many matchers");
    -
    252 (matcher_handler<Matcher>::template connect<Index>(storage, parent), ...);
    -
    253 }
    -
    254
    -
    255public:
    -
    257 using allocator_type = Allocator;
    - -
    261 using entity_type = typename registry_type::entity_type;
    -
    263 using size_type = std::size_t;
    -
    265 using iterator = typename registry_type::common_type::iterator;
    -
    266
    - -
    270
    -
    - -
    276 : release{},
    -
    277 parent{},
    - -
    -
    279
    - -
    282
    - -
    285
    -
    292 template<typename... Matcher>
    -
    - -
    294 : release{&basic_observer::disconnect<Matcher...>},
    -
    295 parent{&reg},
    - -
    297 connect<Matcher...>(reg, storage, std::index_sequence_for<Matcher...>{});
    -
    298 }
    -
    -
    299
    -
    301 ~basic_observer() = default;
    -
    302
    - -
    308
    - -
    314
    -
    320 template<typename... Matcher>
    -
    - -
    322 disconnect();
    -
    323 storage.clear();
    -
    324
    -
    325 parent = &reg;
    -
    326 release = &basic_observer::disconnect<Matcher...>;
    -
    327 connect<Matcher...>(reg, storage, std::index_sequence_for<Matcher...>{});
    -
    328 }
    -
    -
    329
    -
    -
    331 void disconnect() {
    -
    332 if(release) {
    -
    333 release(*parent, storage);
    -
    334 release = nullptr;
    -
    335 }
    -
    336 }
    -
    -
    337
    -
    - -
    343 return storage.size();
    -
    344 }
    -
    -
    345
    -
    - -
    351 return storage.empty();
    -
    352 }
    -
    -
    353
    -
    - -
    367 return storage.data();
    -
    368 }
    -
    -
    369
    -
    - -
    378 return storage.storage_type::base_type::begin();
    -
    379 }
    -
    -
    380
    -
    - -
    387 return storage.storage_type::base_type::end();
    -
    388 }
    -
    -
    389
    -
    - -
    392 storage.clear();
    -
    393 }
    -
    -
    394
    -
    408 template<typename Func>
    -
    -
    409 void each(Func func) const {
    -
    410 for(const auto entity: *this) {
    -
    411 func(entity);
    -
    412 }
    -
    413 }
    -
    -
    414
    -
    424 template<typename Func>
    -
    -
    425 void each(Func func) {
    -
    426 std::as_const(*this).each(std::move(func));
    -
    427 clear();
    -
    428 }
    -
    -
    429
    -
    430private:
    -
    431 void (*release)(registry_type &, storage_type &);
    -
    432 registry_type *parent;
    - -
    434};
    -
    -
    435
    -
    436} // namespace entt
    -
    437
    -
    438#endif
    - -
    bool empty() const noexcept
    Checks whether an observer is empty.
    Definition observer.hpp:350
    -
    typename registry_type::common_type::iterator iterator
    Random access iterator type.
    Definition observer.hpp:265
    -
    basic_observer()
    Default constructor.
    Definition observer.hpp:268
    -
    void clear() noexcept
    Clears the underlying container.
    Definition observer.hpp:391
    -
    iterator begin() const noexcept
    Returns an iterator to the first entity of the observer.
    Definition observer.hpp:377
    -
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition observer.hpp:261
    - -
    void connect(registry_type &reg, basic_collector< Matcher... >)
    Connects an observer to a given registry.
    Definition observer.hpp:321
    -
    basic_observer(const allocator_type &allocator)
    Constructs an empty storage with a given allocator.
    Definition observer.hpp:275
    -
    void disconnect()
    Disconnects an observer from the registry it keeps track of.
    Definition observer.hpp:331
    -
    basic_observer & operator=(basic_observer &&)=delete
    Default move assignment operator, deleted on purpose.
    -
    basic_observer(basic_observer &&)=delete
    Default move constructor, deleted on purpose.
    -
    void each(Func func)
    Iterates entities and applies the given function object to them, then clears the observer.
    Definition observer.hpp:425
    -
    ~basic_observer()=default
    Default destructor.
    -
    void each(Func func) const
    Iterates entities and applies the given function object to them.
    Definition observer.hpp:409
    -
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the observer.
    Definition observer.hpp:386
    -
    basic_observer & operator=(const basic_observer &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    const entity_type * data() const noexcept
    Direct access to the list of entities of the observer.
    Definition observer.hpp:366
    -
    basic_observer(const basic_observer &)=delete
    Default copy constructor, deleted on purpose.
    -
    std::size_t size_type
    Unsigned integer type.
    Definition observer.hpp:263
    -
    size_type size() const noexcept
    Returns the number of elements in an observer.
    Definition observer.hpp:342
    -
    basic_observer(registry_type &reg, basic_collector< Matcher... >, const allocator_type &allocator=allocator_type{})
    Creates an observer and connects it to a given registry.
    Definition observer.hpp:293
    -
    Allocator allocator_type
    Allocator type.
    Definition observer.hpp:257
    -
    void erase(const entity_type entt)
    Erases an entity from a sparse set.
    -
    pointer data() const noexcept
    Direct access to the internal packed array.
    -
    void clear()
    Clears a sparse set.
    -
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a sparse set contains an entity.
    -
    bool empty() const noexcept
    Checks whether a sparse set is empty.
    - -
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:639
    -
    value_type & emplace(const entity_type entt, Args &&...args)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:675
    -
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr basic_collector collector
    Variable template used to ease the definition of collectors.
    Definition observer.hpp:108
    -
    static constexpr auto update() noexcept
    Adds an observing matcher to the collector.
    Definition observer.hpp:90
    -
    static constexpr auto group(exclude_t< NoneOf... >=exclude_t{}) noexcept
    Adds a grouping matcher to the collector.
    Definition observer.hpp:80
    -
    static constexpr auto where(exclude_t< NoneOf... >=exclude_t{}) noexcept
    Updates the filter of the last added matcher.
    Definition observer.hpp:101
    - -
    static constexpr auto update() noexcept
    Adds an observing matcher to the collector.
    Definition observer.hpp:55
    -
    static constexpr auto group(exclude_t< NoneOf... >=exclude_t{}) noexcept
    Adds a grouping matcher to the collector.
    Definition observer.hpp:45
    - -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Grouping matcher.
    Definition observer.hpp:17
    -
    Provides a common way to define storage types.
    Definition fwd.hpp:227
    -
    A class to use to push around lists of types, nothing more.
    -
    - - - - diff --git a/organizer_8hpp_source.html b/organizer_8hpp_source.html index 4b80be0f0..cd34fa0dd 100644 --- a/organizer_8hpp_source.html +++ b/organizer_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/organizer.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    organizer.hpp
    @@ -99,7 +107,7 @@ $(function() { codefold.init(0); });
    14#include "helper.hpp"
    15
    16namespace entt {
    -
    17
    +
    17
    19namespace internal {
    20
    21template<typename>
    @@ -111,385 +119,396 @@ $(function() { codefold.init(0); });
    27template<typename Type>
    28inline constexpr bool is_view_v = is_view<Type>::value;
    29
    -
    30template<typename Type, typename Override>
    -
    31struct unpack_type {
    -
    32 using ro = std::conditional_t<
    -
    33 type_list_contains_v<Override, const Type> || (std::is_const_v<Type> && !type_list_contains_v<Override, std::remove_const_t<Type>>),
    -
    34 type_list<std::remove_const_t<Type>>,
    -
    35 type_list<>>;
    -
    36
    -
    37 using rw = std::conditional_t<
    -
    38 type_list_contains_v<Override, std::remove_const_t<Type>> || (!std::is_const_v<Type> && !type_list_contains_v<Override, const Type>),
    -
    39 type_list<Type>,
    -
    40 type_list<>>;
    -
    41};
    -
    42
    -
    43template<typename... Args, typename... Override>
    -
    44struct unpack_type<basic_registry<Args...>, type_list<Override...>> {
    -
    45 using ro = type_list<>;
    -
    46 using rw = type_list<>;
    -
    47};
    -
    48
    -
    49template<typename... Args, typename... Override>
    -
    50struct unpack_type<const basic_registry<Args...>, type_list<Override...>>
    -
    51 : unpack_type<basic_registry<Args...>, type_list<Override...>> {};
    -
    52
    -
    53template<typename... Get, typename... Exclude, typename... Override>
    -
    54struct unpack_type<basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {
    -
    55 using ro = type_list_cat_t<type_list<typename Exclude::element_type...>, typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::ro...>;
    -
    56 using rw = type_list_cat_t<typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::rw...>;
    -
    57};
    -
    58
    -
    59template<typename... Get, typename... Exclude, typename... Override>
    -
    60struct unpack_type<const basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>>
    -
    61 : unpack_type<basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {};
    -
    62
    -
    63template<typename, typename>
    -
    64struct resource_traits;
    -
    65
    -
    66template<typename... Args, typename... Req>
    -
    67struct resource_traits<type_list<Args...>, type_list<Req...>> {
    -
    68 using args = type_list<std::remove_const_t<Args>...>;
    -
    69 using ro = type_list_cat_t<typename unpack_type<Args, type_list<Req...>>::ro..., typename unpack_type<Req, type_list<>>::ro...>;
    -
    70 using rw = type_list_cat_t<typename unpack_type<Args, type_list<Req...>>::rw..., typename unpack_type<Req, type_list<>>::rw...>;
    -
    71};
    -
    72
    -
    73template<typename... Req, typename Ret, typename... Args>
    -
    74resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> free_function_to_resource_traits(Ret (*)(Args...));
    -
    75
    -
    76template<typename... Req, typename Ret, typename Type, typename... Args>
    -
    77resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (*)(Type &, Args...));
    -
    78
    -
    79template<typename... Req, typename Ret, typename Class, typename... Args>
    -
    80resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (Class::*)(Args...));
    +
    30template<typename>
    +
    31struct is_group: std::false_type {};
    +
    32
    +
    33template<typename... Args>
    +
    34struct is_group<basic_group<Args...>>: std::true_type {};
    +
    35
    +
    36template<typename Type>
    +
    37inline constexpr bool is_group_v = is_group<Type>::value;
    +
    38
    +
    39template<typename Type, typename Override>
    +
    40struct unpack_type {
    +
    41 using ro = std::conditional_t<
    +
    42 type_list_contains_v<Override, const Type> || (std::is_const_v<Type> && !type_list_contains_v<Override, std::remove_const_t<Type>>),
    +
    43 type_list<std::remove_const_t<Type>>,
    +
    44 type_list<>>;
    +
    45
    +
    46 using rw = std::conditional_t<
    +
    47 type_list_contains_v<Override, std::remove_const_t<Type>> || (!std::is_const_v<Type> && !type_list_contains_v<Override, const Type>),
    +
    48 type_list<Type>,
    +
    49 type_list<>>;
    +
    50};
    +
    51
    +
    52template<typename... Args, typename... Override>
    +
    53struct unpack_type<basic_registry<Args...>, type_list<Override...>> {
    +
    54 using ro = type_list<>;
    +
    55 using rw = type_list<>;
    +
    56};
    +
    57
    +
    58template<typename... Args, typename... Override>
    +
    59struct unpack_type<const basic_registry<Args...>, type_list<Override...>>
    +
    60 : unpack_type<basic_registry<Args...>, type_list<Override...>> {};
    +
    61
    +
    62template<typename... Get, typename... Exclude, typename... Override>
    +
    63struct unpack_type<basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {
    +
    64 using ro = type_list_cat_t<type_list<typename Exclude::element_type...>, typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::ro...>;
    +
    65 using rw = type_list_cat_t<typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::rw...>;
    +
    66};
    +
    67
    +
    68template<typename... Get, typename... Exclude, typename... Override>
    +
    69struct unpack_type<const basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>>
    +
    70 : unpack_type<basic_view<get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {};
    +
    71
    +
    72template<typename... Owned, typename... Get, typename... Exclude, typename... Override>
    +
    73struct unpack_type<basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {
    +
    74 using ro = type_list_cat_t<type_list<typename Exclude::element_type...>, typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::ro..., typename unpack_type<constness_as_t<typename Owned::element_type, Owned>, type_list<Override...>>::ro...>;
    +
    75 using rw = type_list_cat_t<typename unpack_type<constness_as_t<typename Get::element_type, Get>, type_list<Override...>>::rw..., typename unpack_type<constness_as_t<typename Owned::element_type, Owned>, type_list<Override...>>::rw...>;
    +
    76};
    +
    77
    +
    78template<typename... Owned, typename... Get, typename... Exclude, typename... Override>
    +
    79struct unpack_type<const basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>>
    +
    80 : unpack_type<basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>>, type_list<Override...>> {};
    81
    -
    82template<typename... Req, typename Ret, typename Class, typename... Args>
    -
    83resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (Class::*)(Args...) const);
    +
    82template<typename, typename>
    +
    83struct resource_traits;
    84
    -
    85} // namespace internal
    -
    99template<typename Registry>
    -
    - -
    101 using callback_type = void(const void *, Registry &);
    -
    102 using prepare_type = void(Registry &);
    -
    103 using dependency_type = std::size_t(const bool, const type_info **, const std::size_t);
    -
    104
    -
    105 struct vertex_data final {
    -
    106 std::size_t ro_count{};
    -
    107 std::size_t rw_count{};
    -
    108 const char *name{};
    -
    109 const void *payload{};
    -
    110 callback_type *callback{};
    -
    111 dependency_type *dependency{};
    -
    112 prepare_type *prepare{};
    -
    113 const type_info *info{};
    -
    114 };
    -
    115
    -
    116 template<typename Type>
    -
    117 [[nodiscard]] static decltype(auto) extract(Registry &reg) {
    -
    118 if constexpr(std::is_same_v<Type, Registry>) {
    -
    119 return reg;
    -
    120 } else if constexpr(internal::is_view_v<Type>) {
    -
    121 return static_cast<Type>(as_view{reg});
    -
    122 } else {
    -
    123 return reg.ctx().template emplace<std::remove_reference_t<Type>>();
    -
    124 }
    -
    125 }
    -
    126
    -
    127 template<typename... Args>
    -
    128 [[nodiscard]] static auto to_args(Registry &reg, type_list<Args...>) {
    -
    129 return std::tuple<decltype(extract<Args>(reg))...>(extract<Args>(reg)...);
    -
    130 }
    -
    131
    -
    132 template<typename... Type>
    -
    133 [[nodiscard]] static std::size_t fill_dependencies(type_list<Type...>, [[maybe_unused]] const type_info **buffer, [[maybe_unused]] const std::size_t count) {
    -
    134 if constexpr(sizeof...(Type) == 0u) {
    -
    135 return {};
    -
    136 } else {
    -
    137 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    -
    138 const type_info *info[]{&type_id<Type>()...};
    -
    139 const auto length = count < sizeof...(Type) ? count : sizeof...(Type);
    -
    140
    -
    141 for(std::size_t pos{}; pos < length; ++pos) {
    -
    142 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    -
    143 buffer[pos] = info[pos];
    -
    144 }
    -
    145
    -
    146 return length;
    -
    147 }
    -
    148 }
    -
    149
    -
    150 template<typename... RO, typename... RW>
    -
    151 void track_dependencies(std::size_t index, const bool requires_registry, type_list<RO...>, type_list<RW...>) {
    -
    152 builder.bind(static_cast<id_type>(index));
    -
    153 builder.set(type_hash<Registry>::value(), requires_registry || (sizeof...(RO) + sizeof...(RW) == 0u));
    -
    154 (builder.ro(type_hash<RO>::value()), ...);
    -
    155 (builder.rw(type_hash<RW>::value()), ...);
    -
    156 }
    -
    157
    -
    158public:
    - -
    162 using entity_type = typename registry_type::entity_type;
    -
    164 using size_type = std::size_t;
    -
    166 using function_type = callback_type;
    -
    167
    -
    -
    169 struct vertex {
    -
    -
    176 vertex(vertex_data data, std::vector<std::size_t> from, std::vector<std::size_t> to)
    -
    177 : node{std::move(data)},
    -
    178 in{std::move(from)},
    -
    179 out{std::move(to)} {}
    +
    85template<typename... Args, typename... Req>
    +
    86struct resource_traits<type_list<Args...>, type_list<Req...>> {
    +
    87 using args = type_list<std::remove_const_t<Args>...>;
    +
    88 using ro = type_list_cat_t<typename unpack_type<Args, type_list<Req...>>::ro..., typename unpack_type<Req, type_list<>>::ro...>;
    +
    89 using rw = type_list_cat_t<typename unpack_type<Args, type_list<Req...>>::rw..., typename unpack_type<Req, type_list<>>::rw...>;
    +
    90};
    +
    91
    +
    92template<typename... Req, typename Ret, typename... Args>
    +
    93resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> free_function_to_resource_traits(Ret (*)(Args...));
    +
    94
    +
    95template<typename... Req, typename Ret, typename Type, typename... Args>
    +
    96resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (*)(Type &, Args...));
    +
    97
    +
    98template<typename... Req, typename Ret, typename Class, typename... Args>
    +
    99resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (Class::*)(Args...));
    +
    100
    +
    101template<typename... Req, typename Ret, typename Class, typename... Args>
    +
    102resource_traits<type_list<std::remove_reference_t<Args>...>, type_list<Req...>> constrained_function_to_resource_traits(Ret (Class::*)(Args...) const);
    +
    103
    +
    104} // namespace internal
    +
    106
    +
    118template<typename Registry>
    +
    +
    119class basic_organizer final {
    +
    120 using callback_type = void(const void *, Registry &);
    +
    121 using prepare_type = void(Registry &);
    +
    122 using dependency_type = std::size_t(const bool, const type_info **, const std::size_t);
    +
    123
    +
    124 struct vertex_data final {
    +
    125 std::size_t ro_count{};
    +
    126 std::size_t rw_count{};
    +
    127 const char *name{};
    +
    128 const void *payload{};
    +
    129 callback_type *callback{};
    +
    130 dependency_type *dependency{};
    +
    131 prepare_type *prepare{};
    +
    132 const type_info *info{};
    +
    133 };
    +
    134
    +
    135 template<typename Type>
    +
    136 [[nodiscard]] static decltype(auto) extract(Registry &reg) {
    +
    137 if constexpr(std::is_same_v<Type, Registry>) {
    +
    138 return reg;
    +
    139 } else if constexpr(internal::is_view_v<Type>) {
    +
    140 return static_cast<Type>(as_view{reg});
    +
    141 } else if constexpr(internal::is_group_v<Type>) {
    +
    142 return static_cast<Type>(as_group{reg});
    +
    143 } else {
    +
    144 return reg.ctx().template emplace<std::remove_reference_t<Type>>();
    +
    145 }
    +
    146 }
    +
    147
    +
    148 template<typename... Args>
    +
    149 [[nodiscard]] static auto to_args(Registry &reg, type_list<Args...>) {
    +
    150 return std::tuple<decltype(extract<Args>(reg))...>(extract<Args>(reg)...);
    +
    151 }
    +
    152
    +
    153 template<typename... Type>
    +
    154 [[nodiscard]] static std::size_t fill_dependencies(type_list<Type...>, [[maybe_unused]] const type_info **buffer, [[maybe_unused]] const std::size_t count) {
    +
    155 if constexpr(sizeof...(Type) == 0u) {
    +
    156 return {};
    +
    157 } else {
    +
    158 // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    +
    159 const type_info *info[]{&type_id<Type>()...};
    +
    160 const auto length = count < sizeof...(Type) ? count : sizeof...(Type);
    +
    161
    +
    162 for(std::size_t pos{}; pos < length; ++pos) {
    +
    163 // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
    +
    164 buffer[pos] = info[pos];
    +
    165 }
    +
    166
    +
    167 return length;
    +
    168 }
    +
    169 }
    +
    170
    +
    171 template<typename... RO, typename... RW>
    +
    172 void track_dependencies(std::size_t index, const bool requires_registry, type_list<RO...>, type_list<RW...>) {
    +
    173 builder.bind(static_cast<id_type>(index));
    +
    174 builder.set(type_hash<Registry>::value(), requires_registry || (sizeof...(RO) + sizeof...(RW) == 0u));
    +
    175 (builder.ro(type_hash<RO>::value()), ...);
    +
    176 (builder.rw(type_hash<RW>::value()), ...);
    +
    177 }
    +
    178
    +
    179public:
    +
    181 using registry_type = Registry;
    + +
    185 using size_type = std::size_t;
    +
    187 using function_type = callback_type;
    +
    188
    +
    +
    190 struct vertex {
    +
    +
    197 vertex(vertex_data data, std::vector<std::size_t> from, std::vector<std::size_t> to)
    +
    198 : node{std::move(data)},
    +
    199 in{std::move(from)},
    +
    200 out{std::move(to)} {}
    -
    180
    -
    -
    188 [[nodiscard]] size_type ro_dependency(const type_info **buffer, const std::size_t length) const noexcept {
    -
    189 return node.dependency(false, buffer, length);
    -
    190 }
    +
    201
    +
    +
    209 [[nodiscard]] size_type ro_dependency(const type_info **buffer, const std::size_t length) const noexcept {
    +
    210 return node.dependency(false, buffer, length);
    +
    211 }
    -
    191
    -
    -
    199 [[nodiscard]] size_type rw_dependency(const type_info **buffer, const std::size_t length) const noexcept {
    -
    200 return node.dependency(true, buffer, length);
    -
    201 }
    +
    212
    +
    +
    220 [[nodiscard]] size_type rw_dependency(const type_info **buffer, const std::size_t length) const noexcept {
    +
    221 return node.dependency(true, buffer, length);
    +
    222 }
    -
    202
    -
    - -
    208 return node.ro_count;
    -
    209 }
    +
    223
    +
    +
    228 [[nodiscard]] size_type ro_count() const noexcept {
    +
    229 return node.ro_count;
    +
    230 }
    -
    210
    -
    - -
    216 return node.rw_count;
    -
    217 }
    +
    231
    +
    +
    236 [[nodiscard]] size_type rw_count() const noexcept {
    +
    237 return node.rw_count;
    +
    238 }
    -
    218
    -
    - -
    224 return in.empty();
    -
    225 }
    +
    239
    +
    +
    244 [[nodiscard]] bool top_level() const noexcept {
    +
    245 return in.empty();
    +
    246 }
    -
    226
    -
    - -
    232 return *node.info;
    -
    233 }
    +
    247
    +
    +
    252 [[nodiscard]] const type_info &info() const noexcept {
    +
    253 return *node.info;
    +
    254 }
    -
    234
    -
    -
    239 [[nodiscard]] const char *name() const noexcept {
    -
    240 return node.name;
    -
    241 }
    +
    255
    +
    +
    260 [[nodiscard]] const char *name() const noexcept {
    +
    261 return node.name;
    +
    262 }
    -
    242
    -
    - -
    248 return node.callback;
    -
    249 }
    +
    263
    +
    +
    268 [[nodiscard]] function_type *callback() const noexcept {
    +
    269 return node.callback;
    +
    270 }
    -
    250
    -
    -
    255 [[nodiscard]] const void *data() const noexcept {
    -
    256 return node.payload;
    -
    257 }
    +
    271
    +
    +
    276 [[nodiscard]] const void *data() const noexcept {
    +
    277 return node.payload;
    +
    278 }
    -
    258
    -
    -
    263 [[nodiscard]] const std::vector<std::size_t> &in_edges() const noexcept {
    -
    264 return in;
    -
    265 }
    +
    279
    +
    +
    284 [[nodiscard]] const std::vector<std::size_t> &in_edges() const noexcept {
    +
    285 return in;
    +
    286 }
    -
    266
    -
    -
    271 [[nodiscard]] const std::vector<std::size_t> &out_edges() const noexcept {
    -
    272 return out;
    -
    273 }
    +
    287
    +
    +
    292 [[nodiscard]] const std::vector<std::size_t> &out_edges() const noexcept {
    +
    293 return out;
    +
    294 }
    -
    274
    -
    -
    279 [[deprecated("use ::out_edges")]] [[nodiscard]] const std::vector<std::size_t> &children() const noexcept {
    -
    280 return out_edges();
    -
    281 }
    +
    295
    +
    +
    301 void prepare(registry_type &reg) const {
    +
    302 node.prepare ? node.prepare(reg) : void();
    +
    303 }
    -
    282
    -
    -
    288 void prepare(registry_type &reg) const {
    -
    289 node.prepare ? node.prepare(reg) : void();
    -
    290 }
    +
    304
    +
    305 private:
    +
    306 vertex_data node;
    +
    307 std::vector<std::size_t> in;
    +
    308 std::vector<std::size_t> out;
    +
    309 };
    -
    291
    -
    292 private:
    -
    293 vertex_data node;
    -
    294 std::vector<std::size_t> in;
    -
    295 std::vector<std::size_t> out;
    -
    296 };
    +
    310
    +
    317 template<auto Candidate, typename... Req>
    +
    +
    318 void emplace(const char *name = nullptr) {
    +
    319 using resource_type = decltype(internal::free_function_to_resource_traits<Req...>(Candidate));
    + +
    321
    +
    322 callback_type *callback = +[](const void *, registry_type &reg) {
    +
    323 std::apply(Candidate, to_args(reg, typename resource_type::args{}));
    +
    324 };
    +
    325
    +
    326 vertex_data vdata{
    +
    327 resource_type::ro::size,
    +
    328 resource_type::rw::size,
    +
    329 name,
    +
    330 nullptr,
    +
    331 callback,
    +
    332 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    +
    333 +[](registry_type &reg) { void(to_args(reg, typename resource_type::args{})); },
    +
    334 &type_id<std::integral_constant<decltype(Candidate), Candidate>>()};
    +
    335
    +
    336 track_dependencies(vertices.size(), requires_registry, typename resource_type::ro{}, typename resource_type::rw{});
    +
    337 vertices.push_back(std::move(vdata));
    +
    338 }
    -
    297
    -
    304 template<auto Candidate, typename... Req>
    -
    -
    305 void emplace(const char *name = nullptr) {
    -
    306 using resource_type = decltype(internal::free_function_to_resource_traits<Req...>(Candidate));
    - -
    308
    -
    309 callback_type *callback = +[](const void *, registry_type &reg) {
    -
    310 std::apply(Candidate, to_args(reg, typename resource_type::args{}));
    -
    311 };
    -
    312
    -
    313 vertex_data vdata{
    -
    314 resource_type::ro::size,
    -
    315 resource_type::rw::size,
    -
    316 name,
    -
    317 nullptr,
    -
    318 callback,
    -
    319 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    -
    320 +[](registry_type &reg) { void(to_args(reg, typename resource_type::args{})); },
    -
    321 &type_id<std::integral_constant<decltype(Candidate), Candidate>>()};
    -
    322
    -
    323 track_dependencies(vertices.size(), requires_registry, typename resource_type::ro{}, typename resource_type::rw{});
    -
    324 vertices.push_back(std::move(vdata));
    -
    325 }
    -
    -
    326
    -
    336 template<auto Candidate, typename... Req, typename Type>
    -
    -
    337 void emplace(Type &value_or_instance, const char *name = nullptr) {
    -
    338 using resource_type = decltype(internal::constrained_function_to_resource_traits<Req...>(Candidate));
    - -
    340
    -
    341 callback_type *callback = +[](const void *payload, registry_type &reg) {
    -
    342 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
    -
    343 std::apply(Candidate, std::tuple_cat(std::forward_as_tuple(*curr), to_args(reg, typename resource_type::args{})));
    -
    344 };
    -
    345
    -
    346 vertex_data vdata{
    -
    347 resource_type::ro::size,
    -
    348 resource_type::rw::size,
    -
    349 name,
    - -
    351 callback,
    -
    352 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    -
    353 +[](registry_type &reg) { void(to_args(reg, typename resource_type::args{})); },
    -
    354 &type_id<std::integral_constant<decltype(Candidate), Candidate>>()};
    -
    355
    -
    356 track_dependencies(vertices.size(), requires_registry, typename resource_type::ro{}, typename resource_type::rw{});
    -
    357 vertices.push_back(std::move(vdata));
    -
    358 }
    -
    -
    359
    -
    368 template<typename... Req>
    -
    -
    369 void emplace(function_type *func, const void *payload = nullptr, const char *name = nullptr) {
    -
    370 using resource_type = internal::resource_traits<type_list<>, type_list<Req...>>;
    -
    371 track_dependencies(vertices.size(), true, typename resource_type::ro{}, typename resource_type::rw{});
    -
    372
    -
    373 vertex_data vdata{
    -
    374 resource_type::ro::size,
    -
    375 resource_type::rw::size,
    -
    376 name,
    -
    377 payload,
    -
    378 func,
    -
    379 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    -
    380 nullptr,
    -
    381 &type_id<void>()};
    -
    382
    -
    383 vertices.push_back(std::move(vdata));
    -
    384 }
    +
    339
    +
    349 template<auto Candidate, typename... Req, typename Type>
    +
    +
    350 void emplace(Type &value_or_instance, const char *name = nullptr) {
    +
    351 using resource_type = decltype(internal::constrained_function_to_resource_traits<Req...>(Candidate));
    + +
    353
    +
    354 callback_type *callback = +[](const void *payload, registry_type &reg) {
    +
    355 Type *curr = static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(payload));
    +
    356 std::apply(Candidate, std::tuple_cat(std::forward_as_tuple(*curr), to_args(reg, typename resource_type::args{})));
    +
    357 };
    +
    358
    +
    359 vertex_data vdata{
    +
    360 resource_type::ro::size,
    +
    361 resource_type::rw::size,
    +
    362 name,
    +
    363 &value_or_instance,
    +
    364 callback,
    +
    365 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    +
    366 +[](registry_type &reg) { void(to_args(reg, typename resource_type::args{})); },
    +
    367 &type_id<std::integral_constant<decltype(Candidate), Candidate>>()};
    +
    368
    +
    369 track_dependencies(vertices.size(), requires_registry, typename resource_type::ro{}, typename resource_type::rw{});
    +
    370 vertices.push_back(std::move(vdata));
    +
    371 }
    +
    372
    +
    381 template<typename... Req>
    +
    +
    382 void emplace(function_type *func, const void *payload = nullptr, const char *name = nullptr) {
    +
    383 using resource_type = internal::resource_traits<type_list<>, type_list<Req...>>;
    +
    384 track_dependencies(vertices.size(), true, typename resource_type::ro{}, typename resource_type::rw{});
    385
    -
    -
    390 [[nodiscard]] std::vector<vertex> graph() {
    -
    391 std::vector<vertex> adjacency_list{};
    -
    392 adjacency_list.reserve(vertices.size());
    -
    393 auto adjacency_matrix = builder.graph();
    -
    394
    -
    395 for(auto curr: adjacency_matrix.vertices()) {
    -
    396 std::vector<std::size_t> in{};
    -
    397 std::vector<std::size_t> out{};
    -
    398
    -
    399 for(auto &&edge: adjacency_matrix.in_edges(curr)) {
    -
    400 in.push_back(edge.first);
    -
    401 }
    -
    402
    -
    403 for(auto &&edge: adjacency_matrix.out_edges(curr)) {
    -
    404 out.push_back(edge.second);
    -
    405 }
    -
    406
    -
    407 adjacency_list.emplace_back(vertices[curr], std::move(in), std::move(out));
    -
    408 }
    -
    409
    -
    410 return adjacency_list;
    -
    411 }
    +
    386 vertex_data vdata{
    +
    387 resource_type::ro::size,
    +
    388 resource_type::rw::size,
    +
    389 name,
    +
    390 payload,
    +
    391 func,
    +
    392 +[](const bool rw, const type_info **buffer, const std::size_t length) { return rw ? fill_dependencies(typename resource_type::rw{}, buffer, length) : fill_dependencies(typename resource_type::ro{}, buffer, length); },
    +
    393 nullptr,
    +
    394 &type_id<void>()};
    +
    395
    +
    396 vertices.push_back(std::move(vdata));
    +
    397 }
    -
    412
    -
    -
    414 void clear() {
    -
    415 builder.clear();
    -
    416 vertices.clear();
    -
    417 }
    +
    398
    +
    +
    403 [[nodiscard]] std::vector<vertex> graph() {
    +
    404 std::vector<vertex> adjacency_list{};
    +
    405 adjacency_list.reserve(vertices.size());
    +
    406 auto adjacency_matrix = builder.graph();
    +
    407
    +
    408 for(auto curr: adjacency_matrix.vertices()) {
    +
    409 std::vector<std::size_t> in{};
    +
    410 std::vector<std::size_t> out{};
    +
    411
    +
    412 for(auto &&edge: adjacency_matrix.in_edges(curr)) {
    +
    413 in.push_back(edge.first);
    +
    414 }
    +
    415
    +
    416 for(auto &&edge: adjacency_matrix.out_edges(curr)) {
    +
    417 out.push_back(edge.second);
    +
    418 }
    +
    419
    +
    420 adjacency_list.emplace_back(vertices[curr], std::move(in), std::move(out));
    +
    421 }
    +
    422
    +
    423 return adjacency_list;
    +
    424 }
    -
    418
    -
    419private:
    -
    420 std::vector<vertex_data> vertices;
    -
    421 flow builder;
    -
    422};
    +
    425
    +
    +
    427 void clear() {
    +
    428 builder.clear();
    +
    429 vertices.clear();
    +
    430 }
    -
    423
    -
    424} // namespace entt
    -
    425
    -
    426#endif
    -
    Basic implementation of a directed adjacency matrix.
    -
    iterable_adaptor< out_edge_iterator > out_edges(const vertex_type vertex) const noexcept
    Returns an iterable object to visit all out-edges of a vertex.
    -
    iterable_adaptor< in_edge_iterator > in_edges(const vertex_type vertex) const noexcept
    Returns an iterable object to visit all in-edges of a vertex.
    -
    iterable_adaptor< vertex_iterator > vertices() const noexcept
    Returns an iterable object to visit all vertices of a matrix.
    +
    431
    +
    432private:
    +
    433 std::vector<vertex_data> vertices;
    +
    434 flow builder;
    +
    435};
    +
    +
    436
    +
    437} // namespace entt
    +
    438
    +
    439#endif
    +
    Basic implementation of a directed adjacency matrix.
    +
    iterable_adaptor< out_edge_iterator > out_edges(const vertex_type vertex) const noexcept
    Returns an iterable object to visit all out-edges of a vertex.
    +
    iterable_adaptor< in_edge_iterator > in_edges(const vertex_type vertex) const noexcept
    Returns an iterable object to visit all in-edges of a vertex.
    +
    iterable_adaptor< vertex_iterator > vertices() const noexcept
    Returns an iterable object to visit all vertices of a matrix.
    +
    Converts a registry to a group.
    Definition helper.hpp:61
    Converts a registry to a view.
    Definition helper.hpp:22
    - -
    void clear() noexcept
    Clears the flow builder.
    Definition flow.hpp:201
    -
    basic_flow & rw(const id_type res)
    Assigns a writable resource to the current task.
    Definition flow.hpp:306
    -
    graph_type graph() const
    Generates a task graph for the current content.
    Definition flow.hpp:332
    -
    basic_flow & ro(const id_type res)
    Assigns a read-only resource to the current task.
    Definition flow.hpp:279
    -
    basic_flow & bind(const id_type value)
    Binds a task to a flow builder.
    Definition flow.hpp:241
    -
    basic_flow & set(const id_type res, bool is_rw=false)
    Assigns a resource to the current task with a given access mode.
    Definition flow.hpp:269
    -
    Utility class for creating a static task graph.
    - -
    std::vector< vertex > graph()
    Generates a task graph for the current content.
    -
    void clear()
    Erases all elements from a container.
    -
    void emplace(const char *name=nullptr)
    Adds a free function to the task list.
    -
    callback_type function_type
    Raw task function type.
    -
    void emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)
    Adds an user defined function with optional payload to the task list.
    -
    void emplace(Type &value_or_instance, const char *name=nullptr)
    Adds a free function with payload or a member function with an instance to the task list.
    -
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    -
    std::size_t size_type
    Unsigned integer type.
    +
    Utility class for creating a static task graph.
    + +
    std::vector< vertex > graph()
    Generates a task graph for the current content.
    +
    void clear()
    Erases all elements from a container.
    +
    void emplace(const char *name=nullptr)
    Adds a free function to the task list.
    + +
    void emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)
    Adds an user defined function with optional payload to the task list.
    +
    void emplace(Type &value_or_instance, const char *name=nullptr)
    Adds a free function with payload or a member function with an instance to the task list.
    +
    typename registry_type::entity_type entity_type
    + +
    typename traits_type::value_type entity_type
    Definition registry.hpp:304
    EnTT default namespace.
    Definition dense_map.hpp:22
    basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >
    Deduction guide.
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    -
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    +
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    basic_flow<> flow
    Alias declaration for the most common use case.
    Definition fwd.hpp:23
    +
    constexpr bool type_list_contains_v
    Helper variable template.
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.
    -
    Vertex type of a task graph defined as an adjacency list.
    -
    size_type ro_dependency(const type_info **buffer, const std::size_t length) const noexcept
    Fills a buffer with the type info objects for the writable resources of a vertex.
    -
    size_type ro_count() const noexcept
    Returns the number of read-only resources of a vertex.
    -
    const type_info & info() const noexcept
    Returns a type info object associated with a vertex.
    -
    function_type * callback() const noexcept
    Returns the function associated with a vertex.
    -
    const std::vector< std::size_t > & in_edges() const noexcept
    Returns the list of in-edges of a vertex.
    -
    const std::vector< std::size_t > & out_edges() const noexcept
    Returns the list of out-edges of a vertex.
    -
    const std::vector< std::size_t > & children() const noexcept
    Returns the list of nodes reachable from a given vertex.
    -
    void prepare(registry_type &reg) const
    Prepares a registry and assures that all required resources are properly instantiated before using th...
    -
    size_type rw_dependency(const type_info **buffer, const std::size_t length) const noexcept
    Fills a buffer with the type info objects for the read-only resources of a vertex.
    -
    const char * name() const noexcept
    Returns a user defined name associated with a vertex, if any.
    -
    const void * data() const noexcept
    Returns the payload associated with a vertex, if any.
    -
    vertex(vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)
    Constructs a vertex of the task graph.
    -
    size_type rw_count() const noexcept
    Returns the number of writable resources of a vertex.
    -
    bool top_level() const noexcept
    Checks if a vertex is also a top-level one.
    -
    Type hash.
    Definition type_info.hpp:92
    +
    size_type ro_dependency(const type_info **buffer, const std::size_t length) const noexcept
    Fills a buffer with the type info objects for the writable resources of a vertex.
    +
    size_type ro_count() const noexcept
    Returns the number of read-only resources of a vertex.
    +
    const type_info & info() const noexcept
    Returns a type info object associated with a vertex.
    +
    function_type * callback() const noexcept
    Returns the function associated with a vertex.
    +
    const std::vector< std::size_t > & in_edges() const noexcept
    Returns the list of in-edges of a vertex.
    +
    const std::vector< std::size_t > & out_edges() const noexcept
    Returns the list of out-edges of a vertex.
    +
    void prepare(registry_type &reg) const
    Prepares a registry and assures that all required resources are properly instantiated before using th...
    +
    size_type rw_dependency(const type_info **buffer, const std::size_t length) const noexcept
    Fills a buffer with the type info objects for the read-only resources of a vertex.
    +
    const char * name() const noexcept
    Returns a user defined name associated with a vertex, if any.
    +
    const void * data() const noexcept
    Returns the payload associated with a vertex, if any.
    +
    vertex(vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)
    Constructs a vertex of the task graph.
    +
    size_type rw_count() const noexcept
    Returns the number of writable resources of a vertex.
    +
    bool top_level() const noexcept
    Checks if a vertex is also a top-level one.
    +
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    Implementation specific information about a type.
    -
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/pages.html b/pages.html index 80dc04141..aedcc73b4 100644 --- a/pages.html +++ b/pages.html @@ -3,13 +3,15 @@ - + EnTT: Related Pages + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,24 +33,35 @@
    - + +
    +
    +
    +
    diff --git a/pointer_8hpp_source.html b/pointer_8hpp_source.html index 28e7ac0ac..53cad049f 100644 --- a/pointer_8hpp_source.html +++ b/pointer_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/pointer.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    pointer.hpp
    @@ -93,42 +101,48 @@ $(function() { codefold.init(0); });
    8#include "type_traits.hpp"
    9
    10namespace entt {
    -
    11
    +
    11
    16template<typename Type>
    18 : std::true_type {};
    -
    19
    +
    19
    25template<typename Type, std::size_t N>
    26// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    -
    27struct is_meta_pointer_like<Type (*)[N]>
    +
    27struct is_meta_pointer_like<Type (*)[N]>
    28 : std::false_type {};
    -
    29
    +
    29
    35template<typename Type>
    - +
    36struct is_meta_pointer_like<std::shared_ptr<Type>>
    37 : std::true_type {};
    -
    38
    -
    45template<typename Type, typename... Args>
    +
    38
    +
    45template<typename Type, typename... Args>
    -
    46struct is_meta_pointer_like<std::unique_ptr<Type, Args...>>
    +
    46struct is_meta_pointer_like<std::unique_ptr<Type, Args...>>
    47 : std::true_type {};
    -
    48
    -
    49} // namespace entt
    -
    50
    -
    51#endif
    +
    48
    +
    53template<typename Type>
    +
    +
    54struct is_meta_pointer_like<Type, std::void_t<typename Type::is_meta_pointer_like>>
    +
    55 : std::true_type {};
    +
    +
    56
    +
    57} // namespace entt
    +
    58
    +
    59#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    Provides the member constant value to true if a given type is a pointer-like type from the point of v...
    +
    diff --git a/policy_8hpp_source.html b/policy_8hpp_source.html index 3589a550a..f5cfac7ea 100644 --- a/policy_8hpp_source.html +++ b/policy_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/policy.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    policy.hpp
    @@ -89,41 +97,41 @@ $(function() { codefold.init(0); });
    4#include <type_traits>
    5
    6namespace entt {
    -
    7
    +
    7
    -
    9struct as_ref_t final {
    +
    9struct as_ref_t final {
    11 template<typename Type>
    12 static constexpr bool value = std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>;
    14};
    -
    15
    +
    15
    - +
    17struct as_cref_t final {
    19 template<typename Type>
    20 static constexpr bool value = std::is_reference_v<Type>;
    22};
    -
    23
    +
    23
    -
    25struct as_is_t final {
    +
    25struct as_is_t final {
    27 template<typename>
    28 static constexpr bool value = true;
    30};
    -
    31
    +
    31
    - +
    33struct as_void_t final {
    35 template<typename>
    36 static constexpr bool value = true;
    38};
    -
    39
    +
    39
    45template<typename Type>
    47 : std::bool_constant<std::is_same_v<Type, as_ref_t> || std::is_same_v<Type, as_cref_t> || std::is_same_v<Type, as_is_t> || std::is_same_v<Type, as_void_t>> {};
    -
    48
    +
    48
    53template<typename Type>
    55
    @@ -131,7 +139,6 @@ $(function() { codefold.init(0); });
    57
    58#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr bool is_meta_policy_v
    Helper variable template.
    Definition policy.hpp:54
    Empty class type used to request the as cref policy.
    Definition policy.hpp:17
    Empty class type used to request the as-is policy.
    Definition policy.hpp:25
    @@ -141,7 +148,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/poly_2fwd_8hpp_source.html b/poly_2fwd_8hpp_source.html index 17fbb428c..d8d8cc81a 100644 --- a/poly_2fwd_8hpp_source.html +++ b/poly_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/poly/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -92,20 +100,22 @@ $(function() { codefold.init(0); });
    7
    8// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)
    9template<typename, std::size_t Len = sizeof(double[2]), std::size_t = alignof(double[2])>
    -
    10class basic_poly;
    -
    11
    +
    10class basic_poly;
    +
    11
    16template<typename Concept>
    - +
    18
    19} // namespace entt
    20
    21#endif
    -
    Static polymorphism made simple and within everyone's reach.
    Definition poly.hpp:193
    +
    Static polymorphism made simple and within everyone's reach.
    Definition poly.hpp:193
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    basic_poly< Concept > poly
    Alias declaration for the most common use case.
    Definition fwd.hpp:17
    +
    diff --git a/poly_8hpp_source.html b/poly_8hpp_source.html index 3eeaa6b0a..36556120f 100644 --- a/poly_8hpp_source.html +++ b/poly_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/poly/poly.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    poly.hpp
    @@ -97,87 +105,87 @@ $(function() { codefold.init(0); });
    12#include "fwd.hpp"
    13
    14namespace entt {
    -
    15
    +
    15
    22 template<typename Type>
    23 operator Type &&() const;
    -
    24
    -
    32 template<std::size_t Member, typename... Args>
    - -
    34
    -
    36 template<std::size_t Member, typename... Args>
    - +
    24
    +
    32 template<std::size_t Member, typename... Args>
    +
    33 [[nodiscard]] poly_inspector invoke(Args &&...args) const;
    +
    34
    +
    36 template<std::size_t Member, typename... Args>
    +
    37 [[nodiscard]] poly_inspector invoke(Args &&...args);
    38};
    -
    39
    +
    39
    46template<typename Concept, std::size_t Len, std::size_t Align>
    -
    48 using inspector = typename Concept::template type<poly_inspector>;
    +
    48 using inspector = typename Concept::template type<poly_inspector>;
    49
    -
    50 template<typename Ret, typename Clazz, typename... Args>
    -
    51 static auto vtable_entry(Ret (*)(Clazz &, Args...))
    -
    52 -> std::enable_if_t<std::is_base_of_v<std::remove_const_t<Clazz>, inspector>, Ret (*)(constness_as_t<basic_any<Len, Align>, Clazz> &, Args...)>;
    +
    50 template<typename Ret, typename Clazz, typename... Args>
    +
    51 static auto vtable_entry(Ret (*)(Clazz &, Args...))
    +
    52 -> std::enable_if_t<std::is_base_of_v<std::remove_const_t<Clazz>, inspector>, Ret (*)(constness_as_t<basic_any<Len, Align>, Clazz> &, Args...)>;
    53
    -
    54 template<typename Ret, typename... Args>
    -
    55 static auto vtable_entry(Ret (*)(Args...))
    -
    56 -> Ret (*)(const basic_any<Len, Align> &, Args...);
    +
    54 template<typename Ret, typename... Args>
    +
    55 static auto vtable_entry(Ret (*)(Args...))
    +
    56 -> Ret (*)(const basic_any<Len, Align> &, Args...);
    57
    -
    58 template<typename Ret, typename Clazz, typename... Args>
    -
    59 static auto vtable_entry(Ret (Clazz::*)(Args...))
    -
    60 -> std::enable_if_t<std::is_base_of_v<Clazz, inspector>, Ret (*)(basic_any<Len, Align> &, Args...)>;
    +
    58 template<typename Ret, typename Clazz, typename... Args>
    +
    59 static auto vtable_entry(Ret (Clazz::*)(Args...))
    +
    60 -> std::enable_if_t<std::is_base_of_v<Clazz, inspector>, Ret (*)(basic_any<Len, Align> &, Args...)>;
    61
    -
    62 template<typename Ret, typename Clazz, typename... Args>
    -
    63 static auto vtable_entry(Ret (Clazz::*)(Args...) const)
    -
    64 -> std::enable_if_t<std::is_base_of_v<Clazz, inspector>, Ret (*)(const basic_any<Len, Align> &, Args...)>;
    +
    62 template<typename Ret, typename Clazz, typename... Args>
    +
    63 static auto vtable_entry(Ret (Clazz::*)(Args...) const)
    +
    64 -> std::enable_if_t<std::is_base_of_v<Clazz, inspector>, Ret (*)(const basic_any<Len, Align> &, Args...)>;
    65
    -
    66 template<auto... Candidate>
    +
    66 template<auto... Candidate>
    67 static auto make_vtable(value_list<Candidate...>) noexcept
    -
    68 -> decltype(std::make_tuple(vtable_entry(Candidate)...));
    +
    68 -> decltype(std::make_tuple(vtable_entry(Candidate)...));
    69
    70 template<typename... Func>
    -
    71 [[nodiscard]] static constexpr auto make_vtable(type_list<Func...>) noexcept {
    -
    72 if constexpr(sizeof...(Func) == 0u) {
    -
    73 return decltype(make_vtable(typename Concept::template impl<inspector>{})){};
    +
    71 [[nodiscard]] static constexpr auto make_vtable(type_list<Func...>) noexcept {
    +
    72 if constexpr(sizeof...(Func) == 0u) {
    +
    73 return decltype(make_vtable(typename Concept::template impl<inspector>{})){};
    74 } else if constexpr((std::is_function_v<Func> && ...)) {
    75 return decltype(std::make_tuple(vtable_entry(std::declval<Func inspector::*>())...)){};
    76 }
    77 }
    78
    -
    79 template<typename Type, auto Candidate, typename Ret, typename Any, typename... Args>
    -
    80 static void fill_vtable_entry(Ret (*&entry)(Any &, Args...)) noexcept {
    -
    81 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Args...>) {
    -
    82 entry = +[](Any &, Args... args) -> Ret {
    -
    83 return std::invoke(Candidate, std::forward<Args>(args)...);
    +
    79 template<typename Type, auto Candidate, typename Ret, typename Any, typename... Args>
    +
    80 static void fill_vtable_entry(Ret (*&entry)(Any &, Args...)) noexcept {
    +
    81 if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Args...>) {
    +
    82 entry = +[](Any &, Args... args) -> Ret {
    +
    83 return std::invoke(Candidate, std::forward<Args>(args)...);
    84 };
    85 } else {
    -
    86 entry = +[](Any &instance, Args... args) -> Ret {
    -
    87 return static_cast<Ret>(std::invoke(Candidate, any_cast<constness_as_t<Type, Any> &>(instance), std::forward<Args>(args)...));
    +
    86 entry = +[](Any &instance, Args... args) -> Ret {
    +
    87 return static_cast<Ret>(std::invoke(Candidate, any_cast<constness_as_t<Type, Any> &>(instance), std::forward<Args>(args)...));
    88 };
    89 }
    90 }
    91
    -
    92 template<typename Type, auto... Index>
    -
    93 [[nodiscard]] static auto fill_vtable(std::index_sequence<Index...>) noexcept {
    -
    94 vtable_type impl{};
    - -
    96 return impl;
    +
    92 template<typename Type, auto... Index>
    +
    93 [[nodiscard]] static auto fill_vtable(std::index_sequence<Index...>) noexcept {
    +
    94 vtable_type impl{};
    +
    95 (fill_vtable_entry<Type, value_list_element_v<Index, typename Concept::template impl<Type>>>(std::get<Index>(impl)), ...);
    +
    96 return impl;
    97 }
    98
    99 using vtable_type = decltype(make_vtable(Concept{}));
    -
    100 static constexpr bool is_mono_v = std::tuple_size_v<vtable_type> == 1u;
    +
    100 static constexpr bool is_mono = std::tuple_size_v<vtable_type> == 1u;
    101
    102public:
    -
    104 using type = std::conditional_t<is_mono_v, std::tuple_element_t<0u, vtable_type>, const vtable_type *>;
    -
    105
    +
    104 using type = std::conditional_t<is_mono, std::tuple_element_t<0u, vtable_type>, const vtable_type *>;
    +
    105
    111 template<typename Type>
    - +
    112 [[nodiscard]] static type instance() noexcept {
    113 static_assert(std::is_same_v<Type, std::decay_t<Type>>, "Type differs from its decayed form");
    -
    114 static const vtable_type vtable = fill_vtable<Type>(std::make_index_sequence<Concept::template impl<Type>::size>{});
    +
    114 static const vtable_type vtable = fill_vtable<Type>(std::make_index_sequence<Concept::template impl<Type>::size>{});
    115
    -
    116 if constexpr(is_mono_v) {
    +
    116 if constexpr(is_mono) {
    117 return std::get<0>(vtable);
    118 } else {
    119 return &vtable;
    @@ -186,141 +194,141 @@ $(function() { codefold.init(0); });
    122};
    -
    123
    +
    123
    128template<typename Poly>
    129struct poly_base {
    -
    138 template<std::size_t Member, typename... Args>
    +
    138 template<std::size_t Member, typename... Args>
    -
    139 [[nodiscard]] decltype(auto) invoke(const poly_base &self, Args &&...args) const {
    -
    140 const auto &poly = static_cast<const Poly &>(self);
    +
    139 [[nodiscard]] decltype(auto) invoke(const poly_base &self, Args &&...args) const {
    +
    140 const auto &poly = static_cast<const Poly &>(self);
    141
    -
    142 if constexpr(std::is_function_v<std::remove_pointer_t<decltype(poly.vtable)>>) {
    -
    143 return poly.vtable(poly.storage, std::forward<Args>(args)...);
    +
    142 if constexpr(std::is_function_v<std::remove_pointer_t<decltype(poly.vtable)>>) {
    +
    143 return poly.vtable(poly.storage, std::forward<Args>(args)...);
    144 } else {
    -
    145 return std::get<Member>(*poly.vtable)(poly.storage, std::forward<Args>(args)...);
    +
    145 return std::get<Member>(*poly.vtable)(poly.storage, std::forward<Args>(args)...);
    146 }
    147 }
    -
    148
    -
    150 template<std::size_t Member, typename... Args>
    +
    148
    +
    150 template<std::size_t Member, typename... Args>
    -
    151 [[nodiscard]] decltype(auto) invoke(poly_base &self, Args &&...args) {
    -
    152 auto &poly = static_cast<Poly &>(self);
    +
    151 [[nodiscard]] decltype(auto) invoke(poly_base &self, Args &&...args) {
    +
    152 auto &poly = static_cast<Poly &>(self);
    153
    -
    154 if constexpr(std::is_function_v<std::remove_pointer_t<decltype(poly.vtable)>>) {
    -
    155 static_assert(Member == 0u, "Unknown member");
    -
    156 return poly.vtable(poly.storage, std::forward<Args>(args)...);
    +
    154 if constexpr(std::is_function_v<std::remove_pointer_t<decltype(poly.vtable)>>) {
    +
    155 static_assert(Member == 0u, "Unknown member");
    +
    156 return poly.vtable(poly.storage, std::forward<Args>(args)...);
    157 } else {
    -
    158 return std::get<Member>(*poly.vtable)(poly.storage, std::forward<Args>(args)...);
    +
    158 return std::get<Member>(*poly.vtable)(poly.storage, std::forward<Args>(args)...);
    159 }
    160 }
    161};
    -
    162
    -
    172template<std::size_t Member, typename Poly, typename... Args>
    +
    162
    +
    172template<std::size_t Member, typename Poly, typename... Args>
    -
    173decltype(auto) poly_call(Poly &&self, Args &&...args) {
    -
    174 return std::forward<Poly>(self).template invoke<Member>(self, std::forward<Args>(args)...);
    +
    173decltype(auto) poly_call(Poly &&self, Args &&...args) {
    +
    174 return std::forward<Poly>(self).template invoke<Member>(self, std::forward<Args>(args)...);
    175}
    -
    176
    +
    176
    192template<typename Concept, std::size_t Len, std::size_t Align>
    -
    193class basic_poly: private Concept::template type<poly_base<basic_poly<Concept, Len, Align>>> {
    -
    194 friend struct poly_base<basic_poly>;
    +
    193class basic_poly: private Concept::template type<poly_base<basic_poly<Concept, Len, Align>>> {
    +
    194 friend struct poly_base<basic_poly>;
    195
    196public:
    -
    198 using concept_type = typename Concept::template type<poly_base<basic_poly>>;
    - -
    201
    - -
    204
    - +
    198 using concept_type = typename Concept::template type<poly_base<basic_poly>>;
    + +
    201
    +
    203 basic_poly() noexcept = default;
    +
    204
    +
    211 template<typename Type, typename... Args>
    - -
    213 : storage{std::in_place_type<Type>, std::forward<Args>(args)...},
    - +
    212 explicit basic_poly(std::in_place_type_t<Type>, Args &&...args)
    +
    213 : storage{std::in_place_type<Type>, std::forward<Args>(args)...},
    +
    214 vtable{poly_vtable<Concept, Len, Align>::template instance<std::remove_cv_t<std::remove_reference_t<Type>>>()} {}
    -
    215
    +
    215
    221 template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
    -
    222 basic_poly(Type &&value) noexcept
    -
    223 : basic_poly{std::in_place_type<std::remove_cv_t<std::remove_reference_t<Type>>>, std::forward<Type>(value)} {}
    +
    222 basic_poly(Type &&value) noexcept
    +
    223 : basic_poly{std::in_place_type<std::remove_cv_t<std::remove_reference_t<Type>>>, std::forward<Type>(value)} {}
    -
    224
    +
    224
    - -
    230 return storage.type();
    +
    229 [[nodiscard]] const type_info &type() const noexcept {
    +
    230 return storage.type();
    231 }
    -
    232
    +
    232
    -
    237 [[nodiscard]] const void *data() const noexcept {
    -
    238 return storage.data();
    +
    237 [[nodiscard]] const void *data() const noexcept {
    +
    238 return storage.data();
    239 }
    -
    240
    +
    240
    -
    242 [[nodiscard]] void *data() noexcept {
    -
    243 return storage.data();
    +
    242 [[nodiscard]] void *data() noexcept {
    +
    243 return storage.data();
    244 }
    -
    245
    -
    252 template<typename Type, typename... Args>
    +
    245
    +
    252 template<typename Type, typename... Args>
    -
    253 void emplace(Args &&...args) {
    -
    254 storage.template emplace<Type>(std::forward<Args>(args)...);
    - +
    253 void emplace(Args &&...args) {
    +
    254 storage.template emplace<Type>(std::forward<Args>(args)...);
    +
    255 vtable = poly_vtable<Concept, Len, Align>::template instance<std::remove_cv_t<std::remove_reference_t<Type>>>();
    256 }
    -
    257
    +
    257
    259 void reset() {
    -
    260 storage.reset();
    +
    260 storage.reset();
    261 vtable = {};
    262 }
    -
    263
    +
    263
    -
    268 [[nodiscard]] explicit operator bool() const noexcept {
    -
    269 return static_cast<bool>(storage);
    +
    268 [[nodiscard]] explicit operator bool() const noexcept {
    +
    269 return static_cast<bool>(storage);
    270 }
    -
    271
    +
    271
    - +
    276 [[nodiscard]] concept_type *operator->() noexcept {
    277 return this;
    278 }
    -
    279
    +
    279
    - +
    281 [[nodiscard]] const concept_type *operator->() const noexcept {
    282 return this;
    283 }
    -
    284
    +
    284
    - -
    290 basic_poly ref{};
    -
    291 ref.storage = storage.as_ref();
    +
    289 [[nodiscard]] basic_poly as_ref() noexcept {
    +
    290 basic_poly ref{};
    +
    291 ref.storage = storage.as_ref();
    292 ref.vtable = vtable;
    293 return ref;
    294 }
    -
    295
    +
    295
    - -
    298 basic_poly ref{};
    -
    299 ref.storage = storage.as_ref();
    +
    297 [[nodiscard]] basic_poly as_ref() const noexcept {
    +
    298 basic_poly ref{};
    +
    299 ref.storage = storage.as_ref();
    300 ref.vtable = vtable;
    301 return ref;
    302 }
    303
    304private:
    - +
    306 vtable_type vtable{};
    307};
    @@ -328,33 +336,31 @@ $(function() { codefold.init(0); });
    309} // namespace entt
    310
    311#endif
    -
    A SBO friendly, type-safe container for single values of any type.
    Definition any.hpp:48
    -
    Static polymorphism made simple and within everyone's reach.
    Definition poly.hpp:193
    +
    A SBO friendly, type-safe container for single values of any type.
    Definition any.hpp:38
    const type_info & type() const noexcept
    Returns the object type if any, type_id<void>() otherwise.
    Definition poly.hpp:229
    basic_poly as_ref() noexcept
    Aliasing constructor.
    Definition poly.hpp:289
    void * data() noexcept
    Returns an opaque pointer to the contained instance.
    Definition poly.hpp:242
    void reset()
    Destroys contained object.
    Definition poly.hpp:259
    concept_type * operator->() noexcept
    Returns a pointer to the underlying concept.
    Definition poly.hpp:276
    void emplace(Args &&...args)
    Replaces the contained object by creating a new instance directly.
    Definition poly.hpp:253
    -
    typename Concept::template type< poly_base< basic_poly > > concept_type
    Concept type.
    Definition poly.hpp:198
    +
    typename Concept::template type< poly_base< basic_poly > > concept_type
    Definition poly.hpp:198
    basic_poly as_ref() const noexcept
    Aliasing constructor.
    Definition poly.hpp:297
    const concept_type * operator->() const noexcept
    Returns a pointer to the underlying concept.
    Definition poly.hpp:281
    basic_poly(Type &&value) noexcept
    Constructs a poly from a given value.
    Definition poly.hpp:222
    -
    typename poly_vtable< Concept, Len, Align >::type vtable_type
    Virtual table type.
    Definition poly.hpp:200
    +
    typename poly_vtable< Concept, Len, Align >::type vtable_type
    Definition poly.hpp:200
    const void * data() const noexcept
    Returns an opaque pointer to the contained instance.
    Definition poly.hpp:237
    basic_poly() noexcept=default
    Default constructor.
    -
    pointer data() const noexcept
    Direct access to the internal packed array.
    -
    const type_info & type() const noexcept
    Returned value type, if any.
    -
    Storage implementation.
    Definition storage.hpp:230
    Static virtual table factory.
    Definition poly.hpp:47
    -
    std::conditional_t< is_mono_v, std::tuple_element_t< 0u, vtable_type >, const vtable_type * > type
    Virtual table type.
    Definition poly.hpp:104
    static type instance() noexcept
    Returns a static virtual table for a specific concept and type.
    Definition poly.hpp:112
    +
    std::conditional_t< is_mono, std::tuple_element_t< 0u, vtable_type >, const vtable_type * > type
    Virtual table type.
    Definition poly.hpp:104
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    -
    std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
    Performs type-safe access to the contained object.
    Definition any.hpp:435
    +
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    +
    std::remove_const_t< Type > any_cast(const basic_any< Len, Align > &data) noexcept
    Performs type-safe access to the contained object.
    Definition any.hpp:464
    decltype(auto) poly_call(Poly &&self, Args &&...args)
    Shortcut for calling poly_base<Type>::invoke.
    Definition poly.hpp:173
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    basic_poly< Concept > poly
    Alias declaration for the most common use case.
    Definition fwd.hpp:17
    +
    void invoke(Registry &reg, const typename Registry::entity_type entt)
    Helper to create a listener that directly invokes a member function.
    Definition helper.hpp:108
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    Poly base class used to inject functionalities into concepts.
    Definition poly.hpp:129
    decltype(auto) invoke(const poly_base &self, Args &&...args) const
    Invokes a function from the static virtual table.
    Definition poly.hpp:139
    decltype(auto) invoke(poly_base &self, Args &&...args)
    Invokes a function from the static virtual table.
    Definition poly.hpp:151
    @@ -362,12 +368,13 @@ $(function() { codefold.init(0); });
    poly_inspector invoke(Args &&...args) const
    Dummy invocation function (definition only).
    poly_inspector invoke(Args &&...args)
    Dummy invocation function (definition only).
    Implementation specific information about a type.
    -
    A class to use to push around lists of types, nothing more.
    -
    A class to use to push around lists of constant values, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of constant values, nothing more.
    +
    diff --git a/process_2fwd_8hpp_source.html b/process_2fwd_8hpp_source.html index 86d386ebf..3a1361552 100644 --- a/process_2fwd_8hpp_source.html +++ b/process_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/process/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -92,22 +100,25 @@ $(function() { codefold.init(0); });
    7namespace entt {
    8
    9template<typename, typename>
    -
    10class process;
    +
    10class process;
    11
    12template<typename = std::uint32_t, typename = std::allocator<void>>
    -
    13class basic_scheduler;
    -
    14
    - +
    13class basic_scheduler;
    +
    14
    +
    17
    18} // namespace entt
    19
    20#endif
    Cooperative scheduler for processes.
    Definition scheduler.hpp:82
    +
    Base class for processes.
    Definition process.hpp:71
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    basic_scheduler<> scheduler
    Alias declaration for the most common use case.
    Definition fwd.hpp:16
    +
    diff --git a/process_8hpp_source.html b/process_8hpp_source.html index 48ef93a26..6cb8ec179 100644 --- a/process_8hpp_source.html +++ b/process_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/process/process.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    process.hpp
    @@ -92,10 +100,10 @@ $(function() { codefold.init(0); });
    7#include "fwd.hpp"
    8
    9namespace entt {
    -
    10
    +
    10
    70template<typename Derived, typename Delta>
    -
    71class process {
    +
    71class process {
    72 enum class state : std::uint8_t {
    73 uninitialized = 0,
    74 running,
    @@ -109,64 +117,64 @@ $(function() { codefold.init(0); });
    82
    83 template<typename Target = Derived>
    84 auto next(std::integral_constant<state, state::uninitialized>)
    -
    85 -> decltype(std::declval<Target>().init(), void()) {
    -
    86 static_cast<Target *>(this)->init();
    +
    85 -> decltype(std::declval<Target>().init(), void()) {
    +
    86 static_cast<Target *>(this)->init();
    87 }
    88
    89 template<typename Target = Derived>
    -
    90 auto next(std::integral_constant<state, state::running>, Delta delta, void *data)
    -
    91 -> decltype(std::declval<Target>().update(delta, data), void()) {
    -
    92 static_cast<Target *>(this)->update(delta, data);
    +
    90 auto next(std::integral_constant<state, state::running>, Delta delta, void *data)
    +
    91 -> decltype(std::declval<Target>().update(delta, data), void()) {
    +
    92 static_cast<Target *>(this)->update(delta, data);
    93 }
    94
    95 template<typename Target = Derived>
    96 auto next(std::integral_constant<state, state::succeeded>)
    -
    97 -> decltype(std::declval<Target>().succeeded(), void()) {
    -
    98 static_cast<Target *>(this)->succeeded();
    +
    97 -> decltype(std::declval<Target>().succeeded(), void()) {
    +
    98 static_cast<Target *>(this)->succeeded();
    99 }
    100
    101 template<typename Target = Derived>
    102 auto next(std::integral_constant<state, state::failed>)
    -
    103 -> decltype(std::declval<Target>().failed(), void()) {
    -
    104 static_cast<Target *>(this)->failed();
    +
    103 -> decltype(std::declval<Target>().failed(), void()) {
    +
    104 static_cast<Target *>(this)->failed();
    105 }
    106
    107 template<typename Target = Derived>
    108 auto next(std::integral_constant<state, state::aborted>)
    -
    109 -> decltype(std::declval<Target>().aborted(), void()) {
    -
    110 static_cast<Target *>(this)->aborted();
    +
    109 -> decltype(std::declval<Target>().aborted(), void()) {
    +
    110 static_cast<Target *>(this)->aborted();
    111 }
    112
    -
    113 template<typename... Args>
    -
    114 void next(Args &&...) const noexcept {}
    +
    113 template<typename... Args>
    +
    114 void next(Args...) const noexcept {}
    115
    116protected:
    - +
    123 void succeed() noexcept {
    124 if(alive()) {
    125 current = state::succeeded;
    126 }
    127 }
    -
    128
    +
    128
    -
    135 void fail() noexcept {
    +
    135 void fail() noexcept {
    136 if(alive()) {
    137 current = state::failed;
    138 }
    139 }
    -
    140
    +
    140
    - +
    147 void pause() noexcept {
    148 if(current == state::running) {
    149 current = state::paused;
    150 }
    151 }
    -
    152
    +
    152
    - +
    159 void unpause() noexcept {
    160 if(current == state::paused) {
    161 current = state::running;
    162 }
    @@ -174,69 +182,69 @@ $(function() { codefold.init(0); });
    164
    165public:
    - -
    168
    +
    167 using delta_type = Delta;
    +
    168
    170 constexpr process() = default;
    -
    171
    -
    173 process(const process &) = default;
    -
    174
    - -
    177
    - -
    183
    - -
    189
    +
    171
    +
    173 process(const process &) = default;
    +
    174
    +
    176 process(process &&) noexcept = default;
    +
    177
    +
    182 process &operator=(const process &) = default;
    +
    183
    +
    188 process &operator=(process &&) noexcept = default;
    +
    189
    - +
    191 virtual ~process() {
    192 static_assert(std::is_base_of_v<process, Derived>, "Incorrect use of the class template");
    193 }
    -
    194
    +
    194
    -
    203 void abort(const bool immediate = false) {
    +
    203 void abort(const bool immediate = false) {
    204 if(alive()) {
    205 current = state::aborted;
    206
    -
    207 if(immediate) {
    +
    207 if(immediate) {
    208 tick({});
    209 }
    210 }
    211 }
    -
    212
    +
    212
    - +
    217 [[nodiscard]] bool alive() const noexcept {
    218 return current == state::running || current == state::paused;
    219 }
    -
    220
    +
    220
    - +
    225 [[nodiscard]] bool finished() const noexcept {
    226 return current == state::finished;
    227 }
    -
    228
    +
    228
    - +
    233 [[nodiscard]] bool paused() const noexcept {
    234 return current == state::paused;
    235 }
    -
    236
    +
    236
    - +
    241 [[nodiscard]] bool rejected() const noexcept {
    242 return current == state::rejected;
    243 }
    -
    244
    +
    244
    -
    250 void tick(const Delta delta, void *data = nullptr) {
    +
    250 void tick(const Delta delta, void *data = nullptr) {
    251 switch(current) {
    252 case state::uninitialized:
    253 next(std::integral_constant<state, state::uninitialized>{});
    254 current = state::running;
    255 break;
    256 case state::running:
    -
    257 next(std::integral_constant<state, state::running>{}, delta, data);
    +
    257 next(std::integral_constant<state, state::running>{}, delta, data);
    258 break;
    259 default:
    260 // suppress warnings
    @@ -268,20 +276,20 @@ $(function() { codefold.init(0); });
    285 state current{state::uninitialized};
    286};
    -
    287
    +
    287
    327template<typename Func, typename Delta>
    -
    328struct process_adaptor: process<process_adaptor<Func, Delta>, Delta>, private Func {
    -
    334 template<typename... Args>
    +
    328struct process_adaptor: process<process_adaptor<Func, Delta>, Delta>, private Func {
    +
    334 template<typename... Args>
    - -
    336 : Func{std::forward<Args>(args)...} {}
    +
    335 process_adaptor(Args &&...args)
    +
    336 : Func{std::forward<Args>(args)...} {}
    -
    337
    +
    337
    -
    343 void update(const Delta delta, void *data) {
    +
    343 void update(const Delta delta, void *data) {
    344 Func::operator()(
    -
    345 delta,
    +
    345 delta,
    346 data,
    347 [this]() { this->succeed(); },
    348 [this]() { this->fail(); });
    @@ -293,30 +301,28 @@ $(function() { codefold.init(0); });
    352} // namespace entt
    353
    354#endif
    -
    Base class for processes.
    Definition process.hpp:71
    bool finished() const noexcept
    Returns true if a process is already terminated.
    Definition process.hpp:225
    process(const process &)=default
    Default copy constructor.
    -
    void pause() noexcept
    Stops a process if it's in a running state.
    Definition process.hpp:147
    -
    void succeed() noexcept
    Terminates a process with success if it's still alive.
    Definition process.hpp:123
    +
    void pause() noexcept
    Stops a process if it's in a running state.
    Definition process.hpp:147
    +
    void succeed() noexcept
    Terminates a process with success if it's still alive.
    Definition process.hpp:123
    constexpr process()=default
    Default constructor.
    -
    void unpause() noexcept
    Restarts a process if it's paused.
    Definition process.hpp:159
    +
    void unpause() noexcept
    Restarts a process if it's paused.
    Definition process.hpp:159
    process(process &&) noexcept=default
    Default move constructor.
    Delta delta_type
    Type used to provide elapsed time.
    Definition process.hpp:167
    bool rejected() const noexcept
    Returns true if a process terminated with errors.
    Definition process.hpp:241
    -
    void fail() noexcept
    Terminates a process with errors if it's still alive.
    Definition process.hpp:135
    +
    void fail() noexcept
    Terminates a process with errors if it's still alive.
    Definition process.hpp:135
    bool alive() const noexcept
    Returns true if a process is either running or paused.
    Definition process.hpp:217
    void tick(const Delta delta, void *data=nullptr)
    Updates a process and its internal state if required.
    Definition process.hpp:250
    -
    void abort(const bool immediate=false)
    Aborts a process if it's still alive.
    Definition process.hpp:203
    +
    void abort(const bool immediate=false)
    Aborts a process if it's still alive.
    Definition process.hpp:203
    bool paused() const noexcept
    Returns true if a process is currently paused.
    Definition process.hpp:233
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    Adaptor for lambdas and functors to turn them into processes.
    Definition process.hpp:328
    void update(const Delta delta, void *data)
    Updates a process and its internal state if required.
    Definition process.hpp:343
    process_adaptor(Args &&...args)
    Constructs a process adaptor from a lambda or a functor.
    Definition process.hpp:335
    +
    diff --git a/range_8hpp_source.html b/range_8hpp_source.html index 90abae2b4..2204e51b2 100644 --- a/range_8hpp_source.html +++ b/range_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/range.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    range.hpp
    @@ -94,7 +102,7 @@ $(function() { codefold.init(0); });
    9#include "context.hpp"
    10
    11namespace entt {
    -
    12
    +
    12
    14namespace internal {
    15
    16struct meta_base_node;
    @@ -121,7 +129,7 @@ $(function() { codefold.init(0); });
    37 }
    38
    39 constexpr meta_range_iterator operator++(int) noexcept {
    -
    40 meta_range_iterator orig = *this;
    +
    40 const meta_range_iterator orig = *this;
    41 return ++(*this), orig;
    42 }
    43
    @@ -130,7 +138,7 @@ $(function() { codefold.init(0); });
    46 }
    47
    48 constexpr meta_range_iterator operator--(int) noexcept {
    -
    49 meta_range_iterator orig = *this;
    +
    49 const meta_range_iterator orig = *this;
    50 return operator--(), orig;
    51 }
    52
    @@ -220,16 +228,18 @@ $(function() { codefold.init(0); });
    136}
    137
    138} // namespace internal
    +
    140
    146template<typename Type, typename It>
    - +
    148
    149} // namespace entt
    150
    151#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    iterable_adaptor< internal::meta_range_iterator< Type, It > > meta_range
    Iterable range to use to iterate all types of meta objects.
    Definition range.hpp:147
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    @@ -238,7 +248,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/registry_8hpp_source.html b/registry_8hpp_source.html index 23e109c9c..cd158fbdb 100644 --- a/registry_8hpp_source.html +++ b/registry_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/registry.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    registry.hpp
    @@ -115,7 +123,7 @@ $(function() { codefold.init(0); });
    30#include "view.hpp"
    31
    32namespace entt {
    -
    33
    +
    33
    35namespace internal {
    36
    37template<typename It>
    @@ -148,7 +156,7 @@ $(function() { codefold.init(0); });
    64 }
    65
    66 constexpr registry_storage_iterator operator++(int) noexcept {
    -
    67 registry_storage_iterator orig = *this;
    +
    67 const registry_storage_iterator orig = *this;
    68 return ++(*this), orig;
    69 }
    70
    @@ -157,7 +165,7 @@ $(function() { codefold.init(0); });
    73 }
    74
    75 constexpr registry_storage_iterator operator--(int) noexcept {
    -
    76 registry_storage_iterator orig = *this;
    +
    76 const registry_storage_iterator orig = *this;
    77 return operator--(), orig;
    78 }
    79
    @@ -271,7 +279,7 @@ $(function() { codefold.init(0); });
    187 template<typename Type>
    188 bool erase(const id_type id = type_id<Type>().hash()) {
    189 const auto it = ctx.find(id);
    -
    190 return it != ctx.end() && it->second.type() == type_id<Type>() ? (ctx.erase(it), true) : false;
    +
    190 return it != ctx.end() && it->second.type() == type_id<Type>() ? (ctx.erase(it), true) : false;
    191 }
    192
    193 template<typename Type>
    @@ -307,60 +315,61 @@ $(function() { codefold.init(0); });
    223};
    224
    225} // namespace internal
    +
    227
    233template<typename Entity, typename Allocator>
    - - + +
    235 using base_type = basic_sparse_set<Entity, Allocator>;
    236 using alloc_traits = std::allocator_traits<Allocator>;
    237 static_assert(std::is_same_v<typename alloc_traits::value_type, Entity>, "Invalid value type");
    238 // std::shared_ptr because of its type erased allocator which is useful here
    - - - +
    239 using pool_container_type = dense_map<id_type, std::shared_ptr<base_type>, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc<std::pair<const id_type, std::shared_ptr<base_type>>>>;
    +
    240 using group_container_type = dense_map<id_type, std::shared_ptr<internal::group_descriptor>, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc<std::pair<const id_type, std::shared_ptr<internal::group_descriptor>>>>;
    +
    241 using traits_type = entt_traits<Entity>;
    242
    243 template<typename Type>
    -
    244 [[nodiscard]] auto &assure([[maybe_unused]] const id_type id = type_hash<Type>::value()) {
    +
    244 [[nodiscard]] auto &assure([[maybe_unused]] const id_type id = type_hash<Type>::value()) {
    245 static_assert(std::is_same_v<Type, std::decay_t<Type>>, "Non-decayed types not allowed");
    246
    247 if constexpr(std::is_same_v<Type, entity_type>) {
    -
    248 ENTT_ASSERT(id == type_hash<Type>::value(), "User entity storage not allowed");
    +
    248 ENTT_ASSERT(id == type_hash<Type>::value(), "User entity storage not allowed");
    249 return entities;
    250 } else {
    252
    -
    253 if(auto it = pools.find(id); it != pools.cend()) {
    -
    254 ENTT_ASSERT(it->second->type() == type_id<Type>(), "Unexpected type");
    -
    255 return static_cast<storage_type &>(*it->second);
    +
    253 if(auto it = pools.find(id); it != pools.cend()) {
    +
    254 ENTT_ASSERT(it->second->type() == type_id<Type>(), "Unexpected type");
    +
    255 return static_cast<storage_type &>(*it->second);
    256 }
    257
    -
    258 using alloc_type = typename storage_type::allocator_type;
    - +
    258 using alloc_type = typename storage_type::allocator_type;
    +
    259 typename pool_container_type::mapped_type cpool{};
    260
    261 if constexpr(std::is_void_v<Type> && !std::is_constructible_v<alloc_type, allocator_type>) {
    262 // std::allocator<void> has no cross constructors (waiting for C++20)
    -
    263 cpool = std::allocate_shared<storage_type>(get_allocator(), alloc_type{});
    +
    263 cpool = std::allocate_shared<storage_type>(get_allocator(), alloc_type{});
    264 } else {
    -
    265 cpool = std::allocate_shared<storage_type>(get_allocator(), get_allocator());
    +
    265 cpool = std::allocate_shared<storage_type>(get_allocator(), get_allocator());
    266 }
    267
    -
    268 pools.emplace(id, cpool);
    -
    269 cpool->bind(*this);
    +
    268 pools.emplace(id, cpool);
    +
    269 cpool->bind(*this);
    270
    271 return static_cast<storage_type &>(*cpool);
    272 }
    273 }
    274
    275 template<typename Type>
    -
    276 [[nodiscard]] const auto *assure([[maybe_unused]] const id_type id = type_hash<Type>::value()) const {
    +
    276 [[nodiscard]] const auto *assure([[maybe_unused]] const id_type id = type_hash<Type>::value()) const {
    277 static_assert(std::is_same_v<Type, std::decay_t<Type>>, "Non-decayed types not allowed");
    278
    279 if constexpr(std::is_same_v<Type, entity_type>) {
    -
    280 ENTT_ASSERT(id == type_hash<Type>::value(), "User entity storage not allowed");
    +
    280 ENTT_ASSERT(id == type_hash<Type>::value(), "User entity storage not allowed");
    281 return &entities;
    282 } else {
    -
    283 if(const auto it = pools.find(id); it != pools.cend()) {
    -
    284 ENTT_ASSERT(it->second->type() == type_id<Type>(), "Unexpected type");
    -
    285 return static_cast<const storage_for_type<Type> *>(it->second.get());
    +
    283 if(const auto it = pools.find(id); it != pools.cend()) {
    +
    284 ENTT_ASSERT(it->second->type() == type_id<Type>(), "Unexpected type");
    +
    285 return static_cast<const storage_for_type<Type> *>(it->second.get());
    286 }
    287
    288 return static_cast<const storage_for_type<Type> *>(nullptr);
    @@ -370,8 +379,8 @@ $(function() { codefold.init(0); });
    292 void rebind() {
    293 entities.bind(*this);
    294
    -
    295 for(auto &&curr: pools) {
    -
    296 curr.second->bind(*this);
    +
    295 for(auto &&curr: pools) {
    +
    296 curr.second->bind(*this);
    297 }
    298 }
    299
    @@ -380,249 +389,249 @@ $(function() { codefold.init(0); });
    308 using size_type = std::size_t;
    - +
    310 using common_type = base_type;
    312 using context = internal::registry_context<allocator_type>;
    - - -
    317
    + + +
    317
    322 template<typename Type>
    -
    324
    +
    324
    -
    328
    +
    328
    - - +
    333 explicit basic_registry(const allocator_type &allocator)
    +
    334 : basic_registry{0u, allocator} {}
    -
    335
    +
    335
    - -
    342 : vars{allocator},
    -
    343 pools{allocator},
    -
    344 groups{allocator},
    -
    345 entities{allocator} {
    +
    341 basic_registry(const size_type count, const allocator_type &allocator = allocator_type{})
    +
    342 : vars{allocator},
    +
    343 pools{allocator},
    +
    344 groups{allocator},
    +
    345 entities{allocator} {
    346 pools.reserve(count);
    347 rebind();
    348 }
    -
    349
    - -
    352
    +
    349
    + +
    352
    - -
    358 : vars{std::move(other.vars)},
    -
    359 pools{std::move(other.pools)},
    -
    360 groups{std::move(other.groups)},
    -
    361 entities{std::move(other.entities)} {
    + +
    358 : vars{std::move(other.vars)},
    +
    359 pools{std::move(other.pools)},
    +
    360 groups{std::move(other.groups)},
    +
    361 entities{std::move(other.entities)} {
    362 rebind();
    363 }
    -
    364
    +
    364
    366 ~basic_registry() = default;
    -
    367
    - -
    373
    +
    367
    + +
    373
    - -
    380 swap(other);
    + +
    380 swap(other);
    381 return *this;
    382 }
    -
    383
    +
    383
    -
    388 void swap(basic_registry &other) noexcept {
    +
    388 void swap(basic_registry &other) noexcept {
    389 using std::swap;
    390
    -
    391 swap(vars, other.vars);
    -
    392 swap(pools, other.pools);
    -
    393 swap(groups, other.groups);
    -
    394 swap(entities, other.entities);
    +
    391 swap(vars, other.vars);
    +
    392 swap(pools, other.pools);
    +
    393 swap(groups, other.groups);
    +
    394 swap(entities, other.entities);
    395
    396 rebind();
    -
    397 other.rebind();
    +
    397 other.rebind();
    398 }
    -
    399
    +
    399
    - +
    404 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    405 return entities.get_allocator();
    406 }
    -
    407
    +
    407
    - -
    417 return iterable{pools.begin(), pools.end()};
    +
    416 [[nodiscard]] iterable storage() noexcept {
    +
    417 return iterable{pools.begin(), pools.end()};
    418 }
    -
    419
    +
    419
    - -
    422 return const_iterable{pools.cbegin(), pools.cend()};
    +
    421 [[nodiscard]] const_iterable storage() const noexcept {
    +
    422 return const_iterable{pools.cbegin(), pools.cend()};
    423 }
    -
    424
    +
    424
    - -
    431 return const_cast<common_type *>(std::as_const(*this).storage(id));
    +
    430 [[nodiscard]] common_type *storage(const id_type id) {
    +
    431 return const_cast<common_type *>(std::as_const(*this).storage(id));
    432 }
    -
    433
    +
    433
    -
    439 [[nodiscard]] const common_type *storage(const id_type id) const {
    -
    440 const auto it = pools.find(id);
    -
    441 return it == pools.cend() ? nullptr : it->second.get();
    +
    439 [[nodiscard]] const common_type *storage(const id_type id) const {
    +
    440 const auto it = pools.find(id);
    +
    441 return it == pools.cend() ? nullptr : it->second.get();
    442 }
    -
    443
    +
    443
    450 template<typename Type>
    - -
    452 return assure<Type>(id);
    + +
    452 return assure<std::remove_const_t<Type>>(id);
    453 }
    -
    454
    +
    454
    461 template<typename Type>
    - -
    463 return assure<Type>(id);
    +
    462 [[nodiscard]] const storage_for_type<Type> *storage(const id_type id = type_hash<Type>::value()) const {
    +
    463 return assure<std::remove_const_t<Type>>(id);
    464 }
    -
    465
    +
    465
    -
    471 bool reset(const id_type id) {
    -
    472 ENTT_ASSERT(id != type_hash<entity_type>::value(), "Cannot reset entity storage");
    -
    473 return !(pools.erase(id) == 0u);
    +
    471 bool reset(const id_type id) {
    +
    472 ENTT_ASSERT(id != type_hash<entity_type>::value(), "Cannot reset entity storage");
    +
    473 return !(pools.erase(id) == 0u);
    474 }
    -
    475
    +
    475
    -
    481 [[nodiscard]] bool valid(const entity_type entt) const {
    +
    481 [[nodiscard]] bool valid(const entity_type entt) const {
    482 return static_cast<size_type>(entities.find(entt).index()) < entities.free_list();
    483 }
    -
    484
    +
    484
    - +
    491 [[nodiscard]] version_type current(const entity_type entt) const {
    492 return entities.current(entt);
    493 }
    -
    494
    +
    494
    - -
    500 return entities.emplace();
    +
    499 [[nodiscard]] entity_type create() {
    +
    500 return entities.generate();
    501 }
    -
    502
    +
    502
    - -
    513 return entities.emplace(hint);
    +
    512 [[nodiscard]] entity_type create(const entity_type hint) {
    +
    513 return entities.generate(hint);
    514 }
    -
    515
    +
    515
    525 template<typename It>
    -
    526 void create(It first, It last) {
    -
    527 entities.insert(std::move(first), std::move(last));
    +
    526 void create(It first, It last) {
    +
    527 entities.generate(std::move(first), std::move(last));
    528 }
    -
    529
    +
    529
    -
    541 for(size_type pos = pools.size(); pos != 0u; --pos) {
    -
    542 pools.begin()[pos - 1u].second->remove(entt);
    +
    541 for(size_type pos = pools.size(); pos != 0u; --pos) {
    +
    542 pools.begin()[static_cast<typename pool_container_type::difference_type>(pos - 1u)].second->remove(entt);
    543 }
    544
    545 entities.erase(entt);
    546 return entities.current(entt);
    547 }
    -
    548
    +
    548
    - +
    562 destroy(entt);
    - -
    564 return entities.bump((elem == tombstone) ? traits_type::next(elem) : elem);
    +
    563 const auto elem = traits_type::construct(traits_type::to_entity(entt), version);
    +
    564 return entities.bump((elem == tombstone) ? traits_type::next(elem) : elem);
    565 }
    -
    566
    +
    566
    576 template<typename It>
    -
    577 void destroy(It first, It last) {
    -
    578 const auto to = entities.sort_as(first, last);
    -
    579 const auto from = entities.cend() - entities.free_list();
    +
    577 void destroy(It first, It last) {
    +
    578 const auto to = entities.sort_as(first, last);
    +
    579 const auto from = entities.cend() - static_cast<typename common_type::difference_type>(entities.free_list());
    580
    -
    581 for(auto &&curr: pools) {
    -
    582 curr.second->remove(from, to);
    +
    581 for(auto &&curr: pools) {
    +
    582 curr.second->remove(from, to);
    583 }
    584
    -
    585 entities.erase(from, to);
    +
    585 entities.erase(from, to);
    586 }
    -
    587
    -
    603 template<typename Type, typename... Args>
    +
    587
    +
    603 template<typename Type, typename... Args>
    -
    604 decltype(auto) emplace(const entity_type entt, Args &&...args) {
    +
    604 decltype(auto) emplace(const entity_type entt, Args &&...args) {
    605 ENTT_ASSERT(valid(entt), "Invalid entity");
    -
    606 return assure<Type>().emplace(entt, std::forward<Args>(args)...);
    +
    606 return assure<Type>().emplace(entt, std::forward<Args>(args)...);
    607 }
    -
    608
    +
    608
    620 template<typename Type, typename It>
    -
    621 void insert(It first, It last, const Type &value = {}) {
    +
    621 void insert(It first, It last, const Type &value = {}) {
    622 ENTT_ASSERT(std::all_of(first, last, [this](const auto entt) { return valid(entt); }), "Invalid entity");
    -
    623 assure<Type>().insert(std::move(first), std::move(last), value);
    +
    623 assure<Type>().insert(std::move(first), std::move(last), value);
    624 }
    -
    625
    - +
    625
    +
    638 template<typename Type, typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, Type>>>
    -
    639 void insert(EIt first, EIt last, CIt from) {
    +
    639 void insert(EIt first, EIt last, CIt from) {
    640 ENTT_ASSERT(std::all_of(first, last, [this](const auto entt) { return valid(entt); }), "Invalid entity");
    -
    641 assure<Type>().insert(first, last, from);
    +
    641 assure<Type>().insert(first, last, from);
    642 }
    -
    643
    -
    656 template<typename Type, typename... Args>
    +
    643
    +
    656 template<typename Type, typename... Args>
    -
    657 decltype(auto) emplace_or_replace(const entity_type entt, Args &&...args) {
    -
    658 auto &cpool = assure<Type>();
    +
    657 decltype(auto) emplace_or_replace(const entity_type entt, Args &&...args) {
    +
    658 auto &cpool = assure<Type>();
    659 ENTT_ASSERT(valid(entt), "Invalid entity");
    -
    660 return cpool.contains(entt) ? cpool.patch(entt, [&args...](auto &...curr) { ((curr = Type{std::forward<Args>(args)...}), ...); }) : cpool.emplace(entt, std::forward<Args>(args)...);
    +
    660 return cpool.contains(entt) ? cpool.patch(entt, [&args...](auto &...curr) { ((curr = Type{std::forward<Args>(args)...}), ...); }) : cpool.emplace(entt, std::forward<Args>(args)...);
    661 }
    -
    662
    +
    662
    682 template<typename Type, typename... Func>
    683 decltype(auto) patch(const entity_type entt, Func &&...func) {
    -
    684 return assure<Type>().patch(entt, std::forward<Func>(func)...);
    +
    684 return assure<Type>().patch(entt, std::forward<Func>(func)...);
    685 }
    -
    686
    -
    702 template<typename Type, typename... Args>
    +
    686
    +
    702 template<typename Type, typename... Args>
    -
    703 decltype(auto) replace(const entity_type entt, Args &&...args) {
    -
    704 return patch<Type>(entt, [&args...](auto &...curr) { ((curr = Type{std::forward<Args>(args)...}), ...); });
    +
    703 decltype(auto) replace(const entity_type entt, Args &&...args) {
    +
    704 return patch<Type>(entt, [&args...](auto &...curr) { ((curr = Type{std::forward<Args>(args)...}), ...); });
    705 }
    -
    706
    +
    706
    714 template<typename Type, typename... Other>
    -
    716 return (assure<Type>().remove(entt) + ... + assure<Other>().remove(entt));
    +
    716 return (assure<Type>().remove(entt) + ... + assure<Other>().remove(entt));
    717 }
    -
    718
    +
    718
    731 template<typename Type, typename... Other, typename It>
    732 size_type remove(It first, It last) {
    733 size_type count{};
    734
    735 if constexpr(std::is_same_v<It, typename common_type::iterator>) {
    -
    736 std::array cpools{static_cast<common_type *>(&assure<Type>()), static_cast<common_type *>(&assure<Other>())...};
    +
    736 std::array cpools{static_cast<common_type *>(&assure<Type>()), static_cast<common_type *>(&assure<Other>())...};
    737
    738 for(auto from = cpools.begin(), to = cpools.end(); from != to; ++from) {
    739 if constexpr(sizeof...(Other) != 0u) {
    @@ -643,19 +652,19 @@ $(function() { codefold.init(0); });
    754 return count;
    755 }
    -
    756
    +
    756
    768 template<typename Type, typename... Other>
    769 void erase(const entity_type entt) {
    770 (assure<Type>().erase(entt), (assure<Other>().erase(entt), ...));
    771 }
    -
    772
    +
    772
    784 template<typename Type, typename... Other, typename It>
    785 void erase(It first, It last) {
    786 if constexpr(std::is_same_v<It, typename common_type::iterator>) {
    -
    787 std::array cpools{static_cast<common_type *>(&assure<Type>()), static_cast<common_type *>(&assure<Other>())...};
    +
    787 std::array cpools{static_cast<common_type *>(&assure<Type>()), static_cast<common_type *>(&assure<Other>())...};
    788
    789 for(auto from = cpools.begin(), to = cpools.end(); from != to; ++from) {
    790 if constexpr(sizeof...(Other) != 0u) {
    @@ -673,18 +682,18 @@ $(function() { codefold.init(0); });
    802 }
    803 }
    -
    804
    +
    804
    820 template<typename Func>
    821 void erase_if(const entity_type entt, Func func) {
    -
    822 for(auto [id, cpool]: storage()) {
    +
    822 for(auto [id, cpool]: storage()) {
    823 if(cpool.contains(entt) && func(id, std::as_const(cpool))) {
    824 cpool.erase(entt);
    825 }
    826 }
    827 }
    -
    828
    +
    828
    834 template<typename... Type>
    835 void compact() {
    @@ -697,7 +706,7 @@ $(function() { codefold.init(0); });
    842 }
    843 }
    -
    844
    +
    844
    851 template<typename... Type>
    852 [[nodiscard]] bool all_of([[maybe_unused]] const entity_type entt) const {
    @@ -705,49 +714,49 @@ $(function() { codefold.init(0); });
    854 auto *cpool = assure<std::remove_const_t<Type>...>();
    855 return cpool && cpool->contains(entt);
    856 } else {
    -
    857 return (all_of<Type>(entt) && ...);
    +
    857 return (all_of<Type>(entt) && ...);
    858 }
    859 }
    -
    860
    +
    860
    868 template<typename... Type>
    869 [[nodiscard]] bool any_of([[maybe_unused]] const entity_type entt) const {
    -
    870 return (all_of<Type>(entt) || ...);
    +
    870 return (all_of<Type>(entt) || ...);
    871 }
    -
    872
    +
    872
    884 template<typename... Type>
    885 [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entt) const {
    886 if constexpr(sizeof...(Type) == 1u) {
    -
    887 return (assure<std::remove_const_t<Type>>()->get(entt), ...);
    +
    887 return (assure<std::remove_const_t<Type>>()->get(entt), ...);
    888 } else {
    -
    889 return std::forward_as_tuple(get<Type>(entt)...);
    +
    889 return std::forward_as_tuple(get<Type>(entt)...);
    890 }
    891 }
    -
    892
    +
    892
    894 template<typename... Type>
    895 [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entt) {
    896 if constexpr(sizeof...(Type) == 1u) {
    -
    897 return (static_cast<storage_for_type<Type> &>(assure<std::remove_const_t<Type>>()).get(entt), ...);
    +
    897 return (static_cast<storage_for_type<Type> &>(assure<std::remove_const_t<Type>>()).get(entt), ...);
    898 } else {
    -
    899 return std::forward_as_tuple(get<Type>(entt)...);
    +
    899 return std::forward_as_tuple(get<Type>(entt)...);
    900 }
    901 }
    -
    902
    +
    902
    918 template<typename Type, typename... Args>
    919 [[nodiscard]] decltype(auto) get_or_emplace(const entity_type entt, Args &&...args) {
    920 auto &cpool = assure<Type>();
    -
    921 ENTT_ASSERT(valid(entt), "Invalid entity");
    +
    921 ENTT_ASSERT(valid(entt), "Invalid entity");
    922 return cpool.contains(entt) ? cpool.get(entt) : cpool.emplace(entt, std::forward<Args>(args)...);
    923 }
    -
    924
    +
    924
    935 template<typename... Type>
    936 [[nodiscard]] auto try_get([[maybe_unused]] const entity_type entt) const {
    @@ -755,28 +764,28 @@ $(function() { codefold.init(0); });
    938 const auto *cpool = assure<std::remove_const_t<Type>...>();
    939 return (cpool && cpool->contains(entt)) ? std::addressof(cpool->get(entt)) : nullptr;
    940 } else {
    -
    941 return std::make_tuple(try_get<Type>(entt)...);
    +
    941 return std::make_tuple(try_get<Type>(entt)...);
    942 }
    943 }
    -
    944
    +
    944
    946 template<typename... Type>
    947 [[nodiscard]] auto try_get([[maybe_unused]] const entity_type entt) {
    948 if constexpr(sizeof...(Type) == 1u) {
    -
    949 return (const_cast<Type *>(std::as_const(*this).template try_get<Type>(entt)), ...);
    +
    949 return (const_cast<Type *>(std::as_const(*this).template try_get<Type>(entt)), ...);
    950 } else {
    -
    951 return std::make_tuple(try_get<Type>(entt)...);
    +
    951 return std::make_tuple(try_get<Type>(entt)...);
    952 }
    953 }
    -
    954
    +
    954
    959 template<typename... Type>
    960 void clear() {
    961 if constexpr(sizeof...(Type) == 0u) {
    962 for(size_type pos = pools.size(); pos; --pos) {
    -
    963 pools.begin()[pos - 1u].second->clear();
    +
    963 pools.begin()[static_cast<typename pool_container_type::difference_type>(pos - 1u)].second->clear();
    964 }
    965
    966 const auto elem = entities.each();
    @@ -786,44 +795,44 @@ $(function() { codefold.init(0); });
    970 }
    971 }
    -
    972
    +
    972
    978 [[nodiscard]] bool orphan(const entity_type entt) const {
    979 return std::none_of(pools.cbegin(), pools.cend(), [entt](auto &&curr) { return curr.second->contains(entt); });
    980 }
    -
    981
    +
    981
    1001 template<typename Type>
    -
    1002 [[nodiscard]] auto on_construct(const id_type id = type_hash<Type>::value()) {
    +
    1002 [[nodiscard]] auto on_construct(const id_type id = type_hash<Type>::value()) {
    1003 return assure<Type>(id).on_construct();
    1004 }
    -
    1005
    +
    1005
    1025 template<typename Type>
    -
    1026 [[nodiscard]] auto on_update(const id_type id = type_hash<Type>::value()) {
    +
    1026 [[nodiscard]] auto on_update(const id_type id = type_hash<Type>::value()) {
    1027 return assure<Type>(id).on_update();
    1028 }
    -
    1029
    +
    1029
    1049 template<typename Type>
    -
    1050 [[nodiscard]] auto on_destroy(const id_type id = type_hash<Type>::value()) {
    +
    1050 [[nodiscard]] auto on_destroy(const id_type id = type_hash<Type>::value()) {
    1051 return assure<Type>(id).on_destroy();
    1052 }
    -
    1053
    +
    1053
    1061 template<typename Type, typename... Other, typename... Exclude>
    1062 [[nodiscard]] basic_view<get_t<storage_for_type<const Type>, storage_for_type<const Other>...>, exclude_t<storage_for_type<const Exclude>...>>
    -
    1065 [&elem](const auto *...curr) { ((curr ? elem.storage(*curr) : void()), ...); }(assure<std::remove_const_t<Exclude>>()..., assure<std::remove_const_t<Other>>()..., assure<std::remove_const_t<Type>>());
    +
    1065 [&elem](const auto *...curr) { ((curr ? elem.storage(*curr) : void()), ...); }(assure<std::remove_const_t<Exclude>>()..., assure<std::remove_const_t<Other>>()..., assure<std::remove_const_t<Type>>());
    1066 return elem;
    1067 }
    -
    1068
    +
    1068
    1070 template<typename Type, typename... Other, typename... Exclude>
    1071 [[nodiscard]] basic_view<get_t<storage_for_type<Type>, storage_for_type<Other>...>, exclude_t<storage_for_type<Exclude>...>>
    @@ -831,7 +840,7 @@ $(function() { codefold.init(0); });
    1073 return {assure<std::remove_const_t<Type>>(), assure<std::remove_const_t<Other>>()..., assure<std::remove_const_t<Exclude>>()...};
    1074 }
    -
    1075
    +
    1075
    1083 template<typename... Owned, typename... Get, typename... Exclude>
    1084 basic_group<owned_t<storage_for_type<Owned>...>, get_t<storage_for_type<Get>...>, exclude_t<storage_for_type<Exclude>...>>
    @@ -856,7 +865,7 @@ $(function() { codefold.init(0); });
    1103 return {*handler};
    1104 }
    -
    1105
    +
    1105
    1107 template<typename... Owned, typename... Get, typename... Exclude>
    1108 [[nodiscard]] basic_group<owned_t<storage_for_type<const Owned>...>, get_t<storage_for_type<const Get>...>, exclude_t<storage_for_type<const Exclude>...>>
    @@ -871,18 +880,18 @@ $(function() { codefold.init(0); });
    1117 return {};
    1118 }
    -
    1119
    +
    1119
    1126 template<typename... Type>
    1127 [[nodiscard]] bool owned() const {
    1128 return std::any_of(groups.cbegin(), groups.cend(), [](auto &&data) { return (data.second->owned(type_id<Type>().hash()) || ...); });
    1129 }
    -
    1130
    +
    1130
    1164 template<typename Type, typename Compare, typename Sort = std_sort, typename... Args>
    1165 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    -
    1166 ENTT_ASSERT(!owned<Type>(), "Cannot sort owned storage");
    +
    1166 ENTT_ASSERT(!owned<Type>(), "Cannot sort owned storage");
    1167 auto &cpool = assure<Type>();
    1168
    1169 if constexpr(std::is_invocable_v<Compare, decltype(cpool.get({})), decltype(cpool.get({}))>) {
    @@ -893,22 +902,22 @@ $(function() { codefold.init(0); });
    1174 }
    1175 }
    -
    1176
    +
    1176
    1190 template<typename To, typename From>
    1191 void sort() {
    -
    1192 ENTT_ASSERT(!owned<To>(), "Cannot sort owned storage");
    -
    1193 const base_type &cpool = assure<From>();
    +
    1192 ENTT_ASSERT(!owned<To>(), "Cannot sort owned storage");
    +
    1193 const base_type &cpool = assure<From>();
    1194 assure<To>().sort_as(cpool.begin(), cpool.end());
    1195 }
    -
    1196
    +
    1196
    1201 [[nodiscard]] context &ctx() noexcept {
    1202 return vars;
    1203 }
    -
    1204
    +
    1204
    1206 [[nodiscard]] const context &ctx() const noexcept {
    1207 return vars;
    @@ -926,12 +935,11 @@ $(function() { codefold.init(0); });
    1217} // namespace entt
    1218
    1219#endif
    -
    static constexpr value_type construct(const entity_type entity, const version_type version) noexcept
    Constructs an identifier from its parts.
    Definition entity.hpp:131
    -
    static constexpr value_type next(const value_type value) noexcept
    Returns the successor of a given identifier.
    Definition entity.hpp:116
    -
    static constexpr entity_type to_entity(const value_type value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:94
    -
    typename Traits::value_type value_type
    Value type.
    Definition entity.hpp:69
    -
    typename Traits::version_type version_type
    Underlying version type.
    Definition entity.hpp:73
    -
    Fast and reliable entity-component system.
    Definition registry.hpp:234
    +
    static constexpr value_type construct(const entity_type entity, const version_type version) noexcept
    Constructs an identifier from its parts.
    Definition entity.hpp:131
    +
    static constexpr value_type next(const value_type value) noexcept
    Returns the successor of a given identifier.
    Definition entity.hpp:116
    +
    static constexpr entity_type to_entity(const value_type value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:94
    +
    typename Traits::value_type value_type
    Value type.
    Definition entity.hpp:69
    +
    typename Traits::version_type version_type
    Underlying version type.
    Definition entity.hpp:73
    context & ctx() noexcept
    Returns the context object, that is, a general purpose container.
    auto on_destroy(const id_type id=type_hash< Type >::value())
    Returns a sink object for the given element.
    bool any_of(const entity_type entt) const
    Check if an entity is part of at least one given storage.
    Definition registry.hpp:869
    @@ -944,16 +952,18 @@ $(function() { codefold.init(0); });
    const common_type * storage(const id_type id) const
    Finds the storage associated with a given name, if any.
    Definition registry.hpp:439
    auto try_get(const entity_type entt) const
    Returns pointers to the given elements for an entity.
    Definition registry.hpp:936
    void swap(basic_registry &other) noexcept
    Exchanges the contents with those of a given registry.
    Definition registry.hpp:388
    +
    iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::iterator > > iterable
    Definition registry.hpp:314
    decltype(auto) emplace_or_replace(const entity_type entt, Args &&...args)
    Assigns or replaces the given element for an entity.
    Definition registry.hpp:657
    iterable storage() noexcept
    Returns an iterable object to use to visit a registry.
    Definition registry.hpp:416
    bool valid(const entity_type entt) const
    Checks if an identifier refers to a valid entity.
    Definition registry.hpp:481
    bool all_of(const entity_type entt) const
    Check if an entity is part of all the given storage.
    Definition registry.hpp:852
    void erase_if(const entity_type entt, Func func)
    Erases elements satisfying specific criteria from an entity.
    Definition registry.hpp:821
    version_type destroy(const entity_type entt)
    Destroys an entity and releases its identifier.
    Definition registry.hpp:540
    -
    typename traits_type::version_type version_type
    Underlying version type.
    Definition registry.hpp:306
    +
    typename traits_type::version_type version_type
    Definition registry.hpp:306
    entity_type create()
    Creates a new entity or recycles a destroyed one.
    Definition registry.hpp:499
    const context & ctx() const noexcept
    Returns the context object, that is, a general purpose container.
    void sort()
    Sorts two pools of elements in the same way.
    +
    version_type destroy(const entity_type entt, const version_type version)
    Destroys an entity and releases its identifier.
    Definition registry.hpp:561
    basic_view< get_t< storage_for_type< const Type >, storage_for_type< const Other >... >, exclude_t< storage_for_type< const Exclude >... > > view(exclude_t< Exclude... >=exclude_t{}) const
    Returns a view for the given elements.
    void create(It first, It last)
    Assigns each element in a range an identifier.
    Definition registry.hpp:526
    @@ -972,7 +982,7 @@ $(function() { codefold.init(0); });
    decltype(auto) get(const entity_type entt)
    Returns references to the given elements for an entity.
    Definition registry.hpp:895
    typename storage_for< Type, Entity, typename alloc_traits::template rebind_alloc< std::remove_const_t< Type > > >::type storage_for_type
    Definition registry.hpp:323
    void erase(It first, It last)
    Erases the given elements from all the entities in a range.
    Definition registry.hpp:785
    -
    Allocator allocator_type
    Allocator type.
    Definition registry.hpp:302
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sorts the elements of a given element.
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition registry.hpp:404
    decltype(auto) emplace(const entity_type entt, Args &&...args)
    Assigns the given element to an entity.
    Definition registry.hpp:604
    @@ -980,9 +990,9 @@ $(function() { codefold.init(0); });
    basic_registry(const allocator_type &allocator)
    Constructs an empty registry with a given allocator.
    Definition registry.hpp:333
    auto on_construct(const id_type id=type_hash< Type >::value())
    Returns a sink object for the given element.
    storage_for_type< Type > & storage(const id_type id=type_hash< Type >::value())
    Returns the storage for a given element type.
    Definition registry.hpp:451
    -
    typename traits_type::value_type entity_type
    Underlying entity identifier.
    Definition registry.hpp:304
    +
    typename traits_type::value_type entity_type
    Definition registry.hpp:304
    decltype(auto) get(const entity_type entt) const
    Returns references to the given elements for an entity.
    Definition registry.hpp:885
    -
    std::size_t size_type
    Unsigned integer type.
    Definition registry.hpp:308
    +
    basic_registry(basic_registry &&other) noexcept
    Move constructor.
    Definition registry.hpp:357
    void compact()
    Removes all tombstones from a registry or only the pools for the given elements.
    Definition registry.hpp:835
    const_iterable storage() const noexcept
    Returns an iterable object to use to visit a registry.
    Definition registry.hpp:421
    @@ -993,50 +1003,47 @@ $(function() { codefold.init(0); });
    const storage_for_type< Type > * storage(const id_type id=type_hash< Type >::value()) const
    Returns the storage for a given element type, if any.
    Definition registry.hpp:462
    void insert(EIt first, EIt last, CIt from)
    Assigns each entity in a range the given elements.
    Definition registry.hpp:639
    basic_registry(const basic_registry &)=delete
    Default copy constructor, deleted on purpose.
    -
    internal::registry_context< allocator_type > context
    Context type.
    Definition registry.hpp:312
    +
    internal::registry_context< allocator_type > context
    Definition registry.hpp:312
    +
    iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::const_iterator > > const_iterable
    Definition registry.hpp:316
    basic_registry()
    Default constructor.
    Definition registry.hpp:326
    void erase(const entity_type entt)
    Erases the given elements from an entity.
    Definition registry.hpp:769
    Sparse set implementation.
    -
    iterator begin() const noexcept
    Returns an iterator to the beginning.
    -
    iterator end() const noexcept
    Returns an iterator to the end.
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    View implementation.
    Definition fwd.hpp:42
    - -
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    -
    size_type size() const noexcept
    Returns the number of elements in a container.
    -
    void reserve(const size_type cnt)
    Reserves space for at least the specified number of elements and regenerates the hash table.
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    -
    iterator find(const key_type &key)
    Finds an element with a given key.
    -
    const_iterator begin() const noexcept
    Returns an iterator to the beginning.
    - -
    iterator erase(const_iterator pos)
    Removes an element from a given position.
    -
    std::pair< iterator, bool > emplace(Args &&...args)
    Constructs an element in-place, if the key does not exist.
    -
    const_iterator end() const noexcept
    Returns an iterator to the end.
    +
    iterator begin() const noexcept
    Returns an iterator to the beginning.
    +
    iterator end() const noexcept
    Returns an iterator to the end.
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    +
    const_iterator find(const entity_type entt) const noexcept
    Finds an entity.
    +
    View implementation.
    Definition fwd.hpp:47
    +
    Associative container for key-value pairs with unique keys.
    +
    void reserve(const size_type cnt)
    Reserves space for at least the specified number of elements and regenerates the hash table.
    + +
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr owned_t< Type... > owned
    Variable template for lists of owned elements.
    Definition fwd.hpp:184
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    +
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    Entity traits.
    Definition entity.hpp:163
    -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Alias for lists of observed elements.
    Definition fwd.hpp:158
    +
    Alias for exclusion lists.
    Definition fwd.hpp:140
    +
    Alias for lists of observed elements.
    Definition fwd.hpp:157
    Identity function object (waiting for C++20).
    Definition utility.hpp:10
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    Function object to wrap std::sort in a class type.
    Definition algorithm.hpp:21
    - -
    Provides a common way to define storage types.
    Definition fwd.hpp:227
    -
    Type hash.
    Definition type_info.hpp:92
    + +
    Provides a common way to define storage types.
    Definition fwd.hpp:226
    +
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    +
    diff --git a/resize.js b/resize.js new file mode 100644 index 000000000..178d03bcb --- /dev/null +++ b/resize.js @@ -0,0 +1,147 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight(treeview) { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + if (treeview) + { + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + } + else + { + contentHeight = windowHeight - headerHeight; + } + content.css({height:contentHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + } + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + // workaround for firefox + $("body").css({overflow: "hidden"}); + } + $(window).on('load',function() { resizeHeight(treeview); }); +} +/* @license-end */ diff --git a/resolve_8hpp_source.html b/resolve_8hpp_source.html index 595674c79..671faff5a 100644 --- a/resolve_8hpp_source.html +++ b/resolve_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/resolve.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    resolve.hpp
    @@ -95,83 +103,83 @@ $(function() { codefold.init(0); });
    10#include "range.hpp"
    11
    12namespace entt {
    -
    13
    +
    13
    20template<typename Type>
    -
    21[[nodiscard]] meta_type resolve(const meta_ctx &ctx) noexcept {
    +
    21[[nodiscard]] meta_type resolve(const meta_ctx &ctx) noexcept {
    22 auto &&context = internal::meta_context::from(ctx);
    23 return {ctx, internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(context)};
    24}
    -
    25
    +
    25
    31template<typename Type>
    -
    35
    +
    35
    -
    41[[nodiscard]] inline meta_range<meta_type, typename decltype(internal::meta_context::value)::const_iterator> resolve(const meta_ctx &ctx) noexcept {
    +
    41[[nodiscard]] inline meta_range<meta_type, typename decltype(internal::meta_context::value)::const_iterator> resolve(const meta_ctx &ctx) noexcept {
    42 auto &&context = internal::meta_context::from(ctx);
    43 return {{ctx, context.value.cbegin()}, {ctx, context.value.cend()}};
    44}
    -
    45
    +
    45
    -
    50[[nodiscard]] inline meta_range<meta_type, typename decltype(internal::meta_context::value)::const_iterator> resolve() noexcept {
    - +
    50[[nodiscard]] inline meta_range<meta_type, typename decltype(internal::meta_context::value)::const_iterator> resolve() noexcept {
    +
    52}
    -
    53
    +
    53
    -
    60[[nodiscard]] inline meta_type resolve(const meta_ctx &ctx, const id_type id) noexcept {
    -
    61 for(auto &&curr: resolve(ctx)) {
    -
    62 if(curr.second.id() == id) {
    -
    63 return curr.second;
    +
    60[[nodiscard]] inline meta_type resolve(const meta_ctx &ctx, const id_type id) noexcept {
    +
    61 for(auto &&curr: resolve(ctx)) {
    +
    62 if(curr.second.id() == id) {
    +
    63 return curr.second;
    64 }
    65 }
    66
    67 return meta_type{};
    68}
    -
    69
    +
    69
    -
    75[[nodiscard]] inline meta_type resolve(const id_type id) noexcept {
    - +
    75[[nodiscard]] inline meta_type resolve(const id_type id) noexcept {
    +
    77}
    -
    78
    +
    78
    -
    85[[nodiscard]] inline meta_type resolve(const meta_ctx &ctx, const type_info &info) noexcept {
    +
    85[[nodiscard]] inline meta_type resolve(const meta_ctx &ctx, const type_info &info) noexcept {
    86 auto &&context = internal::meta_context::from(ctx);
    -
    87 const auto *elem = internal::try_resolve(context, info);
    -
    88 return (elem != nullptr) ? meta_type{ctx, *elem} : meta_type{};
    +
    87 const auto *elem = internal::try_resolve(context, info);
    +
    88 return (elem != nullptr) ? meta_type{ctx, *elem} : meta_type{};
    89}
    -
    90
    +
    90
    -
    96[[nodiscard]] inline meta_type resolve(const type_info &info) noexcept {
    - +
    96[[nodiscard]] inline meta_type resolve(const type_info &info) noexcept {
    +
    98}
    99
    100} // namespace entt
    101
    102#endif
    -
    Service locator, nothing more.
    Definition locator.hpp:27
    +
    static Service & value_or(Args &&...args)
    Returns a service if available or sets it from a fallback type.
    Definition locator.hpp:88
    Opaque meta context type.
    Definition context.hpp:34
    -
    Opaque wrapper for types.
    Definition meta.hpp:1153
    +
    Opaque wrapper for types.
    Definition meta.hpp:1088
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    iterable_adaptor< internal::meta_range_iterator< Type, It > > meta_range
    Iterable range to use to iterate all types of meta objects.
    Definition range.hpp:147
    meta_type resolve() noexcept
    Returns the meta type associated with a given type.
    Definition resolve.hpp:32
    -
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    Implementation specific information about a type.
    +
    diff --git a/resource_2fwd_8hpp_source.html b/resource_2fwd_8hpp_source.html index 36cfc8411..401d207cb 100644 --- a/resource_2fwd_8hpp_source.html +++ b/resource_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/resource/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -91,22 +99,26 @@ $(function() { codefold.init(0); });
    6namespace entt {
    7
    8template<typename>
    -
    9struct resource_loader;
    +
    9struct resource_loader;
    10
    11template<typename Type, typename = resource_loader<Type>, typename = std::allocator<Type>>
    -
    12class resource_cache;
    +
    12class resource_cache;
    13
    14template<typename>
    -
    15class resource;
    +
    15class resource;
    16
    17} // namespace entt
    18
    19#endif
    +
    Basic cache for resources of any type.
    Definition cache.hpp:153
    +
    Basic resource handle.
    Definition resource.hpp:22
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    Transparent loader for shared resources.
    Definition loader.hpp:15
    +
    diff --git a/resource_8hpp_source.html b/resource_8hpp_source.html index fbe0718a5..356d249d2 100644 --- a/resource_8hpp_source.html +++ b/resource_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/resource/resource.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    resource.hpp
    @@ -92,119 +100,119 @@ $(function() { codefold.init(0); });
    7#include "fwd.hpp"
    8
    9namespace entt {
    -
    10
    +
    10
    21template<typename Type>
    -
    22class resource {
    +
    22class resource {
    23 template<typename>
    -
    24 friend class resource;
    +
    24 friend class resource;
    25
    26 template<typename Other>
    -
    27 static constexpr bool is_acceptable_v = !std::is_same_v<Type, Other> && std::is_constructible_v<Type &, Other &>;
    +
    27 static constexpr bool is_acceptable = !std::is_same_v<Type, Other> && std::is_constructible_v<Type &, Other &>;
    28
    29public:
    31 using element_type = Type;
    33 using handle_type = std::shared_ptr<element_type>;
    -
    34
    +
    34
    - +
    36 resource() noexcept
    37 : value{} {}
    -
    38
    +
    38
    - -
    44 : value{std::move(res)} {}
    +
    43 explicit resource(handle_type res) noexcept
    +
    44 : value{std::move(res)} {}
    -
    45
    -
    47 resource(const resource &) noexcept = default;
    -
    48
    - -
    51
    - +
    45
    +
    47 resource(const resource &) noexcept = default;
    +
    48
    +
    50 resource(resource &&) noexcept = default;
    +
    51
    +
    58 template<typename Other>
    - -
    60 : value{other.value, std::addressof(res)} {}
    +
    59 resource(const resource<Other> &other, element_type &res) noexcept
    +
    60 : value{other.value, std::addressof(res)} {}
    -
    61
    -
    67 template<typename Other, typename = std::enable_if_t<is_acceptable_v<Other>>>
    +
    61
    +
    67 template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
    - -
    69 : value{other.value} {}
    +
    68 resource(const resource<Other> &other) noexcept
    +
    69 : value{other.value} {}
    -
    70
    -
    76 template<typename Other, typename = std::enable_if_t<is_acceptable_v<Other>>>
    +
    70
    +
    76 template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
    - -
    78 : value{std::move(other.value)} {}
    +
    77 resource(resource<Other> &&other) noexcept
    +
    78 : value{std::move(other.value)} {}
    -
    79
    +
    79
    81 ~resource() = default;
    -
    82
    -
    87 resource &operator=(const resource &) noexcept = default;
    -
    88
    - -
    94
    -
    101 template<typename Other, typename = std::enable_if_t<is_acceptable_v<Other>>>
    +
    82
    +
    87 resource &operator=(const resource &) noexcept = default;
    +
    88
    +
    93 resource &operator=(resource &&) noexcept = default;
    +
    94
    +
    101 template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
    - -
    103 value = other.value;
    +
    102 resource &operator=(const resource<Other> &other) noexcept {
    +
    103 value = other.value;
    104 return *this;
    105 }
    -
    106
    -
    113 template<typename Other, typename = std::enable_if_t<is_acceptable_v<Other>>>
    +
    106
    +
    113 template<typename Other, typename = std::enable_if_t<is_acceptable<Other>>>
    - -
    115 value = std::move(other.value);
    +
    114 resource &operator=(resource<Other> &&other) noexcept {
    +
    115 value = std::move(other.value);
    116 return *this;
    117 }
    -
    118
    +
    118
    -
    123 void swap(resource &other) noexcept {
    +
    123 void swap(resource &other) noexcept {
    124 using std::swap;
    -
    125 swap(value, other.value);
    +
    125 swap(value, other.value);
    126 }
    -
    127
    +
    127
    - +
    136 [[nodiscard]] element_type &operator*() const noexcept {
    137 return *value;
    138 }
    -
    139
    +
    139
    -
    141 [[nodiscard]] operator element_type &() const noexcept {
    +
    141 [[nodiscard]] operator element_type &() const noexcept {
    142 return *value;
    143 }
    -
    144
    +
    144
    - +
    149 [[nodiscard]] element_type *operator->() const noexcept {
    150 return value.get();
    151 }
    -
    152
    +
    152
    -
    157 [[nodiscard]] explicit operator bool() const noexcept {
    +
    157 [[nodiscard]] explicit operator bool() const noexcept {
    158 return static_cast<bool>(value);
    159 }
    -
    160
    +
    160
    162 void reset() {
    163 value.reset();
    164 }
    -
    165
    +
    165
    - -
    171 value = std::move(other);
    +
    170 void reset(handle_type other) {
    +
    171 value = std::move(other);
    172 }
    -
    173
    +
    173
    - +
    178 [[nodiscard]] const handle_type &handle() const noexcept {
    179 return value;
    180 }
    @@ -213,46 +221,46 @@ $(function() { codefold.init(0); });
    183 handle_type value;
    184};
    -
    185
    +
    185
    194template<typename Lhs, typename Rhs>
    -
    195[[nodiscard]] bool operator==(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    196 return (std::addressof(*lhs) == std::addressof(*rhs));
    +
    195[[nodiscard]] bool operator==(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    196 return (std::addressof(*lhs) == std::addressof(*rhs));
    197}
    -
    198
    +
    198
    207template<typename Lhs, typename Rhs>
    -
    208[[nodiscard]] bool operator!=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    209 return !(lhs == rhs);
    +
    208[[nodiscard]] bool operator!=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    209 return !(lhs == rhs);
    210}
    -
    211
    +
    211
    220template<typename Lhs, typename Rhs>
    -
    221[[nodiscard]] bool operator<(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    222 return (std::addressof(*lhs) < std::addressof(*rhs));
    +
    221[[nodiscard]] bool operator<(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    222 return (std::addressof(*lhs) < std::addressof(*rhs));
    223}
    -
    224
    +
    224
    233template<typename Lhs, typename Rhs>
    -
    234[[nodiscard]] bool operator>(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    235 return rhs < lhs;
    +
    234[[nodiscard]] bool operator>(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    235 return rhs < lhs;
    236}
    -
    237
    +
    237
    247template<typename Lhs, typename Rhs>
    -
    248[[nodiscard]] bool operator<=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    249 return !(lhs > rhs);
    +
    248[[nodiscard]] bool operator<=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    249 return !(lhs > rhs);
    250}
    -
    251
    +
    251
    261template<typename Lhs, typename Rhs>
    -
    262[[nodiscard]] bool operator>=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    -
    263 return !(lhs < rhs);
    +
    262[[nodiscard]] bool operator>=(const resource<Lhs> &lhs, const resource<Rhs> &rhs) noexcept {
    +
    263 return !(lhs < rhs);
    264}
    265
    @@ -279,7 +287,6 @@ $(function() { codefold.init(0); });
    resource(resource< Other > &&other) noexcept
    Move constructs a handle which takes ownership of the resource.
    Definition resource.hpp:77
    resource(resource &&) noexcept=default
    Default move constructor.
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    @@ -289,7 +296,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/runtime__view_8hpp_source.html b/runtime__view_8hpp_source.html index e803789ef..0ca97e7b1 100644 --- a/runtime__view_8hpp_source.html +++ b/runtime__view_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/runtime_view.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    runtime_view.hpp
    @@ -95,7 +103,7 @@ $(function() { codefold.init(0); });
    10#include "fwd.hpp"
    11
    12namespace entt {
    -
    13
    +
    13
    15namespace internal {
    16
    17template<typename Set>
    @@ -105,8 +113,8 @@ $(function() { codefold.init(0); });
    21
    22 [[nodiscard]] bool valid() const {
    23 return (!tombstone_check || *it != tombstone)
    -
    24 && std::all_of(++pools->begin(), pools->end(), [entt = *it](const auto *curr) { return curr->contains(entt); })
    -
    25 && std::none_of(filter->cbegin(), filter->cend(), [entt = *it](const auto *curr) { return curr && curr->contains(entt); });
    +
    24 && std::all_of(++pools->begin(), pools->end(), [entt = *it](const auto *curr) { return curr->contains(entt); })
    +
    25 && std::none_of(filter->cbegin(), filter->cend(), [entt = *it](const auto *curr) { return curr && curr->contains(entt); });
    26 }
    27
    28public:
    @@ -140,7 +148,7 @@ $(function() { codefold.init(0); });
    56 }
    57
    58 runtime_view_iterator operator++(int) {
    -
    59 runtime_view_iterator orig = *this;
    +
    59 const runtime_view_iterator orig = *this;
    60 return ++(*this), orig;
    61 }
    62
    @@ -151,7 +159,7 @@ $(function() { codefold.init(0); });
    67 }
    68
    69 runtime_view_iterator operator--(int) {
    -
    70 runtime_view_iterator orig = *this;
    +
    70 const runtime_view_iterator orig = *this;
    71 return operator--(), orig;
    72 }
    73
    @@ -179,9 +187,10 @@ $(function() { codefold.init(0); });
    95};
    96
    97} // namespace internal
    +
    99
    123template<typename Type, typename Allocator>
    - +
    125 using alloc_traits = std::allocator_traits<Allocator>;
    126 static_assert(std::is_same_v<typename alloc_traits::value_type, Type *>, "Invalid value type");
    127 using container_type = std::vector<Type *, Allocator>;
    @@ -192,112 +201,112 @@ $(function() { codefold.init(0); });
    135 using size_type = std::size_t;
    137 using common_type = Type;
    139 using iterator = internal::runtime_view_iterator<common_type>;
    -
    140
    +
    140
    -
    144
    +
    144
    - -
    150 : pools{allocator},
    -
    151 filter{allocator} {}
    +
    149 explicit basic_runtime_view(const allocator_type &allocator)
    +
    150 : pools{allocator},
    +
    151 filter{allocator} {}
    -
    152
    - -
    155
    +
    152
    + +
    155
    - -
    162 : pools{other.pools, allocator},
    -
    163 filter{other.filter, allocator} {}
    + +
    162 : pools{other.pools, allocator},
    +
    163 filter{other.filter, allocator} {}
    -
    164
    - -
    167
    +
    164
    + +
    167
    - -
    174 : pools{std::move(other.pools), allocator},
    -
    175 filter{std::move(other.filter), allocator} {}
    + +
    174 : pools{std::move(other.pools), allocator},
    +
    175 filter{std::move(other.filter), allocator} {}
    -
    176
    +
    176
    -
    179
    - -
    185
    - -
    191
    +
    179
    + +
    185
    + +
    191
    - +
    196 void swap(basic_runtime_view &other) noexcept {
    197 using std::swap;
    -
    198 swap(pools, other.pools);
    -
    199 swap(filter, other.filter);
    +
    198 swap(pools, other.pools);
    +
    199 swap(filter, other.filter);
    200 }
    -
    201
    +
    201
    - +
    206 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    207 return pools.get_allocator();
    208 }
    -
    209
    +
    209
    211 void clear() {
    212 pools.clear();
    213 filter.clear();
    214 }
    -
    215
    +
    215
    - -
    222 if(pools.empty() || !(base.size() < pools[0u]->size())) {
    + +
    222 if(pools.empty() || !(base.size() < pools[0u]->size())) {
    223 pools.push_back(&base);
    224 } else {
    -
    225 pools.push_back(std::exchange(pools[0u], &base));
    +
    225 pools.push_back(std::exchange(pools[0u], &base));
    226 }
    227
    228 return *this;
    229 }
    -
    230
    +
    230
    - +
    237 filter.push_back(&base);
    238 return *this;
    239 }
    -
    240
    +
    240
    - +
    245 [[nodiscard]] size_type size_hint() const {
    246 return pools.empty() ? size_type{} : pools.front()->size();
    247 }
    -
    248
    +
    248
    - +
    257 [[nodiscard]] iterator begin() const {
    258 return pools.empty() ? iterator{} : iterator{pools, filter, pools[0]->begin()};
    259 }
    -
    260
    +
    260
    -
    267 [[nodiscard]] iterator end() const {
    +
    267 [[nodiscard]] iterator end() const {
    268 return pools.empty() ? iterator{} : iterator{pools, filter, pools[0]->end()};
    269 }
    -
    270
    +
    270
    -
    275 [[nodiscard]] explicit operator bool() const noexcept {
    +
    275 [[nodiscard]] explicit operator bool() const noexcept {
    276 return !(pools.empty() && filter.empty());
    277 }
    -
    278
    +
    278
    -
    284 [[nodiscard]] bool contains(const entity_type entt) const {
    +
    284 [[nodiscard]] bool contains(const entity_type entt) const {
    285 return !pools.empty()
    -
    286 && std::all_of(pools.cbegin(), pools.cend(), [entt](const auto *curr) { return curr->contains(entt); })
    -
    287 && std::none_of(filter.cbegin(), filter.cend(), [entt](const auto *curr) { return curr && curr->contains(entt); });
    +
    286 && std::all_of(pools.cbegin(), pools.cend(), [entt](const auto *curr) { return curr->contains(entt); })
    +
    287 && std::none_of(filter.cbegin(), filter.cend(), [entt](const auto *curr) { return curr && curr->contains(entt); });
    288 }
    -
    289
    +
    289
    304 template<typename Func>
    305 void each(Func func) const {
    @@ -316,39 +325,39 @@ $(function() { codefold.init(0); });
    316} // namespace entt
    317
    318#endif
    -
    Generic runtime view.
    basic_runtime_view(const basic_runtime_view &)=default
    Default copy constructor.
    iterator begin() const
    Returns an iterator to the first entity that has the given elements.
    basic_runtime_view() noexcept
    Default constructor to use to create empty, invalid views.
    basic_runtime_view(const allocator_type &allocator)
    Constructs an empty, invalid view with a given allocator.
    -
    internal::runtime_view_iterator< common_type > iterator
    Bidirectional iterator type.
    +
    internal::runtime_view_iterator< common_type > iterator
    basic_runtime_view & operator=(const basic_runtime_view &)=default
    Default copy assignment operator.
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    ~basic_runtime_view()=default
    Default destructor.
    bool contains(const entity_type entt) const
    Checks if a view contains an entity.
    void each(Func func) const
    Iterates entities and applies the given function object to them.
    basic_runtime_view & exclude(common_type &base)
    Adds an opaque storage object as a filter of a runtime view.
    -
    Allocator allocator_type
    Allocator type.
    +
    void clear()
    Clears the view.
    -
    typename Type::entity_type entity_type
    Underlying entity identifier.
    +
    typename sparse_set::entity_type entity_type
    iterator end() const
    Returns an iterator that is past the last entity that has the given elements.
    basic_runtime_view & operator=(basic_runtime_view &&) noexcept=default
    Default move assignment operator.
    size_type size_hint() const
    Estimates the number of entities iterated by the view.
    -
    Type common_type
    Common type among all storage types.
    +
    basic_runtime_view(const basic_runtime_view &other, const allocator_type &allocator)
    Allocator-extended copy constructor.
    -
    void swap(basic_runtime_view &other) noexcept
    Exchanges the contents with those of a given view.
    +
    void swap(basic_runtime_view &other) noexcept
    basic_runtime_view & iterate(common_type &base)
    Appends an opaque storage object to a runtime view.
    -
    std::size_t size_type
    Unsigned integer type.
    +
    basic_runtime_view(basic_runtime_view &&) noexcept=default
    Default move constructor.
    +
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    EnTT default namespace.
    Definition dense_map.hpp:22
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    +
    diff --git a/scheduler_8hpp_source.html b/scheduler_8hpp_source.html index 6afc7d5d1..3768c939a 100644 --- a/scheduler_8hpp_source.html +++ b/scheduler_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/process/scheduler.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    scheduler.hpp
    @@ -97,7 +105,7 @@ $(function() { codefold.init(0); });
    12#include "process.hpp"
    13
    14namespace entt {
    -
    15
    +
    15
    17namespace internal {
    18
    19template<typename Delta>
    @@ -133,9 +141,10 @@ $(function() { codefold.init(0); });
    49};
    50
    51} // namespace internal
    +
    53
    81template<typename Delta, typename Allocator>
    - +
    83 template<typename Type>
    84 using handler_type = internal::process_handler<Delta, Type>;
    85
    @@ -143,142 +152,142 @@ $(function() { codefold.init(0); });
    87 using process_type = std::shared_ptr<internal::basic_process_handler<Delta>>;
    88
    89 using alloc_traits = std::allocator_traits<Allocator>;
    -
    90 using container_allocator = typename alloc_traits::template rebind_alloc<process_type>;
    +
    90 using container_allocator = typename alloc_traits::template rebind_alloc<process_type>;
    91 using container_type = std::vector<process_type, container_allocator>;
    92
    93public:
    95 using allocator_type = Allocator;
    97 using size_type = std::size_t;
    - -
    100
    +
    99 using delta_type = Delta;
    +
    100
    -
    104
    +
    104
    - -
    110 : handlers{allocator, allocator} {}
    +
    109 explicit basic_scheduler(const allocator_type &allocator)
    +
    110 : handlers{allocator, allocator} {}
    -
    111
    - -
    114
    +
    111
    + +
    114
    - -
    120 : handlers{std::move(other.handlers)} {}
    + +
    120 : handlers{std::move(other.handlers)} {}
    -
    121
    +
    121
    - -
    128 : handlers{container_type{std::move(other.handlers.first()), allocator}, allocator} {
    -
    129 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a scheduler is not allowed");
    + +
    128 : handlers{container_type{std::move(other.handlers.first()), allocator}, allocator} {
    +
    129 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a scheduler is not allowed");
    130 }
    -
    131
    +
    131
    133 ~basic_scheduler() = default;
    -
    134
    - -
    140
    +
    134
    + +
    140
    - -
    147 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a scheduler is not allowed");
    -
    148 swap(other);
    + +
    147 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a scheduler is not allowed");
    +
    148 swap(other);
    149 return *this;
    150 }
    -
    151
    +
    151
    -
    156 void swap(basic_scheduler &other) noexcept {
    +
    156 void swap(basic_scheduler &other) noexcept {
    157 using std::swap;
    -
    158 swap(handlers, other.handlers);
    +
    158 swap(handlers, other.handlers);
    159 }
    -
    160
    +
    160
    - -
    166 return handlers.second();
    +
    165 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    +
    166 return handlers.second();
    167 }
    -
    168
    +
    168
    - -
    174 return handlers.first().size();
    +
    173 [[nodiscard]] size_type size() const noexcept {
    +
    174 return handlers.first().size();
    175 }
    -
    176
    +
    176
    - -
    182 return handlers.first().empty();
    +
    181 [[nodiscard]] bool empty() const noexcept {
    +
    182 return handlers.first().empty();
    183 }
    -
    184
    +
    184
    191 void clear() {
    -
    192 handlers.first().clear();
    +
    192 handlers.first().clear();
    193 }
    -
    194
    -
    220 template<typename Proc, typename... Args>
    +
    194
    +
    220 template<typename Proc, typename... Args>
    - -
    222 static_assert(std::is_base_of_v<process<Proc, Delta>, Proc>, "Invalid process type");
    -
    223 auto &ref = handlers.first().emplace_back(std::allocate_shared<handler_type<Proc>>(handlers.second(), std::forward<Args>(args)...));
    +
    221 basic_scheduler &attach(Args &&...args) {
    +
    222 static_assert(std::is_base_of_v<process<Proc, Delta>, Proc>, "Invalid process type");
    +
    223 auto &ref = handlers.first().emplace_back(std::allocate_shared<handler_type<Proc>>(handlers.second(), std::forward<Args>(args)...));
    224 // forces the process to exit the uninitialized state
    225 ref->update({}, nullptr);
    226 return *this;
    227 }
    -
    228
    +
    228
    280 template<typename Func>
    -
    281 basic_scheduler &attach(Func &&func) {
    - -
    283 return attach<Proc>(std::forward<Func>(func));
    +
    281 basic_scheduler &attach(Func &&func) {
    +
    282 using Proc = process_adaptor<std::decay_t<Func>, Delta>;
    +
    283 return attach<Proc>(std::forward<Func>(func));
    284 }
    -
    285
    -
    293 template<typename Proc, typename... Args>
    +
    285
    +
    293 template<typename Proc, typename... Args>
    - -
    295 static_assert(std::is_base_of_v<process<Proc, Delta>, Proc>, "Invalid process type");
    -
    296 ENTT_ASSERT(!handlers.first().empty(), "Process not available");
    -
    297 auto *curr = handlers.first().back().get();
    -
    298 for(; curr->next; curr = curr->next.get()) {}
    -
    299 curr->next = std::allocate_shared<handler_type<Proc>>(handlers.second(), std::forward<Args>(args)...);
    +
    294 basic_scheduler &then(Args &&...args) {
    +
    295 static_assert(std::is_base_of_v<process<Proc, Delta>, Proc>, "Invalid process type");
    +
    296 ENTT_ASSERT(!handlers.first().empty(), "Process not available");
    +
    297 auto *curr = handlers.first().back().get();
    +
    298 for(; curr->next; curr = curr->next.get()) {}
    +
    299 curr->next = std::allocate_shared<handler_type<Proc>>(handlers.second(), std::forward<Args>(args)...);
    300 return *this;
    301 }
    -
    302
    +
    302
    309 template<typename Func>
    -
    310 basic_scheduler &then(Func &&func) {
    - -
    312 return then<Proc>(std::forward<Func>(func));
    +
    310 basic_scheduler &then(Func &&func) {
    +
    311 using Proc = process_adaptor<std::decay_t<Func>, Delta>;
    +
    312 return then<Proc>(std::forward<Func>(func));
    313 }
    -
    314
    +
    314
    -
    326 void update(const delta_type delta, void *data = nullptr) {
    -
    327 for(auto next = handlers.first().size(); next; --next) {
    -
    328 if(const auto pos = next - 1u; handlers.first()[pos]->update(delta, data)) {
    +
    326 void update(const delta_type delta, void *data = nullptr) {
    +
    327 for(auto next = handlers.first().size(); next; --next) {
    +
    328 if(const auto pos = next - 1u; handlers.first()[pos]->update(delta, data)) {
    329 // updating might spawn/reallocate, cannot hold refs until here
    -
    330 if(auto &curr = handlers.first()[pos]; curr->next) {
    -
    331 curr = std::move(curr->next);
    +
    330 if(auto &curr = handlers.first()[pos]; curr->next) {
    +
    331 curr = std::move(curr->next);
    332 // forces the process to exit the uninitialized state
    -
    333 curr->update({}, nullptr);
    +
    333 curr->update({}, nullptr);
    334 } else {
    -
    335 curr = std::move(handlers.first().back());
    -
    336 handlers.first().pop_back();
    +
    335 curr = std::move(handlers.first().back());
    +
    336 handlers.first().pop_back();
    337 }
    338 }
    339 }
    340 }
    -
    341
    +
    341
    -
    352 void abort(const bool immediate = false) {
    -
    353 for(auto &&curr: handlers.first()) {
    -
    354 curr->abort(immediate);
    +
    352 void abort(const bool immediate = false) {
    +
    353 for(auto &&curr: handlers.first()) {
    +
    354 curr->abort(immediate);
    355 }
    356 }
    @@ -291,16 +300,15 @@ $(function() { codefold.init(0); });
    362} // namespace entt
    363
    364#endif
    -
    Cooperative scheduler for processes.
    Definition scheduler.hpp:82
    bool empty() const noexcept
    Returns true if at least a process is currently scheduled.
    basic_scheduler(const basic_scheduler &)=delete
    Default copy constructor, deleted on purpose.
    -
    Allocator allocator_type
    Allocator type.
    Definition scheduler.hpp:95
    +
    basic_scheduler()
    Default constructor.
    size_type size() const noexcept
    Number of processes currently scheduled.
    basic_scheduler & operator=(const basic_scheduler &)=delete
    Default copy assignment operator, deleted on purpose.
    basic_scheduler(basic_scheduler &&other) noexcept
    Move constructor.
    basic_scheduler & then(Func &&func)
    Sets a process as a continuation of the last scheduled process.
    -
    std::size_t size_type
    Unsigned integer type.
    Definition scheduler.hpp:97
    +
    basic_scheduler(const allocator_type &allocator)
    Constructs a scheduler with a given allocator.
    ~basic_scheduler()=default
    Default destructor.
    basic_scheduler & operator=(basic_scheduler &&other) noexcept
    Move assignment operator.
    @@ -312,19 +320,17 @@ $(function() { codefold.init(0); });
    basic_scheduler & attach(Func &&func)
    Schedules a process for the next tick.
    void swap(basic_scheduler &other) noexcept
    Exchanges the contents with those of a given scheduler.
    void clear()
    Discards all scheduled processes.
    -
    Delta delta_type
    Unsigned integer type.
    Definition scheduler.hpp:99
    +
    basic_scheduler & attach(Args &&...args)
    Schedules a process for the next tick.
    A compressed pair.
    -
    constexpr second_type & second() noexcept
    Returns the second element that a pair stores.
    -
    constexpr first_type & first() noexcept
    Returns the first element that a pair stores.
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    Adaptor for lambdas and functors to turn them into processes.
    Definition process.hpp:328
    +
    diff --git a/search/all_0.js b/search/all_0.js index 53138e428..696e1f997 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -7,83 +7,84 @@ var searchData= ['a_20third_20party_20module_4',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], ['abort_5',['abort',['../classentt_1_1process.html#abdcca68a2cd65bbece91ca7b504dfe60',1,'entt::process::abort()'],['../classentt_1_1basic__scheduler.html#ab4995b2a91865c59e909057bfb010505',1,'entt::basic_scheduler::abort()']]], ['access_6',['Raw access',['../md_docs_2md_2signal.html#raw-access',1,'']]], - ['across_20boundaries_7',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]], - ['across_20boundaries_8',['Working across boundaries',['../md_docs_2md_2lib.html#working-across-boundaries',1,'']]], - ['action_9',['Action',['../md_docs_2md_2links.html',1,'EnTT in Action'],['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], - ['adaptor_10',['Adaptor',['../md_docs_2md_2process.html#adaptor',1,'Adaptor'],['../md_docs_2md_2core.html#iterable-adaptor',1,'Iterable adaptor']]], + ['across_20boundaries_7',['across boundaries',['../md_docs_2md_2lib.html',1,'Push EnTT across boundaries'],['../md_docs_2md_2lib.html#working-across-boundaries',1,'Working across boundaries']]], + ['action_8',['Action',['../md_docs_2md_2links.html',1,'EnTT in Action'],['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], + ['adaptor_9',['Adaptor',['../md_docs_2md_2process.html#adaptor',1,'']]], + ['adaptor_10',['Iterable adaptor',['../md_docs_2md_2core.html#iterable-adaptor',1,'']]], ['adaptors_11',['Adaptors',['../md_docs_2md_2container.html#adaptors',1,'']]], ['adjacency_20matrix_12',['Adjacency matrix',['../md_docs_2md_2graph.html#adjacency-matrix',1,'']]], ['adjacency_5fmatrix_13',['adjacency_matrix',['../classentt_1_1adjacency__matrix.html',1,'entt::adjacency_matrix< Category, Allocator >'],['../classentt_1_1adjacency__matrix.html#a3b3d88826c5e9e6d6696c57cfeadc365',1,'entt::adjacency_matrix::adjacency_matrix() noexcept(noexcept(allocator_type{}))'],['../classentt_1_1adjacency__matrix.html#ae6940bc105cd3cd328a6abc3f19c14dc',1,'entt::adjacency_matrix::adjacency_matrix(const allocator_type &allocator) noexcept'],['../classentt_1_1adjacency__matrix.html#a854098472673c06c946df5efec991517',1,'entt::adjacency_matrix::adjacency_matrix(const size_type vertices, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1adjacency__matrix.html#a1b5b018fd516b2f3fbb5222ea47a2bbf',1,'entt::adjacency_matrix::adjacency_matrix(const adjacency_matrix &)=default'],['../classentt_1_1adjacency__matrix.html#adaa9b708b88f549673e7a9db7203b96c',1,'entt::adjacency_matrix::adjacency_matrix(const adjacency_matrix &other, const allocator_type &allocator)'],['../classentt_1_1adjacency__matrix.html#adcbf612110d41734771cf1c5a6d999e3',1,'entt::adjacency_matrix::adjacency_matrix(adjacency_matrix &&) noexcept=default'],['../classentt_1_1adjacency__matrix.html#a7195a32e20c1099e6e32ef3e73475801',1,'entt::adjacency_matrix::adjacency_matrix(adjacency_matrix &&other, const allocator_type &allocator)']]], - ['adl_5fmeta_5fpointer_5flike_14',['adl_meta_pointer_like',['../structentt_1_1adl__meta__pointer__like.html',1,'entt']]], - ['aliased_20properties_15',['Aliased properties',['../md_docs_2md_2entity.html#aliased-properties',1,'']]], - ['alignment_16',['alignment',['../classentt_1_1basic__any.html#a8248e8443c6208077db312079a05fd96',1,'entt::basic_any']]], - ['alignment_20requirement_17',['Alignment requirement',['../md_docs_2md_2core.html#alignment-requirement',1,'Alignment requirement'],['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'Storage size and alignment requirement']]], - ['alive_18',['alive',['../classentt_1_1process.html#aacb0108ddb7ee68eac145c092b4e4163',1,'entt::process']]], - ['all_19',['All',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], - ['all_20in_20between_20',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], - ['all_20or_20nothing_21',['All or nothing',['../md_docs_2md_2entity.html#all-or-nothing',1,'']]], - ['all_5fof_22',['all_of',['../classentt_1_1basic__handle.html#a2e65e9950e934dcf08b8562620b2afd6',1,'entt::basic_handle::all_of()'],['../classentt_1_1basic__registry.html#a463b15da6bfe18744e595c082ef70bac',1,'entt::basic_registry::all_of()']]], - ['allocate_5funique_23',['allocate_unique',['../namespaceentt.html#ae3729f1b7699d013f982b2de2ec781f9',1,'entt']]], - ['allocation_5fdeleter_24',['allocation_deleter',['../structentt_1_1allocation__deleter.html',1,'entt::allocation_deleter< Allocator >'],['../structentt_1_1allocation__deleter.html#a5adbf1ba5d47a86d0b67d2c565fed220',1,'entt::allocation_deleter::allocation_deleter()']]], - ['allocator_20aware_20unique_20pointers_25',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]], - ['allocator_5ftype_26',['allocator_type',['../classentt_1_1dense__map.html#adc7feba2153b3764cc7789f31b926d78',1,'entt::dense_map::allocator_type'],['../classentt_1_1dense__set.html#a8c83fbdb7d106f60f98d3ae3f395abc2',1,'entt::dense_set::allocator_type'],['../structentt_1_1allocation__deleter.html#abce9d9de78a31b79e98745f4e029c863',1,'entt::allocation_deleter::allocator_type'],['../classentt_1_1basic__sigh__mixin.html#a3bfbe6206629d98c0e15d15798865c84',1,'entt::basic_sigh_mixin::allocator_type'],['../classentt_1_1basic__reactive__mixin.html#a838cdfaecf9e58c0786bea956453a05c',1,'entt::basic_reactive_mixin::allocator_type'],['../classentt_1_1basic__observer.html#afdf0a672324b06f59cbf9621e0a1ca82',1,'entt::basic_observer::allocator_type'],['../classentt_1_1basic__registry.html#a9ce6e0e7aa3c23f3819290c41e78c023',1,'entt::basic_registry::allocator_type'],['../classentt_1_1basic__runtime__view.html#ab1a56d98d4a7c875fe7a6fa8d12dec1f',1,'entt::basic_runtime_view::allocator_type'],['../classentt_1_1basic__sparse__set.html#af6faaccfb0c465afb6173b0fb8a37069',1,'entt::basic_sparse_set::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage::allocator_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a78505c577bcd00f839098b46f7fb6b06',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::allocator_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab6f44783390bee502fd79fbb85f9b646',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1adjacency__matrix.html#a740021db9b7bad492ebe3d074769d8b8',1,'entt::adjacency_matrix::allocator_type'],['../classentt_1_1basic__flow.html#a37b19d1bb36d762cea9163ad7bb8bfc2',1,'entt::basic_flow::allocator_type'],['../classentt_1_1basic__scheduler.html#a232bb21739cbd8084ec723bcc17d44e9',1,'entt::basic_scheduler::allocator_type'],['../classentt_1_1resource__cache.html#ab1e2dc3aeffbbbce6d48e0c46d908cfd',1,'entt::resource_cache::allocator_type'],['../classentt_1_1basic__dispatcher.html#a25129aec45c14bb934e9e9db3ed28015',1,'entt::basic_dispatcher::allocator_type'],['../classentt_1_1emitter.html#a0d22ffe04a17ac2cdd0a216dd17e3b5d',1,'entt::emitter::allocator_type'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a21c7a7c56b0975495827e8b4c16103ba',1,'entt::sigh< Ret(Args...), Allocator >::allocator_type']]], - ['allow_5fcast_27',['allow_cast',['../classentt_1_1meta__any.html#a522ea5757c3eb8bd33ad3e1816141b5d',1,'entt::meta_any::allow_cast(const meta_type &type) const'],['../classentt_1_1meta__any.html#af80f94605c72c5c2ff30fd857b73010f',1,'entt::meta_any::allow_cast(const meta_type &type)'],['../classentt_1_1meta__any.html#a66606e3abbe512e064a0e1440a069594',1,'entt::meta_any::allow_cast() const'],['../classentt_1_1meta__any.html#af3bf7b2771fc6a67c2a26b19d364e85a',1,'entt::meta_any::allow_cast()']]], - ['allowed_20and_20what_20is_20not_28',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], - ['almost_20unique_20identifiers_29',['Almost unique identifiers',['../md_docs_2md_2core.html#almost-unique-identifiers',1,'']]], - ['and_20alignment_20requirement_30',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], - ['and_20all_20in_20between_31',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], - ['and_20bitset_20free_32',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], - ['and_20blog_20posts_3a_33',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], - ['and_20enums_34',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], - ['and_20everything_20in_20between_35',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['and_20groups_36',['Views and Groups',['../md_docs_2md_2entity.html#views-and-groups',1,'']]], - ['and_20identifiers_37',['Names and identifiers',['../md_docs_2md_2meta.html#names-and-identifiers',1,'']]], - ['and_20implementation_38',['Concept and implementation',['../md_docs_2md_2poly.html#concept-and-implementation',1,'']]], - ['and_20order_20of_20execution_39',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], - ['and_20resources_40',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], - ['and_20the_20cache_41',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], - ['and_20the_20component_42',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], - ['and_20the_20like_43',['Hierarchies and the like',['../md_docs_2md_2entity.html#hierarchies-and-the-like',1,'']]], - ['and_20the_20like_3a_44',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], - ['and_20the_20macro_45',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], - ['and_20the_20non_20copyable_20types_46',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], - ['and_20unreal_20engine_47',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], - ['and_20value_20list_48',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], - ['and_20what_20is_20not_49',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], - ['any_50',['any',['../namespaceentt.html#a74619fe0ddf5ff5ea9cf98812a3d70ce',1,'entt']]], - ['any_51',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], - ['any_20as_20in_20any_20type_52',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], - ['any_20other_20business_3a_53',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]], - ['any_20to_20the_20rescue_54',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], - ['any_20type_55',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], - ['any_5fcast_56',['any_cast',['../namespaceentt.html#a4ce71953bc9fb5283641465fb40025dc',1,'entt::any_cast(const basic_any< Len, Align > &data) noexcept'],['../namespaceentt.html#a12027badfdd7739493d9a38a6c3cc913',1,'entt::any_cast(basic_any< Len, Align > &data) noexcept'],['../namespaceentt.html#a12ca839d106a61776fd7f4f1041ae9ee',1,'entt::any_cast(basic_any< Len, Align > &&data) noexcept'],['../namespaceentt.html#aaabf666ed024f5542f987b8b5a658f64',1,'entt::any_cast(const basic_any< Len, Align > *data) noexcept'],['../namespaceentt.html#ae0b7dd1eaac2e05f42febf94331e1ac0',1,'entt::any_cast(basic_any< Len, Align > *data) noexcept']]], - ['any_5fof_57',['any_of',['../classentt_1_1basic__handle.html#a1eab45b657f193edcef7cbc7951e8251',1,'entt::basic_handle::any_of()'],['../classentt_1_1basic__registry.html#a0bcc0d120d7bbe348242a1c3227af8fc',1,'entt::basic_registry::any_of()']]], - ['any_5fpolicy_58',['any_policy',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt']]], - ['applicable_59',['Is applicable',['../md_docs_2md_2core.html#is-applicable',1,'']]], - ['archives_60',['Archives',['../md_docs_2md_2entity.html#archives',1,'']]], - ['arg_61',['arg',['../structentt_1_1meta__data.html#a17b5f0106970b5cbd61bce69627a28c1',1,'entt::meta_data::arg()'],['../structentt_1_1meta__func.html#ad1194298057174d7eaa0c5501b053453',1,'entt::meta_func::arg()']]], - ['args_5ftype_62',['args_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a9d0bdf951c08413401de8a4cb8f00541',1,'entt::meta_template_traits< Clazz< Args... > >::args_type'],['../structentt_1_1meta__function__descriptor__traits.html#a6dbea410eac186bc399b0542448209ff',1,'entt::meta_function_descriptor_traits::args_type']]], - ['argument_63',['N-th argument',['../md_docs_2md_2core.html#n-th-argument',1,'']]], - ['arguments_64',['Runtime arguments',['../md_docs_2md_2signal.html#runtime-arguments',1,'']]], - ['arity_65',['arity',['../structentt_1_1meta__data.html#a898b9be5e2a435fb3f9e4d5243275451',1,'entt::meta_data::arity()'],['../structentt_1_1meta__func.html#ae4b3fd3397828894d1a8e9df4d69ad6e',1,'entt::meta_func::arity()']]], - ['articles_20videos_20and_20blog_20posts_3a_66',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], - ['as_67',['Constness as',['../md_docs_2md_2core.html#constness-as',1,'']]], - ['as_20a_20third_20party_20module_68',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], - ['as_20bitmask_69',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], - ['as_20in_20any_20type_70',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], - ['as_5fassociative_5fcontainer_71',['as_associative_container',['../classentt_1_1meta__any.html#a11bc40bc571d2aa5df17de278948ff59',1,'entt::meta_any::as_associative_container() noexcept'],['../classentt_1_1meta__any.html#a4c53157029df7a461aa48aaab5484a5c',1,'entt::meta_any::as_associative_container() const noexcept']]], - ['as_5fcref_5ft_72',['as_cref_t',['../structentt_1_1as__cref__t.html',1,'entt']]], - ['as_5fgroup_73',['as_group',['../classentt_1_1as__group.html',1,'entt::as_group< Registry >'],['../classentt_1_1as__group.html#a2ec8b1a86b502a9649cd9db3f90680a0',1,'entt::as_group::as_group()']]], - ['as_5fis_5ft_74',['as_is_t',['../structentt_1_1as__is__t.html',1,'entt']]], - ['as_5fref_75',['as_ref',['../classentt_1_1basic__any.html#aab60eaf9e3395de34c4d46d3ffba9393',1,'entt::basic_any::as_ref() noexcept'],['../classentt_1_1basic__any.html#ac0a6730e219bb15d8e4f8f63d270e0d3',1,'entt::basic_any::as_ref() const noexcept'],['../classentt_1_1meta__any.html#a3400ab82cb8ab4c489c210dd43707036',1,'entt::meta_any::as_ref() noexcept'],['../classentt_1_1meta__any.html#a6532f908884d751a9ea382c93fdcc79f',1,'entt::meta_any::as_ref() const noexcept'],['../classentt_1_1basic__poly.html#a327c0a52b8eff8be5746bd0215d6a6d0',1,'entt::basic_poly::as_ref() noexcept'],['../classentt_1_1basic__poly.html#a8293af6e4643b9917aee7962016f5470',1,'entt::basic_poly::as_ref() const noexcept']]], - ['as_5fref_5ft_76',['as_ref_t',['../structentt_1_1as__ref__t.html',1,'entt']]], - ['as_5fsequence_5fcontainer_77',['as_sequence_container',['../classentt_1_1meta__any.html#a466877798f1f160a929b03f0e3146f0b',1,'entt::meta_any::as_sequence_container() noexcept'],['../classentt_1_1meta__any.html#adf9565cacb9c6c824a47766dcaed2e34',1,'entt::meta_any::as_sequence_container() const noexcept']]], - ['as_5fview_78',['as_view',['../classentt_1_1as__view.html',1,'entt::as_view< Registry >'],['../classentt_1_1as__view.html#a59df7f49ab88f62ca17fd7d92959d06c',1,'entt::as_view::as_view()']]], - ['as_5fvoid_5ft_79',['as_void_t',['../structentt_1_1as__void__t.html',1,'entt']]], - ['asked_20questions_80',['Frequently Asked Questions',['../md_docs_2md_2faq.html',1,'']]], - ['assign_81',['assign',['../classentt_1_1basic__any.html#a4fc7178c09a4c7fc57891183800d1688',1,'entt::basic_any::assign(const basic_any &other)'],['../classentt_1_1basic__any.html#a5765d9d4bcc5098791f3e84d4f92288f',1,'entt::basic_any::assign(basic_any &&other)'],['../classentt_1_1meta__any.html#a022362d5bb8ee42e3637e3d64a22027a',1,'entt::meta_any::assign(const meta_any &other)'],['../classentt_1_1meta__any.html#a77e67e73023b213a5fe46f88820f571f',1,'entt::meta_any::assign(meta_any &&other)']]], - ['at_82',['at',['../classentt_1_1dense__map.html#a468bf103c5f4779ee24d002576150689',1,'entt::dense_map::at(const key_type &key)'],['../classentt_1_1dense__map.html#a413f21b4eee0336277f24de044fe8cb6',1,'entt::dense_map::at(const key_type &key) const']]], - ['attach_83',['attach',['../classentt_1_1basic__scheduler.html#afdde3b5231b2c45739f94b1a4206bce8',1,'entt::basic_scheduler::attach(Args &&...args)'],['../classentt_1_1basic__scheduler.html#abd7825b29cbc18edb14f5bd32c9b1d97',1,'entt::basic_scheduler::attach(Func &&func)']]], - ['automatic_20conversions_84',['Automatic conversions',['../md_docs_2md_2meta.html#automatic-conversions',1,'']]], - ['aware_20unique_20pointers_85',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]] + ['adjacency_5fmatrix_3c_20directed_5ftag_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3asize_5ft_20_3e_20_3e_14',['adjacency_matrix< directed_tag, typename alloc_traits::template rebind_alloc< std::size_t > >',['../classentt_1_1adjacency__matrix.html',1,'entt']]], + ['adl_5fmeta_5fpointer_5flike_15',['adl_meta_pointer_like',['../structentt_1_1adl__meta__pointer__like.html',1,'entt']]], + ['aliased_20properties_16',['Aliased properties',['../md_docs_2md_2entity.html#aliased-properties',1,'']]], + ['alignment_17',['alignment',['../classentt_1_1basic__any.html#a8248e8443c6208077db312079a05fd96',1,'entt::basic_any']]], + ['alignment_20requirement_18',['Alignment requirement',['../md_docs_2md_2core.html#alignment-requirement',1,'']]], + ['alignment_20requirement_19',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], + ['alive_20',['alive',['../classentt_1_1process.html#aacb0108ddb7ee68eac145c092b4e4163',1,'entt::process']]], + ['all_21',['all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], + ['all_20in_20between_22',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], + ['all_20or_20nothing_23',['All or nothing',['../md_docs_2md_2entity.html#all-or-nothing',1,'']]], + ['all_5fof_24',['all_of',['../classentt_1_1basic__handle.html#a2e65e9950e934dcf08b8562620b2afd6',1,'entt::basic_handle::all_of()'],['../classentt_1_1basic__registry.html#a463b15da6bfe18744e595c082ef70bac',1,'entt::basic_registry::all_of()']]], + ['allocate_5funique_25',['allocate_unique',['../namespaceentt.html#ae3729f1b7699d013f982b2de2ec781f9',1,'entt']]], + ['allocation_5fdeleter_26',['allocation_deleter',['../structentt_1_1allocation__deleter.html',1,'entt::allocation_deleter< Allocator >'],['../structentt_1_1allocation__deleter.html#a5adbf1ba5d47a86d0b67d2c565fed220',1,'entt::allocation_deleter::allocation_deleter()']]], + ['allocator_20aware_20unique_20pointers_27',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]], + ['allocator_5ftype_28',['allocator_type',['../classentt_1_1dense__map.html#adc7feba2153b3764cc7789f31b926d78',1,'entt::dense_map::allocator_type'],['../classentt_1_1dense__set.html#a8c83fbdb7d106f60f98d3ae3f395abc2',1,'entt::dense_set::allocator_type'],['../structentt_1_1allocation__deleter.html#abce9d9de78a31b79e98745f4e029c863',1,'entt::allocation_deleter::allocator_type'],['../classentt_1_1basic__sigh__mixin.html#a3bfbe6206629d98c0e15d15798865c84',1,'entt::basic_sigh_mixin::allocator_type'],['../classentt_1_1basic__reactive__mixin.html#a838cdfaecf9e58c0786bea956453a05c',1,'entt::basic_reactive_mixin::allocator_type'],['../classentt_1_1basic__registry.html#a9ce6e0e7aa3c23f3819290c41e78c023',1,'entt::basic_registry::allocator_type'],['../classentt_1_1basic__runtime__view.html#ab1a56d98d4a7c875fe7a6fa8d12dec1f',1,'entt::basic_runtime_view::allocator_type'],['../classentt_1_1basic__sparse__set.html#af6faaccfb0c465afb6173b0fb8a37069',1,'entt::basic_sparse_set::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage::allocator_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae00607f1ec02d981d3755920008f4b08',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::allocator_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab6f44783390bee502fd79fbb85f9b646',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1adjacency__matrix.html#a740021db9b7bad492ebe3d074769d8b8',1,'entt::adjacency_matrix::allocator_type'],['../classentt_1_1basic__flow.html#a37b19d1bb36d762cea9163ad7bb8bfc2',1,'entt::basic_flow::allocator_type'],['../classentt_1_1basic__scheduler.html#a232bb21739cbd8084ec723bcc17d44e9',1,'entt::basic_scheduler::allocator_type'],['../classentt_1_1resource__cache.html#ab1e2dc3aeffbbbce6d48e0c46d908cfd',1,'entt::resource_cache::allocator_type'],['../classentt_1_1basic__dispatcher.html#a25129aec45c14bb934e9e9db3ed28015',1,'entt::basic_dispatcher::allocator_type'],['../classentt_1_1emitter.html#a0d22ffe04a17ac2cdd0a216dd17e3b5d',1,'entt::emitter::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::allocator_type']]], + ['allow_5fcast_29',['allow_cast',['../classentt_1_1meta__any.html#a522ea5757c3eb8bd33ad3e1816141b5d',1,'entt::meta_any::allow_cast(const meta_type &type) const'],['../classentt_1_1meta__any.html#af80f94605c72c5c2ff30fd857b73010f',1,'entt::meta_any::allow_cast(const meta_type &type)'],['../classentt_1_1meta__any.html#a66606e3abbe512e064a0e1440a069594',1,'entt::meta_any::allow_cast() const'],['../classentt_1_1meta__any.html#af3bf7b2771fc6a67c2a26b19d364e85a',1,'entt::meta_any::allow_cast()']]], + ['allowed_20and_20what_20is_20not_30',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], + ['almost_20unique_20identifiers_31',['Almost unique identifiers',['../md_docs_2md_2core.html#almost-unique-identifiers',1,'']]], + ['and_20alignment_20requirement_32',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], + ['and_20all_20in_20between_33',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], + ['and_20bitset_20free_34',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], + ['and_20blog_20posts_3a_35',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], + ['and_20enums_36',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], + ['and_20everything_20in_20between_37',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['and_20groups_38',['Views and Groups',['../md_docs_2md_2entity.html#views-and-groups',1,'']]], + ['and_20identifiers_39',['Names and identifiers',['../md_docs_2md_2meta.html#names-and-identifiers',1,'']]], + ['and_20implementation_40',['Concept and implementation',['../md_docs_2md_2poly.html#concept-and-implementation',1,'']]], + ['and_20order_20of_20execution_41',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['and_20resources_42',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], + ['and_20the_20cache_43',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], + ['and_20the_20component_44',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['and_20the_20like_45',['Hierarchies and the like',['../md_docs_2md_2entity.html#hierarchies-and-the-like',1,'']]], + ['and_20the_20like_3a_46',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], + ['and_20the_20macro_47',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['and_20the_20non_20copyable_20types_48',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], + ['and_20unreal_20engine_49',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], + ['and_20value_20list_50',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], + ['and_20what_20is_20not_51',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], + ['any_52',['any',['../namespaceentt.html#a74619fe0ddf5ff5ea9cf98812a3d70ce',1,'entt::any'],['../md_docs_2md_2meta.html#from-void-to-any',1,'From void to any']]], + ['any_20as_20in_20any_20type_53',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], + ['any_20other_20business_3a_54',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]], + ['any_20to_20the_20rescue_55',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], + ['any_20type_56',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], + ['any_5fcast_57',['any_cast',['../namespaceentt.html#a4ce71953bc9fb5283641465fb40025dc',1,'entt::any_cast(const basic_any< Len, Align > &data) noexcept'],['../namespaceentt.html#a12027badfdd7739493d9a38a6c3cc913',1,'entt::any_cast(basic_any< Len, Align > &data) noexcept'],['../namespaceentt.html#a12ca839d106a61776fd7f4f1041ae9ee',1,'entt::any_cast(basic_any< Len, Align > &&data) noexcept'],['../namespaceentt.html#aaabf666ed024f5542f987b8b5a658f64',1,'entt::any_cast(const basic_any< Len, Align > *data) noexcept'],['../namespaceentt.html#ae0b7dd1eaac2e05f42febf94331e1ac0',1,'entt::any_cast(basic_any< Len, Align > *data) noexcept']]], + ['any_5fof_58',['any_of',['../classentt_1_1basic__handle.html#a1eab45b657f193edcef7cbc7951e8251',1,'entt::basic_handle::any_of()'],['../classentt_1_1basic__registry.html#a0bcc0d120d7bbe348242a1c3227af8fc',1,'entt::basic_registry::any_of()']]], + ['any_5fpolicy_59',['any_policy',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt::any_policy'],['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt::any_policy']]], + ['applicable_60',['Is applicable',['../md_docs_2md_2core.html#is-applicable',1,'']]], + ['archives_61',['Archives',['../md_docs_2md_2entity.html#archives',1,'']]], + ['arg_62',['arg',['../structentt_1_1meta__data.html#a17b5f0106970b5cbd61bce69627a28c1',1,'entt::meta_data::arg()'],['../structentt_1_1meta__func.html#ad1194298057174d7eaa0c5501b053453',1,'entt::meta_func::arg()']]], + ['args_5ftype_63',['args_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a9d0bdf951c08413401de8a4cb8f00541',1,'entt::meta_template_traits< Clazz< Args... > >::args_type'],['../structentt_1_1meta__function__descriptor__traits.html#a6dbea410eac186bc399b0542448209ff',1,'entt::meta_function_descriptor_traits::args_type']]], + ['argument_64',['N-th argument',['../md_docs_2md_2core.html#n-th-argument',1,'']]], + ['arguments_65',['Runtime arguments',['../md_docs_2md_2signal.html#runtime-arguments',1,'']]], + ['arity_66',['arity',['../structentt_1_1meta__data.html#a898b9be5e2a435fb3f9e4d5243275451',1,'entt::meta_data::arity()'],['../structentt_1_1meta__func.html#ae4b3fd3397828894d1a8e9df4d69ad6e',1,'entt::meta_func::arity()']]], + ['articles_20videos_20and_20blog_20posts_3a_67',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], + ['as_68',['Constness as',['../md_docs_2md_2core.html#constness-as',1,'']]], + ['as_20a_20third_20party_20module_69',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], + ['as_20bitmask_70',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], + ['as_20in_20any_20type_71',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], + ['as_5fassociative_5fcontainer_72',['as_associative_container',['../classentt_1_1meta__any.html#a11bc40bc571d2aa5df17de278948ff59',1,'entt::meta_any::as_associative_container() noexcept'],['../classentt_1_1meta__any.html#a4c53157029df7a461aa48aaab5484a5c',1,'entt::meta_any::as_associative_container() const noexcept']]], + ['as_5fcref_5ft_73',['as_cref_t',['../structentt_1_1as__cref__t.html',1,'entt']]], + ['as_5fgroup_74',['as_group',['../classentt_1_1as__group.html',1,'entt::as_group< Registry >'],['../classentt_1_1as__group.html#a2ec8b1a86b502a9649cd9db3f90680a0',1,'entt::as_group::as_group()']]], + ['as_5fis_5ft_75',['as_is_t',['../structentt_1_1as__is__t.html',1,'entt']]], + ['as_5fref_76',['as_ref',['../classentt_1_1basic__any.html#aab60eaf9e3395de34c4d46d3ffba9393',1,'entt::basic_any::as_ref() noexcept'],['../classentt_1_1basic__any.html#ac0a6730e219bb15d8e4f8f63d270e0d3',1,'entt::basic_any::as_ref() const noexcept'],['../classentt_1_1meta__any.html#a3400ab82cb8ab4c489c210dd43707036',1,'entt::meta_any::as_ref() noexcept'],['../classentt_1_1meta__any.html#a6532f908884d751a9ea382c93fdcc79f',1,'entt::meta_any::as_ref() const noexcept'],['../classentt_1_1basic__poly.html#a327c0a52b8eff8be5746bd0215d6a6d0',1,'entt::basic_poly::as_ref() noexcept'],['../classentt_1_1basic__poly.html#a8293af6e4643b9917aee7962016f5470',1,'entt::basic_poly::as_ref() const noexcept']]], + ['as_5fref_5ft_77',['as_ref_t',['../structentt_1_1as__ref__t.html',1,'entt']]], + ['as_5fsequence_5fcontainer_78',['as_sequence_container',['../classentt_1_1meta__any.html#a466877798f1f160a929b03f0e3146f0b',1,'entt::meta_any::as_sequence_container() noexcept'],['../classentt_1_1meta__any.html#adf9565cacb9c6c824a47766dcaed2e34',1,'entt::meta_any::as_sequence_container() const noexcept']]], + ['as_5fview_79',['as_view',['../classentt_1_1as__view.html',1,'entt::as_view< Registry >'],['../classentt_1_1as__view.html#a59df7f49ab88f62ca17fd7d92959d06c',1,'entt::as_view::as_view()']]], + ['as_5fvoid_5ft_80',['as_void_t',['../structentt_1_1as__void__t.html',1,'entt']]], + ['asked_20questions_81',['Frequently Asked Questions',['../md_docs_2md_2faq.html',1,'']]], + ['assign_82',['assign',['../classentt_1_1basic__any.html#a4fc7178c09a4c7fc57891183800d1688',1,'entt::basic_any::assign(const basic_any &other)'],['../classentt_1_1basic__any.html#a5765d9d4bcc5098791f3e84d4f92288f',1,'entt::basic_any::assign(basic_any &&other)'],['../classentt_1_1meta__any.html#a022362d5bb8ee42e3637e3d64a22027a',1,'entt::meta_any::assign(const meta_any &other)'],['../classentt_1_1meta__any.html#a77e67e73023b213a5fe46f88820f571f',1,'entt::meta_any::assign(meta_any &&other)']]], + ['at_83',['at',['../classentt_1_1dense__map.html#a468bf103c5f4779ee24d002576150689',1,'entt::dense_map::at(const key_type &key)'],['../classentt_1_1dense__map.html#a413f21b4eee0336277f24de044fe8cb6',1,'entt::dense_map::at(const key_type &key) const']]], + ['attach_84',['attach',['../classentt_1_1basic__scheduler.html#afdde3b5231b2c45739f94b1a4206bce8',1,'entt::basic_scheduler::attach(Args &&...args)'],['../classentt_1_1basic__scheduler.html#abd7825b29cbc18edb14f5bd32c9b1d97',1,'entt::basic_scheduler::attach(Func &&func)']]], + ['automatic_20conversions_85',['Automatic conversions',['../md_docs_2md_2meta.html#automatic-conversions',1,'']]], + ['aware_20unique_20pointers_86',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]] ]; diff --git a/search/all_1.js b/search/all_1.js index df5245124..11171e4a9 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -1,18 +1,18 @@ var searchData= [ - ['back_0',['back',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ad23be7c83702338af05db3fd851a4a1b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3a32cd6d22bd3a4a5e1b99a13da02ad1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__common__view.html#a6b0517d50e658cec5c259d0cf1cad8d7',1,'entt::basic_common_view::back()'],['../classentt_1_1basic__storage__view.html#a2ab99ba76cfc6d6e68eb39819bdbd960',1,'entt::basic_storage_view::back()']]], - ['base_1',['base',['../classentt_1_1meta__factory.html#a00634c7e4c152c9b47a1bff286fffb94',1,'entt::meta_factory::base()'],['../classentt_1_1meta__type.html#ab18bae88d915e2a5dd3890f91777e712',1,'entt::meta_type::base()']]], + ['back_0',['back',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ad23be7c83702338af05db3fd851a4a1b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3a32cd6d22bd3a4a5e1b99a13da02ad1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__common__view.html#a63c2d833d41810b5a5b28ecf653dc056',1,'entt::basic_common_view::back()'],['../classentt_1_1basic__storage__view.html#a2ab99ba76cfc6d6e68eb39819bdbd960',1,'entt::basic_storage_view::back()']]], + ['base_1',['base',['../classentt_1_1meta__factory.html#a00634c7e4c152c9b47a1bff286fffb94',1,'entt::meta_factory::base()'],['../classentt_1_1meta__any.html#a64583a70475eae75c17c05670be1083b',1,'entt::meta_any::base()'],['../classentt_1_1meta__type.html#ab18bae88d915e2a5dd3890f91777e712',1,'entt::meta_type::base()']]], ['base_20class_20to_20rule_20them_20all_2',['A base class to rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'']]], - ['base_5ftype_3',['base_type',['../structentt_1_1entt__traits.html#a8012c0ec9d8d57ef5622a5619f03c342',1,'entt::entt_traits::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage::base_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aee8f889b027657243c03e1fccba85c82',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::base_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abd80d68052978c2814bd14c9e97e6fa6',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type']]], - ['basic_5fany_4',['basic_any',['../classentt_1_1basic__any.html',1,'entt::basic_any< Len, Align >'],['../classentt_1_1basic__any.html#a164cd19f4369e7c010f4581971ae2c9c',1,'entt::basic_any::basic_any() noexcept'],['../classentt_1_1basic__any.html#a3a84c837c69ab23b08a535ab79f7eefa',1,'entt::basic_any::basic_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__any.html#afb1d00c509ae9127faa1cc2a5887bdab',1,'entt::basic_any::basic_any(Type &&value)'],['../classentt_1_1basic__any.html#a3196700b32252e5b59a79994b907afda',1,'entt::basic_any::basic_any(const basic_any &other)'],['../classentt_1_1basic__any.html#aa335df93ca9c2ba89efd9664f9e66609',1,'entt::basic_any::basic_any(basic_any &&other) noexcept']]], + ['base_5ftype_3',['base_type',['../structentt_1_1entt__traits.html#a8012c0ec9d8d57ef5622a5619f03c342',1,'entt::entt_traits::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage::base_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a3a5d39878419cd2c516bdd105b608504',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::base_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abd80d68052978c2814bd14c9e97e6fa6',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::base_type']]], + ['basic_5fany_4',['basic_any',['../classentt_1_1basic__any.html',1,'entt::basic_any< Len, Align >'],['../classentt_1_1basic__any.html#a164cd19f4369e7c010f4581971ae2c9c',1,'entt::basic_any::basic_any() noexcept'],['../classentt_1_1basic__any.html#a3a84c837c69ab23b08a535ab79f7eefa',1,'entt::basic_any::basic_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__any.html#aa73a486cc548eb0625807c6e4c43fe8c',1,'entt::basic_any::basic_any(std::in_place_t, Type *value)'],['../classentt_1_1basic__any.html#afb1d00c509ae9127faa1cc2a5887bdab',1,'entt::basic_any::basic_any(Type &&value)'],['../classentt_1_1basic__any.html#a3196700b32252e5b59a79994b907afda',1,'entt::basic_any::basic_any(const basic_any &other)'],['../classentt_1_1basic__any.html#aa335df93ca9c2ba89efd9664f9e66609',1,'entt::basic_any::basic_any(basic_any &&other) noexcept']]], ['basic_5fany_3c_3e_5',['basic_any<>',['../classentt_1_1basic__any.html',1,'entt']]], - ['basic_5fcollector_6',['basic_collector',['../structentt_1_1basic__collector.html',1,'entt']]], - ['basic_5fcollector_3c_20matcher_3c_20type_5flist_3c_20reject_2e_2e_2e_20_3e_2c_20type_5flist_3c_20require_2e_2e_2e_20_3e_2c_20rule_2e_2e_2e_20_3e_2c_20other_2e_2e_2e_20_3e_7',['basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html',1,'entt']]], - ['basic_5fcollector_3c_3e_8',['basic_collector<>',['../structentt_1_1basic__collector_3_4.html',1,'entt']]], - ['basic_5fcommon_5fview_9',['basic_common_view',['../classentt_1_1basic__common__view.html',1,'entt']]], - ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20get_3a_3abase_5ftype_2e_2e_2e_2c_20exclude_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_10',['basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], - ['basic_5fcontinuous_5floader_11',['basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html',1,'entt::basic_continuous_loader< Registry >'],['../classentt_1_1basic__continuous__loader.html#a4546c59ad6f12d4c071e99215790873f',1,'entt::basic_continuous_loader::basic_continuous_loader(registry_type &source) noexcept'],['../classentt_1_1basic__continuous__loader.html#a251ef8adbb329c667b5fe1857bac0078',1,'entt::basic_continuous_loader::basic_continuous_loader(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#a5e29f22ee49b992ea16d352d3f1041d9',1,'entt::basic_continuous_loader::basic_continuous_loader(basic_continuous_loader &&) noexcept=default']]], - ['basic_5fdispatcher_12',['basic_dispatcher',['../classentt_1_1basic__dispatcher.html',1,'entt::basic_dispatcher< Allocator >'],['../classentt_1_1basic__dispatcher.html#ad479b016e5261d80b30c25a540cc4fbd',1,'entt::basic_dispatcher::basic_dispatcher()'],['../classentt_1_1basic__dispatcher.html#ad9f651ee2a41ecf134790e203d4f3654',1,'entt::basic_dispatcher::basic_dispatcher(const allocator_type &allocator)'],['../classentt_1_1basic__dispatcher.html#aa8ea67b22aed27899dcba5c9d27ddbbb',1,'entt::basic_dispatcher::basic_dispatcher(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#a942a4de622068676062ee1e47e9ef275',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a30ee1d0e53506ccde1d3f5411411380c',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other, const allocator_type &allocator)']]], + ['basic_5fcommon_5fview_6',['basic_common_view',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20get_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20internal_3a_3atombstone_5fcheck_5fv_3c_20get_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_7',['basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20typename_20get_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20internal_3a_3atombstone_5fcheck_5fv_3c_20get_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_8',['basic_common_view< std::common_type_t< typename Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcontinuous_5floader_9',['basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html',1,'entt::basic_continuous_loader< Registry >'],['../classentt_1_1basic__continuous__loader.html#a4546c59ad6f12d4c071e99215790873f',1,'entt::basic_continuous_loader::basic_continuous_loader(registry_type &source) noexcept'],['../classentt_1_1basic__continuous__loader.html#a251ef8adbb329c667b5fe1857bac0078',1,'entt::basic_continuous_loader::basic_continuous_loader(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#a5e29f22ee49b992ea16d352d3f1041d9',1,'entt::basic_continuous_loader::basic_continuous_loader(basic_continuous_loader &&) noexcept=default']]], + ['basic_5fcontinuous_5floader_3c_20registry_20_3e_10',['basic_continuous_loader< registry >',['../classentt_1_1basic__continuous__loader.html',1,'entt']]], + ['basic_5fdispatcher_11',['basic_dispatcher',['../classentt_1_1basic__dispatcher.html',1,'entt::basic_dispatcher< Allocator >'],['../classentt_1_1basic__dispatcher.html#ad479b016e5261d80b30c25a540cc4fbd',1,'entt::basic_dispatcher::basic_dispatcher()'],['../classentt_1_1basic__dispatcher.html#ad9f651ee2a41ecf134790e203d4f3654',1,'entt::basic_dispatcher::basic_dispatcher(const allocator_type &allocator)'],['../classentt_1_1basic__dispatcher.html#aa8ea67b22aed27899dcba5c9d27ddbbb',1,'entt::basic_dispatcher::basic_dispatcher(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#a942a4de622068676062ee1e47e9ef275',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a30ee1d0e53506ccde1d3f5411411380c',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other, const allocator_type &allocator)']]], + ['basic_5fdispatcher_3c_3e_12',['basic_dispatcher<>',['../classentt_1_1basic__dispatcher.html',1,'entt']]], ['basic_5fentt_5ftraits_13',['basic_entt_traits',['../classentt_1_1basic__entt__traits.html',1,'entt']]], ['basic_5fentt_5ftraits_3c_20internal_3a_3aentt_5ftraits_3c_20type_20_3e_20_3e_14',['basic_entt_traits< internal::entt_traits< Type > >',['../classentt_1_1basic__entt__traits.html',1,'entt']]], ['basic_5fflow_15',['basic_flow',['../classentt_1_1basic__flow.html',1,'entt::basic_flow< Allocator >'],['../classentt_1_1basic__flow.html#aca29e5858a6863940a79eba950791eaf',1,'entt::basic_flow::basic_flow()'],['../classentt_1_1basic__flow.html#a51a89fc2a993298d4a95f7b01381d094',1,'entt::basic_flow::basic_flow(const allocator_type &allocator)'],['../classentt_1_1basic__flow.html#afe89940ee2068832234ab76baa26d192',1,'entt::basic_flow::basic_flow(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#acf8c4ee6fd75933eb7f1a6deae169c00',1,'entt::basic_flow::basic_flow(const basic_flow &other, const allocator_type &allocator)'],['../classentt_1_1basic__flow.html#a77e9b92d33be504cca952abca68f8611',1,'entt::basic_flow::basic_flow(basic_flow &&) noexcept=default'],['../classentt_1_1basic__flow.html#a7ade1aff980a5d137cdb746976702b40',1,'entt::basic_flow::basic_flow(basic_flow &&other, const allocator_type &allocator)']]], @@ -20,66 +20,87 @@ var searchData= ['basic_5fgroup_17',['basic_group',['../classentt_1_1basic__group.html',1,'entt::basic_group< typename, typename, typename >'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#af0007b6e275808ca8037551a4133a0b8',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::basic_group() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a2048d3e38b1ef64777a701d4a9e1a92d',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::basic_group(handler &ref) noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a181467a35167330707fbe2ad94a60e57',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::basic_group() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a891037fd8c4d3d4eb6dca94ebbd0ab74',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::basic_group(handler &ref) noexcept']]], ['basic_5fgroup_3c_20owned_5ft_3c_20owned_2e_2e_2e_20_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_20_3e_18',['basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >',['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html',1,'entt']]], ['basic_5fgroup_3c_20owned_5ft_3c_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_20_3e_19',['basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html',1,'entt']]], - ['basic_5fhandle_20',['basic_handle',['../classentt_1_1basic__handle.html',1,'entt::basic_handle< Registry, Scope >'],['../classentt_1_1basic__handle.html#a626e946763abe4c6471f8a367e6be42e',1,'entt::basic_handle::basic_handle() noexcept'],['../classentt_1_1basic__handle.html#a76c7232a30b5cee98b05409c8ef10727',1,'entt::basic_handle::basic_handle(registry_type &ref, entity_type value) noexcept']]], - ['basic_5fhashed_5fstring_21',['basic_hashed_string',['../classentt_1_1basic__hashed__string.html',1,'entt::basic_hashed_string< Char >'],['../classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595',1,'entt::basic_hashed_string::basic_hashed_string() noexcept'],['../classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e',1,'entt::basic_hashed_string::basic_hashed_string(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd',1,'entt::basic_hashed_string::basic_hashed_string(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0',1,'entt::basic_hashed_string::basic_hashed_string(const_wrapper wrapper) noexcept'],['../namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9',1,'entt::basic_hashed_string(const Char *str, std::size_t len) -> basic_hashed_string< Char >'],['../namespaceentt.html#aaa97361ef962166a4fc51a582d7c6392',1,'entt::basic_hashed_string(const Char(&str)[N]) -> basic_hashed_string< Char >']]], - ['basic_5fiterator_22',['basic_iterator',['../classentt_1_1basic__sparse__set.html#ac56bb654b47a648d64a754d85c70b40a',1,'entt::basic_sparse_set']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_23',['basic_meta_associative_container_traits',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_24',['basic_meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_25',['basic_meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_26',['basic_meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_27',['basic_meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_28',['basic_meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_29',['basic_meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_30',['basic_meta_sequence_container_traits',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_31',['basic_meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_32',['basic_meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_33',['basic_meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_34',['basic_meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fobserver_35',['basic_observer',['../classentt_1_1basic__observer.html',1,'entt::basic_observer< Registry, Allocator >'],['../classentt_1_1basic__observer.html#a31dba068369fa37f15ff120d6cdbdec1',1,'entt::basic_observer::basic_observer()'],['../classentt_1_1basic__observer.html#a604a9b0d192dd468d2c019ebc92bd17a',1,'entt::basic_observer::basic_observer(const allocator_type &allocator)'],['../classentt_1_1basic__observer.html#ac047f4c16a0c8aa180fdb78ed7889db2',1,'entt::basic_observer::basic_observer(const basic_observer &)=delete'],['../classentt_1_1basic__observer.html#a70e4dd096aa7aa8d27a7ba8e4b26ef5a',1,'entt::basic_observer::basic_observer(basic_observer &&)=delete'],['../classentt_1_1basic__observer.html#ad96408e8956a3457cd15d8d97708801f',1,'entt::basic_observer::basic_observer(registry_type &reg, basic_collector< Matcher... >, const allocator_type &allocator=allocator_type{})']]], - ['basic_5forganizer_36',['basic_organizer',['../classentt_1_1basic__organizer.html',1,'entt']]], - ['basic_5fpoly_37',['basic_poly',['../classentt_1_1basic__poly.html',1,'entt::basic_poly< Concept, Len, Align >'],['../classentt_1_1basic__poly.html#af1ee3622b7b01d9934dd903f54846e44',1,'entt::basic_poly::basic_poly() noexcept=default'],['../classentt_1_1basic__poly.html#aed074839fc14e757f761d89606895062',1,'entt::basic_poly::basic_poly(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__poly.html#aa587d96479005de4cd19047a7c76cf94',1,'entt::basic_poly::basic_poly(Type &&value) noexcept']]], - ['basic_5freactive_5fmixin_38',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html',1,'entt::basic_reactive_mixin< Type, Registry >'],['../classentt_1_1basic__reactive__mixin.html#a5f95e4f7cf9cfaf3a169db75dc0c147b',1,'entt::basic_reactive_mixin::basic_reactive_mixin()'],['../classentt_1_1basic__reactive__mixin.html#a24156d6ae47d5b777b6be8a9ba7aa99f',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__reactive__mixin.html#aca2d1ec327b157a1a7f41c7935a98832',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a3a0067a81152d2bfbec2723e0664461a',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#a8327edcef07c577a904fee0ef5f7a64e',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other, const allocator_type &allocator)']]], - ['basic_5fregistry_39',['basic_registry',['../classentt_1_1basic__registry.html',1,'entt::basic_registry< Entity, Allocator >'],['../classentt_1_1basic__registry.html#afb2496f183300f9f9b7ae24617df0a3c',1,'entt::basic_registry::basic_registry()'],['../classentt_1_1basic__registry.html#ab66e63c6c5398d5a0c9fc40d2fe8201f',1,'entt::basic_registry::basic_registry(const allocator_type &allocator)'],['../classentt_1_1basic__registry.html#a1b6c762063ff48a0f4ca8efa063ebd53',1,'entt::basic_registry::basic_registry(const size_type count, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1basic__registry.html#af096d2149b6cc869875319aa22066e69',1,'entt::basic_registry::basic_registry(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#ac5cfdf43791119f4ab2d6976bec62644',1,'entt::basic_registry::basic_registry(basic_registry &&other) noexcept']]], - ['basic_5fruntime_5fview_40',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html',1,'entt::basic_runtime_view< Type, Allocator >'],['../classentt_1_1basic__runtime__view.html#a14c8cb432c8ddbf865f79d2765f02400',1,'entt::basic_runtime_view::basic_runtime_view() noexcept'],['../classentt_1_1basic__runtime__view.html#a262d2b09f30d57e67a6e8028c016b637',1,'entt::basic_runtime_view::basic_runtime_view(const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#a0f89fdc9d23992e1c86c3306ad012292',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#ad96d2f1aaa57c82c9330e8f64f0e83fb',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &other, const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#afef04d25b27c5226bb2b0bbf073501cf',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__runtime__view.html#ae977102b64bd4eff2e1c903bddf58492',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&other, const allocator_type &allocator)']]], - ['basic_5fscheduler_41',['basic_scheduler',['../classentt_1_1basic__scheduler.html',1,'entt::basic_scheduler< Delta, Allocator >'],['../classentt_1_1basic__scheduler.html#a3c15133d781d3d2671ff64d4281d8d62',1,'entt::basic_scheduler::basic_scheduler()'],['../classentt_1_1basic__scheduler.html#a730077cba34cf06999080b542e940a2e',1,'entt::basic_scheduler::basic_scheduler(const allocator_type &allocator)'],['../classentt_1_1basic__scheduler.html#a0bebce4f1b2c70862171a2a0785ef74c',1,'entt::basic_scheduler::basic_scheduler(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a4c3323d871e3654e61afb80a4f05a3da',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other) noexcept'],['../classentt_1_1basic__scheduler.html#ab39ad210a5b331208057c7894510c2b0',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other, const allocator_type &allocator)']]], - ['basic_5fsigh_5fmixin_42',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html',1,'entt::basic_sigh_mixin< Type, Registry >'],['../classentt_1_1basic__sigh__mixin.html#a6374b697a080abbbc826161799dad699',1,'entt::basic_sigh_mixin::basic_sigh_mixin()'],['../classentt_1_1basic__sigh__mixin.html#a5e37835efeb7a49d40155e392722418a',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__sigh__mixin.html#a8d78fa2f9dd8a7489a7306b75366e6bf',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a8924ad4c2e88eb1fd15ab585ca7505a8',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__sigh__mixin.html#ab367b15994cddc48d7cd1e34c419beb4',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)']]], - ['basic_5fsnapshot_43',['basic_snapshot',['../classentt_1_1basic__snapshot.html',1,'entt::basic_snapshot< Registry >'],['../classentt_1_1basic__snapshot.html#a04da73375c3f546f52852aa174a2ab06',1,'entt::basic_snapshot::basic_snapshot(const registry_type &source) noexcept'],['../classentt_1_1basic__snapshot.html#a66159be5a4f741e09369831ac59c771a',1,'entt::basic_snapshot::basic_snapshot(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#ae8d0d610dad9fc00c73c167dc46cba8f',1,'entt::basic_snapshot::basic_snapshot(basic_snapshot &&) noexcept=default']]], - ['basic_5fsnapshot_5floader_44',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html',1,'entt::basic_snapshot_loader< Registry >'],['../classentt_1_1basic__snapshot__loader.html#a1a3aa9874823320812d8c75336942623',1,'entt::basic_snapshot_loader::basic_snapshot_loader(registry_type &source) noexcept'],['../classentt_1_1basic__snapshot__loader.html#aea03a64bc66d5cb98206c7d15f623f1c',1,'entt::basic_snapshot_loader::basic_snapshot_loader(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#a6f975e36c5ae7e84bedf315201e4e763',1,'entt::basic_snapshot_loader::basic_snapshot_loader(basic_snapshot_loader &&) noexcept=default']]], - ['basic_5fsparse_5fset_45',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html',1,'entt::basic_sparse_set< Entity, Allocator >'],['../classentt_1_1basic__sparse__set.html#afc504894fc2c20ea25b7fc2864bd22e3',1,'entt::basic_sparse_set::basic_sparse_set()'],['../classentt_1_1basic__sparse__set.html#a1b636566df9e6f3f36ff62d2bdde8d10',1,'entt::basic_sparse_set::basic_sparse_set(const allocator_type &allocator)'],['../classentt_1_1basic__sparse__set.html#a8e264ab5a7e2d97a204004d25b14238b',1,'entt::basic_sparse_set::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#af5d35aae661fb35e485ac733969c84d9',1,'entt::basic_sparse_set::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#acfbfbfe9f6967ff54f06c210d787f4ad',1,'entt::basic_sparse_set::basic_sparse_set(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#aaf4d881833f592ed21079e2a0fac8d2a',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__sparse__set.html#a9d6e25d1435a6216c60b42babd64085d',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)']]], - ['basic_5fsparse_5fset_3c_20entity_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_46',['basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], - ['basic_5fsparse_5fset_3c_20typename_20registry_3a_3aentity_5ftype_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20typename_20registry_3a_3aentity_5ftype_20_3e_20_3e_47',['basic_sparse_set< typename Registry::entity_type, std::allocator_traits< Allocator >::template rebind_alloc< typename Registry::entity_type > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], - ['basic_5fstorage_48',['basic_storage',['../classentt_1_1basic__storage.html',1,'entt::basic_storage< Type, Entity, Allocator, typename >'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a029f21d7a8e7079d1ebf8fd4702250ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a4c8eca7aeb2d1d79980435e696cae6d2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0040a7517f4b2fb8c72421ddf39a9a01',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a1dbb2e1f40fa624895487a02e1d7ea48',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#af4f97281e841017fdc7dfc9af865e252',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ae1fe4f9b3f5321de7fa8edf19e94a5e3',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aad3d273e33e1c75d3ff90335c00052f2',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ad670050bddfa74b9c0a9e4ba2204268f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abe7bd428f703bfc2d315ef2452efc267',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a856e9e651a4dd6ae412ccdf45e8548d0',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)']]], - ['basic_5fstorage_3c_20entity_2c_20entity_2c_20allocator_20_3e_49',['basic_storage< Entity, Entity, Allocator >',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], - ['basic_5fstorage_3c_20mask_5ftype_2c_20typename_20registry_3a_3aentity_5ftype_2c_20typename_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20mask_5ftype_20_3e_20_3e_50',['basic_storage< mask_type, typename Registry::entity_type, typename std::allocator_traits< Allocator >::template rebind_alloc< mask_type > >',['../classentt_1_1basic__storage.html',1,'entt']]], - ['basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_2c_20std_3a_3aenable_5fif_5ft_3c_20component_5ftraits_3c_20type_20_3e_3a_3apage_5fsize_3d_3d0u_20_3e_20_3e_51',['basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >',['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html',1,'entt']]], - ['basic_5fstorage_5fview_52',['basic_storage_view',['../classentt_1_1basic__storage__view.html',1,'entt']]], - ['basic_5fstorage_5fview_3c_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_53',['basic_storage_view< Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], - ['basic_5ftable_54',['basic_table',['../classentt_1_1basic__table.html',1,'entt::basic_table< Container >'],['../classentt_1_1basic__table.html#a6abef9631c552b00a7520bf7e9070f29',1,'entt::basic_table::basic_table()'],['../classentt_1_1basic__table.html#abc9122218646b7cd2a95fd0b342314e7',1,'entt::basic_table::basic_table(const Container &...container) noexcept'],['../classentt_1_1basic__table.html#ac0c37dff3d1ec2acbd012b66d1d562d5',1,'entt::basic_table::basic_table(Container &&...container) noexcept'],['../classentt_1_1basic__table.html#aa0f55f4fe0d47a9cbdea81d2b840cf26',1,'entt::basic_table::basic_table(const basic_table &)=delete'],['../classentt_1_1basic__table.html#ab985a1bccf6912a22b44175cbf3c0f6a',1,'entt::basic_table::basic_table(basic_table &&other) noexcept'],['../classentt_1_1basic__table.html#abea3cade520307e7f85409f56dac234a',1,'entt::basic_table::basic_table(const Allocator &allocator)'],['../classentt_1_1basic__table.html#a8b314b853f72c53c42ef59d5d5fe1022',1,'entt::basic_table::basic_table(const Container &...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a9ad461d2207abc89d152e67f3cc4b825',1,'entt::basic_table::basic_table(Container &&...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a3478658959fd02de4b503d42eec89467',1,'entt::basic_table::basic_table(basic_table &&other, const Allocator &allocator)']]], - ['basic_5fview_55',['basic_view',['../classentt_1_1basic__view.html',1,'entt::basic_view< typename, typename, typename >'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a18e806e619209655ef00a44fb984dc91',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#af11033bff1be4277cd98aea2645cb90f',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(Get &...value, Exclude &...excl) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ae6e5af07e9553705cdb58386e4fa499d',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a69a56c8c2d74c132b295fd25c84926af',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0d6136f906cb8929021caeacf145651e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(Get &value) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a02bbf202f955da7b92a11b4a0c14b425',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept'],['../namespaceentt.html#a044bc9823cac51816fc5cbcd490478d1',1,'entt::basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >'],['../namespaceentt.html#a60bb84cde1e16efe42ffc9ec956b66b4',1,'entt::basic_view(std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >']]], - ['basic_5fview_3c_20get_5ft_3c_20get_20_3e_2c_20exclude_5ft_3c_3e_20_3e_56',['basic_view< get_t< Get >, exclude_t<> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html',1,'entt']]], - ['basic_5fview_3c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_28sizeof_2e_2e_2e_28get_29_20_21_3d0u_29_3e_20_3e_57',['basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html',1,'entt']]], - ['beam_20me_20up_20registry_58',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], - ['begin_59',['begin',['../classentt_1_1dense__map.html#a7c0e7de10687bc1e810d67ba6a91396d',1,'entt::dense_map::begin() const noexcept'],['../classentt_1_1dense__map.html#afb7f0ff4d0988673a027ac0e0348b216',1,'entt::dense_map::begin() noexcept'],['../classentt_1_1dense__map.html#a33900c670781f415f4eb0bfeb5be04a3',1,'entt::dense_map::begin(const size_type index) const'],['../classentt_1_1dense__map.html#a4b71476135fb7147c02ec7a801564c72',1,'entt::dense_map::begin(const size_type index)'],['../classentt_1_1dense__set.html#a2130895a2b9e794841b3afe3c6f793bb',1,'entt::dense_set::begin() const noexcept'],['../classentt_1_1dense__set.html#aff5d31abe96f4a71dd5d661e7f4feae1',1,'entt::dense_set::begin() noexcept'],['../classentt_1_1dense__set.html#af40a2a303dddc229bce36516d18921d5',1,'entt::dense_set::begin(const size_type index) const'],['../classentt_1_1dense__set.html#af5dfa9caba33563b1678e85d2774609c',1,'entt::dense_set::begin(const size_type index)'],['../classentt_1_1basic__table.html#a56aeeb950b6d041741eec8e9688afee7',1,'entt::basic_table::begin() const noexcept'],['../classentt_1_1basic__table.html#aaf620dac6a85efc2df8c6063e489e2b7',1,'entt::basic_table::begin() noexcept'],['../structentt_1_1iterable__adaptor.html#aff7b8ed093340f3d6726aeacd5c44ca7',1,'entt::iterable_adaptor::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a02df8d2cc8e492f0faa1b8218591f258',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3fd2db6528ee4a5e14f96dd6b0f38769',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__observer.html#a3f45d53397463edffae83b5dbda358ef',1,'entt::basic_observer::begin()'],['../classentt_1_1basic__runtime__view.html#a140fca2ae84d1dcb861f4b106cd75f29',1,'entt::basic_runtime_view::begin()'],['../classentt_1_1basic__sparse__set.html#a11b72852c0ae4f7f0dc5f27ba6001f42',1,'entt::basic_sparse_set::begin()'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage::begin() noexcept'],['../classentt_1_1basic__common__view.html#a51cd2d2c3725b7b4122b594dac974da6',1,'entt::basic_common_view::begin()'],['../classentt_1_1basic__storage__view.html#acd18a7a06f28e4e56b7f89d945404f9b',1,'entt::basic_storage_view::begin()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a28386fe73674349ccb626e287c6d4cc1',1,'entt::basic_meta_sequence_container_traits::begin()'],['../structentt_1_1basic__meta__associative__container__traits.html#a08ae7f3871f82ab98e4516dd34afbb7f',1,'entt::basic_meta_associative_container_traits::begin()'],['../classentt_1_1meta__sequence__container.html#ad4f618296f1ec7d7f5859713ecdf1695',1,'entt::meta_sequence_container::begin()'],['../classentt_1_1meta__associative__container.html#a86dcac50a81b30cd2720b3ac69318ada',1,'entt::meta_associative_container::begin()'],['../classentt_1_1resource__cache.html#ad6f22237738edb0cd44a5891b5e38543',1,'entt::resource_cache::begin() const noexcept'],['../classentt_1_1resource__cache.html#a14977ada6d28067be09d9deac2cd9129',1,'entt::resource_cache::begin() noexcept']]], - ['benchmark_60',['Benchmark',['../index.html#benchmark',1,'']]], - ['between_61',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['between_62',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], - ['beyond_20this_20document_63',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], - ['bind_64',['bind',['../classentt_1_1basic__sparse__set.html#a0e5a5e8d34afe0471d8c9d1c1fb6df2f',1,'entt::basic_sparse_set::bind(Type &&value) noexcept'],['../classentt_1_1basic__sparse__set.html#a11348154765ab6661b04dbac72be0272',1,'entt::basic_sparse_set::bind(Type &&value) noexcept'],['../classentt_1_1basic__flow.html#a81236828df07e39e44a200debdd98a78',1,'entt::basic_flow::bind()']]], - ['bind_5fany_65',['bind_any',['../classentt_1_1basic__sparse__set.html#a94662470540e38b7933b23b2ab2249f7',1,'entt::basic_sparse_set']]], - ['bit_66',['Bit',['../md_docs_2md_2core.html#bit',1,'']]], - ['bitmask_67',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], - ['bitset_20free_68',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], - ['blog_20posts_3a_69',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], - ['boundaries_70',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]], - ['boundaries_71',['Working across boundaries',['../md_docs_2md_2lib.html#working-across-boundaries',1,'']]], - ['bucket_72',['bucket',['../classentt_1_1dense__map.html#a9a591d419dd5649e52907a3032f8c0b8',1,'entt::dense_map::bucket()'],['../classentt_1_1dense__set.html#a36a7137bfb36d2ca5026d986710cc05a',1,'entt::dense_set::bucket()']]], - ['bucket_5fcount_73',['bucket_count',['../classentt_1_1dense__map.html#aee246b41534137f279a11eb5e225a6e5',1,'entt::dense_map::bucket_count()'],['../classentt_1_1dense__set.html#a4ad74d3386c317d8aa2f9a2c88f410e4',1,'entt::dense_set::bucket_count()']]], - ['bucket_5fsize_74',['bucket_size',['../classentt_1_1dense__map.html#ae094f65cda09d80851306f6a4bba7b50',1,'entt::dense_map::bucket_size()'],['../classentt_1_1dense__set.html#a001d564dcf11933f59592f15709830d0',1,'entt::dense_set::bucket_size()']]], - ['buffer_20optimization_75',['Small buffer optimization',['../md_docs_2md_2core.html#small-buffer-optimization',1,'']]], - ['build_20on_20windows_20so_20slow_76',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['build_20your_20own_77',['Build your own',['../md_docs_2md_2entity.html#build-your-own',1,'']]], - ['builder_78',['Flow builder',['../md_docs_2md_2graph.html#flow-builder',1,'']]], - ['built_20in_20rtti_20support_79',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], - ['bump_80',['bump',['../classentt_1_1basic__sparse__set.html#a777ecee811e5fa5567bc462dba476771',1,'entt::basic_sparse_set']]], - ['business_3a_81',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]] + ['basic_5fgroup_3c_20type_5flist_5ftransform_5ft_3c_20owned_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20get_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20exclude_2c_20storage_5ffor_20_3e_20_3e_20',['basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > >',['../classentt_1_1basic__group.html',1,'entt']]], + ['basic_5fhandle_21',['basic_handle',['../classentt_1_1basic__handle.html',1,'entt::basic_handle< Registry, Scope >'],['../classentt_1_1basic__handle.html#a626e946763abe4c6471f8a367e6be42e',1,'entt::basic_handle::basic_handle() noexcept'],['../classentt_1_1basic__handle.html#a76c7232a30b5cee98b05409c8ef10727',1,'entt::basic_handle::basic_handle(registry_type &ref, entity_type value) noexcept']]], + ['basic_5fhandle_3c_20const_20registry_20_3e_22',['basic_handle< const registry >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20const_20registry_2c_20args_2e_2e_2e_20_3e_23',['basic_handle< const registry, Args... >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20registry_20_3e_24',['basic_handle< registry >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20registry_2c_20args_2e_2e_2e_20_3e_25',['basic_handle< registry, Args... >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhashed_5fstring_26',['basic_hashed_string',['../classentt_1_1basic__hashed__string.html',1,'entt::basic_hashed_string< Char >'],['../classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595',1,'entt::basic_hashed_string::basic_hashed_string() noexcept'],['../classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e',1,'entt::basic_hashed_string::basic_hashed_string(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd',1,'entt::basic_hashed_string::basic_hashed_string(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0',1,'entt::basic_hashed_string::basic_hashed_string(const_wrapper wrapper) noexcept'],['../namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9',1,'entt::basic_hashed_string(const Char *str, std::size_t len) -> basic_hashed_string< Char >'],['../namespaceentt.html#aaa97361ef962166a4fc51a582d7c6392',1,'entt::basic_hashed_string(const Char(&str)[N]) -> basic_hashed_string< Char >']]], + ['basic_5fhashed_5fstring_3c_20char_20_3e_27',['basic_hashed_string< char >',['../classentt_1_1basic__hashed__string.html',1,'entt']]], + ['basic_5fhashed_5fstring_3c_20wchar_5ft_20_3e_28',['basic_hashed_string< wchar_t >',['../classentt_1_1basic__hashed__string.html',1,'entt']]], + ['basic_5fiterator_29',['basic_iterator',['../classentt_1_1basic__sparse__set.html#ac56bb654b47a648d64a754d85c70b40a',1,'entt::basic_sparse_set']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_30',['basic_meta_associative_container_traits',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_31',['basic_meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_32',['basic_meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_33',['basic_meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_34',['basic_meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_35',['basic_meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_36',['basic_meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_37',['basic_meta_sequence_container_traits',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_38',['basic_meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_39',['basic_meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_40',['basic_meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_41',['basic_meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5forganizer_42',['basic_organizer',['../classentt_1_1basic__organizer.html',1,'entt']]], + ['basic_5forganizer_3c_20registry_20_3e_43',['basic_organizer< registry >',['../classentt_1_1basic__organizer.html',1,'entt']]], + ['basic_5fpoly_44',['basic_poly',['../classentt_1_1basic__poly.html',1,'entt::basic_poly< Concept, Len, Align >'],['../classentt_1_1basic__poly.html#af1ee3622b7b01d9934dd903f54846e44',1,'entt::basic_poly::basic_poly() noexcept=default'],['../classentt_1_1basic__poly.html#aed074839fc14e757f761d89606895062',1,'entt::basic_poly::basic_poly(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__poly.html#aa587d96479005de4cd19047a7c76cf94',1,'entt::basic_poly::basic_poly(Type &&value) noexcept']]], + ['basic_5fpoly_3c_20concept_20_3e_45',['basic_poly< Concept >',['../classentt_1_1basic__poly.html',1,'entt']]], + ['basic_5freactive_5fmixin_46',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html',1,'entt::basic_reactive_mixin< Type, Registry >'],['../classentt_1_1basic__reactive__mixin.html#a5f95e4f7cf9cfaf3a169db75dc0c147b',1,'entt::basic_reactive_mixin::basic_reactive_mixin()'],['../classentt_1_1basic__reactive__mixin.html#a24156d6ae47d5b777b6be8a9ba7aa99f',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__reactive__mixin.html#aca2d1ec327b157a1a7f41c7935a98832',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a3a0067a81152d2bfbec2723e0664461a',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#a8327edcef07c577a904fee0ef5f7a64e',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other, const allocator_type &allocator)']]], + ['basic_5freactive_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_47',['basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], + ['basic_5freactive_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_3c_20basic_5fstorage_3c_20reactive_2c_20entity_2c_20allocator_20_3e_20_3e_48',['basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >< basic_storage< reactive, Entity, Allocator > >',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], + ['basic_5fregistry_49',['basic_registry',['../classentt_1_1basic__registry.html',1,'entt::basic_registry< Entity, Allocator >'],['../classentt_1_1basic__registry.html#afb2496f183300f9f9b7ae24617df0a3c',1,'entt::basic_registry::basic_registry()'],['../classentt_1_1basic__registry.html#ab66e63c6c5398d5a0c9fc40d2fe8201f',1,'entt::basic_registry::basic_registry(const allocator_type &allocator)'],['../classentt_1_1basic__registry.html#a1b6c762063ff48a0f4ca8efa063ebd53',1,'entt::basic_registry::basic_registry(const size_type count, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1basic__registry.html#af096d2149b6cc869875319aa22066e69',1,'entt::basic_registry::basic_registry(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#ac5cfdf43791119f4ab2d6976bec62644',1,'entt::basic_registry::basic_registry(basic_registry &&other) noexcept']]], + ['basic_5fregistry_3c_20typename_20owner_5ftype_3a_3aentity_5ftype_2c_20typename_20owner_5ftype_3a_3aallocator_5ftype_20_3e_50',['basic_registry< typename owner_type::entity_type, typename owner_type::allocator_type >',['../classentt_1_1basic__registry.html',1,'entt']]], + ['basic_5fregistry_3c_3e_51',['basic_registry<>',['../classentt_1_1basic__registry.html',1,'entt']]], + ['basic_5fruntime_5fview_52',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html',1,'entt::basic_runtime_view< Type, Allocator >'],['../classentt_1_1basic__runtime__view.html#a14c8cb432c8ddbf865f79d2765f02400',1,'entt::basic_runtime_view::basic_runtime_view() noexcept'],['../classentt_1_1basic__runtime__view.html#a262d2b09f30d57e67a6e8028c016b637',1,'entt::basic_runtime_view::basic_runtime_view(const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#a0f89fdc9d23992e1c86c3306ad012292',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#ad96d2f1aaa57c82c9330e8f64f0e83fb',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &other, const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#afef04d25b27c5226bb2b0bbf073501cf',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__runtime__view.html#ae977102b64bd4eff2e1c903bddf58492',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&other, const allocator_type &allocator)']]], + ['basic_5fruntime_5fview_3c_20const_20sparse_5fset_20_3e_53',['basic_runtime_view< const sparse_set >',['../classentt_1_1basic__runtime__view.html',1,'entt']]], + ['basic_5fruntime_5fview_3c_20sparse_5fset_20_3e_54',['basic_runtime_view< sparse_set >',['../classentt_1_1basic__runtime__view.html',1,'entt']]], + ['basic_5fscheduler_55',['basic_scheduler',['../classentt_1_1basic__scheduler.html',1,'entt::basic_scheduler< Delta, Allocator >'],['../classentt_1_1basic__scheduler.html#a3c15133d781d3d2671ff64d4281d8d62',1,'entt::basic_scheduler::basic_scheduler()'],['../classentt_1_1basic__scheduler.html#a730077cba34cf06999080b542e940a2e',1,'entt::basic_scheduler::basic_scheduler(const allocator_type &allocator)'],['../classentt_1_1basic__scheduler.html#a0bebce4f1b2c70862171a2a0785ef74c',1,'entt::basic_scheduler::basic_scheduler(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a4c3323d871e3654e61afb80a4f05a3da',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other) noexcept'],['../classentt_1_1basic__scheduler.html#ab39ad210a5b331208057c7894510c2b0',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other, const allocator_type &allocator)']]], + ['basic_5fscheduler_3c_3e_56',['basic_scheduler<>',['../classentt_1_1basic__scheduler.html',1,'entt']]], + ['basic_5fsigh_5fmixin_57',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html',1,'entt::basic_sigh_mixin< Type, Registry >'],['../classentt_1_1basic__sigh__mixin.html#a6374b697a080abbbc826161799dad699',1,'entt::basic_sigh_mixin::basic_sigh_mixin()'],['../classentt_1_1basic__sigh__mixin.html#a5e37835efeb7a49d40155e392722418a',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__sigh__mixin.html#a8d78fa2f9dd8a7489a7306b75366e6bf',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a8924ad4c2e88eb1fd15ab585ca7505a8',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__sigh__mixin.html#ab367b15994cddc48d7cd1e34c419beb4',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)']]], + ['basic_5fsigh_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_58',['basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], + ['basic_5fsigh_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_3c_20basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_20_3e_20_3e_59',['basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >< basic_storage< Type, Entity, Allocator > >',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], + ['basic_5fsnapshot_60',['basic_snapshot',['../classentt_1_1basic__snapshot.html',1,'entt::basic_snapshot< Registry >'],['../classentt_1_1basic__snapshot.html#a04da73375c3f546f52852aa174a2ab06',1,'entt::basic_snapshot::basic_snapshot(const registry_type &source) noexcept'],['../classentt_1_1basic__snapshot.html#a66159be5a4f741e09369831ac59c771a',1,'entt::basic_snapshot::basic_snapshot(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#ae8d0d610dad9fc00c73c167dc46cba8f',1,'entt::basic_snapshot::basic_snapshot(basic_snapshot &&) noexcept=default']]], + ['basic_5fsnapshot_3c_20registry_20_3e_61',['basic_snapshot< registry >',['../classentt_1_1basic__snapshot.html',1,'entt']]], + ['basic_5fsnapshot_5floader_62',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html',1,'entt::basic_snapshot_loader< Registry >'],['../classentt_1_1basic__snapshot__loader.html#a1a3aa9874823320812d8c75336942623',1,'entt::basic_snapshot_loader::basic_snapshot_loader(registry_type &source) noexcept'],['../classentt_1_1basic__snapshot__loader.html#aea03a64bc66d5cb98206c7d15f623f1c',1,'entt::basic_snapshot_loader::basic_snapshot_loader(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#a6f975e36c5ae7e84bedf315201e4e763',1,'entt::basic_snapshot_loader::basic_snapshot_loader(basic_snapshot_loader &&) noexcept=default']]], + ['basic_5fsnapshot_5floader_3c_20registry_20_3e_63',['basic_snapshot_loader< registry >',['../classentt_1_1basic__snapshot__loader.html',1,'entt']]], + ['basic_5fsparse_5fset_64',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html',1,'entt::basic_sparse_set< Entity, Allocator >'],['../classentt_1_1basic__sparse__set.html#afc504894fc2c20ea25b7fc2864bd22e3',1,'entt::basic_sparse_set::basic_sparse_set()'],['../classentt_1_1basic__sparse__set.html#a1b636566df9e6f3f36ff62d2bdde8d10',1,'entt::basic_sparse_set::basic_sparse_set(const allocator_type &allocator)'],['../classentt_1_1basic__sparse__set.html#a8e264ab5a7e2d97a204004d25b14238b',1,'entt::basic_sparse_set::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#af5d35aae661fb35e485ac733969c84d9',1,'entt::basic_sparse_set::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#acfbfbfe9f6967ff54f06c210d787f4ad',1,'entt::basic_sparse_set::basic_sparse_set(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#aaf4d881833f592ed21079e2a0fac8d2a',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__sparse__set.html#a9d6e25d1435a6216c60b42babd64085d',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)']]], + ['basic_5fsparse_5fset_3c_20entity_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_65',['basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fsparse_5fset_3c_20entity_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_66',['basic_sparse_set< Entity, typename alloc_traits::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fsparse_5fset_3c_3e_67',['basic_sparse_set<>',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fstorage_68',['basic_storage',['../classentt_1_1basic__storage.html',1,'entt::basic_storage< Type, Entity, Allocator, typename >'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a607ddcf3b224f38e658d9be7dbf15da0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a7b7b06b2562f3f5cc9d177ca938db341',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a9afb1279977ec0872920dca913a42fec',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a994c6e55039c704227aaa08b504f5424',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a82b0f11b9a2e8f3a93cd5e3441d19cbc',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ae1fe4f9b3f5321de7fa8edf19e94a5e3',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aad3d273e33e1c75d3ff90335c00052f2',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ad670050bddfa74b9c0a9e4ba2204268f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abe7bd428f703bfc2d315ef2452efc267',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a856e9e651a4dd6ae412ccdf45e8548d0',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)']]], + ['basic_5fstorage_3c_20entity_2c_20entity_2c_20allocator_20_3e_69',['basic_storage< Entity, Entity, Allocator >',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], + ['basic_5fstorage_3c_20type_20_3e_70',['basic_storage< Type >',['../classentt_1_1basic__storage.html',1,'entt']]], + ['basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_2c_20std_3a_3aenable_5fif_5ft_3c_20component_5ftraits_3c_20type_2c_20entity_20_3e_3a_3apage_5fsize_3d_3d0u_20_3e_20_3e_71',['basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >',['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html',1,'entt']]], + ['basic_5fstorage_5fview_72',['basic_storage_view',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5fstorage_5fview_3c_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_73',['basic_storage_view< Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5fstorage_5fview_3c_20typename_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_74',['basic_storage_view< typename Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5ftable_75',['basic_table',['../classentt_1_1basic__table.html',1,'entt::basic_table< Container >'],['../classentt_1_1basic__table.html#a6abef9631c552b00a7520bf7e9070f29',1,'entt::basic_table::basic_table()'],['../classentt_1_1basic__table.html#abc9122218646b7cd2a95fd0b342314e7',1,'entt::basic_table::basic_table(const Container &...container) noexcept'],['../classentt_1_1basic__table.html#ac0c37dff3d1ec2acbd012b66d1d562d5',1,'entt::basic_table::basic_table(Container &&...container) noexcept'],['../classentt_1_1basic__table.html#aa0f55f4fe0d47a9cbdea81d2b840cf26',1,'entt::basic_table::basic_table(const basic_table &)=delete'],['../classentt_1_1basic__table.html#ab985a1bccf6912a22b44175cbf3c0f6a',1,'entt::basic_table::basic_table(basic_table &&other) noexcept'],['../classentt_1_1basic__table.html#abea3cade520307e7f85409f56dac234a',1,'entt::basic_table::basic_table(const Allocator &allocator)'],['../classentt_1_1basic__table.html#a8b314b853f72c53c42ef59d5d5fe1022',1,'entt::basic_table::basic_table(const Container &...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a9ad461d2207abc89d152e67f3cc4b825',1,'entt::basic_table::basic_table(Container &&...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a3478658959fd02de4b503d42eec89467',1,'entt::basic_table::basic_table(basic_table &&other, const Allocator &allocator)']]], + ['basic_5ftable_3c_20std_3a_3avector_3c_20type_20_3e_2e_2e_2e_20_3e_76',['basic_table< std::vector< Type >... >',['../classentt_1_1basic__table.html',1,'entt']]], + ['basic_5fview_77',['basic_view',['../classentt_1_1basic__view.html',1,'entt::basic_view< typename, typename, typename >'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a18e806e619209655ef00a44fb984dc91',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#af11033bff1be4277cd98aea2645cb90f',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(Get &...value, Exclude &...excl) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ae6e5af07e9553705cdb58386e4fa499d',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a69a56c8c2d74c132b295fd25c84926af',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0d6136f906cb8929021caeacf145651e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(Get &value) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a02bbf202f955da7b92a11b4a0c14b425',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept'],['../namespaceentt.html#a044bc9823cac51816fc5cbcd490478d1',1,'entt::basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >'],['../namespaceentt.html#a60bb84cde1e16efe42ffc9ec956b66b4',1,'entt::basic_view(std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >']]], + ['basic_5fview_3c_20get_5ft_3c_20get_20_3e_2c_20exclude_5ft_3c_3e_20_3e_78',['basic_view< get_t< Get >, exclude_t<> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html',1,'entt']]], + ['basic_5fview_3c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_28sizeof_2e_2e_2e_28get_29_20_21_3d0u_29_3e_20_3e_79',['basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html',1,'entt']]], + ['basic_5fview_3c_20type_5flist_5ftransform_5ft_3c_20get_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20exclude_2c_20storage_5ffor_20_3e_20_3e_80',['basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > >',['../classentt_1_1basic__view.html',1,'entt']]], + ['beam_20me_20up_20registry_81',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], + ['begin_82',['begin',['../classentt_1_1dense__map.html#a7c0e7de10687bc1e810d67ba6a91396d',1,'entt::dense_map::begin() const noexcept'],['../classentt_1_1dense__map.html#afb7f0ff4d0988673a027ac0e0348b216',1,'entt::dense_map::begin() noexcept'],['../classentt_1_1dense__map.html#a33900c670781f415f4eb0bfeb5be04a3',1,'entt::dense_map::begin(const size_type index) const'],['../classentt_1_1dense__map.html#a4b71476135fb7147c02ec7a801564c72',1,'entt::dense_map::begin(const size_type index)'],['../classentt_1_1dense__set.html#a2130895a2b9e794841b3afe3c6f793bb',1,'entt::dense_set::begin() const noexcept'],['../classentt_1_1dense__set.html#aff5d31abe96f4a71dd5d661e7f4feae1',1,'entt::dense_set::begin() noexcept'],['../classentt_1_1dense__set.html#af40a2a303dddc229bce36516d18921d5',1,'entt::dense_set::begin(const size_type index) const'],['../classentt_1_1dense__set.html#af5dfa9caba33563b1678e85d2774609c',1,'entt::dense_set::begin(const size_type index)'],['../classentt_1_1basic__table.html#a56aeeb950b6d041741eec8e9688afee7',1,'entt::basic_table::begin() const noexcept'],['../classentt_1_1basic__table.html#aaf620dac6a85efc2df8c6063e489e2b7',1,'entt::basic_table::begin() noexcept'],['../structentt_1_1iterable__adaptor.html#aff7b8ed093340f3d6726aeacd5c44ca7',1,'entt::iterable_adaptor::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a02df8d2cc8e492f0faa1b8218591f258',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3fd2db6528ee4a5e14f96dd6b0f38769',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__runtime__view.html#a140fca2ae84d1dcb861f4b106cd75f29',1,'entt::basic_runtime_view::begin()'],['../classentt_1_1basic__sparse__set.html#a11b72852c0ae4f7f0dc5f27ba6001f42',1,'entt::basic_sparse_set::begin()'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage::begin() noexcept'],['../classentt_1_1basic__common__view.html#a2007dc390b50ccc73a6d1ef6557d762b',1,'entt::basic_common_view::begin()'],['../classentt_1_1basic__storage__view.html#acd18a7a06f28e4e56b7f89d945404f9b',1,'entt::basic_storage_view::begin()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a28386fe73674349ccb626e287c6d4cc1',1,'entt::basic_meta_sequence_container_traits::begin()'],['../structentt_1_1basic__meta__associative__container__traits.html#a08ae7f3871f82ab98e4516dd34afbb7f',1,'entt::basic_meta_associative_container_traits::begin()'],['../classentt_1_1meta__sequence__container.html#ad4f618296f1ec7d7f5859713ecdf1695',1,'entt::meta_sequence_container::begin()'],['../classentt_1_1meta__associative__container.html#a86dcac50a81b30cd2720b3ac69318ada',1,'entt::meta_associative_container::begin()'],['../classentt_1_1resource__cache.html#ad6f22237738edb0cd44a5891b5e38543',1,'entt::resource_cache::begin() const noexcept'],['../classentt_1_1resource__cache.html#a14977ada6d28067be09d9deac2cd9129',1,'entt::resource_cache::begin() noexcept'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage< Entity, Entity, Allocator >::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage< Entity, Entity, Allocator >::begin() noexcept'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::begin() noexcept']]], + ['benchmark_83',['Benchmark',['../index.html#benchmark',1,'']]], + ['between_84',['between',['../md_docs_2md_2signal.html',1,'Crash Course: events, signals and everything in between'],['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'Types: const, non-const and all in between']]], + ['beyond_20this_20document_85',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], + ['bind_86',['bind',['../classentt_1_1basic__sparse__set.html#a67b8e3f7cb0144bf663bcd6b9c6e131f',1,'entt::basic_sparse_set::bind()'],['../classentt_1_1basic__flow.html#a81236828df07e39e44a200debdd98a78',1,'entt::basic_flow::bind()']]], + ['bind_5fany_87',['bind_any',['../classentt_1_1basic__sparse__set.html#a94662470540e38b7933b23b2ab2249f7',1,'entt::basic_sparse_set']]], + ['bit_88',['Bit',['../md_docs_2md_2core.html#bit',1,'']]], + ['bitmask_89',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], + ['bitset_20free_90',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], + ['blog_20posts_3a_91',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], + ['boundaries_92',['boundaries',['../md_docs_2md_2lib.html',1,'Push EnTT across boundaries'],['../md_docs_2md_2lib.html#working-across-boundaries',1,'Working across boundaries']]], + ['bucket_93',['bucket',['../classentt_1_1dense__map.html#a9a591d419dd5649e52907a3032f8c0b8',1,'entt::dense_map::bucket()'],['../classentt_1_1dense__set.html#a36a7137bfb36d2ca5026d986710cc05a',1,'entt::dense_set::bucket()']]], + ['bucket_5fcount_94',['bucket_count',['../classentt_1_1dense__map.html#aee246b41534137f279a11eb5e225a6e5',1,'entt::dense_map::bucket_count()'],['../classentt_1_1dense__set.html#a4ad74d3386c317d8aa2f9a2c88f410e4',1,'entt::dense_set::bucket_count()']]], + ['bucket_5fsize_95',['bucket_size',['../classentt_1_1dense__map.html#ae094f65cda09d80851306f6a4bba7b50',1,'entt::dense_map::bucket_size()'],['../classentt_1_1dense__set.html#a001d564dcf11933f59592f15709830d0',1,'entt::dense_set::bucket_size()']]], + ['buffer_20optimization_96',['Small buffer optimization',['../md_docs_2md_2core.html#small-buffer-optimization',1,'']]], + ['build_20on_20windows_20so_20slow_97',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['build_20your_20own_98',['Build your own',['../md_docs_2md_2entity.html#build-your-own',1,'']]], + ['builder_99',['Flow builder',['../md_docs_2md_2graph.html#flow-builder',1,'']]], + ['built_20in_20rtti_20support_100',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], + ['bump_101',['bump',['../classentt_1_1basic__sparse__set.html#a777ecee811e5fa5567bc462dba476771',1,'entt::basic_sparse_set']]], + ['business_3a_102',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]] ]; diff --git a/search/all_10.js b/search/all_10.js index 05128eb50..8bee5e8db 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -1,65 +1,64 @@ var searchData= [ ['radix_5fsort_0',['radix_sort',['../structentt_1_1radix__sort.html',1,'entt']]], - ['raw_1',['raw',['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage::raw() noexcept']]], + ['raw_1',['raw',['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage::raw() noexcept'],['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage< Entity, Entity, Allocator >::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage< Entity, Entity, Allocator >::raw() noexcept'],['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::raw() noexcept']]], ['raw_20access_2',['Raw access',['../md_docs_2md_2signal.html#raw-access',1,'']]], - ['rbegin_3',['rbegin',['../classentt_1_1dense__set.html#ac979c28743c3adbda7405b8603116631',1,'entt::dense_set::rbegin() const noexcept'],['../classentt_1_1dense__set.html#a38daeb37b2315869173227374e16ca0d',1,'entt::dense_set::rbegin() noexcept'],['../classentt_1_1basic__table.html#a914c93d238b7da25b682e9244597189b',1,'entt::basic_table::rbegin() const noexcept'],['../classentt_1_1basic__table.html#a5da3dcc1a985a823781fc6dca5aedf1e',1,'entt::basic_table::rbegin() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3c52657f3305d9076c8859df5e2792f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#adbfcd5c0d456b00a2265ad54bf7855aa',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__sparse__set.html#aba067d644dcb69d8d11f6d5dc48b9c9b',1,'entt::basic_sparse_set::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage::rbegin() noexcept'],['../classentt_1_1basic__storage__view.html#a97a7fddfa36bb8ed8d602e76d35466ce',1,'entt::basic_storage_view::rbegin()']]], - ['reach_4',['reach',['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0c992b167732cf71844d4619491d80d1',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#af9fd55c5ddfb8c88000ff87b8d88a460',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f925d711a62f92eca32f875c88f17f8',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a014cfafc47bb929421ece1c5cc97836e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept']]], + ['rbegin_3',['rbegin',['../classentt_1_1dense__set.html#ac979c28743c3adbda7405b8603116631',1,'entt::dense_set::rbegin() const noexcept'],['../classentt_1_1dense__set.html#a38daeb37b2315869173227374e16ca0d',1,'entt::dense_set::rbegin() noexcept'],['../classentt_1_1basic__table.html#a914c93d238b7da25b682e9244597189b',1,'entt::basic_table::rbegin() const noexcept'],['../classentt_1_1basic__table.html#a5da3dcc1a985a823781fc6dca5aedf1e',1,'entt::basic_table::rbegin() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3c52657f3305d9076c8859df5e2792f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#adbfcd5c0d456b00a2265ad54bf7855aa',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__sparse__set.html#aba067d644dcb69d8d11f6d5dc48b9c9b',1,'entt::basic_sparse_set::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage::rbegin() noexcept'],['../classentt_1_1basic__storage__view.html#a97a7fddfa36bb8ed8d602e76d35466ce',1,'entt::basic_storage_view::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage< Entity, Entity, Allocator >::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage< Entity, Entity, Allocator >::rbegin() noexcept'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rbegin() noexcept']]], + ['reach_4',['reach',['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a5bf632552b2eea6c190e87afc92fdbaa',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad7e7662c420576476cbb0be50d1294be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f925d711a62f92eca32f875c88f17f8',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a014cfafc47bb929421ece1c5cc97836e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept'],['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept'],['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() const noexcept']]], ['reactive_5',['reactive',['../structentt_1_1reactive.html',1,'entt']]], ['reactive_20storage_6',['They call me reactive storage',['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'']]], ['reactive_5fmixin_7',['reactive_mixin',['../namespaceentt.html#a7d9d8ddc2e43b7cda372aa52cbcc2725',1,'entt']]], - ['rebind_8',['rebind',['../classentt_1_1meta__sequence__container.html#a712205221e74e2758a570e7eb8e12907',1,'entt::meta_sequence_container::rebind()'],['../classentt_1_1meta__associative__container.html#acf4c13a55767914e500ffb460c009306',1,'entt::meta_associative_container::rebind()']]], - ['rebinding_9',['Rebinding',['../md_docs_2md_2graph.html#rebinding',1,'']]], - ['ref_10',['ref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a18389a4a9ad5795744699cff0ba66c15',1,'entt']]], - ['reference_11',['reference',['../structentt_1_1input__iterator__pointer.html#a6fcbdecfdb892833e1c89dee1d791f19',1,'entt::input_iterator_pointer::reference'],['../classentt_1_1iota__iterator.html#aa112a5d5894b92b38f7b13368ba34556',1,'entt::iota_iterator::reference']]], - ['reflection_20in_20a_20nutshell_12',['Reflection in a nutshell',['../md_docs_2md_2meta.html#reflection-in-a-nutshell',1,'']]], - ['reflection_20system_13',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], - ['refresh_14',['refresh',['../classentt_1_1basic__common__view.html#a4572fafa94a210f91cea5a97d5dda3b4',1,'entt::basic_common_view']]], - ['registry_15',['Registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'Beam me up, registry'],['../md_docs_2md_2entity.html#const-registry',1,'Const registry'],['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'One of a kind to the registry']]], - ['registry_16',['registry',['../classentt_1_1basic__handle.html#ae22e78cbaa51a4eb7070761ad4af4830',1,'entt::basic_handle::registry()'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a798580968dc076c501f84f939ef1badc',1,'entt::sigh_helper< Registry >::registry()'],['../classentt_1_1basic__sigh__mixin.html#a15bac16d552602c9d3b8069dc2c5421a',1,'entt::basic_sigh_mixin::registry() const noexcept'],['../classentt_1_1basic__sigh__mixin.html#a77dc805c82973744114f33417337bb97',1,'entt::basic_sigh_mixin::registry() noexcept'],['../classentt_1_1basic__reactive__mixin.html#a2dcb5310a91c138c64ef59865642f10f',1,'entt::basic_reactive_mixin::registry() const noexcept'],['../classentt_1_1basic__reactive__mixin.html#ada350d4506f51f1d7ef3e29493fcda61',1,'entt::basic_reactive_mixin::registry() noexcept'],['../namespaceentt.html#ab8c1f492841aeafa5e75422af3f0cdc4',1,'entt::registry']]], - ['registry_20the_20entity_20and_20the_20component_17',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], - ['registry_5ftype_18',['registry_type',['../classentt_1_1basic__handle.html#ae0a96c4e65b652ef8e6c0764a31d7707',1,'entt::basic_handle::registry_type'],['../classentt_1_1as__view.html#acb61ac3405aeaef4fb051c8ebb5f0802',1,'entt::as_view::registry_type'],['../classentt_1_1as__group.html#a181c04aa4d53d5fef0f90b33e000f8d1',1,'entt::as_group::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a5dd4fa0484feea38dc6b464b98f2336a',1,'entt::sigh_helper< Registry >::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a2514fd73cb720dce8bde7d8ac2cf164d',1,'entt::sigh_helper< Registry, Type >::registry_type'],['../classentt_1_1basic__sigh__mixin.html#a5eddc32c85c4c0e0d20d5288add24bc3',1,'entt::basic_sigh_mixin::registry_type'],['../classentt_1_1basic__reactive__mixin.html#ad229496ac95debff57e7999efb49bb10',1,'entt::basic_reactive_mixin::registry_type'],['../classentt_1_1basic__observer.html#a49cd0f73cfb9e61aaaaa32eee4a82da4',1,'entt::basic_observer::registry_type'],['../classentt_1_1basic__organizer.html#a204c62d3d8111ed5e0d2c34fa816235c',1,'entt::basic_organizer::registry_type'],['../classentt_1_1basic__snapshot.html#a0c9d161ffb8b94259166b432852efbac',1,'entt::basic_snapshot::registry_type'],['../classentt_1_1basic__snapshot__loader.html#ac462fe9061f89d529833bdbc62919bca',1,'entt::basic_snapshot_loader::registry_type'],['../classentt_1_1basic__continuous__loader.html#ae51ed38dcfbae0c059aeed260b4d7dee',1,'entt::basic_continuous_loader::registry_type']]], - ['rehash_19',['rehash',['../classentt_1_1dense__map.html#a7cea2e02e86eec9421ddaab64f15db6b',1,'entt::dense_map::rehash()'],['../classentt_1_1dense__set.html#ade485155ec5ec107a0c3582aa848e376',1,'entt::dense_set::rehash()']]], - ['rejected_20',['rejected',['../classentt_1_1process.html#a6c716b08baea91192512aeb14f26328b',1,'entt::process']]], - ['release_21',['release',['../classentt_1_1connection.html#ae564477ab623301169916c1992c970a8',1,'entt::connection::release()'],['../structentt_1_1scoped__connection.html#a7bd2be785ba586664d8e8d039dc73ead',1,'entt::scoped_connection::release()']]], - ['remove_22',['remove',['../classentt_1_1basic__handle.html#a927411244a87196f3db80d7514217011',1,'entt::basic_handle::remove()'],['../classentt_1_1basic__registry.html#a7eb97ddee1a5ee98a722329fe39417ce',1,'entt::basic_registry::remove(const entity_type entt)'],['../classentt_1_1basic__registry.html#a5f458b3df51b800632c350961947a2bb',1,'entt::basic_registry::remove(It first, It last)'],['../classentt_1_1basic__sparse__set.html#af02e5833d5edb2450303bd1c029213b8',1,'entt::basic_sparse_set::remove(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#ab2b4ee6c81e845f332c35c89acb8f436',1,'entt::basic_sparse_set::remove(It first, It last)']]], - ['remove_5fpointer_23',['remove_pointer',['../classentt_1_1meta__type.html#a409ff9848597c588b3efec5d75fc9a60',1,'entt::meta_type']]], - ['rend_24',['rend',['../classentt_1_1dense__set.html#a77c4ca141381ddc6c09fd1ef2b594509',1,'entt::dense_set::rend() const noexcept'],['../classentt_1_1dense__set.html#ae8c26808f90a31003009127bce24f346',1,'entt::dense_set::rend() noexcept'],['../classentt_1_1basic__table.html#a214d2963b9610d4b5dd6774cf6fa5d13',1,'entt::basic_table::rend() const noexcept'],['../classentt_1_1basic__table.html#a506f340a1cb2ea41a3aa23c37a99a051',1,'entt::basic_table::rend() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#abfbf1ce09751a74c56743688c7769f99',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa7d0eecd17174df1ae26f59939023c7e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__sparse__set.html#a408ae201025279196f63ef32cf58da9a',1,'entt::basic_sparse_set::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage::rend() noexcept'],['../classentt_1_1basic__storage__view.html#a369e34fa91dc47872f5c08672505fa93',1,'entt::basic_storage_view::rend()']]], - ['replace_25',['replace',['../classentt_1_1basic__handle.html#a16534840f1d298cbd6eef5fa813173a3',1,'entt::basic_handle::replace()'],['../classentt_1_1basic__registry.html#a1b4f1cccd495d17c550711fdc9606d4f',1,'entt::basic_registry::replace()']]], - ['represent_20hierarchies_20with_20my_20components_26',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], - ['requirement_27',['Requirement',['../md_docs_2md_2core.html#alignment-requirement',1,'Alignment requirement'],['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'Storage size and alignment requirement']]], - ['requirements_28',['Requirements',['../index.html#requirements',1,'']]], - ['rescue_29',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], - ['reserve_30',['reserve',['../classentt_1_1dense__map.html#a47084f57549451518ef81a0f7cbdae0e',1,'entt::dense_map::reserve()'],['../classentt_1_1dense__set.html#a899d206bbac4c0fe88f16a4ce2215b4a',1,'entt::dense_set::reserve()'],['../classentt_1_1basic__table.html#aa96762c66bb8e2e046464b6af7b745c8',1,'entt::basic_table::reserve()'],['../classentt_1_1basic__sparse__set.html#a58d49df52ee3133a1347dc01131a4f1a',1,'entt::basic_sparse_set::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage::reserve()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a842bc739039a15323bbe223b3d1eadd5',1,'entt::basic_meta_sequence_container_traits::reserve()'],['../structentt_1_1basic__meta__associative__container__traits.html#a263fa80500498c321763405824267b5a',1,'entt::basic_meta_associative_container_traits::reserve()'],['../classentt_1_1meta__sequence__container.html#a071eb6d7e2cceba59b58a0884b281ca3',1,'entt::meta_sequence_container::reserve()'],['../classentt_1_1meta__associative__container.html#a53fc4476baf67e704987009774b9687b',1,'entt::meta_associative_container::reserve()']]], - ['reset_31',['reset',['../classentt_1_1basic__any.html#a0f267d3bbc148e7e240b902b1819c9a6',1,'entt::basic_any::reset()'],['../classentt_1_1basic__registry.html#a6f2548bae0c7a80e4adf8b8ad4e4cc11',1,'entt::basic_registry::reset()'],['../classentt_1_1locator.html#a51c0f72339094183a1779da8bf01ee22',1,'entt::locator::reset(const node_type &other={}) noexcept'],['../classentt_1_1locator.html#a319183a62597f0c5f58470e98eb2a2a3',1,'entt::locator::reset(Type *elem, Deleter deleter={})'],['../classentt_1_1meta__any.html#a92cb99988bdeb9453f2470b02c5249fb',1,'entt::meta_any::reset()'],['../classentt_1_1basic__poly.html#a43ab35169a0fdb31f7f5db5e5ad0e17d',1,'entt::basic_poly::reset()'],['../classentt_1_1resource.html#a883d62138c381c76896b516ddc5b5391',1,'entt::resource::reset()'],['../classentt_1_1resource.html#a80722fe49df8f2e2d4ede7437797500b',1,'entt::resource::reset(handle_type other)'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a10eeabec435f0b704fb5937c766b12db',1,'entt::delegate< Ret(Args...)>::reset()']]], - ['resize_32',['resize',['../classentt_1_1adjacency__matrix.html#ad45c4c6b938ed028d7c99b1d1a678b9e',1,'entt::adjacency_matrix::resize()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a8340365cc11eecb9f52f4740f1da5cd8',1,'entt::basic_meta_sequence_container_traits::resize()'],['../classentt_1_1meta__sequence__container.html#ab2635ff444fe73af564995b75571aba5',1,'entt::meta_sequence_container::resize()']]], - ['resolve_33',['resolve',['../namespaceentt.html#ad86fb3538f9ba64b4695cf45c020458e',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a9dc2ece8ba5dafc463abdceb1f55eaea',1,'entt::resolve() noexcept'],['../namespaceentt.html#a894939ee94a38b6843a8d29ab770f36a',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a1a1cf09707283197b9914fa8520e7592',1,'entt::resolve() noexcept'],['../namespaceentt.html#a669729b83f4e0e2433cbf2a881745e22',1,'entt::resolve(const meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#a4493a8ed8dc4bc71b11058973c0fd9aa',1,'entt::resolve(const id_type id) noexcept'],['../namespaceentt.html#a7072f59c8738e44792806ab65c693032',1,'entt::resolve(const meta_ctx &ctx, const type_info &info) noexcept'],['../namespaceentt.html#a28dcce4d98f6a27c4c61e814466900b2',1,'entt::resolve(const type_info &info) noexcept']]], - ['resource_34',['resource',['../classentt_1_1resource.html',1,'entt::resource< Type >'],['../classentt_1_1resource.html#ac4972d8dc6b7bda2b1568bfe2166a4b9',1,'entt::resource::resource() noexcept'],['../classentt_1_1resource.html#a936d0b259b7a6c280f87b64332bb50a5',1,'entt::resource::resource(handle_type res) noexcept'],['../classentt_1_1resource.html#a2dc2eaa16ff968418e62f882f672ec69',1,'entt::resource::resource(const resource &) noexcept=default'],['../classentt_1_1resource.html#afcea4e846c96c313bfcbab0935d5e8db',1,'entt::resource::resource(resource &&) noexcept=default'],['../classentt_1_1resource.html#a884bb0ae510b8811579b7f0b7120799e',1,'entt::resource::resource(const resource< Other > &other, element_type &res) noexcept'],['../classentt_1_1resource.html#a1650c75857ed7d9682ff43d1578ac73b',1,'entt::resource::resource(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#afb2ba4422ecf3564ef14a03fa77d65f8',1,'entt::resource::resource(resource< Other > &&other) noexcept']]], - ['resource_20handle_35',['Resource handle',['../md_docs_2md_2resource.html#resource-handle',1,'']]], - ['resource_20management_36',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], - ['resource_20the_20loader_20and_20the_20cache_37',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], - ['resource_5fcache_38',['resource_cache',['../classentt_1_1resource__cache.html',1,'entt::resource_cache< Type, Loader, Allocator >'],['../classentt_1_1resource__cache.html#a06ba856c4484f52a91a8ee140a223bd5',1,'entt::resource_cache::resource_cache()'],['../classentt_1_1resource__cache.html#a85024663deca781eb063b03254a3f825',1,'entt::resource_cache::resource_cache(const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a87b5fdd8fd001e8444d1b51de6fd9189',1,'entt::resource_cache::resource_cache(const loader_type &callable, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1resource__cache.html#ab35522f4f96e42e7ac246ce69abd2ee1',1,'entt::resource_cache::resource_cache(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a1a91e3e3d19167b6c65e826e5419e273',1,'entt::resource_cache::resource_cache(const resource_cache &other, const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a1132e7c77e407252254e164e72aad994',1,'entt::resource_cache::resource_cache(resource_cache &&) noexcept=default'],['../classentt_1_1resource__cache.html#a8419d3c2c6e142ca851e2a31d6813c63',1,'entt::resource_cache::resource_cache(resource_cache &&other, const allocator_type &allocator)']]], - ['resource_5floader_39',['resource_loader',['../structentt_1_1resource__loader.html',1,'entt']]], - ['resources_40',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], - ['resources_20and_20order_20of_20execution_41',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], - ['result_5ftype_42',['result_type',['../structentt_1_1resource__loader.html#add7a5c71b563bbc139c0983837764dc1',1,'entt::resource_loader::result_type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a9bca9876e6671a34c6503b7de65402b6',1,'entt::delegate< Ret(Args...)>::result_type']]], - ['ret_43',['ret',['../structentt_1_1meta__func.html#a63fd4cf3b926de060c847f7b60c2c28a',1,'entt::meta_func']]], - ['return_5ftype_44',['return_type',['../structentt_1_1meta__function__descriptor__traits.html#ad210fafe14b4744ef7f1aaafe67e5a83',1,'entt::meta_function_descriptor_traits']]], - ['reuse_20many_20times_45',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], - ['reverse_5fiterable_46',['reverse_iterable',['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage::reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a34996b779593809edfb11d2fc60a005a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a1fd72c81109540e8f140fdbe3caea9fa',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable']]], - ['reverse_5fiterator_47',['reverse_iterator',['../classentt_1_1dense__set.html#a8b91ff4841d5fc46d02544d71825822a',1,'entt::dense_set::reverse_iterator'],['../classentt_1_1basic__table.html#aa8acbf75a4736d43d8d4e973ea0fe8dd',1,'entt::basic_table::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1f1ebbcf7774e04d4ecc91b6b5a14469',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9bc92cfc49d8a5f02420f9d5ed3f086e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__sparse__set.html#afe62c143e816cf5e12078a607966c003',1,'entt::basic_sparse_set::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage::reverse_iterator'],['../classentt_1_1basic__storage__view.html#a1e9df97e90ca800813415aa9592827be',1,'entt::basic_storage_view::reverse_iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a47200d684b9f5b58d61c2a87e84dc8ad',1,'entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator']]], - ['ro_48',['ro',['../classentt_1_1basic__flow.html#a6dc864b3c520bd35b1ac981994e9fed6',1,'entt::basic_flow::ro(const id_type res)'],['../classentt_1_1basic__flow.html#ae99ad5bb02e38f1aa5f9ffcda69ec64c',1,'entt::basic_flow::ro(It first, It last)']]], - ['ro_5fcount_49',['ro_count',['../structentt_1_1basic__organizer_1_1vertex.html#a054127fbaefa93d8739fe8824b60b13c',1,'entt::basic_organizer::vertex']]], - ['ro_5fdependency_50',['ro_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a04140fb94ba75c56fbbbf7db86ee4476',1,'entt::basic_organizer::vertex']]], - ['rtti_20support_51',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], - ['rule_20them_20all_52',['Rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], - ['runtime_53',['Runtime',['../md_docs_2md_2meta.html#enjoy-the-runtime',1,'Enjoy the runtime'],['../md_docs_2md_2entity.html#meet-the-runtime',1,'Meet the runtime']]], - ['runtime_20arguments_54',['Runtime arguments',['../md_docs_2md_2signal.html#runtime-arguments',1,'']]], - ['runtime_20generator_55',['Runtime generator',['../md_docs_2md_2core.html#runtime-generator',1,'']]], - ['runtime_20reflection_20system_56',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], - ['runtime_20views_57',['Runtime views',['../md_docs_2md_2entity.html#runtime-views',1,'']]], - ['runtime_5fview_58',['runtime_view',['../namespaceentt.html#ae7874d535e3193cbc008ef5c7f02829d',1,'entt']]], - ['rw_59',['rw',['../classentt_1_1basic__flow.html#a44a03612c6cc4437314c14bdda0fa5dd',1,'entt::basic_flow::rw(const id_type res)'],['../classentt_1_1basic__flow.html#a48ba1ecbcfbbd8c8eb97ed2a426fedfe',1,'entt::basic_flow::rw(It first, It last)']]], - ['rw_5fcount_60',['rw_count',['../structentt_1_1basic__organizer_1_1vertex.html#ae2b4b3f69e4fa2012e53678165af5966',1,'entt::basic_organizer::vertex']]], - ['rw_5fdependency_61',['rw_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a8be845a0c46219101624ee8b115bf9ed',1,'entt::basic_organizer::vertex']]] + ['rebinding_8',['Rebinding',['../md_docs_2md_2graph.html#rebinding',1,'']]], + ['ref_9',['ref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a18389a4a9ad5795744699cff0ba66c15',1,'entt']]], + ['reference_10',['reference',['../structentt_1_1input__iterator__pointer.html#a6fcbdecfdb892833e1c89dee1d791f19',1,'entt::input_iterator_pointer::reference'],['../classentt_1_1iota__iterator.html#aa112a5d5894b92b38f7b13368ba34556',1,'entt::iota_iterator::reference']]], + ['reflection_20in_20a_20nutshell_11',['Reflection in a nutshell',['../md_docs_2md_2meta.html#reflection-in-a-nutshell',1,'']]], + ['reflection_20system_12',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], + ['refresh_13',['refresh',['../classentt_1_1basic__common__view.html#a6455db81193b2e9ce830e2ed95ae0795',1,'entt::basic_common_view']]], + ['registry_14',['registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'Beam me up, registry'],['../md_docs_2md_2entity.html#const-registry',1,'Const registry'],['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'One of a kind to the registry'],['../classentt_1_1basic__handle.html#ae22e78cbaa51a4eb7070761ad4af4830',1,'entt::basic_handle::registry()'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a798580968dc076c501f84f939ef1badc',1,'entt::sigh_helper< Registry >::registry()'],['../classentt_1_1basic__sigh__mixin.html#a15bac16d552602c9d3b8069dc2c5421a',1,'entt::basic_sigh_mixin::registry() const noexcept'],['../classentt_1_1basic__sigh__mixin.html#a77dc805c82973744114f33417337bb97',1,'entt::basic_sigh_mixin::registry() noexcept'],['../classentt_1_1basic__reactive__mixin.html#a2dcb5310a91c138c64ef59865642f10f',1,'entt::basic_reactive_mixin::registry() const noexcept'],['../classentt_1_1basic__reactive__mixin.html#ada350d4506f51f1d7ef3e29493fcda61',1,'entt::basic_reactive_mixin::registry() noexcept'],['../namespaceentt.html#ab8c1f492841aeafa5e75422af3f0cdc4',1,'entt::registry']]], + ['registry_20the_20entity_20and_20the_20component_15',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['registry_5ftype_16',['registry_type',['../classentt_1_1basic__handle.html#ae0a96c4e65b652ef8e6c0764a31d7707',1,'entt::basic_handle::registry_type'],['../classentt_1_1as__view.html#acb61ac3405aeaef4fb051c8ebb5f0802',1,'entt::as_view::registry_type'],['../classentt_1_1as__group.html#a181c04aa4d53d5fef0f90b33e000f8d1',1,'entt::as_group::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a5dd4fa0484feea38dc6b464b98f2336a',1,'entt::sigh_helper< Registry >::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a2514fd73cb720dce8bde7d8ac2cf164d',1,'entt::sigh_helper< Registry, Type >::registry_type'],['../classentt_1_1basic__sigh__mixin.html#a5eddc32c85c4c0e0d20d5288add24bc3',1,'entt::basic_sigh_mixin::registry_type'],['../classentt_1_1basic__reactive__mixin.html#ad229496ac95debff57e7999efb49bb10',1,'entt::basic_reactive_mixin::registry_type'],['../classentt_1_1basic__organizer.html#a204c62d3d8111ed5e0d2c34fa816235c',1,'entt::basic_organizer::registry_type'],['../classentt_1_1basic__snapshot.html#a0c9d161ffb8b94259166b432852efbac',1,'entt::basic_snapshot::registry_type'],['../classentt_1_1basic__snapshot__loader.html#ac462fe9061f89d529833bdbc62919bca',1,'entt::basic_snapshot_loader::registry_type'],['../classentt_1_1basic__continuous__loader.html#ae51ed38dcfbae0c059aeed260b4d7dee',1,'entt::basic_continuous_loader::registry_type']]], + ['rehash_17',['rehash',['../classentt_1_1dense__map.html#a7cea2e02e86eec9421ddaab64f15db6b',1,'entt::dense_map::rehash()'],['../classentt_1_1dense__set.html#ade485155ec5ec107a0c3582aa848e376',1,'entt::dense_set::rehash()']]], + ['rejected_18',['rejected',['../classentt_1_1process.html#a6c716b08baea91192512aeb14f26328b',1,'entt::process']]], + ['release_19',['release',['../classentt_1_1connection.html#ae564477ab623301169916c1992c970a8',1,'entt::connection::release()'],['../structentt_1_1scoped__connection.html#a7bd2be785ba586664d8e8d039dc73ead',1,'entt::scoped_connection::release()']]], + ['remove_20',['remove',['../classentt_1_1basic__handle.html#a927411244a87196f3db80d7514217011',1,'entt::basic_handle::remove()'],['../classentt_1_1basic__registry.html#a7eb97ddee1a5ee98a722329fe39417ce',1,'entt::basic_registry::remove(const entity_type entt)'],['../classentt_1_1basic__registry.html#a5f458b3df51b800632c350961947a2bb',1,'entt::basic_registry::remove(It first, It last)'],['../classentt_1_1basic__sparse__set.html#af02e5833d5edb2450303bd1c029213b8',1,'entt::basic_sparse_set::remove(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#ab2b4ee6c81e845f332c35c89acb8f436',1,'entt::basic_sparse_set::remove(It first, It last)']]], + ['remove_5fpointer_21',['remove_pointer',['../classentt_1_1meta__type.html#a409ff9848597c588b3efec5d75fc9a60',1,'entt::meta_type']]], + ['rend_22',['rend',['../classentt_1_1dense__set.html#a77c4ca141381ddc6c09fd1ef2b594509',1,'entt::dense_set::rend() const noexcept'],['../classentt_1_1dense__set.html#ae8c26808f90a31003009127bce24f346',1,'entt::dense_set::rend() noexcept'],['../classentt_1_1basic__table.html#a214d2963b9610d4b5dd6774cf6fa5d13',1,'entt::basic_table::rend() const noexcept'],['../classentt_1_1basic__table.html#a506f340a1cb2ea41a3aa23c37a99a051',1,'entt::basic_table::rend() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#abfbf1ce09751a74c56743688c7769f99',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa7d0eecd17174df1ae26f59939023c7e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__sparse__set.html#a408ae201025279196f63ef32cf58da9a',1,'entt::basic_sparse_set::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage::rend() noexcept'],['../classentt_1_1basic__storage__view.html#a369e34fa91dc47872f5c08672505fa93',1,'entt::basic_storage_view::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage< Entity, Entity, Allocator >::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage< Entity, Entity, Allocator >::rend() noexcept'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rend() noexcept']]], + ['replace_23',['replace',['../classentt_1_1basic__handle.html#a16534840f1d298cbd6eef5fa813173a3',1,'entt::basic_handle::replace()'],['../classentt_1_1basic__registry.html#a1b4f1cccd495d17c550711fdc9606d4f',1,'entt::basic_registry::replace()']]], + ['represent_20hierarchies_20with_20my_20components_24',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], + ['requirement_25',['requirement',['../md_docs_2md_2core.html#alignment-requirement',1,'Alignment requirement'],['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'Storage size and alignment requirement']]], + ['requirements_26',['Requirements',['../index.html#requirements',1,'']]], + ['rescue_27',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], + ['reserve_28',['reserve',['../classentt_1_1dense__map.html#a47084f57549451518ef81a0f7cbdae0e',1,'entt::dense_map::reserve()'],['../classentt_1_1dense__set.html#a899d206bbac4c0fe88f16a4ce2215b4a',1,'entt::dense_set::reserve()'],['../classentt_1_1basic__table.html#aa96762c66bb8e2e046464b6af7b745c8',1,'entt::basic_table::reserve()'],['../classentt_1_1basic__sparse__set.html#a58d49df52ee3133a1347dc01131a4f1a',1,'entt::basic_sparse_set::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage::reserve()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a842bc739039a15323bbe223b3d1eadd5',1,'entt::basic_meta_sequence_container_traits::reserve()'],['../structentt_1_1basic__meta__associative__container__traits.html#a263fa80500498c321763405824267b5a',1,'entt::basic_meta_associative_container_traits::reserve()'],['../classentt_1_1meta__sequence__container.html#a071eb6d7e2cceba59b58a0884b281ca3',1,'entt::meta_sequence_container::reserve()'],['../classentt_1_1meta__associative__container.html#a53fc4476baf67e704987009774b9687b',1,'entt::meta_associative_container::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage< Entity, Entity, Allocator >::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reserve()']]], + ['reserved_20identifiers_29',['Reserved identifiers',['../md_docs_2md_2entity.html#reserved-identifiers',1,'']]], + ['reset_30',['reset',['../classentt_1_1basic__any.html#a0f267d3bbc148e7e240b902b1819c9a6',1,'entt::basic_any::reset()'],['../classentt_1_1basic__reactive__mixin.html#a13ecbd5a8b7b87e5bbead511c161fe66',1,'entt::basic_reactive_mixin::reset()'],['../classentt_1_1basic__registry.html#a6f2548bae0c7a80e4adf8b8ad4e4cc11',1,'entt::basic_registry::reset()'],['../classentt_1_1locator.html#a51c0f72339094183a1779da8bf01ee22',1,'entt::locator::reset(const node_type &other={}) noexcept'],['../classentt_1_1locator.html#a319183a62597f0c5f58470e98eb2a2a3',1,'entt::locator::reset(Type *elem, Deleter deleter={})'],['../classentt_1_1meta__any.html#a92cb99988bdeb9453f2470b02c5249fb',1,'entt::meta_any::reset()'],['../classentt_1_1basic__poly.html#a43ab35169a0fdb31f7f5db5e5ad0e17d',1,'entt::basic_poly::reset()'],['../classentt_1_1resource.html#a883d62138c381c76896b516ddc5b5391',1,'entt::resource::reset()'],['../classentt_1_1resource.html#a80722fe49df8f2e2d4ede7437797500b',1,'entt::resource::reset(handle_type other)']]], + ['resize_31',['resize',['../classentt_1_1adjacency__matrix.html#ad45c4c6b938ed028d7c99b1d1a678b9e',1,'entt::adjacency_matrix::resize()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a8340365cc11eecb9f52f4740f1da5cd8',1,'entt::basic_meta_sequence_container_traits::resize()'],['../classentt_1_1meta__sequence__container.html#ab2635ff444fe73af564995b75571aba5',1,'entt::meta_sequence_container::resize()']]], + ['resolve_32',['resolve',['../namespaceentt.html#ad86fb3538f9ba64b4695cf45c020458e',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a9dc2ece8ba5dafc463abdceb1f55eaea',1,'entt::resolve() noexcept'],['../namespaceentt.html#a894939ee94a38b6843a8d29ab770f36a',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a1a1cf09707283197b9914fa8520e7592',1,'entt::resolve() noexcept'],['../namespaceentt.html#a669729b83f4e0e2433cbf2a881745e22',1,'entt::resolve(const meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#a4493a8ed8dc4bc71b11058973c0fd9aa',1,'entt::resolve(const id_type id) noexcept'],['../namespaceentt.html#a7072f59c8738e44792806ab65c693032',1,'entt::resolve(const meta_ctx &ctx, const type_info &info) noexcept'],['../namespaceentt.html#a28dcce4d98f6a27c4c61e814466900b2',1,'entt::resolve(const type_info &info) noexcept']]], + ['resource_33',['resource',['../classentt_1_1resource.html',1,'entt::resource< Type >'],['../classentt_1_1resource.html#ac4972d8dc6b7bda2b1568bfe2166a4b9',1,'entt::resource::resource() noexcept'],['../classentt_1_1resource.html#a936d0b259b7a6c280f87b64332bb50a5',1,'entt::resource::resource(handle_type res) noexcept'],['../classentt_1_1resource.html#a2dc2eaa16ff968418e62f882f672ec69',1,'entt::resource::resource(const resource &) noexcept=default'],['../classentt_1_1resource.html#afcea4e846c96c313bfcbab0935d5e8db',1,'entt::resource::resource(resource &&) noexcept=default'],['../classentt_1_1resource.html#a884bb0ae510b8811579b7f0b7120799e',1,'entt::resource::resource(const resource< Other > &other, element_type &res) noexcept'],['../classentt_1_1resource.html#a1650c75857ed7d9682ff43d1578ac73b',1,'entt::resource::resource(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#afb2ba4422ecf3564ef14a03fa77d65f8',1,'entt::resource::resource(resource< Other > &&other) noexcept']]], + ['resource_20handle_34',['Resource handle',['../md_docs_2md_2resource.html#resource-handle',1,'']]], + ['resource_20management_35',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], + ['resource_20the_20loader_20and_20the_20cache_36',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], + ['resource_5fcache_37',['resource_cache',['../classentt_1_1resource__cache.html',1,'entt::resource_cache< Type, Loader, Allocator >'],['../classentt_1_1resource__cache.html#a06ba856c4484f52a91a8ee140a223bd5',1,'entt::resource_cache::resource_cache()'],['../classentt_1_1resource__cache.html#a85024663deca781eb063b03254a3f825',1,'entt::resource_cache::resource_cache(const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a87b5fdd8fd001e8444d1b51de6fd9189',1,'entt::resource_cache::resource_cache(const loader_type &callable, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1resource__cache.html#ab35522f4f96e42e7ac246ce69abd2ee1',1,'entt::resource_cache::resource_cache(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a1a91e3e3d19167b6c65e826e5419e273',1,'entt::resource_cache::resource_cache(const resource_cache &other, const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a1132e7c77e407252254e164e72aad994',1,'entt::resource_cache::resource_cache(resource_cache &&) noexcept=default'],['../classentt_1_1resource__cache.html#a8419d3c2c6e142ca851e2a31d6813c63',1,'entt::resource_cache::resource_cache(resource_cache &&other, const allocator_type &allocator)']]], + ['resource_5floader_38',['resource_loader',['../structentt_1_1resource__loader.html',1,'entt']]], + ['resources_39',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], + ['resources_20and_20order_20of_20execution_40',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['result_5ftype_41',['result_type',['../structentt_1_1resource__loader.html#add7a5c71b563bbc139c0983837764dc1',1,'entt::resource_loader']]], + ['ret_42',['ret',['../structentt_1_1meta__func.html#a63fd4cf3b926de060c847f7b60c2c28a',1,'entt::meta_func']]], + ['return_5ftype_43',['return_type',['../structentt_1_1meta__function__descriptor__traits.html#ad210fafe14b4744ef7f1aaafe67e5a83',1,'entt::meta_function_descriptor_traits']]], + ['reuse_20many_20times_44',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], + ['reverse_5fiterable_45',['reverse_iterable',['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage::reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a986bb0755284684f0e3492120bcbf416',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a1fd72c81109540e8f140fdbe3caea9fa',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable'],['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable'],['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterable']]], + ['reverse_5fiterator_46',['reverse_iterator',['../classentt_1_1dense__set.html#a8b91ff4841d5fc46d02544d71825822a',1,'entt::dense_set::reverse_iterator'],['../classentt_1_1basic__table.html#aa8acbf75a4736d43d8d4e973ea0fe8dd',1,'entt::basic_table::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1f1ebbcf7774e04d4ecc91b6b5a14469',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9bc92cfc49d8a5f02420f9d5ed3f086e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__sparse__set.html#afe62c143e816cf5e12078a607966c003',1,'entt::basic_sparse_set::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage::reverse_iterator'],['../classentt_1_1basic__storage__view.html#a1e9df97e90ca800813415aa9592827be',1,'entt::basic_storage_view::reverse_iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a47200d684b9f5b58d61c2a87e84dc8ad',1,'entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterator']]], + ['ro_47',['ro',['../classentt_1_1basic__flow.html#a6dc864b3c520bd35b1ac981994e9fed6',1,'entt::basic_flow::ro(const id_type res)'],['../classentt_1_1basic__flow.html#ae99ad5bb02e38f1aa5f9ffcda69ec64c',1,'entt::basic_flow::ro(It first, It last)']]], + ['ro_5fcount_48',['ro_count',['../structentt_1_1basic__organizer_1_1vertex.html#a054127fbaefa93d8739fe8824b60b13c',1,'entt::basic_organizer::vertex']]], + ['ro_5fdependency_49',['ro_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a04140fb94ba75c56fbbbf7db86ee4476',1,'entt::basic_organizer::vertex']]], + ['rtti_20support_50',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], + ['rule_20them_20all_51',['rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], + ['runtime_52',['runtime',['../md_docs_2md_2meta.html#enjoy-the-runtime',1,'Enjoy the runtime'],['../md_docs_2md_2entity.html#meet-the-runtime',1,'Meet the runtime']]], + ['runtime_20arguments_53',['Runtime arguments',['../md_docs_2md_2signal.html#runtime-arguments',1,'']]], + ['runtime_20generator_54',['Runtime generator',['../md_docs_2md_2core.html#runtime-generator',1,'']]], + ['runtime_20reflection_20system_55',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], + ['runtime_20views_56',['Runtime views',['../md_docs_2md_2entity.html#runtime-views',1,'']]], + ['runtime_5fview_57',['runtime_view',['../namespaceentt.html#ae7874d535e3193cbc008ef5c7f02829d',1,'entt']]], + ['rw_58',['rw',['../classentt_1_1basic__flow.html#a44a03612c6cc4437314c14bdda0fa5dd',1,'entt::basic_flow::rw(const id_type res)'],['../classentt_1_1basic__flow.html#a48ba1ecbcfbbd8c8eb97ed2a426fedfe',1,'entt::basic_flow::rw(It first, It last)']]], + ['rw_5fcount_59',['rw_count',['../structentt_1_1basic__organizer_1_1vertex.html#ae2b4b3f69e4fa2012e53678165af5966',1,'entt::basic_organizer::vertex']]], + ['rw_5fdependency_60',['rw_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a8be845a0c46219101624ee8b115bf9ed',1,'entt::basic_organizer::vertex']]] ]; diff --git a/search/all_11.js b/search/all_11.js index e64034ada..fe9be6147 100644 --- a/search/all_11.js +++ b/search/all_11.js @@ -1,77 +1,73 @@ var searchData= [ ['same_20component_0',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], - ['scheduler_1',['scheduler',['../md_docs_2md_2process.html',1,'Crash Course: cooperative scheduler'],['../namespaceentt.html#afb4634a5b738455e0b6d35bb5444dbf4',1,'entt::scheduler']]], - ['scheduler_2',['The scheduler',['../md_docs_2md_2process.html#the-scheduler',1,'']]], - ['scoped_5fconnection_3',['scoped_connection',['../structentt_1_1scoped__connection.html',1,'entt::scoped_connection'],['../structentt_1_1scoped__connection.html#a5675cd808dd54a6d9546037d282d3c6c',1,'entt::scoped_connection::scoped_connection()=default'],['../structentt_1_1scoped__connection.html#ab3c50842fea4014f8bf2e51ce4cfbc8a',1,'entt::scoped_connection::scoped_connection(const connection &other)'],['../structentt_1_1scoped__connection.html#ad52da49cdabbfe1a4aada361f48fb9be',1,'entt::scoped_connection::scoped_connection(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#a8b11314888e7ccd81231f70891924817',1,'entt::scoped_connection::scoped_connection(scoped_connection &&other) noexcept']]], - ['second_4',['second',['../classentt_1_1compressed__pair.html#a044cced5ce2cd85f4966814d991a54a7',1,'entt::compressed_pair::second() noexcept'],['../classentt_1_1compressed__pair.html#ab032dd50c65e0563ae079aec43250409',1,'entt::compressed_pair::second() const noexcept']]], - ['second_5ftype_5',['second_type',['../classentt_1_1compressed__pair.html#aeadab3815d52ed579a96cde92f15eeb6',1,'entt::compressed_pair']]], - ['sentinel_6',['sentinel',['../structentt_1_1iterable__adaptor.html#a86150bc99361dabcbb7f574d84691e42',1,'entt::iterable_adaptor']]], - ['sequential_20identifiers_7',['Unique sequential identifiers',['../md_docs_2md_2core.html#unique-sequential-identifiers',1,'']]], + ['scheduler_1',['scheduler',['../md_docs_2md_2process.html',1,'Crash Course: cooperative scheduler'],['../namespaceentt.html#afb4634a5b738455e0b6d35bb5444dbf4',1,'entt::scheduler'],['../md_docs_2md_2process.html#the-scheduler',1,'The scheduler']]], + ['scoped_5fconnection_2',['scoped_connection',['../structentt_1_1scoped__connection.html',1,'entt::scoped_connection'],['../structentt_1_1scoped__connection.html#a5675cd808dd54a6d9546037d282d3c6c',1,'entt::scoped_connection::scoped_connection()=default'],['../structentt_1_1scoped__connection.html#ab3c50842fea4014f8bf2e51ce4cfbc8a',1,'entt::scoped_connection::scoped_connection(const connection &other)'],['../structentt_1_1scoped__connection.html#ad52da49cdabbfe1a4aada361f48fb9be',1,'entt::scoped_connection::scoped_connection(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#a8b11314888e7ccd81231f70891924817',1,'entt::scoped_connection::scoped_connection(scoped_connection &&other) noexcept']]], + ['second_3',['second',['../classentt_1_1compressed__pair.html#a044cced5ce2cd85f4966814d991a54a7',1,'entt::compressed_pair::second() noexcept'],['../classentt_1_1compressed__pair.html#ab032dd50c65e0563ae079aec43250409',1,'entt::compressed_pair::second() const noexcept']]], + ['second_5ftype_4',['second_type',['../classentt_1_1compressed__pair.html#aeadab3815d52ed579a96cde92f15eeb6',1,'entt::compressed_pair']]], + ['sentinel_5',['sentinel',['../structentt_1_1iterable__adaptor.html#a86150bc99361dabcbb7f574d84691e42',1,'entt::iterable_adaptor']]], + ['sequential_20identifiers_6',['Unique sequential identifiers',['../md_docs_2md_2core.html#unique-sequential-identifiers',1,'']]], + ['service_20locator_7',['Service locator',['../md_docs_2md_2locator.html#service-locator',1,'']]], ['service_20locator_8',['Crash Course: service locator',['../md_docs_2md_2locator.html',1,'']]], - ['service_20locator_9',['Service locator',['../md_docs_2md_2locator.html#service-locator',1,'']]], - ['set_10',['Dense set',['../md_docs_2md_2container.html#dense-set',1,'']]], - ['set_11',['set',['../classentt_1_1basic__flow.html#aacd49b1f55957518b411e32cf77cf31b',1,'entt::basic_flow::set()'],['../classentt_1_1meta__any.html#aedf1f728b60246bd35911ea9ac5512c9',1,'entt::meta_any::set()'],['../structentt_1_1meta__data.html#a9cec301b83378b11ad316663e8ece835',1,'entt::meta_data::set()'],['../classentt_1_1meta__type.html#a708bdf89918c3fdf2b3539454201f1e9',1,'entt::meta_type::set()']]], - ['shrink_5fto_5ffit_12',['shrink_to_fit',['../classentt_1_1basic__table.html#a82621ec1f280c9208130a7337ed66c40',1,'entt::basic_table::shrink_to_fit()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab0dee7a4e6589ce4a1bdec06a38f3e59',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit()'],['../classentt_1_1basic__sparse__set.html#a7e10cc6ddc7ef9c733aabdec849c5b79',1,'entt::basic_sparse_set::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage::shrink_to_fit()']]], - ['sigh_13',['sigh',['../classentt_1_1sigh.html',1,'entt::sigh< Type, typename >'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a3565539a33a482bfbeb8d2ef5c5dd60d',1,'entt::sigh< Ret(Args...), Allocator >::sigh() noexcept(noexcept(allocator_type{}))'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a8fb195bd159c47a7eceb54efd019c7f2',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const allocator_type &allocator) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a3d281bf1e8e9aebc3b21f1b76412664f',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const sigh &other)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#adbcac376ce96c2750282754724f3d418',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const sigh &other, const allocator_type &allocator)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a73eeeed8c7f6ab94b922142074efb4e2',1,'entt::sigh< Ret(Args...), Allocator >::sigh(sigh &&other) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a5c257082ad2bbbd6134012360a0c7373',1,'entt::sigh< Ret(Args...), Allocator >::sigh(sigh &&other, const allocator_type &allocator)']]], - ['sigh_3c_20ret_28args_2e_2e_2e_29_2c_20allocator_20_3e_14',['sigh< Ret(Args...), Allocator >',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html',1,'entt']]], - ['sigh_3c_20void_28owner_5ftype_20_26_2c_20const_20typename_20underlying_5ftype_3a_3aentity_5ftype_29_2c_20typename_20underlying_5ftype_3a_3aallocator_5ftype_20_3e_15',['sigh< void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type >',['../classentt_1_1sigh.html',1,'entt']]], - ['sigh_5fhelper_16',['sigh_helper',['../structentt_1_1sigh__helper.html',1,'entt::sigh_helper<... >'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a4f25dc19d359844fead2611680294f93',1,'entt::sigh_helper< Registry >::sigh_helper()'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#aef132e2d47c4c2b652f24fe8155736c3',1,'entt::sigh_helper< Registry, Type >::sigh_helper()'],['../namespaceentt.html#ad0050077ac79b81ac00d1d3ab66b4f53',1,'entt::sigh_helper(Registry &) -> sigh_helper< Registry >']]], - ['sigh_5fhelper_3c_20registry_20_3e_17',['sigh_helper< Registry >',['../structentt_1_1sigh__helper_3_01Registry_01_4.html',1,'entt']]], - ['sigh_5fhelper_3c_20registry_2c_20type_20_3e_18',['sigh_helper< Registry, Type >',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html',1,'entt']]], - ['sigh_5fmixin_19',['sigh_mixin',['../namespaceentt.html#ae235426965a236ddde9fa92979f73d5d',1,'entt']]], - ['signals_20',['Signals',['../md_docs_2md_2signal.html#signals',1,'Signals'],['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'Which functions trigger which signals']]], - ['signals_20and_20everything_20in_20between_21',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['similar_20projects_22',['Similar projects',['../md_docs_2md_2reference.html',1,'Similar projects'],['../md_docs_2md_2reference.html#similar-projects-1',1,'Similar projects']]], - ['sink_23',['sink',['../classentt_1_1sink.html',1,'entt::sink< typename >'],['../classentt_1_1basic__dispatcher.html#a2e76cd8379d9783423255c5d849dfd84',1,'entt::basic_dispatcher::sink()'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a1bd741165c67945b7bcb20c0ff3d7aca',1,'entt::sink< sigh< Ret(Args...), Allocator > >::sink()'],['../namespaceentt.html#aebd935c76f0b7bf40958ec43565ea157',1,'entt::sink(sigh< Ret(Args...), Allocator > &) -> sink< sigh< Ret(Args...), Allocator > >']]], - ['sink_3c_20sigh_3c_20ret_28args_2e_2e_2e_29_2c_20allocator_20_3e_20_3e_24',['sink< sigh< Ret(Args...), Allocator > >',['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html',1,'entt']]], - ['sink_5ftype_25',['sink_type',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a368bdb14996f2e4497990f400d2aab35',1,'entt::sigh< Ret(Args...), Allocator >']]], - ['size_26',['size',['../structentt_1_1type__list.html#a430c0675bdbcbb40be9b8f13f7259484',1,'entt::type_list::size'],['../structentt_1_1value__list.html#a26bdc12c949cf22068f1bd411acf6cc7',1,'entt::value_list::size'],['../classentt_1_1dense__map.html#a38b10511f585724b7eb6e5f9556dea21',1,'entt::dense_map::size()'],['../classentt_1_1dense__set.html#a51a05fcfc23785b7f38bd48b46ebf178',1,'entt::dense_set::size()'],['../classentt_1_1basic__table.html#a3a0b4df0c3a37a4a07b1cc8d1c69c7e2',1,'entt::basic_table::size()'],['../classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824',1,'entt::basic_hashed_string::size()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#afd8a5c5072abffebe052dd8f1eeb7411',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30cf23333313f4b6c636d64b8798bfd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__observer.html#ad4173fd7ce6c1f3b8904edde0ab64d45',1,'entt::basic_observer::size()'],['../classentt_1_1basic__sparse__set.html#a69ad0662838fd351985a51ee3017fb6c',1,'entt::basic_sparse_set::size()'],['../classentt_1_1basic__storage__view.html#a9ff0a4d5404e4559a8d1a0406f64ba02',1,'entt::basic_storage_view::size()'],['../classentt_1_1adjacency__matrix.html#a70f8706c96d4c000ceab51d88402ca74',1,'entt::adjacency_matrix::size()'],['../classentt_1_1basic__flow.html#a3cc2765c64e15d244a23b33bf45463e3',1,'entt::basic_flow::size()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a32190b7ee5cef442af74161cc671ede0',1,'entt::basic_meta_sequence_container_traits::size()'],['../structentt_1_1basic__meta__associative__container__traits.html#ac8eef423df02a2cea999257011b26d5e',1,'entt::basic_meta_associative_container_traits::size()'],['../classentt_1_1meta__sequence__container.html#acd6df88b81f558e1259067f15b62b4ea',1,'entt::meta_sequence_container::size()'],['../classentt_1_1meta__associative__container.html#a8b569c0d4a96dfaf1bfed1383f6d3e24',1,'entt::meta_associative_container::size()'],['../classentt_1_1basic__scheduler.html#a438e626f597bee890ab71d2d6d2c589f',1,'entt::basic_scheduler::size()'],['../classentt_1_1resource__cache.html#af471e799fb944db35363ed910512cde9',1,'entt::resource_cache::size()'],['../classentt_1_1basic__dispatcher.html#a8259e6ff1cd028e2f498a47e7d594543',1,'entt::basic_dispatcher::size(const id_type id=type_hash< Type >::value()) const noexcept'],['../classentt_1_1basic__dispatcher.html#a568be9cdf0161098e8c87c5d7d924aca',1,'entt::basic_dispatcher::size() const noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a534ccbead45c3edce6e34ba32e3bd238',1,'entt::sigh< Ret(Args...), Allocator >::size()']]], - ['size_20and_20alignment_20requirement_27',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], - ['size_20of_28',['Size of',['../md_docs_2md_2core.html#size-of',1,'']]], - ['size_5fhint_29',['size_hint',['../classentt_1_1basic__runtime__view.html#acc18bd1f09d3df3e0373e8024601e2b2',1,'entt::basic_runtime_view::size_hint()'],['../classentt_1_1basic__common__view.html#a34fdba8fb0d1d16714b473ac31b0f39d',1,'entt::basic_common_view::size_hint()'],['../classentt_1_1basic__storage__view.html#a8e5c6f2e7baad9ffb9b92bca19fc0e18',1,'entt::basic_storage_view::size_hint()']]], - ['size_5fof_30',['size_of',['../structentt_1_1size__of.html',1,'entt::size_of< Type, typename >'],['../classentt_1_1meta__type.html#af81a79c939fa34a8a72a8c6db50e48d9',1,'entt::meta_type::size_of()']]], - ['size_5fof_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_31',['size_of< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], - ['size_5fof_5fv_32',['size_of_v',['../namespaceentt.html#a15f9a70cbdd5a64f897a012ab2b5834f',1,'entt']]], - ['size_5ftype_33',['size_type',['../classentt_1_1dense__map.html#a38ef651a1992486e3d2151e7829777f1',1,'entt::dense_map::size_type'],['../classentt_1_1dense__set.html#a3355912feda8db49d87b75247f824ce0',1,'entt::dense_set::size_type'],['../classentt_1_1basic__table.html#a0ed34cf727b8936c5f01470ac8f8dca3',1,'entt::basic_table::size_type'],['../classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015',1,'entt::basic_hashed_string::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a9097b3db0054d341d6dbb31a8531b6f4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a4e34173909e85aa6ce57d1e21359ca60',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__handle.html#a67737d2e73b110e61cf881671fc6aca5',1,'entt::basic_handle::size_type'],['../classentt_1_1basic__observer.html#ac9562e2ac15362056e582fe515126df2',1,'entt::basic_observer::size_type'],['../classentt_1_1basic__organizer.html#af6daba0d6d0fd3e253ae6969a07a1e48',1,'entt::basic_organizer::size_type'],['../classentt_1_1basic__registry.html#abfa63598b862f2cb713db6f9779656c7',1,'entt::basic_registry::size_type'],['../classentt_1_1basic__runtime__view.html#af1b166605a31e752ec85b4a5ddf29e64',1,'entt::basic_runtime_view::size_type'],['../classentt_1_1basic__sparse__set.html#a2ec9530d8aa9ac94d421b27eb6998edb',1,'entt::basic_sparse_set::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage::size_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a3f67a2405b5a315b397d90000577651f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::size_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a08f4727790342ff0bdd5d7e4097b4926',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__common__view.html#aa9ae1627c27d445f21b8ddf3db3fe78f',1,'entt::basic_common_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afc8e7c18025093c344df42af5aff77aa',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type'],['../classentt_1_1basic__storage__view.html#aa0dae829f9535d9c7d256d6cfa8efe6c',1,'entt::basic_storage_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae8943f475dd11109d4c2470e6dbffdb4',1,'entt::basic_view< get_t< Get >, exclude_t<> >::size_type'],['../classentt_1_1adjacency__matrix.html#a72507bd210570d5712a5c40b0d345b6c',1,'entt::adjacency_matrix::size_type'],['../classentt_1_1basic__flow.html#a42c0ae982887ab754f6119467ecbd543',1,'entt::basic_flow::size_type'],['../structentt_1_1basic__meta__sequence__container__traits.html#a0405a3e8a5f7ac240afefc1a8da7428a',1,'entt::basic_meta_sequence_container_traits::size_type'],['../structentt_1_1basic__meta__associative__container__traits.html#ad307302808908d988ec7f8d6f7988e29',1,'entt::basic_meta_associative_container_traits::size_type'],['../classentt_1_1meta__sequence__container.html#aa24e9df149bccfada6257266e5d829b1',1,'entt::meta_sequence_container::size_type'],['../classentt_1_1meta__associative__container.html#a9ef078a3364ff3d53cec2bda15f4782f',1,'entt::meta_associative_container::size_type'],['../structentt_1_1meta__data.html#a312216483707bb667c8bf833eee0dff9',1,'entt::meta_data::size_type'],['../structentt_1_1meta__func.html#a422ec572c7c56d3cb46d09704be64f65',1,'entt::meta_func::size_type'],['../classentt_1_1meta__type.html#a7362687fc89444507cded22f57be3ff0',1,'entt::meta_type::size_type'],['../classentt_1_1basic__scheduler.html#a65ce482b6daa9eb3117075b7d4eaecc7',1,'entt::basic_scheduler::size_type'],['../classentt_1_1resource__cache.html#af96dd3b16bdd0f1151b75786bdc0a2cb',1,'entt::resource_cache::size_type'],['../classentt_1_1basic__dispatcher.html#a5be4fb80f4bb0055ffaf3b573a4681a6',1,'entt::basic_dispatcher::size_type'],['../classentt_1_1emitter.html#aa72c6b30d4d14c1b954f7ebed3a4f123',1,'entt::emitter::size_type'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ac4da86f239ecc0eddc6c5d99350fbe91',1,'entt::sigh< Ret(Args...), Allocator >::size_type']]], - ['slow_34',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['small_20buffer_20optimization_35',['Small buffer optimization',['../md_docs_2md_2core.html#small-buffer-optimization',1,'']]], - ['smooth_20until_20proven_20otherwise_36',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], - ['snapshot_37',['snapshot',['../namespaceentt.html#ae81f1e05f8be1263f14284164387c180',1,'entt']]], - ['snapshot_20loader_38',['Snapshot loader',['../md_docs_2md_2entity.html#snapshot-loader',1,'']]], - ['snapshot_3a_20complete_20vs_20continuous_39',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], - ['snapshot_5floader_40',['snapshot_loader',['../namespaceentt.html#affcc892243a02aafd27f353bd810fca6',1,'entt']]], - ['so_20slow_41',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['sort_42',['sort',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4f242692abecbf361c09117c14c73fe4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3be8735e76b3d7389c783a60ad80d624',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ab1b8ab19edaaf721ba3f5db9b6dcab55',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#afb19e07ca3440d9e7850aa888119cb63',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__registry.html#a9f8467476bc59f55a9297bd4e93f4914',1,'entt::basic_registry::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__registry.html#a4bf0e6bf722ed1eae4bd9f7777378ca6',1,'entt::basic_registry::sort()'],['../classentt_1_1basic__sparse__set.html#ae7ceed81905adc0d65291eb9f4072f08',1,'entt::basic_sparse_set::sort()']]], - ['sort_5fas_43',['sort_as',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a044bf4aef3d8b417e50e128dce5f78f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as()'],['../classentt_1_1basic__sparse__set.html#a9e5bf6f1953740446496b834099c3de1',1,'entt::basic_sparse_set::sort_as(It first, It last)']]], - ['sort_5fn_44',['sort_n',['../classentt_1_1basic__sparse__set.html#a43c1c0aa0fa525e12cee0791cd945915',1,'entt::basic_sparse_set']]], - ['sorting_3a_20is_20it_20possible_45',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], - ['sparse_5fset_46',['sparse_set',['../namespaceentt.html#af720baaca44bb4f3e4d7297777e53a2f',1,'entt']]], - ['stability_47',['Pointer stability',['../md_docs_2md_2entity.html#pointer-stability',1,'']]], - ['standard_20and_20the_20non_20copyable_20types_48',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], - ['static_20polymorphism_20in_20the_20wild_49',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], - ['std_5fsort_50',['std_sort',['../structentt_1_1std__sort.html',1,'entt']]], - ['storage_51',['Entity storage',['../md_docs_2md_2entity.html#entity-storage',1,'']]], - ['storage_52',['storage',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__handle.html#a3b0be24c0073eeb03362ea094b7420eb',1,'entt::basic_handle::storage()'],['../classentt_1_1basic__registry.html#a3ffe409b0f7201456b1c1d32c0850474',1,'entt::basic_registry::storage() noexcept'],['../classentt_1_1basic__registry.html#ace5a18c1fe5b72dbdbf53cb981c00879',1,'entt::basic_registry::storage() const noexcept'],['../classentt_1_1basic__registry.html#a901e410db646d5318aa6ac7cabfe6218',1,'entt::basic_registry::storage(const id_type id)'],['../classentt_1_1basic__registry.html#a2bdc9d44e99459d93d2f43bdd1ca5df4',1,'entt::basic_registry::storage(const id_type id) const'],['../classentt_1_1basic__registry.html#abb07bad50fa0f5bad0aabffe8ce24414',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__registry.html#ae414ee7b5315313e9987525727f6320b',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2f653721035d75ee1353e2e9ee553bcb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a3195ed2211e4013883ab9dad6306c9da',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae33d4eaa3b835a8a3e3e627248efb265',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0ef6bf301ccb7108321289aca51ee420',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept'],['../namespaceentt.html#aff8fd99fc1ff2432dcb0f6b017a9c60e',1,'entt::storage']]], - ['storage_53',['Storage',['../md_docs_2md_2entity.html#storage',1,'Storage'],['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'They call me reactive storage'],['../md_docs_2md_2entity.html#void-storage',1,'Void storage']]], - ['storage_20for_20the_20same_20component_54',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], - ['storage_20size_20and_20alignment_20requirement_55',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], - ['storage_5ffor_56',['storage_for',['../structentt_1_1storage__for.html',1,'entt']]], - ['storage_5ffor_5ft_57',['storage_for_t',['../namespaceentt.html#ab7e07285e81bdf526b09a38a9618eb13',1,'entt']]], - ['storage_5ffor_5ftype_58',['storage_for_type',['../classentt_1_1basic__registry.html#a99e000856991d365d5a8a9e619b5fd03',1,'entt::basic_registry']]], - ['storage_5fpolicy_59',['storage_policy',['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage::storage_policy'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a7611d604fb0e052bbfc6b20f3e4431ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::storage_policy'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a27abe6f0df04dd96bf358dcde392551c',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy']]], - ['storage_5ftype_60',['storage_type',['../structentt_1_1storage__type.html',1,'entt']]], - ['storage_5ftype_3c_20reactive_2c_20entity_2c_20allocator_20_3e_61',['storage_type< reactive, Entity, Allocator >',['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], - ['storage_5ftype_5ft_62',['storage_type_t',['../namespaceentt.html#a12841fb02f9eaa12097dbb36251b84dd',1,'entt']]], - ['strings_63',['Hashed strings',['../md_docs_2md_2core.html#hashed-strings',1,'']]], - ['structures_64',['Data structures',['../md_docs_2md_2graph.html#data-structures',1,'']]], - ['succeed_65',['succeed',['../classentt_1_1process.html#a4380dab12dc4c7559ada2182468aa1db',1,'entt::process']]], - ['support_66',['Support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'Built-in RTTI support'],['../md_docs_2md_2meta.html#container-support',1,'Container support'],['../md_docs_2md_2signal.html#lambda-support',1,'Lambda support'],['../index.html#natvis-support',1,'Natvis support'],['../md_docs_2md_2core.html#type-support',1,'Type support']]], - ['swap_67',['swap',['../classentt_1_1dense__map.html#a832dc73529e19f662f63c583a5fbd340',1,'entt::dense_map::swap()'],['../classentt_1_1dense__set.html#ab1199b43ef81b1fab9d52a0c1275dd56',1,'entt::dense_set::swap()'],['../classentt_1_1basic__table.html#a56a22abcc5cad03257e146e55eceb31a',1,'entt::basic_table::swap()'],['../classentt_1_1compressed__pair.html#a0cfa66a668acfe78ec3a60e62c73babd',1,'entt::compressed_pair::swap()'],['../classentt_1_1basic__sigh__mixin.html#a41f34b4216ba01ab99fd4c85f57d363a',1,'entt::basic_sigh_mixin::swap()'],['../classentt_1_1basic__reactive__mixin.html#a4e6193683678145c8de9a176d464c744',1,'entt::basic_reactive_mixin::swap()'],['../classentt_1_1basic__registry.html#a394e38341a21d75194555e9ed57fe5ae',1,'entt::basic_registry::swap()'],['../classentt_1_1basic__runtime__view.html#adfcdaca31934517a51d1993f0a4f6cfd',1,'entt::basic_runtime_view::swap()'],['../classentt_1_1basic__sparse__set.html#a85505b5556cc61ab5557cd311442ad42',1,'entt::basic_sparse_set::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage::swap()'],['../classentt_1_1adjacency__matrix.html#a5ee4c669461f74485c4263ece0c05f2f',1,'entt::adjacency_matrix::swap()'],['../classentt_1_1basic__flow.html#adc54472d1ab42909e262b854d0920c3d',1,'entt::basic_flow::swap()'],['../classentt_1_1basic__scheduler.html#ac2d27cb8fda69dac03d011c66276daa7',1,'entt::basic_scheduler::swap()'],['../classentt_1_1resource.html#a9e96e84b8f36937266087163cfe09aaf',1,'entt::resource::swap()'],['../classentt_1_1basic__dispatcher.html#a1bede4933d9946b4cbb27d409102bf1f',1,'entt::basic_dispatcher::swap()'],['../classentt_1_1emitter.html#ab5a2f96dfb9dfb780d2b4c4e328174d1',1,'entt::emitter::swap()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a4cfb9278301a9c0fd9cd46a2dd21aa38',1,'entt::sigh< Ret(Args...), Allocator >::swap()'],['../namespaceentt.html#a85aff290a542f0f053b993b507410b21',1,'entt::swap()']]], - ['swap_5fand_5fpop_68',['swap_and_pop',['../classentt_1_1basic__sparse__set.html#a2b95c0acd8af718e712362d1177dbc1e',1,'entt::basic_sparse_set::swap_and_pop()'],['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a8223d1ccb16b6dd0b19fe9c6fdb13708',1,'entt::swap_and_pop']]], - ['swap_5felements_69',['swap_elements',['../classentt_1_1basic__sparse__set.html#a2b82af720eca37261f3230c654d7fe1f',1,'entt::basic_sparse_set']]], - ['swap_5fonly_70',['swap_only',['../classentt_1_1basic__sparse__set.html#abde0af92d2d8eade7b5acf5ab02f8038',1,'entt::basic_sparse_set::swap_only()'],['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a62044f8c7b1568e4536403704282322b',1,'entt::swap_only']]], - ['sync_71',['sync',['../classentt_1_1basic__flow.html#a43e28c91d03bb3ebcce6d3b171d75a98',1,'entt::basic_flow']]], - ['sync_20points_72',['Sync points',['../md_docs_2md_2graph.html#sync-points',1,'']]], - ['system_73',['system',['../md_docs_2md_2entity.html',1,'Crash Course: entity-component system'],['../md_docs_2md_2meta.html',1,'Crash Course: runtime reflection system']]] + ['set_9',['set',['../md_docs_2md_2container.html#dense-set',1,'Dense set'],['../classentt_1_1basic__flow.html#aacd49b1f55957518b411e32cf77cf31b',1,'entt::basic_flow::set()'],['../classentt_1_1meta__any.html#aedf1f728b60246bd35911ea9ac5512c9',1,'entt::meta_any::set()'],['../structentt_1_1meta__data.html#a9cec301b83378b11ad316663e8ece835',1,'entt::meta_data::set()'],['../classentt_1_1meta__type.html#a708bdf89918c3fdf2b3539454201f1e9',1,'entt::meta_type::set()']]], + ['shrink_5fto_5ffit_10',['shrink_to_fit',['../classentt_1_1basic__table.html#a82621ec1f280c9208130a7337ed66c40',1,'entt::basic_table::shrink_to_fit()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab0dee7a4e6589ce4a1bdec06a38f3e59',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit()'],['../classentt_1_1basic__sparse__set.html#a7e10cc6ddc7ef9c733aabdec849c5b79',1,'entt::basic_sparse_set::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage< Entity, Entity, Allocator >::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::shrink_to_fit()']]], + ['sigh_11',['sigh',['../classentt_1_1sigh.html',1,'entt']]], + ['sigh_3c_20void_28owner_5ftype_20_26_2c_20const_20typename_20underlying_5ftype_3a_3aentity_5ftype_29_2c_20typename_20underlying_5ftype_3a_3aallocator_5ftype_20_3e_12',['sigh< void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type >',['../classentt_1_1sigh.html',1,'entt']]], + ['sigh_5fhelper_13',['sigh_helper',['../structentt_1_1sigh__helper.html',1,'entt::sigh_helper<... >'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a4f25dc19d359844fead2611680294f93',1,'entt::sigh_helper< Registry >::sigh_helper()'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#aef132e2d47c4c2b652f24fe8155736c3',1,'entt::sigh_helper< Registry, Type >::sigh_helper()'],['../namespaceentt.html#ad0050077ac79b81ac00d1d3ab66b4f53',1,'entt::sigh_helper(Registry &) -> sigh_helper< Registry >']]], + ['sigh_5fhelper_3c_20registry_20_3e_14',['sigh_helper< Registry >',['../structentt_1_1sigh__helper_3_01Registry_01_4.html',1,'entt']]], + ['sigh_5fhelper_3c_20registry_2c_20type_20_3e_15',['sigh_helper< Registry, Type >',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html',1,'entt']]], + ['sigh_5fmixin_16',['sigh_mixin',['../namespaceentt.html#ae235426965a236ddde9fa92979f73d5d',1,'entt']]], + ['signals_17',['Signals',['../md_docs_2md_2signal.html#signals',1,'']]], + ['signals_18',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], + ['signals_20and_20everything_20in_20between_19',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['similar_20projects_20',['Similar projects',['../md_docs_2md_2reference.html',1,'Similar projects'],['../md_docs_2md_2reference.html#similar-projects-1',1,'Similar projects']]], + ['sink_21',['sink',['../classentt_1_1sink.html',1,'entt::sink< typename >'],['../classentt_1_1basic__dispatcher.html#a2e76cd8379d9783423255c5d849dfd84',1,'entt::basic_dispatcher::sink()'],['../namespaceentt.html#aebd935c76f0b7bf40958ec43565ea157',1,'entt::sink()']]], + ['size_22',['size',['../structentt_1_1type__list.html#a430c0675bdbcbb40be9b8f13f7259484',1,'entt::type_list::size'],['../structentt_1_1value__list.html#a26bdc12c949cf22068f1bd411acf6cc7',1,'entt::value_list::size'],['../classentt_1_1dense__map.html#a38b10511f585724b7eb6e5f9556dea21',1,'entt::dense_map::size()'],['../classentt_1_1dense__set.html#a51a05fcfc23785b7f38bd48b46ebf178',1,'entt::dense_set::size()'],['../classentt_1_1basic__table.html#a3a0b4df0c3a37a4a07b1cc8d1c69c7e2',1,'entt::basic_table::size()'],['../classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824',1,'entt::basic_hashed_string::size()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#afd8a5c5072abffebe052dd8f1eeb7411',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30cf23333313f4b6c636d64b8798bfd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__sparse__set.html#a69ad0662838fd351985a51ee3017fb6c',1,'entt::basic_sparse_set::size()'],['../classentt_1_1basic__storage__view.html#a9ff0a4d5404e4559a8d1a0406f64ba02',1,'entt::basic_storage_view::size()'],['../classentt_1_1adjacency__matrix.html#a70f8706c96d4c000ceab51d88402ca74',1,'entt::adjacency_matrix::size()'],['../classentt_1_1basic__flow.html#a3cc2765c64e15d244a23b33bf45463e3',1,'entt::basic_flow::size()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a32190b7ee5cef442af74161cc671ede0',1,'entt::basic_meta_sequence_container_traits::size()'],['../structentt_1_1basic__meta__associative__container__traits.html#ac8eef423df02a2cea999257011b26d5e',1,'entt::basic_meta_associative_container_traits::size()'],['../classentt_1_1meta__sequence__container.html#acd6df88b81f558e1259067f15b62b4ea',1,'entt::meta_sequence_container::size()'],['../classentt_1_1meta__associative__container.html#a8b569c0d4a96dfaf1bfed1383f6d3e24',1,'entt::meta_associative_container::size()'],['../classentt_1_1basic__scheduler.html#a438e626f597bee890ab71d2d6d2c589f',1,'entt::basic_scheduler::size()'],['../classentt_1_1resource__cache.html#af471e799fb944db35363ed910512cde9',1,'entt::resource_cache::size()'],['../classentt_1_1basic__dispatcher.html#a8259e6ff1cd028e2f498a47e7d594543',1,'entt::basic_dispatcher::size(const id_type id=type_hash< Type >::value()) const noexcept'],['../classentt_1_1basic__dispatcher.html#a568be9cdf0161098e8c87c5d7d924aca',1,'entt::basic_dispatcher::size() const noexcept']]], + ['size_20and_20alignment_20requirement_23',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], + ['size_20of_24',['Size of',['../md_docs_2md_2core.html#size-of',1,'']]], + ['size_5fhint_25',['size_hint',['../classentt_1_1basic__runtime__view.html#acc18bd1f09d3df3e0373e8024601e2b2',1,'entt::basic_runtime_view::size_hint()'],['../classentt_1_1basic__common__view.html#a4f4d649b5d2a9d823f93125450d38fc8',1,'entt::basic_common_view::size_hint()'],['../classentt_1_1basic__storage__view.html#a8e5c6f2e7baad9ffb9b92bca19fc0e18',1,'entt::basic_storage_view::size_hint()']]], + ['size_5fof_26',['size_of',['../structentt_1_1size__of.html',1,'entt::size_of< Type, typename >'],['../classentt_1_1meta__type.html#af81a79c939fa34a8a72a8c6db50e48d9',1,'entt::meta_type::size_of()']]], + ['size_5fof_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_27',['size_of< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], + ['size_5fof_5fv_28',['size_of_v',['../namespaceentt.html#a15f9a70cbdd5a64f897a012ab2b5834f',1,'entt']]], + ['size_5ftype_29',['size_type',['../classentt_1_1dense__map.html#a38ef651a1992486e3d2151e7829777f1',1,'entt::dense_map::size_type'],['../classentt_1_1dense__set.html#a3355912feda8db49d87b75247f824ce0',1,'entt::dense_set::size_type'],['../classentt_1_1basic__table.html#a0ed34cf727b8936c5f01470ac8f8dca3',1,'entt::basic_table::size_type'],['../classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015',1,'entt::basic_hashed_string::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a9097b3db0054d341d6dbb31a8531b6f4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a4e34173909e85aa6ce57d1e21359ca60',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__handle.html#a67737d2e73b110e61cf881671fc6aca5',1,'entt::basic_handle::size_type'],['../classentt_1_1basic__organizer.html#af6daba0d6d0fd3e253ae6969a07a1e48',1,'entt::basic_organizer::size_type'],['../classentt_1_1basic__registry.html#abfa63598b862f2cb713db6f9779656c7',1,'entt::basic_registry::size_type'],['../classentt_1_1basic__runtime__view.html#af1b166605a31e752ec85b4a5ddf29e64',1,'entt::basic_runtime_view::size_type'],['../classentt_1_1basic__sparse__set.html#a2ec9530d8aa9ac94d421b27eb6998edb',1,'entt::basic_sparse_set::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage::size_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#abb0d8286f1ca301d8a34142e3ca13675',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::size_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a08f4727790342ff0bdd5d7e4097b4926',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__common__view.html#af8a47cbe23041f655e46986cd82f7e39',1,'entt::basic_common_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afc8e7c18025093c344df42af5aff77aa',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type'],['../classentt_1_1basic__storage__view.html#aa0dae829f9535d9c7d256d6cfa8efe6c',1,'entt::basic_storage_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae8943f475dd11109d4c2470e6dbffdb4',1,'entt::basic_view< get_t< Get >, exclude_t<> >::size_type'],['../classentt_1_1adjacency__matrix.html#a72507bd210570d5712a5c40b0d345b6c',1,'entt::adjacency_matrix::size_type'],['../classentt_1_1basic__flow.html#a42c0ae982887ab754f6119467ecbd543',1,'entt::basic_flow::size_type'],['../structentt_1_1basic__meta__sequence__container__traits.html#a0405a3e8a5f7ac240afefc1a8da7428a',1,'entt::basic_meta_sequence_container_traits::size_type'],['../structentt_1_1basic__meta__associative__container__traits.html#ad307302808908d988ec7f8d6f7988e29',1,'entt::basic_meta_associative_container_traits::size_type'],['../classentt_1_1meta__sequence__container.html#aa24e9df149bccfada6257266e5d829b1',1,'entt::meta_sequence_container::size_type'],['../classentt_1_1meta__associative__container.html#a9ef078a3364ff3d53cec2bda15f4782f',1,'entt::meta_associative_container::size_type'],['../structentt_1_1meta__data.html#a312216483707bb667c8bf833eee0dff9',1,'entt::meta_data::size_type'],['../structentt_1_1meta__func.html#a422ec572c7c56d3cb46d09704be64f65',1,'entt::meta_func::size_type'],['../classentt_1_1meta__type.html#a7362687fc89444507cded22f57be3ff0',1,'entt::meta_type::size_type'],['../classentt_1_1basic__scheduler.html#a65ce482b6daa9eb3117075b7d4eaecc7',1,'entt::basic_scheduler::size_type'],['../classentt_1_1resource__cache.html#af96dd3b16bdd0f1151b75786bdc0a2cb',1,'entt::resource_cache::size_type'],['../classentt_1_1basic__dispatcher.html#a5be4fb80f4bb0055ffaf3b573a4681a6',1,'entt::basic_dispatcher::size_type'],['../classentt_1_1emitter.html#aa72c6b30d4d14c1b954f7ebed3a4f123',1,'entt::emitter::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::size_type']]], + ['slow_30',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['small_20buffer_20optimization_31',['Small buffer optimization',['../md_docs_2md_2core.html#small-buffer-optimization',1,'']]], + ['smooth_20until_20proven_20otherwise_32',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], + ['snapshot_33',['snapshot',['../namespaceentt.html#ae81f1e05f8be1263f14284164387c180',1,'entt']]], + ['snapshot_20loader_34',['Snapshot loader',['../md_docs_2md_2entity.html#snapshot-loader',1,'']]], + ['snapshot_3a_20complete_20vs_20continuous_35',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], + ['snapshot_5floader_36',['snapshot_loader',['../namespaceentt.html#affcc892243a02aafd27f353bd810fca6',1,'entt']]], + ['so_20slow_37',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['sort_38',['sort',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4f242692abecbf361c09117c14c73fe4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3be8735e76b3d7389c783a60ad80d624',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ab1b8ab19edaaf721ba3f5db9b6dcab55',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#afb19e07ca3440d9e7850aa888119cb63',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__registry.html#a9f8467476bc59f55a9297bd4e93f4914',1,'entt::basic_registry::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__registry.html#a4bf0e6bf722ed1eae4bd9f7777378ca6',1,'entt::basic_registry::sort()'],['../classentt_1_1basic__sparse__set.html#ae7ceed81905adc0d65291eb9f4072f08',1,'entt::basic_sparse_set::sort()']]], + ['sort_5fas_39',['sort_as',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a044bf4aef3d8b417e50e128dce5f78f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as()'],['../classentt_1_1basic__sparse__set.html#a9e5bf6f1953740446496b834099c3de1',1,'entt::basic_sparse_set::sort_as(It first, It last)']]], + ['sort_5fn_40',['sort_n',['../classentt_1_1basic__sparse__set.html#a43c1c0aa0fa525e12cee0791cd945915',1,'entt::basic_sparse_set']]], + ['sorting_3a_20is_20it_20possible_41',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], + ['sparse_5fset_42',['sparse_set',['../namespaceentt.html#af720baaca44bb4f3e4d7297777e53a2f',1,'entt']]], + ['stability_43',['Pointer stability',['../md_docs_2md_2entity.html#pointer-stability',1,'']]], + ['standard_20and_20the_20non_20copyable_20types_44',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], + ['start_5ffrom_45',['start_from',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aee4cce31c9c3fa962ce5e8a805840c15',1,'entt::basic_storage< Entity, Entity, Allocator >']]], + ['static_20polymorphism_20in_20the_20wild_46',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], + ['std_5fsort_47',['std_sort',['../structentt_1_1std__sort.html',1,'entt']]], + ['storage_48',['Storage',['../md_docs_2md_2entity.html#storage',1,'']]], + ['storage_49',['storage',['../md_docs_2md_2entity.html#entity-storage',1,'Entity storage'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__handle.html#a3b0be24c0073eeb03362ea094b7420eb',1,'entt::basic_handle::storage()'],['../classentt_1_1basic__registry.html#a3ffe409b0f7201456b1c1d32c0850474',1,'entt::basic_registry::storage() noexcept'],['../classentt_1_1basic__registry.html#ace5a18c1fe5b72dbdbf53cb981c00879',1,'entt::basic_registry::storage() const noexcept'],['../classentt_1_1basic__registry.html#a901e410db646d5318aa6ac7cabfe6218',1,'entt::basic_registry::storage(const id_type id)'],['../classentt_1_1basic__registry.html#a2bdc9d44e99459d93d2f43bdd1ca5df4',1,'entt::basic_registry::storage(const id_type id) const'],['../classentt_1_1basic__registry.html#abb07bad50fa0f5bad0aabffe8ce24414',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__registry.html#ae414ee7b5315313e9987525727f6320b',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2f653721035d75ee1353e2e9ee553bcb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a3195ed2211e4013883ab9dad6306c9da',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae33d4eaa3b835a8a3e3e627248efb265',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0ef6bf301ccb7108321289aca51ee420',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept'],['../namespaceentt.html#aff8fd99fc1ff2432dcb0f6b017a9c60e',1,'entt::storage'],['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'They call me reactive storage'],['../md_docs_2md_2entity.html#void-storage',1,'Void storage']]], + ['storage_20for_20the_20same_20component_50',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], + ['storage_20size_20and_20alignment_20requirement_51',['Storage size and alignment requirement',['../md_docs_2md_2poly.html#storage-size-and-alignment-requirement',1,'']]], + ['storage_5ffor_52',['storage_for',['../structentt_1_1storage__for.html',1,'entt']]], + ['storage_5ffor_5ft_53',['storage_for_t',['../namespaceentt.html#ab7e07285e81bdf526b09a38a9618eb13',1,'entt']]], + ['storage_5ffor_5ftype_54',['storage_for_type',['../classentt_1_1basic__registry.html#a99e000856991d365d5a8a9e619b5fd03',1,'entt::basic_registry']]], + ['storage_5fpolicy_55',['storage_policy',['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage::storage_policy'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a55b3e6f1dccfe50350c8dc24a3a0524f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::storage_policy'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a27abe6f0df04dd96bf358dcde392551c',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy'],['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy'],['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::storage_policy']]], + ['storage_5ftype_56',['storage_type',['../structentt_1_1storage__type.html',1,'entt']]], + ['storage_5ftype_3c_20reactive_2c_20entity_2c_20allocator_20_3e_57',['storage_type< reactive, Entity, Allocator >',['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], + ['storage_5ftype_5ft_58',['storage_type_t',['../namespaceentt.html#a12841fb02f9eaa12097dbb36251b84dd',1,'entt']]], + ['strings_59',['Hashed strings',['../md_docs_2md_2core.html#hashed-strings',1,'']]], + ['structures_60',['Data structures',['../md_docs_2md_2graph.html#data-structures',1,'']]], + ['succeed_61',['succeed',['../classentt_1_1process.html#a4380dab12dc4c7559ada2182468aa1db',1,'entt::process']]], + ['support_62',['support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'Built-in RTTI support'],['../md_docs_2md_2meta.html#container-support',1,'Container support'],['../md_docs_2md_2signal.html#lambda-support',1,'Lambda support'],['../index.html#natvis-support',1,'Natvis support'],['../md_docs_2md_2core.html#type-support',1,'Type support']]], + ['swap_63',['swap',['../classentt_1_1dense__map.html#a832dc73529e19f662f63c583a5fbd340',1,'entt::dense_map::swap()'],['../classentt_1_1dense__set.html#ab1199b43ef81b1fab9d52a0c1275dd56',1,'entt::dense_set::swap()'],['../classentt_1_1basic__table.html#a56a22abcc5cad03257e146e55eceb31a',1,'entt::basic_table::swap()'],['../classentt_1_1compressed__pair.html#a0cfa66a668acfe78ec3a60e62c73babd',1,'entt::compressed_pair::swap()'],['../classentt_1_1basic__sigh__mixin.html#a41f34b4216ba01ab99fd4c85f57d363a',1,'entt::basic_sigh_mixin::swap()'],['../classentt_1_1basic__registry.html#a394e38341a21d75194555e9ed57fe5ae',1,'entt::basic_registry::swap()'],['../classentt_1_1basic__runtime__view.html#adfcdaca31934517a51d1993f0a4f6cfd',1,'entt::basic_runtime_view::swap()'],['../classentt_1_1basic__sparse__set.html#a85505b5556cc61ab5557cd311442ad42',1,'entt::basic_sparse_set::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage::swap()'],['../classentt_1_1adjacency__matrix.html#a5ee4c669461f74485c4263ece0c05f2f',1,'entt::adjacency_matrix::swap()'],['../classentt_1_1basic__flow.html#adc54472d1ab42909e262b854d0920c3d',1,'entt::basic_flow::swap()'],['../classentt_1_1basic__scheduler.html#ac2d27cb8fda69dac03d011c66276daa7',1,'entt::basic_scheduler::swap()'],['../classentt_1_1resource.html#a9e96e84b8f36937266087163cfe09aaf',1,'entt::resource::swap()'],['../classentt_1_1basic__dispatcher.html#a1bede4933d9946b4cbb27d409102bf1f',1,'entt::basic_dispatcher::swap()'],['../classentt_1_1emitter.html#ab5a2f96dfb9dfb780d2b4c4e328174d1',1,'entt::emitter::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage< Entity, Entity, Allocator >::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::swap()'],['../namespaceentt.html#a2e05563b8d3e3b61cf9b06e9e0904cc7',1,'entt::swap()']]], + ['swap_5fand_5fpop_64',['swap_and_pop',['../classentt_1_1basic__sparse__set.html#a2b95c0acd8af718e712362d1177dbc1e',1,'entt::basic_sparse_set::swap_and_pop()'],['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a8223d1ccb16b6dd0b19fe9c6fdb13708',1,'entt::swap_and_pop']]], + ['swap_5felements_65',['swap_elements',['../classentt_1_1basic__sparse__set.html#a2b82af720eca37261f3230c654d7fe1f',1,'entt::basic_sparse_set']]], + ['swap_5fonly_66',['swap_only',['../classentt_1_1basic__sparse__set.html#abde0af92d2d8eade7b5acf5ab02f8038',1,'entt::basic_sparse_set::swap_only()'],['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a62044f8c7b1568e4536403704282322b',1,'entt::swap_only']]], + ['sync_67',['sync',['../classentt_1_1basic__flow.html#a43e28c91d03bb3ebcce6d3b171d75a98',1,'entt::basic_flow']]], + ['sync_20points_68',['Sync points',['../md_docs_2md_2graph.html#sync-points',1,'']]], + ['system_69',['system',['../md_docs_2md_2entity.html',1,'Crash Course: entity-component system'],['../md_docs_2md_2meta.html',1,'Crash Course: runtime reflection system']]] ]; diff --git a/search/all_12.js b/search/all_12.js index 7d54e501d..52d1abdd9 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -1,119 +1,124 @@ var searchData= [ - ['table_0',['table',['../namespaceentt.html#abdba4f06564fb96e8dfb38c272656d0a',1,'entt']]], - ['table_1',['Table',['../md_docs_2md_2container.html#table',1,'']]], + ['table_0',['Table',['../md_docs_2md_2container.html#table',1,'']]], + ['table_1',['table',['../namespaceentt.html#abdba4f06564fb96e8dfb38c272656d0a',1,'entt']]], ['table_20of_20contents_2',['Table of Contents',['../md_docs_2md_2config.html#table-of-contents',1,'Table of Contents'],['../md_docs_2md_2container.html#table-of-contents-1',1,'Table of Contents'],['../md_docs_2md_2core.html#table-of-contents-2',1,'Table of Contents'],['../md_docs_2md_2entity.html#table-of-contents-3',1,'Table of Contents'],['../md_docs_2md_2faq.html#table-of-contents-4',1,'Table of Contents'],['../md_docs_2md_2graph.html#table-of-contents-5',1,'Table of Contents'],['../md_docs_2md_2lib.html#table-of-contents-6',1,'Table of Contents'],['../md_docs_2md_2links.html#table-of-contents-7',1,'Table of Contents'],['../md_docs_2md_2locator.html#table-of-contents-8',1,'Table of Contents'],['../md_docs_2md_2meta.html#table-of-contents-9',1,'Table of Contents'],['../md_docs_2md_2poly.html#table-of-contents-10',1,'Table of Contents'],['../md_docs_2md_2process.html#table-of-contents-11',1,'Table of Contents'],['../md_docs_2md_2reference.html#table-of-contents-12',1,'Table of Contents'],['../md_docs_2md_2resource.html#table-of-contents-13',1,'Table of Contents'],['../md_docs_2md_2signal.html#table-of-contents-14',1,'Table of Contents'],['../md_docs_2md_2unreal.html#table-of-contents-15',1,'Table of Contents'],['../index.html#table-of-contents-16',1,'Table of Contents']]], - ['tag_3',['tag',['../namespaceentt.html#ae20502ac2073901175466d05be8a3c20',1,'entt']]], - ['tag_4',['Tag',['../md_docs_2md_2core.html#tag',1,'']]], - ['target_5',['target',['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ad2c0669b2eeaa2e0fce72b16e3510d95',1,'entt::delegate< Ret(Args...)>']]], - ['tasks_20and_20resources_6',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], - ['template_20information_7',['Template information',['../md_docs_2md_2meta.html#template-information',1,'']]], - ['template_5farg_8',['template_arg',['../classentt_1_1meta__type.html#a48a18fc15883bff5b1a264a3b4f38b81',1,'entt::meta_type']]], - ['template_5farity_9',['template_arity',['../classentt_1_1meta__type.html#ae1ee3f6d02bd985ef20866881760ab9d',1,'entt::meta_type']]], - ['template_5ftype_10',['template_type',['../classentt_1_1meta__type.html#ad2fbca68ac466e8b6e4c4df8d6685b37',1,'entt::meta_type']]], - ['tests_11',['Tests',['../index.html#tests',1,'']]], - ['th_20argument_12',['N-th argument',['../md_docs_2md_2core.html#n-th-argument',1,'']]], + ['tag_3',['Tag',['../md_docs_2md_2core.html#tag',1,'']]], + ['tag_4',['tag',['../namespaceentt.html#ae20502ac2073901175466d05be8a3c20',1,'entt']]], + ['tasks_20and_20resources_5',['Tasks and resources',['../md_docs_2md_2graph.html#tasks-and-resources',1,'']]], + ['template_20information_6',['Template information',['../md_docs_2md_2meta.html#template-information',1,'']]], + ['template_5farg_7',['template_arg',['../classentt_1_1meta__type.html#a48a18fc15883bff5b1a264a3b4f38b81',1,'entt::meta_type']]], + ['template_5farity_8',['template_arity',['../classentt_1_1meta__type.html#ae1ee3f6d02bd985ef20866881760ab9d',1,'entt::meta_type']]], + ['template_5ftype_9',['template_type',['../classentt_1_1meta__type.html#ad2fbca68ac466e8b6e4c4df8d6685b37',1,'entt::meta_type']]], + ['tests_10',['Tests',['../index.html#tests',1,'']]], + ['th_20argument_11',['N-th argument',['../md_docs_2md_2core.html#n-th-argument',1,'']]], + ['the_20cache_12',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], ['the_20cache_20class_13',['The cache class',['../md_docs_2md_2resource.html#the-cache-class',1,'']]], - ['the_20entity_20and_20the_20component_14',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], - ['the_20like_15',['Hierarchies and the like',['../md_docs_2md_2entity.html#hierarchies-and-the-like',1,'']]], - ['the_20like_3a_16',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], - ['the_20loader_20and_20the_20cache_17',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], - ['the_20min_20the_20max_20and_20the_20macro_18',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], - ['the_20more_20the_20less_19',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], - ['the_20non_20copyable_20types_20',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], - ['the_20process_21',['The process',['../md_docs_2md_2process.html#the-process',1,'']]], - ['the_20registry_22',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], - ['the_20registry_20the_20entity_20and_20the_20component_23',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], - ['the_20rescue_24',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], - ['the_20resource_20the_20loader_20and_20the_20cache_25',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], - ['the_20runtime_26',['The runtime',['../md_docs_2md_2meta.html#enjoy-the-runtime',1,'Enjoy the runtime'],['../md_docs_2md_2entity.html#meet-the-runtime',1,'Meet the runtime']]], - ['the_20same_20component_27',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], - ['the_20scheduler_28',['The scheduler',['../md_docs_2md_2process.html#the-scheduler',1,'']]], - ['the_20standard_20and_20the_20non_20copyable_20types_29',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], - ['the_20wild_30',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], - ['them_20all_31',['Them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], - ['then_32',['then',['../classentt_1_1basic__scheduler.html#a97b6902501430cb4cce602d848d46b7e',1,'entt::basic_scheduler::then(Args &&...args)'],['../classentt_1_1basic__scheduler.html#a4edd1d1540d7d2a5307a646c1c0d880b',1,'entt::basic_scheduler::then(Func &&func)']]], - ['they_20call_20me_20reactive_20storage_33',['They call me reactive storage',['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'']]], - ['third_20party_20module_34',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], - ['this_20document_35',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], - ['tick_36',['tick',['../classentt_1_1process.html#aacc7fe0ef3265113079c70ff8cd9478d',1,'entt::process']]], - ['time_20generator_37',['Compile-time generator',['../md_docs_2md_2core.html#compile-time-generator',1,'']]], - ['times_38',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], - ['to_20any_39',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], - ['to_20entity_40',['To entity',['../md_docs_2md_2entity.html#to-entity',1,'']]], - ['to_20rule_20them_20all_41',['To rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], - ['to_20the_20registry_42',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], - ['to_20the_20rescue_43',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], - ['to_5faddress_44',['to_address',['../namespaceentt.html#af0ecb90b45a53e3272d761c237a0d850',1,'entt']]], - ['to_5fentity_45',['to_entity',['../classentt_1_1basic__entt__traits.html#a8c02bc8db33817ec509b7d32773fa463',1,'entt::basic_entt_traits::to_entity()'],['../namespaceentt.html#a1202b4027d32db124efffdf1f2f8c5a2',1,'entt::to_entity(const Entity value) noexcept'],['../namespaceentt.html#ae213e35d5f2e82e6c2227720e4d0857c',1,'entt::to_entity(const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)']]], - ['to_5fintegral_46',['to_integral',['../classentt_1_1basic__entt__traits.html#a4eb435084cf47d4fbc840654f2e8c9e0',1,'entt::basic_entt_traits::to_integral()'],['../namespaceentt.html#ad2e252dbd8c8ebd486a3d84fbf8c2602',1,'entt::to_integral()']]], - ['to_5fversion_47',['to_version',['../classentt_1_1basic__entt__traits.html#af1e3c418f09660a761fab21078df6700',1,'entt::basic_entt_traits::to_version()'],['../namespaceentt.html#a4b7d8995ec3448ce5151309ef2281d33',1,'entt::to_version(const Entity value) noexcept']]], - ['tombstone_48',['tombstone',['../namespaceentt.html#a674269102fdfe3fd6d7766210a828862',1,'entt']]], - ['tombstone_49',['Tombstone',['../md_docs_2md_2entity.html#tombstone',1,'']]], - ['tombstone_5ft_50',['tombstone_t',['../structentt_1_1tombstone__t.html',1,'entt']]], - ['tools_51',['Packaging Tools',['../index.html#packaging-tools',1,'']]], - ['top_5flevel_52',['top_level',['../structentt_1_1basic__organizer_1_1vertex.html#af724e542a6237fb30cca554463c452c6',1,'entt::basic_organizer::vertex']]], - ['traits_53',['Component traits',['../md_docs_2md_2entity.html#component-traits',1,'']]], - ['traits_54',['traits',['../classentt_1_1meta__factory.html#af3669484fc34a1978e3cb06aaf7dd443',1,'entt::meta_factory::traits()'],['../structentt_1_1meta__data.html#af438ace0d6f9a93f8c07657d3b621cdd',1,'entt::meta_data::traits()'],['../structentt_1_1meta__func.html#a78372e6ee35cdefc14c635d414392c75',1,'entt::meta_func::traits()'],['../classentt_1_1meta__type.html#abb570b19b8898376d9cc6806256f6253',1,'entt::meta_type::traits()']]], - ['traits_55',['Traits',['../md_docs_2md_2meta.html#traits',1,'Traits'],['../md_docs_2md_2core.html#type-traits',1,'Type traits']]], - ['trigger_56',['trigger',['../classentt_1_1basic__dispatcher.html#a106d465a66d82cfa2e664f0e14b498e3',1,'entt::basic_dispatcher::trigger(Type &&value={})'],['../classentt_1_1basic__dispatcher.html#a960ab280a72087de8077351ca8a3dbc8',1,'entt::basic_dispatcher::trigger(const id_type id, Type &&value={})']]], - ['trigger_20which_20signals_57',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], - ['try_5fcast_58',['try_cast',['../classentt_1_1meta__any.html#a36163818889d714deea373c268526b54',1,'entt::meta_any::try_cast() const'],['../classentt_1_1meta__any.html#a4b275ec91a940ffc2c67b4e0a065c693',1,'entt::meta_any::try_cast()']]], - ['try_5femplace_59',['try_emplace',['../classentt_1_1dense__map.html#a53111b5614ea1d29d8396279ebfd7d3e',1,'entt::dense_map::try_emplace(const key_type &key, Args &&...args)'],['../classentt_1_1dense__map.html#ab2b0e98c01ad728022e5388535333fb1',1,'entt::dense_map::try_emplace(key_type &&key, Args &&...args)'],['../classentt_1_1basic__sparse__set.html#a1c62d9615acde55f57fcca92e44c747c',1,'entt::basic_sparse_set::try_emplace()'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage::try_emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a70ee247f23204a7cd323968a19adf91e',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace()']]], - ['try_5fget_60',['try_get',['../classentt_1_1basic__handle.html#a8c9b0405cd213ff5ca7b935a6a55e636',1,'entt::basic_handle::try_get()'],['../classentt_1_1basic__registry.html#a2e423a67d88072b7e8126412d3ce41e5',1,'entt::basic_registry::try_get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a88615f35264fae0e05f25766eab624fb',1,'entt::basic_registry::try_get(const entity_type entt)']]], - ['tuple_5felement_3c_20index_2c_20entt_3a_3acompressed_5fpair_3c_20first_2c_20second_20_3e_20_3e_61',['tuple_element< Index, entt::compressed_pair< First, Second > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html',1,'std']]], - ['tuple_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_62',['tuple_element< Index, entt::type_list< Type... > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html',1,'std']]], - ['tuple_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_63',['tuple_element< Index, entt::value_list< Value... > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html',1,'std']]], - ['tuple_5fsize_3c_20entt_3a_3acompressed_5fpair_3c_20first_2c_20second_20_3e_20_3e_64',['tuple_size< entt::compressed_pair< First, Second > >',['../structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html',1,'std']]], - ['tuple_5fsize_3c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_65',['tuple_size< entt::type_list< Type... > >',['../structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html',1,'std']]], - ['tuple_5fsize_3c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_66',['tuple_size< entt::value_list< Value... > >',['../structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html',1,'std']]], - ['type_67',['Type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'Any as in any type'],['../md_docs_2md_2core.html#member-class-type',1,'Member class type']]], - ['type_68',['type',['../structentt_1_1type__identity.html#ae47a6cef2041ad7d82c8ecd6b97a8524',1,'entt::type_identity::type'],['../structentt_1_1type__list.html#ad39ae8961200964418fef5090f44cd00',1,'entt::type_list::type'],['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#adaf6966048b2b6365a1e3bd1671f04ff',1,'entt::type_list_element< 0u, type_list< First, Other... > >::type'],['../structentt_1_1type__list__cat_3_4.html#a957e88d5bc4c1cbf4a13fbddbe2e176f',1,'entt::type_list_cat<>::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#ae17db475954ad06eba24fd1eedba5f8b',1,'entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html#a0c40287fad9d80f0532d80bf48f219ed',1,'entt::type_list_cat< type_list< Type... > >::type'],['../structentt_1_1type__list__unique.html#abe63c8abbca0076b703080fc84abe771',1,'entt::type_list_unique::type'],['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html#a2cb768d238516cc6a005c221ce9a7f5b',1,'entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type'],['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html#aab11952e985a6d11f707028d19110e15',1,'entt::type_list_transform< type_list< Type... >, Op >::type'],['../structentt_1_1value__list.html#ae89d3f18fec9ab261e040bb4581001af',1,'entt::value_list::type'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a31110a2b765fe05f64090de77073d671',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::type'],['../structentt_1_1value__list__cat_3_4.html#a7c88fc51906ef0549415cbb6b82190b4',1,'entt::value_list_cat<>::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#aeb78d396ce7f928fbd9c06803a1ce327',1,'entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html#ad729ba83ae022614fa97930ae427b4ad',1,'entt::value_list_cat< value_list< Value... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#ae0f12069907fb82ce9c1d86c68cc22f0',1,'entt::value_list_unique< value_list< Value, Other... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html#a78a4d60f7decb9b70404c33db0739270',1,'entt::value_list_unique< value_list<> >::type'],['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html#a73fa937a39aef666c2445a2b47726f9d',1,'entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as::type'],['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html#a641888a9aabbd346cc075ca3247752ad',1,'entt::constness_as< To, const From >::type'],['../classentt_1_1member__class.html#aa512dd4465bfab2dc09f759ae882a08a',1,'entt::member_class::type'],['../classentt_1_1nth__argument.html#a6a6643c48274ccfff5d576de756b32a2',1,'entt::nth_argument::type'],['../structentt_1_1component__traits.html#ad27a54129d408c38d21365a1bab4c93f',1,'entt::component_traits::type'],['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a000a5be755d2c05ccc855fb6eeef2b76',1,'entt::type_list_transform< get_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#af74896fcec10258a516f10f21a141408',1,'entt::type_list_transform< exclude_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a2e5c51f87c36b1e0cab652007f02c8b9',1,'entt::type_list_transform< owned_t< Type... >, Op >::type'],['../structentt_1_1storage__type.html#ad9c2cacb377d24a658f4cb214affb975',1,'entt::storage_type::type'],['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html#a277206323bb4139ea34f54a24de170f5',1,'entt::storage_type< reactive, Entity, Allocator >::type'],['../structentt_1_1storage__for.html#a4b8e6fd2b3cfe7fb1fa80b6698e3c64a',1,'entt::storage_for::type'],['../classentt_1_1locator.html#aa1b4b856f4d36f39bbbecfd79cb380ee',1,'entt::locator::type'],['../classentt_1_1meta__function__helper.html#a74ea1aa3fe0edfad96898520cbf6eeae',1,'entt::meta_function_helper::type'],['../classentt_1_1poly__vtable.html#a1114a981955e596da36603282cee2e4d',1,'entt::poly_vtable::type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ada5b094a0d859325dbe1241f3d956c02',1,'entt::delegate< Ret(Args...)>::type'],['../classentt_1_1basic__any.html#a63c48ddb1677383ba12752ffa387139b',1,'entt::basic_any::type()'],['../classentt_1_1basic__sparse__set.html#ae37830b84f2801670927b8ae881d72b7',1,'entt::basic_sparse_set::type()'],['../classentt_1_1meta__factory.html#ae5837930f3fdc731ae2216c012342d42',1,'entt::meta_factory::type()'],['../classentt_1_1meta__any.html#a2097e0bc8ec091807a1213052bc761c7',1,'entt::meta_any::type()'],['../structentt_1_1meta__data.html#aa81980c2d202f511ec8afcb8b324afb4',1,'entt::meta_data::type()'],['../classentt_1_1basic__poly.html#a0341f0451d35dbe7a70634e4cf5037db',1,'entt::basic_poly::type()']]], - ['type_20info_69',['Type info',['../md_docs_2md_2core.html#type-info',1,'']]], - ['type_20less_20and_20bitset_20free_70',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], - ['type_20list_20and_20value_20list_71',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], - ['type_20optimization_72',['Empty type optimization',['../md_docs_2md_2entity.html#empty-type-optimization',1,'']]], - ['type_20support_73',['Type support',['../md_docs_2md_2core.html#type-support',1,'']]], - ['type_20traits_74',['Type traits',['../md_docs_2md_2core.html#type-traits',1,'']]], - ['type_5fhash_75',['type_hash',['../structentt_1_1type__hash.html',1,'entt']]], - ['type_5fid_76',['type_id',['../namespaceentt.html#adb9682d476edbbe4434680363f9c0eb3',1,'entt::type_id() noexcept'],['../namespaceentt.html#a17387091b8374f89bfd73b2630768b53',1,'entt::type_id(Type &&) noexcept']]], - ['type_5fidentity_77',['type_identity',['../structentt_1_1type__identity.html',1,'entt']]], - ['type_5fidentity_5ft_78',['type_identity_t',['../namespaceentt.html#a674c50d8037ae08ac4f860e65cbfb137',1,'entt']]], - ['type_5findex_79',['type_index',['../structentt_1_1type__index.html',1,'entt']]], - ['type_5finfo_80',['type_info',['../structentt_1_1type__info.html',1,'entt::type_info'],['../structentt_1_1type__info.html#aae30ac668182e952046a3e4f74a6d728',1,'entt::type_info::type_info()']]], - ['type_5flist_81',['type_list',['../structentt_1_1type__list.html',1,'entt']]], - ['type_5flist_3c_20type_2e_2e_2e_20_3e_82',['type_list< Type... >',['../structentt_1_1type__list.html',1,'entt']]], - ['type_5flist_5fcat_83',['type_list_cat',['../structentt_1_1type__list__cat.html',1,'entt']]], - ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_84',['type_list_cat< type_list< Type... > >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_85',['type_list_cat< type_list< Type... >, type_list< Other... >, List... >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], - ['type_5flist_5fcat_3c_3e_86',['type_list_cat<>',['../structentt_1_1type__list__cat_3_4.html',1,'entt']]], - ['type_5flist_5fcat_5ft_87',['type_list_cat_t',['../namespaceentt.html#a23f80f743d8761c2ff8c6f25c8cafece',1,'entt']]], - ['type_5flist_5fcontains_88',['type_list_contains',['../structentt_1_1type__list__contains.html',1,'entt']]], - ['type_5flist_5fcontains_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20other_20_3e_89',['type_list_contains< type_list< Type... >, Other >',['../structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], - ['type_5flist_5fcontains_5fv_90',['type_list_contains_v',['../namespaceentt.html#a988ce063936d499bf2d69406c391fd5c',1,'entt']]], - ['type_5flist_5fdiff_91',['type_list_diff',['../structentt_1_1type__list__diff.html',1,'entt']]], - ['type_5flist_5fdiff_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_92',['type_list_diff< type_list< Type... >, type_list< Other... > >',['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5fdiff_5ft_93',['type_list_diff_t',['../namespaceentt.html#a4ef0f9bd24a7cefac7835cce5744a6cd',1,'entt']]], - ['type_5flist_5felement_94',['type_list_element',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_200u_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_95',['type_list_element< 0u, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_20_2d_201u_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_96',['type_list_element< Index - 1u, type_list< Other... > >',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_97',['type_list_element< Index, entt::type_list< Type... > >',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_98',['type_list_element< Index, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5felement_5ft_99',['type_list_element_t',['../namespaceentt.html#a9ac8221f536d5ecb512dc433ec7a4fd1',1,'entt']]], - ['type_5flist_5findex_100',['type_list_index',['../structentt_1_1type__list__index.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_101',['type_list_index< Type, type_list< First, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20type_2c_20other_2e_2e_2e_20_3e_20_3e_102',['type_list_index< Type, type_list< Type, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_3e_20_3e_103',['type_list_index< Type, type_list<> >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_5fv_104',['type_list_index_v',['../namespaceentt.html#a3a9e46d106b526d281a35901da1edea6',1,'entt']]], - ['type_5flist_5ftransform_105',['type_list_transform',['../structentt_1_1type__list__transform.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20exclude_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_106',['type_list_transform< exclude_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20get_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_107',['type_list_transform< get_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20owned_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_108',['type_list_transform< owned_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_109',['type_list_transform< type_list< Type... >, Op >',['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_5ft_110',['type_list_transform_t',['../namespaceentt.html#a24aaff6276ebe93f2e478c4b07c40902',1,'entt']]], - ['type_5flist_5funique_111',['type_list_unique',['../structentt_1_1type__list__unique.html',1,'entt']]], - ['type_5flist_5funique_5ft_112',['type_list_unique_t',['../namespaceentt.html#aa9ec7a62f8c682a15e93d1f928fbf8ae',1,'entt']]], - ['type_5fname_113',['type_name',['../structentt_1_1type__name.html',1,'entt']]], - ['types_114',['Types',['../md_docs_2md_2meta.html#pointer-like-types',1,'Pointer-like types'],['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'The standard and the non-copyable types'],['../md_docs_2md_2meta.html#unregister-types',1,'Unregister types']]], - ['types_3a_20const_20non_20const_20and_20all_20in_20between_115',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]] + ['the_20component_14',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['the_20entity_20and_20the_20component_15',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['the_20less_16',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], + ['the_20like_17',['Hierarchies and the like',['../md_docs_2md_2entity.html#hierarchies-and-the-like',1,'']]], + ['the_20like_3a_18',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], + ['the_20loader_20and_20the_20cache_19',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], + ['the_20macro_20',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['the_20max_20and_20the_20macro_21',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['the_20min_20the_20max_20and_20the_20macro_22',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['the_20more_20the_20less_23',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], + ['the_20non_20copyable_20types_24',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], + ['the_20process_25',['The process',['../md_docs_2md_2process.html#the-process',1,'']]], + ['the_20registry_26',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], + ['the_20registry_20the_20entity_20and_20the_20component_27',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['the_20rescue_28',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], + ['the_20resource_20the_20loader_20and_20the_20cache_29',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], + ['the_20runtime_30',['the runtime',['../md_docs_2md_2meta.html#enjoy-the-runtime',1,'Enjoy the runtime'],['../md_docs_2md_2entity.html#meet-the-runtime',1,'Meet the runtime']]], + ['the_20same_20component_31',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], + ['the_20scheduler_32',['The scheduler',['../md_docs_2md_2process.html#the-scheduler',1,'']]], + ['the_20standard_20and_20the_20non_20copyable_20types_33',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], + ['the_20wild_34',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], + ['them_20all_35',['them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], + ['then_36',['then',['../classentt_1_1basic__scheduler.html#a97b6902501430cb4cce602d848d46b7e',1,'entt::basic_scheduler::then(Args &&...args)'],['../classentt_1_1basic__scheduler.html#a4edd1d1540d7d2a5307a646c1c0d880b',1,'entt::basic_scheduler::then(Func &&func)']]], + ['they_20call_20me_20reactive_20storage_37',['They call me reactive storage',['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'']]], + ['third_20party_20module_38',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], + ['this_20document_39',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], + ['tick_40',['tick',['../classentt_1_1process.html#aacc7fe0ef3265113079c70ff8cd9478d',1,'entt::process']]], + ['time_20generator_41',['Compile-time generator',['../md_docs_2md_2core.html#compile-time-generator',1,'']]], + ['times_42',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], + ['to_20any_43',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], + ['to_20entity_44',['To entity',['../md_docs_2md_2entity.html#to-entity',1,'']]], + ['to_20rule_20them_20all_45',['to rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'A base class to rule them all'],['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'One example to rule them all']]], + ['to_20the_20registry_46',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], + ['to_20the_20rescue_47',['Any to the rescue',['../md_docs_2md_2meta.html#any-to-the-rescue',1,'']]], + ['to_5faddress_48',['to_address',['../namespaceentt.html#af0ecb90b45a53e3272d761c237a0d850',1,'entt']]], + ['to_5fentity_49',['to_entity',['../classentt_1_1basic__entt__traits.html#a8c02bc8db33817ec509b7d32773fa463',1,'entt::basic_entt_traits::to_entity()'],['../namespaceentt.html#a1202b4027d32db124efffdf1f2f8c5a2',1,'entt::to_entity(const Entity value) noexcept'],['../namespaceentt.html#ae213e35d5f2e82e6c2227720e4d0857c',1,'entt::to_entity(const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)']]], + ['to_5fintegral_50',['to_integral',['../classentt_1_1basic__entt__traits.html#a4eb435084cf47d4fbc840654f2e8c9e0',1,'entt::basic_entt_traits::to_integral()'],['../namespaceentt.html#ad2e252dbd8c8ebd486a3d84fbf8c2602',1,'entt::to_integral()']]], + ['to_5fversion_51',['to_version',['../classentt_1_1basic__entt__traits.html#af1e3c418f09660a761fab21078df6700',1,'entt::basic_entt_traits::to_version()'],['../namespaceentt.html#a4b7d8995ec3448ce5151309ef2281d33',1,'entt::to_version()']]], + ['tombstone_52',['Tombstone',['../md_docs_2md_2entity.html#tombstone',1,'']]], + ['tombstone_53',['tombstone',['../namespaceentt.html#a674269102fdfe3fd6d7766210a828862',1,'entt']]], + ['tombstone_5ft_54',['tombstone_t',['../structentt_1_1tombstone__t.html',1,'entt']]], + ['tools_55',['Packaging Tools',['../index.html#packaging-tools',1,'']]], + ['top_5flevel_56',['top_level',['../structentt_1_1basic__organizer_1_1vertex.html#af724e542a6237fb30cca554463c452c6',1,'entt::basic_organizer::vertex']]], + ['traits_57',['Traits',['../md_docs_2md_2meta.html#traits',1,'']]], + ['traits_58',['traits',['../md_docs_2md_2entity.html#component-traits',1,'Component traits'],['../classentt_1_1meta__factory.html#af3669484fc34a1978e3cb06aaf7dd443',1,'entt::meta_factory::traits()'],['../structentt_1_1meta__data.html#af438ace0d6f9a93f8c07657d3b621cdd',1,'entt::meta_data::traits()'],['../structentt_1_1meta__func.html#a78372e6ee35cdefc14c635d414392c75',1,'entt::meta_func::traits()'],['../classentt_1_1meta__type.html#abb570b19b8898376d9cc6806256f6253',1,'entt::meta_type::traits()'],['../md_docs_2md_2core.html#type-traits',1,'Type traits']]], + ['trigger_59',['trigger',['../classentt_1_1basic__dispatcher.html#a106d465a66d82cfa2e664f0e14b498e3',1,'entt::basic_dispatcher::trigger(Type &&value={})'],['../classentt_1_1basic__dispatcher.html#a960ab280a72087de8077351ca8a3dbc8',1,'entt::basic_dispatcher::trigger(const id_type id, Type &&value={})']]], + ['trigger_20which_20signals_60',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], + ['try_5fcast_61',['try_cast',['../classentt_1_1meta__any.html#a36163818889d714deea373c268526b54',1,'entt::meta_any::try_cast() const'],['../classentt_1_1meta__any.html#a4b275ec91a940ffc2c67b4e0a065c693',1,'entt::meta_any::try_cast()']]], + ['try_5femplace_62',['try_emplace',['../classentt_1_1dense__map.html#a53111b5614ea1d29d8396279ebfd7d3e',1,'entt::dense_map::try_emplace(const key_type &key, Args &&...args)'],['../classentt_1_1dense__map.html#ab2b0e98c01ad728022e5388535333fb1',1,'entt::dense_map::try_emplace(key_type &&key, Args &&...args)'],['../classentt_1_1basic__sparse__set.html#a1c62d9615acde55f57fcca92e44c747c',1,'entt::basic_sparse_set::try_emplace()'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage::try_emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a70ee247f23204a7cd323968a19adf91e',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace(const Entity hint, const bool, const void *) override'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace(const Entity entt, const bool force_back, const void *value) override'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::try_emplace()']]], + ['try_5fget_63',['try_get',['../classentt_1_1basic__handle.html#a8c9b0405cd213ff5ca7b935a6a55e636',1,'entt::basic_handle::try_get()'],['../classentt_1_1basic__registry.html#a2e423a67d88072b7e8126412d3ce41e5',1,'entt::basic_registry::try_get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a88615f35264fae0e05f25766eab624fb',1,'entt::basic_registry::try_get(const entity_type entt)']]], + ['tuple_5felement_3c_20index_2c_20entt_3a_3acompressed_5fpair_3c_20first_2c_20second_20_3e_20_3e_64',['tuple_element< Index, entt::compressed_pair< First, Second > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html',1,'std']]], + ['tuple_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_65',['tuple_element< Index, entt::type_list< Type... > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_66',['tuple_element< Index, entt::value_list< Value... > >',['../structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20entt_3a_3acompressed_5fpair_3c_20first_2c_20second_20_3e_20_3e_67',['tuple_size< entt::compressed_pair< First, Second > >',['../structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_68',['tuple_size< entt::type_list< Type... > >',['../structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_69',['tuple_size< entt::value_list< Value... > >',['../structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html',1,'std']]], + ['type_70',['type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'Any as in any type'],['../md_docs_2md_2core.html#member-class-type',1,'Member class type'],['../structentt_1_1type__identity.html#ae47a6cef2041ad7d82c8ecd6b97a8524',1,'entt::type_identity::type'],['../structentt_1_1type__list.html#ad39ae8961200964418fef5090f44cd00',1,'entt::type_list::type'],['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#adaf6966048b2b6365a1e3bd1671f04ff',1,'entt::type_list_element< 0u, type_list< First, Other... > >::type'],['../structentt_1_1type__list__cat_3_4.html#a957e88d5bc4c1cbf4a13fbddbe2e176f',1,'entt::type_list_cat<>::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#ae17db475954ad06eba24fd1eedba5f8b',1,'entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html#a0c40287fad9d80f0532d80bf48f219ed',1,'entt::type_list_cat< type_list< Type... > >::type'],['../structentt_1_1type__list__unique.html#abe63c8abbca0076b703080fc84abe771',1,'entt::type_list_unique::type'],['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html#a2cb768d238516cc6a005c221ce9a7f5b',1,'entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type'],['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html#aab11952e985a6d11f707028d19110e15',1,'entt::type_list_transform< type_list< Type... >, Op >::type'],['../structentt_1_1value__list.html#ae89d3f18fec9ab261e040bb4581001af',1,'entt::value_list::type'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a31110a2b765fe05f64090de77073d671',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::type'],['../structentt_1_1value__list__cat_3_4.html#a7c88fc51906ef0549415cbb6b82190b4',1,'entt::value_list_cat<>::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#aeb78d396ce7f928fbd9c06803a1ce327',1,'entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html#ad729ba83ae022614fa97930ae427b4ad',1,'entt::value_list_cat< value_list< Value... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#ae0f12069907fb82ce9c1d86c68cc22f0',1,'entt::value_list_unique< value_list< Value, Other... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html#a78a4d60f7decb9b70404c33db0739270',1,'entt::value_list_unique< value_list<> >::type'],['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html#a73fa937a39aef666c2445a2b47726f9d',1,'entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as::type'],['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html#a641888a9aabbd346cc075ca3247752ad',1,'entt::constness_as< To, const From >::type'],['../classentt_1_1member__class.html#aa512dd4465bfab2dc09f759ae882a08a',1,'entt::member_class::type'],['../classentt_1_1nth__argument.html#a6a6643c48274ccfff5d576de756b32a2',1,'entt::nth_argument::type'],['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a000a5be755d2c05ccc855fb6eeef2b76',1,'entt::type_list_transform< get_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#af74896fcec10258a516f10f21a141408',1,'entt::type_list_transform< exclude_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a2e5c51f87c36b1e0cab652007f02c8b9',1,'entt::type_list_transform< owned_t< Type... >, Op >::type'],['../structentt_1_1storage__type.html#a32909b75d88f8d3d12b3781bd079c750',1,'entt::storage_type::type'],['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html#ae4d8893728459c2d06974fccfaab6b4d',1,'entt::storage_type< reactive, Entity, Allocator >::type'],['../structentt_1_1storage__for.html#a4b8e6fd2b3cfe7fb1fa80b6698e3c64a',1,'entt::storage_for::type'],['../classentt_1_1locator.html#aa1b4b856f4d36f39bbbecfd79cb380ee',1,'entt::locator::type'],['../classentt_1_1meta__function__helper.html#a74ea1aa3fe0edfad96898520cbf6eeae',1,'entt::meta_function_helper::type'],['../classentt_1_1poly__vtable.html#a8969ca93b53151ab8e922995f937afa1',1,'entt::poly_vtable::type'],['../classentt_1_1basic__any.html#a63c48ddb1677383ba12752ffa387139b',1,'entt::basic_any::type()'],['../classentt_1_1basic__sparse__set.html#ae37830b84f2801670927b8ae881d72b7',1,'entt::basic_sparse_set::type()'],['../classentt_1_1meta__factory.html#ae5837930f3fdc731ae2216c012342d42',1,'entt::meta_factory::type()'],['../classentt_1_1meta__any.html#a2097e0bc8ec091807a1213052bc761c7',1,'entt::meta_any::type()'],['../structentt_1_1meta__data.html#aa81980c2d202f511ec8afcb8b324afb4',1,'entt::meta_data::type()'],['../classentt_1_1basic__poly.html#a0341f0451d35dbe7a70634e4cf5037db',1,'entt::basic_poly::type()'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as< To, const From >::type'],['../structentt_1_1storage__type.html#a32909b75d88f8d3d12b3781bd079c750',1,'entt::storage_type< reactive, Entity, Allocator >::type']]], + ['type_20info_71',['Type info',['../md_docs_2md_2core.html#type-info',1,'']]], + ['type_20less_20and_20bitset_20free_72',['Type-less and bitset-free',['../md_docs_2md_2entity.html#type-less-and-bitset-free',1,'']]], + ['type_20list_20and_20value_20list_73',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], + ['type_20optimization_74',['Empty type optimization',['../md_docs_2md_2entity.html#empty-type-optimization',1,'']]], + ['type_20support_75',['Type support',['../md_docs_2md_2core.html#type-support',1,'']]], + ['type_20traits_76',['Type traits',['../md_docs_2md_2core.html#type-traits',1,'']]], + ['type_5fhash_77',['type_hash',['../structentt_1_1type__hash.html',1,'entt']]], + ['type_5fid_78',['type_id',['../namespaceentt.html#adb9682d476edbbe4434680363f9c0eb3',1,'entt::type_id() noexcept'],['../namespaceentt.html#a17387091b8374f89bfd73b2630768b53',1,'entt::type_id(Type &&) noexcept']]], + ['type_5fidentity_79',['type_identity',['../structentt_1_1type__identity.html',1,'entt']]], + ['type_5fidentity_5ft_80',['type_identity_t',['../namespaceentt.html#a674c50d8037ae08ac4f860e65cbfb137',1,'entt']]], + ['type_5findex_81',['type_index',['../structentt_1_1type__index.html',1,'entt']]], + ['type_5finfo_82',['type_info',['../structentt_1_1type__info.html',1,'entt::type_info'],['../structentt_1_1type__info.html#aae30ac668182e952046a3e4f74a6d728',1,'entt::type_info::type_info()']]], + ['type_5flist_83',['type_list',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_20args_2e_2e_2e_20_3e_84',['type_list< Args... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_20type_2e_2e_2e_20_3e_85',['type_list< Type... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_86',['type_list< typename Op< Type >::type... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_3e_87',['type_list<>',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_5fcat_88',['type_list_cat',['../structentt_1_1type__list__cat.html',1,'entt']]], + ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_89',['type_list_cat< type_list< Type... > >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_90',['type_list_cat< type_list< Type... >, type_list< Other... >, List... >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], + ['type_5flist_5fcat_3c_3e_91',['type_list_cat<>',['../structentt_1_1type__list__cat_3_4.html',1,'entt']]], + ['type_5flist_5fcat_5ft_92',['type_list_cat_t',['../namespaceentt.html#a23f80f743d8761c2ff8c6f25c8cafece',1,'entt']]], + ['type_5flist_5fcontains_93',['type_list_contains',['../structentt_1_1type__list__contains.html',1,'entt']]], + ['type_5flist_5fcontains_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20other_20_3e_94',['type_list_contains< type_list< Type... >, Other >',['../structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], + ['type_5flist_5fcontains_5fv_95',['type_list_contains_v',['../namespaceentt.html#a988ce063936d499bf2d69406c391fd5c',1,'entt']]], + ['type_5flist_5fdiff_96',['type_list_diff',['../structentt_1_1type__list__diff.html',1,'entt']]], + ['type_5flist_5fdiff_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_97',['type_list_diff< type_list< Type... >, type_list< Other... > >',['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5fdiff_5ft_98',['type_list_diff_t',['../namespaceentt.html#a4ef0f9bd24a7cefac7835cce5744a6cd',1,'entt']]], + ['type_5flist_5felement_99',['type_list_element',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_200u_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_100',['type_list_element< 0u, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_20_2d_201u_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_101',['type_list_element< Index - 1u, type_list< Other... > >',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_102',['type_list_element< Index, entt::type_list< Type... > >',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_103',['type_list_element< Index, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5felement_5ft_104',['type_list_element_t',['../namespaceentt.html#a9ac8221f536d5ecb512dc433ec7a4fd1',1,'entt']]], + ['type_5flist_5findex_105',['type_list_index',['../structentt_1_1type__list__index.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_106',['type_list_index< Type, type_list< First, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20type_2c_20other_2e_2e_2e_20_3e_20_3e_107',['type_list_index< Type, type_list< Type, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_3e_20_3e_108',['type_list_index< Type, type_list<> >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_5fv_109',['type_list_index_v',['../namespaceentt.html#a3a9e46d106b526d281a35901da1edea6',1,'entt']]], + ['type_5flist_5ftransform_110',['type_list_transform',['../structentt_1_1type__list__transform.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20exclude_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_111',['type_list_transform< exclude_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20get_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_112',['type_list_transform< get_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20owned_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_113',['type_list_transform< owned_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_114',['type_list_transform< type_list< Type... >, Op >',['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_5ft_115',['type_list_transform_t',['../namespaceentt.html#a24aaff6276ebe93f2e478c4b07c40902',1,'entt']]], + ['type_5flist_5funique_116',['type_list_unique',['../structentt_1_1type__list__unique.html',1,'entt']]], + ['type_5flist_5funique_5ft_117',['type_list_unique_t',['../namespaceentt.html#aa9ec7a62f8c682a15e93d1f928fbf8ae',1,'entt']]], + ['type_5fname_118',['type_name',['../structentt_1_1type__name.html',1,'entt']]], + ['types_119',['types',['../md_docs_2md_2meta.html#pointer-like-types',1,'Pointer-like types'],['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'The standard and the non-copyable types'],['../md_docs_2md_2meta.html#unregister-types',1,'Unregister types']]], + ['types_3a_20const_20non_20const_20and_20all_20in_20between_120',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]] ]; diff --git a/search/all_13.js b/search/all_13.js index f9561efc5..66aa8effd 100644 --- a/search/all_13.js +++ b/search/all_13.js @@ -10,12 +10,12 @@ var searchData= ['unpause_7',['unpause',['../classentt_1_1process.html#a5b024d8b110a8ab631132acc6abfb9e1',1,'entt::process']]], ['unreal_20engine_8',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], ['unregister_20types_9',['Unregister types',['../md_docs_2md_2meta.html#unregister-types',1,'']]], - ['until_20proven_20otherwise_10',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], - ['unwrap_5ftuple_11',['unwrap_tuple',['../namespaceentt.html#abf2665e41871f7493f674c8dbba0a593',1,'entt']]], - ['up_20registry_12',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], - ['update_13',['update',['../structentt_1_1basic__collector_3_4.html#a13ce2f2ee1d5e8c852fa055cb693a210',1,'entt::basic_collector<>::update()'],['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#a57c1366ef7a47ff4e859deddaa8e8f64',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::update()'],['../structentt_1_1process__adaptor.html#a7514fabbbda491742872bc0e52dde5c2',1,'entt::process_adaptor::update()'],['../classentt_1_1basic__scheduler.html#aac8d0d131f7e1214c4191048762ccd09',1,'entt::basic_scheduler::update()'],['../classentt_1_1basic__dispatcher.html#a7d0b2fc6d403b187f112798823c870dc',1,'entt::basic_dispatcher::update(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a34b8c43b1d00707b09e9ea8cd53ff3fd',1,'entt::basic_dispatcher::update() const']]], - ['use_14',['Pay per use',['../md_docs_2md_2entity.html#pay-per-use',1,'']]], - ['use_15',['use',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept']]], + ['unspecified_10',['unspecified',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581ad415f0e30c471dfdd9bc4f827329ef48',1,'entt']]], + ['until_20proven_20otherwise_11',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], + ['unwrap_5ftuple_12',['unwrap_tuple',['../namespaceentt.html#abf2665e41871f7493f674c8dbba0a593',1,'entt']]], + ['up_20registry_13',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], + ['update_14',['update',['../structentt_1_1process__adaptor.html#a7514fabbbda491742872bc0e52dde5c2',1,'entt::process_adaptor::update()'],['../classentt_1_1basic__scheduler.html#aac8d0d131f7e1214c4191048762ccd09',1,'entt::basic_scheduler::update()'],['../classentt_1_1basic__dispatcher.html#a7d0b2fc6d403b187f112798823c870dc',1,'entt::basic_dispatcher::update(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a34b8c43b1d00707b09e9ea8cd53ff3fd',1,'entt::basic_dispatcher::update() const']]], + ['use_15',['use',['../md_docs_2md_2entity.html#pay-per-use',1,'Pay per use'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept']]], ['user_20defined_20data_16',['User defined data',['../md_docs_2md_2meta.html#user-defined-data',1,'']]], ['uses_5fallocator_5fconstruction_5fargs_17',['uses_allocator_construction_args',['../namespaceentt.html#ac447ddab9d528647a79fd9aca429faed',1,'entt']]], ['utilities_18',['Utilities',['../md_docs_2md_2core.html#utilities',1,'']]] diff --git a/search/all_14.js b/search/all_14.js index 3744a29be..dc1710456 100644 --- a/search/all_14.js +++ b/search/all_14.js @@ -2,52 +2,55 @@ var searchData= [ ['vademecum_0',['Vademecum',['../md_docs_2md_2entity.html#vademecum',1,'']]], ['valid_1',['valid',['../classentt_1_1basic__handle.html#ad95bbdd34812aef5f4d492d40c1b7815',1,'entt::basic_handle::valid()'],['../classentt_1_1basic__registry.html#a40d41cd623d5bf7ad95d75aef5e70a65',1,'entt::basic_registry::valid()']]], - ['value_2',['value',['../classentt_1_1family.html#af152fe50da07a8f99af91dfc4c8cd914',1,'entt::family::value'],['../classentt_1_1ident.html#abbe6e44a907fc596f65ee29d3cb67b6d',1,'entt::ident::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a975ead78ef99682644975a540c448c95',1,'entt::type_list_index< Type, type_list< First, Other... > >::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a20d11ed6bf1a574c6c56bcb72a93c6c2',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a565dda95f4cd3a8d23a32a07e6588819',1,'entt::type_list_index< Type, type_list<> >::value'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a7525593fea1bece0b7e43d2ea7a69411',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a05188eb2190c4c0636589e33c661138f',1,'entt::value_list_index< Value, value_list< First, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a63d73ef4532aa1fd7ba4881b910e37ee',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#ac295fcba272af7b37fe380b457e414ad',1,'entt::value_list_index< Value, value_list<> >::value'],['../classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e',1,'entt::basic_hashed_string::value(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0',1,'entt::basic_hashed_string::value(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb',1,'entt::basic_hashed_string::value(const_wrapper wrapper) noexcept'],['../classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c',1,'entt::basic_hashed_string::value() const noexcept'],['../structentt_1_1type__index.html#ac1a87730c605024e3fb6426fc633380e',1,'entt::type_index::value()'],['../structentt_1_1type__hash.html#a925c3666663e463a28897f04a7e2c314',1,'entt::type_hash::value()'],['../structentt_1_1type__name.html#a25bf087449089be106e33b64430bcbd4',1,'entt::type_name::value()'],['../classentt_1_1basic__sparse__set.html#ab3725f4fb86b9bb73f5f397884ff1680',1,'entt::basic_sparse_set::value(const entity_type entt) const noexcept'],['../classentt_1_1basic__sparse__set.html#a319f3827fb68d33cddbdb5519723ea6f',1,'entt::basic_sparse_set::value(const entity_type entt) noexcept'],['../classentt_1_1locator.html#a5f2beb12925d1cfac5c55d5aca65e47e',1,'entt::locator::value()'],['../structentt_1_1meta__prop.html#a82a1d1796e873be7ba0c9fb539ec22ef',1,'entt::meta_prop::value() const'],['../structentt_1_1meta__prop.html#a459bfd17717f66a925062e992fcd9013',1,'entt::meta_prop::value()']]], + ['value_2',['value',['../classentt_1_1family.html#af152fe50da07a8f99af91dfc4c8cd914',1,'entt::family::value'],['../classentt_1_1ident.html#abbe6e44a907fc596f65ee29d3cb67b6d',1,'entt::ident::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a975ead78ef99682644975a540c448c95',1,'entt::type_list_index< Type, type_list< First, Other... > >::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a20d11ed6bf1a574c6c56bcb72a93c6c2',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a565dda95f4cd3a8d23a32a07e6588819',1,'entt::type_list_index< Type, type_list<> >::value'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a7525593fea1bece0b7e43d2ea7a69411',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a05188eb2190c4c0636589e33c661138f',1,'entt::value_list_index< Value, value_list< First, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a63d73ef4532aa1fd7ba4881b910e37ee',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#ac295fcba272af7b37fe380b457e414ad',1,'entt::value_list_index< Value, value_list<> >::value'],['../classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e',1,'entt::basic_hashed_string::value(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0',1,'entt::basic_hashed_string::value(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb',1,'entt::basic_hashed_string::value(const_wrapper wrapper) noexcept'],['../classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c',1,'entt::basic_hashed_string::value() const noexcept'],['../structentt_1_1type__index.html#ac1a87730c605024e3fb6426fc633380e',1,'entt::type_index::value()'],['../structentt_1_1type__hash.html#a925c3666663e463a28897f04a7e2c314',1,'entt::type_hash::value()'],['../structentt_1_1type__name.html#a25bf087449089be106e33b64430bcbd4',1,'entt::type_name::value()'],['../classentt_1_1basic__sparse__set.html#ab3725f4fb86b9bb73f5f397884ff1680',1,'entt::basic_sparse_set::value(const entity_type entt) const noexcept'],['../classentt_1_1basic__sparse__set.html#a319f3827fb68d33cddbdb5519723ea6f',1,'entt::basic_sparse_set::value(const entity_type entt) noexcept'],['../classentt_1_1locator.html#a5f2beb12925d1cfac5c55d5aca65e47e',1,'entt::locator::value()']]], ['value_20list_3',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], ['value_5flist_4',['value_list',['../structentt_1_1value__list.html',1,'entt']]], - ['value_5flist_5fcat_5',['value_list_cat',['../structentt_1_1value__list__cat.html',1,'entt']]], - ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_6',['value_list_cat< value_list< Value... > >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_7',['value_list_cat< value_list< Value... >, value_list< Other... >, List... >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], - ['value_5flist_5fcat_3c_3e_8',['value_list_cat<>',['../structentt_1_1value__list__cat_3_4.html',1,'entt']]], - ['value_5flist_5fcat_5ft_9',['value_list_cat_t',['../namespaceentt.html#a3c9b49e40def274e6187d16435c79602',1,'entt']]], - ['value_5flist_5fcontains_10',['value_list_contains',['../structentt_1_1value__list__contains.html',1,'entt']]], - ['value_5flist_5fcontains_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20other_20_3e_11',['value_list_contains< value_list< Value... >, Other >',['../structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], - ['value_5flist_5fcontains_5fv_12',['value_list_contains_v',['../namespaceentt.html#ab49d414cdd708304c03606020ae5a846',1,'entt']]], - ['value_5flist_5fdiff_13',['value_list_diff',['../structentt_1_1value__list__diff.html',1,'entt']]], - ['value_5flist_5fdiff_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_14',['value_list_diff< value_list< Value... >, value_list< Other... > >',['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5fdiff_5ft_15',['value_list_diff_t',['../namespaceentt.html#abb1704c849f4643f1063e7ac036117f8',1,'entt']]], - ['value_5flist_5felement_16',['value_list_element',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_200u_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_17',['value_list_element< 0u, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_20_2d_201u_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_18',['value_list_element< Index - 1u, value_list< Other... > >',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_19',['value_list_element< Index, entt::value_list< Value... > >',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_20',['value_list_element< Index, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5felement_5ft_21',['value_list_element_t',['../namespaceentt.html#ab468f1f4331cb1b664ee21fe4a22acab',1,'entt']]], - ['value_5flist_5felement_5fv_22',['value_list_element_v',['../namespaceentt.html#a4bbfb162708696f9c1497d61573b540f',1,'entt']]], - ['value_5flist_5findex_23',['value_list_index',['../structentt_1_1value__list__index.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_24',['value_list_index< Value, value_list< First, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_25',['value_list_index< Value, value_list< Value, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_3e_20_3e_26',['value_list_index< Value, value_list<> >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_5fv_27',['value_list_index_v',['../namespaceentt.html#a9e015c642d51a9cc31e17fea8d6f6b14',1,'entt']]], - ['value_5flist_5funique_28',['value_list_unique',['../structentt_1_1value__list__unique.html',1,'entt']]], - ['value_5flist_5funique_3c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_29',['value_list_unique< value_list< Value, Other... > >',['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5funique_3c_20value_5flist_3c_3e_20_3e_30',['value_list_unique< value_list<> >',['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html',1,'entt']]], - ['value_5flist_5funique_5ft_31',['value_list_unique_t',['../namespaceentt.html#a2aac9e0d197ae6d01eb31645245a0773',1,'entt']]], - ['value_5for_32',['value_or',['../classentt_1_1locator.html#ad7a9c3555e6ff2b67f9ad3af7f99a728',1,'entt::locator']]], - ['value_5ftype_33',['value_type',['../classentt_1_1dense__map.html#aa53501af8bfd66b6bf45e8cfa844e180',1,'entt::dense_map::value_type'],['../classentt_1_1dense__set.html#a42092d77add471a91a60b0aebd515829',1,'entt::dense_set::value_type'],['../classentt_1_1family.html#a0e6bdab229f41f21267f4d7975f305cc',1,'entt::family::value_type'],['../classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0',1,'entt::basic_hashed_string::value_type'],['../classentt_1_1ident.html#ab876c8a72b42402e640b1438eed506c7',1,'entt::ident::value_type'],['../structentt_1_1input__iterator__pointer.html#ac0bf1d35284f47fc0eaca4936c14e6fd',1,'entt::input_iterator_pointer::value_type'],['../classentt_1_1iota__iterator.html#ae77062c710cf05c7d9a29f130cddc074',1,'entt::iota_iterator::value_type'],['../structentt_1_1iterable__adaptor.html#adbde706b5ce0286d8e3fd6e71be12720',1,'entt::iterable_adaptor::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a020f20e0b33a44e8553c27c8b8467737',1,'entt::type_list_index< Type, type_list< First, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a70ed8029fca2779886d54717d1fc0f12',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a721c9925a30d577d7ffea978ca02db50',1,'entt::type_list_index< Type, type_list<> >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a9c71ca857f7733bc5d65eff9c53cb9fb',1,'entt::value_list_index< Value, value_list< First, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#afdc75781c76ec5001f7691de1f18af6d',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#a620f31bb51fea7cf0227c463da75f6bb',1,'entt::value_list_index< Value, value_list<> >::value_type'],['../classentt_1_1basic__entt__traits.html#a8d3ccdc302fc7dc567541fa12eca6b4e',1,'entt::basic_entt_traits::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage::value_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aa9d41e9aa6dfe02706e057b57c923209',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::value_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a30bbcaceb9ee7f7708d978f082afabc8',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1resource__cache.html#a7405d91504b5793f260a93695f6cdee4',1,'entt::resource_cache::value_type'],['../classentt_1_1meta__sequence__container.html#a34fb8652e550e2af8702298ca4c3fc92',1,'entt::meta_sequence_container::value_type()'],['../classentt_1_1meta__associative__container.html#ac41d995020762bcfa1cf0c7536d2eb9a',1,'entt::meta_associative_container::value_type()']]], - ['variables_34',['Context variables',['../md_docs_2md_2entity.html#context-variables',1,'']]], - ['version_5fmask_35',['version_mask',['../classentt_1_1basic__entt__traits.html#a0bd49c229b049ac5dc0fb21195b4bcc3',1,'entt::basic_entt_traits']]], - ['version_5ftype_36',['version_type',['../classentt_1_1basic__entt__traits.html#aa3fe33d19b228d07c5560b907f910c10',1,'entt::basic_entt_traits::version_type'],['../classentt_1_1basic__handle.html#a968c2d7f87b40d6fa6ae700be481f20c',1,'entt::basic_handle::version_type'],['../classentt_1_1basic__registry.html#a49c533b43c29fad4b52bc10e4f390107',1,'entt::basic_registry::version_type'],['../classentt_1_1basic__sparse__set.html#a14e627591924feaaad4f04d13c4f4b2d',1,'entt::basic_sparse_set::version_type']]], - ['vertex_37',['vertex',['../structentt_1_1basic__organizer_1_1vertex.html',1,'entt::basic_organizer< Registry >::vertex'],['../structentt_1_1basic__organizer_1_1vertex.html#ae0c95bb3a80934bfefc52620324f57dd',1,'entt::basic_organizer::vertex::vertex()']]], - ['vertex_5fiterator_38',['vertex_iterator',['../classentt_1_1adjacency__matrix.html#a2a5cd6977bd31867ed853b737f3a2ff1',1,'entt::adjacency_matrix']]], - ['vertex_5ftype_39',['vertex_type',['../classentt_1_1adjacency__matrix.html#ad59306803ff05b7d2d3244f7e59ef9d9',1,'entt::adjacency_matrix']]], - ['vertices_40',['vertices',['../classentt_1_1adjacency__matrix.html#aac3dbc29bb2a31de879b62742124ddd4',1,'entt::adjacency_matrix']]], - ['videos_20and_20blog_20posts_3a_41',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], - ['view_42',['view',['../classentt_1_1basic__reactive__mixin.html#a7902400038df582034a750f134b458f1',1,'entt::basic_reactive_mixin::view(exclude_t< Exclude... >=exclude_t{}) const'],['../classentt_1_1basic__reactive__mixin.html#a34198add8a7511e33e26f57fbaa3b6b5',1,'entt::basic_reactive_mixin::view(exclude_t< Exclude... >=exclude_t{})'],['../classentt_1_1basic__registry.html#a563374eb952f575470291d2a574176dc',1,'entt::basic_registry::view(exclude_t< Exclude... >=exclude_t{}) const'],['../classentt_1_1basic__registry.html#a8388faa0bbae4dc1b1c74e2dff4af17f',1,'entt::basic_registry::view(exclude_t< Exclude... >=exclude_t{})'],['../namespaceentt.html#a3f86766cf81509c46f7009f90513d837',1,'entt::view']]], - ['view_20pack_43',['View pack',['../md_docs_2md_2entity.html#view-pack',1,'']]], - ['views_44',['Views',['../md_docs_2md_2entity.html#runtime-views',1,'Runtime views'],['../md_docs_2md_2entity.html#views',1,'Views']]], - ['views_20and_20groups_45',['Views and Groups',['../md_docs_2md_2entity.html#views-and-groups',1,'']]], - ['void_20storage_46',['Void storage',['../md_docs_2md_2entity.html#void-storage',1,'']]], - ['void_20to_20any_47',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], - ['vs_20continuous_48',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], - ['vtable_5ftype_49',['vtable_type',['../classentt_1_1basic__poly.html#abf0092d4a0a8976a742ff76a68851054',1,'entt::basic_poly']]] + ['value_5flist_3c_20value_2e_2e_2e_20_3e_5',['value_list< Value... >',['../structentt_1_1value__list.html',1,'entt']]], + ['value_5flist_3c_3e_6',['value_list<>',['../structentt_1_1value__list.html',1,'entt']]], + ['value_5flist_5fcat_7',['value_list_cat',['../structentt_1_1value__list__cat.html',1,'entt']]], + ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_8',['value_list_cat< value_list< Value... > >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_9',['value_list_cat< value_list< Value... >, value_list< Other... >, List... >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], + ['value_5flist_5fcat_3c_3e_10',['value_list_cat<>',['../structentt_1_1value__list__cat_3_4.html',1,'entt']]], + ['value_5flist_5fcat_5ft_11',['value_list_cat_t',['../namespaceentt.html#a3c9b49e40def274e6187d16435c79602',1,'entt']]], + ['value_5flist_5fcontains_12',['value_list_contains',['../structentt_1_1value__list__contains.html',1,'entt']]], + ['value_5flist_5fcontains_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20other_20_3e_13',['value_list_contains< value_list< Value... >, Other >',['../structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], + ['value_5flist_5fcontains_5fv_14',['value_list_contains_v',['../namespaceentt.html#ab49d414cdd708304c03606020ae5a846',1,'entt']]], + ['value_5flist_5fdiff_15',['value_list_diff',['../structentt_1_1value__list__diff.html',1,'entt']]], + ['value_5flist_5fdiff_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_16',['value_list_diff< value_list< Value... >, value_list< Other... > >',['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5fdiff_5ft_17',['value_list_diff_t',['../namespaceentt.html#abb1704c849f4643f1063e7ac036117f8',1,'entt']]], + ['value_5flist_5felement_18',['value_list_element',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_200u_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_19',['value_list_element< 0u, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_20_2d_201u_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_20',['value_list_element< Index - 1u, value_list< Other... > >',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_21',['value_list_element< Index, entt::value_list< Value... > >',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_22',['value_list_element< Index, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5felement_5ft_23',['value_list_element_t',['../namespaceentt.html#ab468f1f4331cb1b664ee21fe4a22acab',1,'entt']]], + ['value_5flist_5felement_5fv_24',['value_list_element_v',['../namespaceentt.html#a4bbfb162708696f9c1497d61573b540f',1,'entt']]], + ['value_5flist_5findex_25',['value_list_index',['../structentt_1_1value__list__index.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_26',['value_list_index< Value, value_list< First, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_27',['value_list_index< Value, value_list< Value, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_3e_20_3e_28',['value_list_index< Value, value_list<> >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_5fv_29',['value_list_index_v',['../namespaceentt.html#a9e015c642d51a9cc31e17fea8d6f6b14',1,'entt']]], + ['value_5flist_5funique_30',['value_list_unique',['../structentt_1_1value__list__unique.html',1,'entt']]], + ['value_5flist_5funique_3c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_31',['value_list_unique< value_list< Value, Other... > >',['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5funique_3c_20value_5flist_3c_3e_20_3e_32',['value_list_unique< value_list<> >',['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html',1,'entt']]], + ['value_5flist_5funique_5ft_33',['value_list_unique_t',['../namespaceentt.html#a2aac9e0d197ae6d01eb31645245a0773',1,'entt']]], + ['value_5for_34',['value_or',['../classentt_1_1locator.html#ad7a9c3555e6ff2b67f9ad3af7f99a728',1,'entt::locator']]], + ['value_5ftype_35',['value_type',['../classentt_1_1dense__map.html#aa53501af8bfd66b6bf45e8cfa844e180',1,'entt::dense_map::value_type'],['../classentt_1_1dense__set.html#a42092d77add471a91a60b0aebd515829',1,'entt::dense_set::value_type'],['../classentt_1_1family.html#a0e6bdab229f41f21267f4d7975f305cc',1,'entt::family::value_type'],['../classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0',1,'entt::basic_hashed_string::value_type'],['../classentt_1_1ident.html#ab876c8a72b42402e640b1438eed506c7',1,'entt::ident::value_type'],['../structentt_1_1input__iterator__pointer.html#ac0bf1d35284f47fc0eaca4936c14e6fd',1,'entt::input_iterator_pointer::value_type'],['../classentt_1_1iota__iterator.html#ae77062c710cf05c7d9a29f130cddc074',1,'entt::iota_iterator::value_type'],['../structentt_1_1iterable__adaptor.html#adbde706b5ce0286d8e3fd6e71be12720',1,'entt::iterable_adaptor::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a020f20e0b33a44e8553c27c8b8467737',1,'entt::type_list_index< Type, type_list< First, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a70ed8029fca2779886d54717d1fc0f12',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a721c9925a30d577d7ffea978ca02db50',1,'entt::type_list_index< Type, type_list<> >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a9c71ca857f7733bc5d65eff9c53cb9fb',1,'entt::value_list_index< Value, value_list< First, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#afdc75781c76ec5001f7691de1f18af6d',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#a620f31bb51fea7cf0227c463da75f6bb',1,'entt::value_list_index< Value, value_list<> >::value_type'],['../classentt_1_1basic__entt__traits.html#a8d3ccdc302fc7dc567541fa12eca6b4e',1,'entt::basic_entt_traits::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage::value_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a129141410fa4a0c90ff83bceab7d0266',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::value_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a30bbcaceb9ee7f7708d978f082afabc8',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1resource__cache.html#a7405d91504b5793f260a93695f6cdee4',1,'entt::resource_cache::value_type'],['../classentt_1_1meta__sequence__container.html#a34fb8652e550e2af8702298ca4c3fc92',1,'entt::meta_sequence_container::value_type()'],['../classentt_1_1meta__associative__container.html#ac41d995020762bcfa1cf0c7536d2eb9a',1,'entt::meta_associative_container::value_type()'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::value_type']]], + ['variables_36',['Context variables',['../md_docs_2md_2entity.html#context-variables',1,'']]], + ['version_5fmask_37',['version_mask',['../classentt_1_1basic__entt__traits.html#a0bd49c229b049ac5dc0fb21195b4bcc3',1,'entt::basic_entt_traits']]], + ['version_5ftype_38',['version_type',['../classentt_1_1basic__entt__traits.html#aa3fe33d19b228d07c5560b907f910c10',1,'entt::basic_entt_traits::version_type'],['../classentt_1_1basic__handle.html#a968c2d7f87b40d6fa6ae700be481f20c',1,'entt::basic_handle::version_type'],['../classentt_1_1basic__registry.html#a49c533b43c29fad4b52bc10e4f390107',1,'entt::basic_registry::version_type'],['../classentt_1_1basic__sparse__set.html#a14e627591924feaaad4f04d13c4f4b2d',1,'entt::basic_sparse_set::version_type']]], + ['vertex_39',['vertex',['../structentt_1_1basic__organizer_1_1vertex.html',1,'entt::basic_organizer< Registry >::vertex'],['../structentt_1_1basic__organizer_1_1vertex.html#ae0c95bb3a80934bfefc52620324f57dd',1,'entt::basic_organizer::vertex::vertex()']]], + ['vertex_5fiterator_40',['vertex_iterator',['../classentt_1_1adjacency__matrix.html#a2a5cd6977bd31867ed853b737f3a2ff1',1,'entt::adjacency_matrix']]], + ['vertex_5ftype_41',['vertex_type',['../classentt_1_1adjacency__matrix.html#ad59306803ff05b7d2d3244f7e59ef9d9',1,'entt::adjacency_matrix']]], + ['vertices_42',['vertices',['../classentt_1_1adjacency__matrix.html#aac3dbc29bb2a31de879b62742124ddd4',1,'entt::adjacency_matrix']]], + ['videos_20and_20blog_20posts_3a_43',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], + ['view_44',['view',['../classentt_1_1basic__reactive__mixin.html#a7902400038df582034a750f134b458f1',1,'entt::basic_reactive_mixin::view(exclude_t< Exclude... >=exclude_t{}) const'],['../classentt_1_1basic__reactive__mixin.html#a34198add8a7511e33e26f57fbaa3b6b5',1,'entt::basic_reactive_mixin::view(exclude_t< Exclude... >=exclude_t{})'],['../classentt_1_1basic__registry.html#a563374eb952f575470291d2a574176dc',1,'entt::basic_registry::view(exclude_t< Exclude... >=exclude_t{}) const'],['../classentt_1_1basic__registry.html#a8388faa0bbae4dc1b1c74e2dff4af17f',1,'entt::basic_registry::view(exclude_t< Exclude... >=exclude_t{})'],['../namespaceentt.html#a3f86766cf81509c46f7009f90513d837',1,'entt::view']]], + ['view_20pack_45',['View pack',['../md_docs_2md_2entity.html#view-pack',1,'']]], + ['views_46',['Views',['../md_docs_2md_2entity.html#views',1,'']]], + ['views_47',['Runtime views',['../md_docs_2md_2entity.html#runtime-views',1,'']]], + ['views_20and_20groups_48',['Views and Groups',['../md_docs_2md_2entity.html#views-and-groups',1,'']]], + ['void_20storage_49',['Void storage',['../md_docs_2md_2entity.html#void-storage',1,'']]], + ['void_20to_20any_50',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], + ['vs_20continuous_51',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], + ['vtable_5ftype_52',['vtable_type',['../classentt_1_1basic__poly.html#abf0092d4a0a8976a742ff76a68851054',1,'entt::basic_poly']]] ]; diff --git a/search/all_15.js b/search/all_15.js index 2824b9538..b3d55253d 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -3,14 +3,13 @@ var searchData= ['warning_20c4003_3a_20the_20min_20the_20max_20and_20the_20macro_0',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], ['what_20is_20allowed_20and_20what_20is_20not_1',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], ['what_20is_20not_2',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], - ['where_3',['where',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#add41fb03c0e129a63e616501cc2e1ea4',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >']]], - ['which_20functions_20trigger_20which_20signals_4',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], - ['which_20signals_5',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], - ['why_20is_20my_20debug_20build_20on_20windows_20so_20slow_6',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['wide_20characters_7',['Wide characters',['../md_docs_2md_2core.html#wide-characters',1,'']]], - ['wild_8',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], - ['windows_20so_20slow_9',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['with_10',['with',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a88c9f698912fac86d317762b2384aaf4',1,'entt::sigh_helper< Registry >']]], - ['with_20my_20components_11',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], - ['working_20across_20boundaries_12',['Working across boundaries',['../md_docs_2md_2lib.html#working-across-boundaries',1,'']]] + ['which_20functions_20trigger_20which_20signals_3',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], + ['which_20signals_4',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]], + ['why_20is_20my_20debug_20build_20on_20windows_20so_20slow_5',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['wide_20characters_6',['Wide characters',['../md_docs_2md_2core.html#wide-characters',1,'']]], + ['wild_7',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], + ['windows_20so_20slow_8',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['with_9',['with',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a88c9f698912fac86d317762b2384aaf4',1,'entt::sigh_helper< Registry >']]], + ['with_20my_20components_10',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], + ['working_20across_20boundaries_11',['Working across boundaries',['../md_docs_2md_2lib.html#working-across-boundaries',1,'']]] ]; diff --git a/search/all_17.js b/search/all_17.js index 156661eac..a83b48b23 100644 --- a/search/all_17.js +++ b/search/all_17.js @@ -5,27 +5,25 @@ var searchData= ['_7ebasic_5fcontinuous_5floader_2',['~basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html#a34d2417a1dc1fe8804ff6bbe184e16a1',1,'entt::basic_continuous_loader']]], ['_7ebasic_5fdispatcher_3',['~basic_dispatcher',['../classentt_1_1basic__dispatcher.html#aa696c543875d16b4b94ce7966f919844',1,'entt::basic_dispatcher']]], ['_7ebasic_5fflow_4',['~basic_flow',['../classentt_1_1basic__flow.html#a5c3eb8689a39e6c8ce6d33b1ed21dd50',1,'entt::basic_flow']]], - ['_7ebasic_5fobserver_5',['~basic_observer',['../classentt_1_1basic__observer.html#a87fca2a49acd1ca6c6b4253eaf3f2d4c',1,'entt::basic_observer']]], - ['_7ebasic_5freactive_5fmixin_6',['~basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a6bafc1c76baa384839156e2d672bcc43',1,'entt::basic_reactive_mixin']]], - ['_7ebasic_5fregistry_7',['~basic_registry',['../classentt_1_1basic__registry.html#ad1a40bc7886d5e9382fc2d74d5c4574e',1,'entt::basic_registry']]], - ['_7ebasic_5fruntime_5fview_8',['~basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a8f374ce6d3122f0ddf71db2f8f8083a8',1,'entt::basic_runtime_view']]], - ['_7ebasic_5fscheduler_9',['~basic_scheduler',['../classentt_1_1basic__scheduler.html#a7a5de33957c30564f3f7e42c15b7305f',1,'entt::basic_scheduler']]], - ['_7ebasic_5fsigh_5fmixin_10',['~basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a8d4ca0355d2eb28044c0ba055f75d85b',1,'entt::basic_sigh_mixin']]], - ['_7ebasic_5fsnapshot_11',['~basic_snapshot',['../classentt_1_1basic__snapshot.html#a909db76e0eb7d320d1c65dafe490aa39',1,'entt::basic_snapshot']]], - ['_7ebasic_5fsnapshot_5floader_12',['~basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a5e4bdf75e5da11941472f3e389f0427b',1,'entt::basic_snapshot_loader']]], - ['_7ebasic_5fsparse_5fset_13',['~basic_sparse_set',['../classentt_1_1basic__sparse__set.html#ac56f048f614c38f14b19ba9cb27faa94',1,'entt::basic_sparse_set']]], - ['_7ebasic_5fstorage_14',['~basic_storage',['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage::~basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a4ac338f44a25f8b0fc8506beaa5c25ae',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::~basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a63a788bded60499df62a260d69ca3265',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage()']]], - ['_7ebasic_5ftable_15',['~basic_table',['../classentt_1_1basic__table.html#a609f8c87518ded045430421f53b4cdf7',1,'entt::basic_table']]], - ['_7ecompressed_5fpair_16',['~compressed_pair',['../classentt_1_1compressed__pair.html#a9831ac9ef2ffaebd79da3b1f40c36f23',1,'entt::compressed_pair']]], - ['_7edense_5fmap_17',['~dense_map',['../classentt_1_1dense__map.html#af2d0aa858937c74139ff7f48be924268',1,'entt::dense_map']]], - ['_7edense_5fset_18',['~dense_set',['../classentt_1_1dense__set.html#a878bf99193783308b365997219a34cbf',1,'entt::dense_set']]], - ['_7eemitter_19',['~emitter',['../classentt_1_1emitter.html#ae5dd15e29f22f081b59718866e481aba',1,'entt::emitter']]], - ['_7elocator_20',['~locator',['../classentt_1_1locator.html#a9f224d476bcb081004089f419a1ddde5',1,'entt::locator']]], - ['_7emeta_5fany_21',['~meta_any',['../classentt_1_1meta__any.html#a816dae3d4ed3e41fcb376ec5ec9c38c1',1,'entt::meta_any']]], - ['_7emeta_5fhandle_22',['~meta_handle',['../structentt_1_1meta__handle.html#a426657a6fd8aaffab9146c3e225bcd2d',1,'entt::meta_handle']]], - ['_7eprocess_23',['~process',['../classentt_1_1process.html#a2baf1b6aef37c1420a77cd3f8eadcf79',1,'entt::process']]], - ['_7eresource_24',['~resource',['../classentt_1_1resource.html#ace158e095d852c0159d66cc8d1548a76',1,'entt::resource']]], - ['_7eresource_5fcache_25',['~resource_cache',['../classentt_1_1resource__cache.html#aed5d19e621551b3c3a3b868757122aad',1,'entt::resource_cache']]], - ['_7escoped_5fconnection_26',['~scoped_connection',['../structentt_1_1scoped__connection.html#a8bc8b8630e2ad076216b6aca416ce32c',1,'entt::scoped_connection']]], - ['_7esigh_27',['~sigh',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a4082f9bf79371005dfb42069eb96a436',1,'entt::sigh< Ret(Args...), Allocator >']]] + ['_7ebasic_5freactive_5fmixin_5',['~basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a6bafc1c76baa384839156e2d672bcc43',1,'entt::basic_reactive_mixin']]], + ['_7ebasic_5fregistry_6',['~basic_registry',['../classentt_1_1basic__registry.html#ad1a40bc7886d5e9382fc2d74d5c4574e',1,'entt::basic_registry']]], + ['_7ebasic_5fruntime_5fview_7',['~basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a8f374ce6d3122f0ddf71db2f8f8083a8',1,'entt::basic_runtime_view']]], + ['_7ebasic_5fscheduler_8',['~basic_scheduler',['../classentt_1_1basic__scheduler.html#a7a5de33957c30564f3f7e42c15b7305f',1,'entt::basic_scheduler']]], + ['_7ebasic_5fsigh_5fmixin_9',['~basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a8d4ca0355d2eb28044c0ba055f75d85b',1,'entt::basic_sigh_mixin']]], + ['_7ebasic_5fsnapshot_10',['~basic_snapshot',['../classentt_1_1basic__snapshot.html#a909db76e0eb7d320d1c65dafe490aa39',1,'entt::basic_snapshot']]], + ['_7ebasic_5fsnapshot_5floader_11',['~basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a5e4bdf75e5da11941472f3e389f0427b',1,'entt::basic_snapshot_loader']]], + ['_7ebasic_5fsparse_5fset_12',['~basic_sparse_set',['../classentt_1_1basic__sparse__set.html#ac56f048f614c38f14b19ba9cb27faa94',1,'entt::basic_sparse_set']]], + ['_7ebasic_5fstorage_13',['~basic_storage',['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage::~basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a01a5accb1f6fe2c530a0623623d373e3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::~basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a63a788bded60499df62a260d69ca3265',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage() override=default'],['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage() override'],['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::~basic_storage()']]], + ['_7ebasic_5ftable_14',['~basic_table',['../classentt_1_1basic__table.html#a609f8c87518ded045430421f53b4cdf7',1,'entt::basic_table']]], + ['_7ecompressed_5fpair_15',['~compressed_pair',['../classentt_1_1compressed__pair.html#a9831ac9ef2ffaebd79da3b1f40c36f23',1,'entt::compressed_pair']]], + ['_7edense_5fmap_16',['~dense_map',['../classentt_1_1dense__map.html#af2d0aa858937c74139ff7f48be924268',1,'entt::dense_map']]], + ['_7edense_5fset_17',['~dense_set',['../classentt_1_1dense__set.html#a878bf99193783308b365997219a34cbf',1,'entt::dense_set']]], + ['_7eemitter_18',['~emitter',['../classentt_1_1emitter.html#ae5dd15e29f22f081b59718866e481aba',1,'entt::emitter']]], + ['_7elocator_19',['~locator',['../classentt_1_1locator.html#a9f224d476bcb081004089f419a1ddde5',1,'entt::locator']]], + ['_7emeta_5fany_20',['~meta_any',['../classentt_1_1meta__any.html#a816dae3d4ed3e41fcb376ec5ec9c38c1',1,'entt::meta_any']]], + ['_7emeta_5fhandle_21',['~meta_handle',['../structentt_1_1meta__handle.html#a426657a6fd8aaffab9146c3e225bcd2d',1,'entt::meta_handle']]], + ['_7eprocess_22',['~process',['../classentt_1_1process.html#a2baf1b6aef37c1420a77cd3f8eadcf79',1,'entt::process']]], + ['_7eresource_23',['~resource',['../classentt_1_1resource.html#ace158e095d852c0159d66cc8d1548a76',1,'entt::resource']]], + ['_7eresource_5fcache_24',['~resource_cache',['../classentt_1_1resource__cache.html#aed5d19e621551b3c3a3b868757122aad',1,'entt::resource_cache']]], + ['_7escoped_5fconnection_25',['~scoped_connection',['../structentt_1_1scoped__connection.html#a8bc8b8630e2ad076216b6aca416ce32c',1,'entt::scoped_connection']]] ]; diff --git a/search/all_2.js b/search/all_2.js index f55bce997..25bc4ebc2 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -8,126 +8,123 @@ var searchData= ['can_20i_20represent_20hierarchies_20with_20my_20components_5',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], ['can_5fcast_6',['can_cast',['../classentt_1_1meta__type.html#aae74bf7329f5e8a65b1b3ead750b71c9',1,'entt::meta_type']]], ['can_5fconvert_7',['can_convert',['../classentt_1_1meta__type.html#a9bf733b0f229dc8803db6fac2fde94d7',1,'entt::meta_type']]], - ['capacity_8',['capacity',['../classentt_1_1basic__table.html#a270b12a0f324ba7bf8e20d5748ff7a20',1,'entt::basic_table::capacity()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#aaec4bf1c339ee706c1e382f81e995116',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::capacity()'],['../classentt_1_1basic__sparse__set.html#a17b25baaceb061cd93da56f1ec24ee98',1,'entt::basic_sparse_set::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage::capacity()']]], + ['capacity_8',['capacity',['../classentt_1_1basic__table.html#a270b12a0f324ba7bf8e20d5748ff7a20',1,'entt::basic_table::capacity()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#aaec4bf1c339ee706c1e382f81e995116',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::capacity()'],['../classentt_1_1basic__sparse__set.html#a17b25baaceb061cd93da56f1ec24ee98',1,'entt::basic_sparse_set::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage< Entity, Entity, Allocator >::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::capacity()']]], ['cast_9',['cast',['../classentt_1_1meta__any.html#a33fefbf899923477ca1f803dd43f9921',1,'entt::meta_any::cast() const'],['../classentt_1_1meta__any.html#a2806db144d87feccbb5cdc1aaafd5af1',1,'entt::meta_any::cast()']]], - ['cbegin_10',['cbegin',['../classentt_1_1dense__map.html#a2cef5e32d1e4575669c9afcf6bcbedc5',1,'entt::dense_map::cbegin() const noexcept'],['../classentt_1_1dense__map.html#a9e9beebb937e95a40246455194c86c84',1,'entt::dense_map::cbegin(const size_type index) const'],['../classentt_1_1dense__set.html#a72d096d037d026cde4c1cae27dc326ba',1,'entt::dense_set::cbegin() const noexcept'],['../classentt_1_1dense__set.html#af66d225983e161e2f5b6bcd839dd295e',1,'entt::dense_set::cbegin(const size_type index) const'],['../classentt_1_1basic__table.html#ac94038f80b1af67d5c8123c939177e23',1,'entt::basic_table::cbegin()'],['../structentt_1_1iterable__adaptor.html#a9be3932fdbeb96b09de8254ccae0487e',1,'entt::iterable_adaptor::cbegin()'],['../classentt_1_1basic__sparse__set.html#a1934fc85ed01c3528c45ab9a76712fa7',1,'entt::basic_sparse_set::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage::cbegin()'],['../classentt_1_1resource__cache.html#a86e17d7b431149fcbb559963d4e2a0ab',1,'entt::resource_cache::cbegin()']]], - ['cend_11',['cend',['../classentt_1_1dense__map.html#a5123c811e7090df1a793e9bc1821d2e5',1,'entt::dense_map::cend() const noexcept'],['../classentt_1_1dense__map.html#a8125ea2706a6208565a4d67f0e6efbed',1,'entt::dense_map::cend(const size_type index) const'],['../classentt_1_1dense__set.html#a29506e74715ef7fa560eb4726cff34ee',1,'entt::dense_set::cend() const noexcept'],['../classentt_1_1dense__set.html#a8b88d43b273bf11855fe1df801f3a27c',1,'entt::dense_set::cend(const size_type index) const'],['../classentt_1_1basic__table.html#aebb5d0af9329cd7de5ec9c5be1d04c77',1,'entt::basic_table::cend()'],['../structentt_1_1iterable__adaptor.html#a1fac851b1471910446279bbda676f936',1,'entt::iterable_adaptor::cend()'],['../classentt_1_1basic__sparse__set.html#a9f0cc6e746fd49b0c7a0b8e5d8504fef',1,'entt::basic_sparse_set::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage::cend()'],['../classentt_1_1resource__cache.html#a3fc738c52e0da81c600dcbf66793358d',1,'entt::resource_cache::cend()']]], + ['cbegin_10',['cbegin',['../classentt_1_1dense__map.html#a2cef5e32d1e4575669c9afcf6bcbedc5',1,'entt::dense_map::cbegin() const noexcept'],['../classentt_1_1dense__map.html#a9e9beebb937e95a40246455194c86c84',1,'entt::dense_map::cbegin(const size_type index) const'],['../classentt_1_1dense__set.html#a72d096d037d026cde4c1cae27dc326ba',1,'entt::dense_set::cbegin() const noexcept'],['../classentt_1_1dense__set.html#af66d225983e161e2f5b6bcd839dd295e',1,'entt::dense_set::cbegin(const size_type index) const'],['../classentt_1_1basic__table.html#ac94038f80b1af67d5c8123c939177e23',1,'entt::basic_table::cbegin()'],['../structentt_1_1iterable__adaptor.html#a9be3932fdbeb96b09de8254ccae0487e',1,'entt::iterable_adaptor::cbegin()'],['../classentt_1_1basic__sparse__set.html#a1934fc85ed01c3528c45ab9a76712fa7',1,'entt::basic_sparse_set::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage::cbegin()'],['../classentt_1_1resource__cache.html#a86e17d7b431149fcbb559963d4e2a0ab',1,'entt::resource_cache::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage< Entity, Entity, Allocator >::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::cbegin()']]], + ['cend_11',['cend',['../classentt_1_1dense__map.html#a5123c811e7090df1a793e9bc1821d2e5',1,'entt::dense_map::cend() const noexcept'],['../classentt_1_1dense__map.html#a8125ea2706a6208565a4d67f0e6efbed',1,'entt::dense_map::cend(const size_type index) const'],['../classentt_1_1dense__set.html#a29506e74715ef7fa560eb4726cff34ee',1,'entt::dense_set::cend() const noexcept'],['../classentt_1_1dense__set.html#a8b88d43b273bf11855fe1df801f3a27c',1,'entt::dense_set::cend(const size_type index) const'],['../classentt_1_1basic__table.html#aebb5d0af9329cd7de5ec9c5be1d04c77',1,'entt::basic_table::cend()'],['../structentt_1_1iterable__adaptor.html#a1fac851b1471910446279bbda676f936',1,'entt::iterable_adaptor::cend()'],['../classentt_1_1basic__sparse__set.html#a9f0cc6e746fd49b0c7a0b8e5d8504fef',1,'entt::basic_sparse_set::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage::cend()'],['../classentt_1_1resource__cache.html#a3fc738c52e0da81c600dcbf66793358d',1,'entt::resource_cache::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage< Entity, Entity, Allocator >::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::cend()']]], ['changes_12',['Observe changes',['../md_docs_2md_2entity.html#observe-changes',1,'']]], ['characters_13',['Wide characters',['../md_docs_2md_2core.html#wide-characters',1,'']]], - ['children_14',['children',['../structentt_1_1basic__organizer_1_1vertex.html#a788f84a65b3147d1b1851035396f0065',1,'entt::basic_organizer::vertex']]], - ['choice_15',['choice',['../namespaceentt.html#a089f75043b082abca3ea144bce44e9ae',1,'entt']]], - ['choice_5ft_16',['choice_t',['../structentt_1_1choice__t.html',1,'entt']]], - ['choice_5ft_3c_200_20_3e_17',['choice_t< 0 >',['../structentt_1_1choice__t_3_010_01_4.html',1,'entt']]], - ['class_18',['The cache class',['../md_docs_2md_2resource.html#the-cache-class',1,'']]], - ['class_20to_20rule_20them_20all_19',['A base class to rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'']]], - ['class_20type_20',['Member class type',['../md_docs_2md_2core.html#member-class-type',1,'']]], - ['class_5ftype_21',['class_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a4223977fdb0b34434781d3dccee131c0',1,'entt::meta_template_traits< Clazz< Args... > >']]], - ['clear_22',['clear',['../classentt_1_1dense__map.html#a096c30be0af8e15902f5585c8d1208b7',1,'entt::dense_map::clear()'],['../classentt_1_1dense__set.html#a00f6e4f5dd97cbf86554ec14799d2865',1,'entt::dense_set::clear()'],['../classentt_1_1basic__table.html#a9823766a45bf78902f7c884f43cfef25',1,'entt::basic_table::clear()'],['../classentt_1_1basic__observer.html#a3b5f3a90bc4fb1683bb9953a3f7fbaa3',1,'entt::basic_observer::clear()'],['../classentt_1_1basic__organizer.html#a755aaa8b355f58aff645bd54d5674317',1,'entt::basic_organizer::clear()'],['../classentt_1_1basic__registry.html#a65ae6a29493a09a3c19e83748bae6a7e',1,'entt::basic_registry::clear()'],['../classentt_1_1basic__runtime__view.html#aba28ae42bd739ad6ffe2951f9213c7cd',1,'entt::basic_runtime_view::clear()'],['../classentt_1_1basic__sparse__set.html#a6560773b887906122d50a413aea1faad',1,'entt::basic_sparse_set::clear()'],['../classentt_1_1adjacency__matrix.html#a81931cd90488b3e5269217f7d6064c93',1,'entt::adjacency_matrix::clear()'],['../classentt_1_1basic__flow.html#a07719c4e2fa4e79f7381a7a3d30d75f2',1,'entt::basic_flow::clear()'],['../structentt_1_1basic__meta__sequence__container__traits.html#affb4a17eac2bdc76e5cb67a6c40695a7',1,'entt::basic_meta_sequence_container_traits::clear()'],['../structentt_1_1basic__meta__associative__container__traits.html#adf9bc27ae40de083f96c62fcc7bf5aa3',1,'entt::basic_meta_associative_container_traits::clear()'],['../classentt_1_1meta__sequence__container.html#afd684301f43565b7fc23b32b8b92bb6e',1,'entt::meta_sequence_container::clear()'],['../classentt_1_1meta__associative__container.html#af8d886eee95047430e1272ae419be3e4',1,'entt::meta_associative_container::clear()'],['../classentt_1_1basic__scheduler.html#ae92f6e2916a21e4225bb93cc747a90af',1,'entt::basic_scheduler::clear()'],['../classentt_1_1resource__cache.html#afc93c548b1c96d974a24e105ee6afd54',1,'entt::resource_cache::clear()'],['../classentt_1_1basic__dispatcher.html#a02c856afb5d117366cc81543bece0cc8',1,'entt::basic_dispatcher::clear(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a1d149a28b16f00d36400022d5eb5546a',1,'entt::basic_dispatcher::clear() noexcept'],['../classentt_1_1emitter.html#a5222e50d997a70afcdfc678a26d59ca4',1,'entt::emitter::clear()']]], - ['cmake_23',['CMake',['../index.html#cmake',1,'']]], - ['code_20example_24',['Code Example',['../index.html#code-example',1,'']]], - ['collect_25',['collect',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#af48a9fae33221a696db874e00516a7e1',1,'entt::sigh< Ret(Args...), Allocator >']]], - ['collector_26',['collector',['../namespaceentt.html#aea8b073b774362fe800d9cce3542927a',1,'entt']]], - ['combine_27',['combine',['../classentt_1_1basic__entt__traits.html#ad00358aea03a19c59efae2f8c005ae9b',1,'entt::basic_entt_traits']]], - ['common_5ftype_28',['common_type',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ae404710a7c3d6d5ca6b2066d0bffea07',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a51f55ba9c65468ef4f615fae26b881d7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__registry.html#a4d204691f73d602c9f46f3127caf8c81',1,'entt::basic_registry::common_type'],['../classentt_1_1basic__runtime__view.html#acc80c6c7de3e3020edeb51296050eb43',1,'entt::basic_runtime_view::common_type'],['../classentt_1_1basic__common__view.html#a49d50a6ed08c233e75b59bc3aed62e46',1,'entt::basic_common_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a0ff2cde1a50fddc6d0ea89f3afe9a1cb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type'],['../classentt_1_1basic__storage__view.html#af3a7a5c31f0b29e30fc86119e7f76135',1,'entt::basic_storage_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a353a69f58fbb7c660c140ca284d9d137',1,'entt::basic_view< get_t< Get >, exclude_t<> >::common_type']]], - ['compact_29',['compact',['../classentt_1_1basic__registry.html#ac9008dbd303d18cccf1ef7f279637347',1,'entt::basic_registry::compact()'],['../classentt_1_1basic__sparse__set.html#af4979ce48546cfcc705c4d23654faef2',1,'entt::basic_sparse_set::compact()']]], - ['compile_20time_20generator_30',['Compile-time generator',['../md_docs_2md_2core.html#compile-time-generator',1,'']]], - ['complete_20vs_20continuous_31',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], - ['component_32',['Component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'Duplicate storage for the same component'],['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'The Registry, the Entity and the Component']]], - ['component_20system_33',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], - ['component_20traits_34',['Component traits',['../md_docs_2md_2entity.html#component-traits',1,'']]], - ['component_5ftraits_35',['component_traits',['../structentt_1_1component__traits.html',1,'entt']]], - ['components_36',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], - ['compressed_20pair_37',['Compressed pair',['../md_docs_2md_2core.html#compressed-pair',1,'']]], - ['compressed_5fpair_38',['compressed_pair',['../classentt_1_1compressed__pair.html',1,'entt::compressed_pair< First, Second >'],['../classentt_1_1compressed__pair.html#a7aa6f4b0acb48a7303db63282e6a7ef0',1,'entt::compressed_pair::compressed_pair() noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)'],['../classentt_1_1compressed__pair.html#a2a25fcd5670e614428cbb8b929f02fca',1,'entt::compressed_pair::compressed_pair(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#a194a2b3c03cae823e6c98717ecbada50',1,'entt::compressed_pair::compressed_pair(compressed_pair &&other) noexcept=default'],['../classentt_1_1compressed__pair.html#a422c707156810ef9670a6d571165ffcb',1,'entt::compressed_pair::compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)'],['../classentt_1_1compressed__pair.html#a6d41221d79b9040ba42a3d80fc5eb376',1,'entt::compressed_pair::compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)'],['../namespaceentt.html#afd93ac21ff904a1ba357caf8ea40cd7f',1,'entt::compressed_pair(Type &&, Other &&) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >']]], - ['compressed_5fpair_3c_20container_5ftype_2c_20allocator_5ftype_20_3e_39',['compressed_pair< container_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_2c_20allocator_5ftype_20_3e_40',['compressed_pair< entt::dense_map, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_2c_20loader_5ftype_20_3e_41',['compressed_pair< entt::dense_map, loader_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20packed_5fcontainer_5ftype_2c_20key_5fequal_20_3e_42',['compressed_pair< packed_container_type, key_equal >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20size_5ftype_2c_20allocator_5ftype_20_3e_43',['compressed_pair< size_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20sparse_5fcontainer_5ftype_2c_20hasher_20_3e_44',['compressed_pair< sparse_container_type, hasher >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['concept_45',['Fulfill a concept',['../md_docs_2md_2poly.html#fulfill-a-concept',1,'']]], - ['concept_20and_20implementation_46',['Concept and implementation',['../md_docs_2md_2poly.html#concept-and-implementation',1,'']]], - ['concept_5ftype_47',['concept_type',['../classentt_1_1basic__poly.html#a71786016b64718d72167ff763f4793cf',1,'entt::basic_poly']]], - ['config_48',['pkg-config',['../index.html#pkg-config',1,'']]], - ['configuration_49',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], - ['conflicts_50',['Conflicts',['../md_docs_2md_2core.html#conflicts',1,'']]], - ['connect_51',['connect',['../classentt_1_1basic__observer.html#a55539384374b885ab505db2ce22f75a1',1,'entt::basic_observer::connect()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a97b4139915fc1c5528427b1a8685b134',1,'entt::delegate< Ret(Args...)>::connect() noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a541b15248c0722840117695e92e1317f',1,'entt::delegate< Ret(Args...)>::connect(Type &value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a96de957fc6a89a4d017930e084637717',1,'entt::delegate< Ret(Args...)>::connect(Type *value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#aca254b9fab39adc886b0a2266b39f88f',1,'entt::delegate< Ret(Args...)>::connect(function_type *function, const void *payload=nullptr) noexcept'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#acd54a96e6ac82ba8556879b7705322d9',1,'entt::sink< sigh< Ret(Args...), Allocator > >::connect()']]], - ['connect_5farg_52',['connect_arg',['../namespaceentt.html#a142bebb2be3b87a778b1932b3a267a57',1,'entt']]], - ['connect_5farg_5ft_53',['connect_arg_t',['../structentt_1_1connect__arg__t.html',1,'entt::connect_arg_t< auto >'],['../structentt_1_1connect__arg__t.html#a12a73ad585b91a695c130d132b8692cb',1,'entt::connect_arg_t::connect_arg_t()']]], - ['connection_54',['connection',['../classentt_1_1connection.html',1,'entt::connection'],['../classentt_1_1connection.html#a6cee78e145a8b503654cb0d564848749',1,'entt::connection::connection()']]], - ['connection_20helper_55',['Connection helper',['../md_docs_2md_2entity.html#connection-helper',1,'']]], - ['const_20non_20const_20and_20all_20in_20between_56',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], - ['const_20registry_57',['Const registry',['../md_docs_2md_2entity.html#const-registry',1,'']]], - ['const_5fhandle_58',['const_handle',['../namespaceentt.html#aed8389b9073df462feead9ce84ceeddb',1,'entt']]], - ['const_5fhandle_5fview_59',['const_handle_view',['../namespaceentt.html#a06c301e0976746f3f72b960f1c9c4675',1,'entt']]], - ['const_5fiterable_60',['const_iterable',['../classentt_1_1basic__registry.html#af28295b4eed2182fe6c7fd6287e98d8e',1,'entt::basic_registry::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage::const_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#ac3f3eb22dbf3436d5df0ba4034c7aacd',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a364dc9bf92cab24cc7a941fb126b80b0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable']]], - ['const_5fiterator_61',['const_iterator',['../classentt_1_1dense__map.html#a5c236223418b9ef327397424e2df24f8',1,'entt::dense_map::const_iterator'],['../classentt_1_1dense__set.html#a271e1e1f94361e8156c6de5a81746943',1,'entt::dense_set::const_iterator'],['../classentt_1_1basic__table.html#ae1496cee0ba4c70880f412270c8d92b1',1,'entt::basic_table::const_iterator'],['../classentt_1_1basic__sparse__set.html#a3688979d568f2450725d69aa89571f4f',1,'entt::basic_sparse_set::const_iterator'],['../classentt_1_1basic__storage.html#a0afc17d52410f06e0f166d3d8aa89a9d',1,'entt::basic_storage::const_iterator'],['../classentt_1_1resource__cache.html#a8eb72ec2d185a953cba0ac2f6e87d693',1,'entt::resource_cache::const_iterator']]], - ['const_5flocal_5fiterator_62',['const_local_iterator',['../classentt_1_1dense__map.html#ad699469dc43bfd00d9ea86c686afb394',1,'entt::dense_map::const_local_iterator'],['../classentt_1_1dense__set.html#a0be70471e45867b1d18aa9ee57376496',1,'entt::dense_set::const_local_iterator']]], - ['const_5fpointer_63',['const_pointer',['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage']]], - ['const_5freverse_5fiterable_64',['const_reverse_iterable',['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a8273404c552f27174ff8dc2aae0fb8af',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab9e678bee9335c265e4c65cc26ca6ea8',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable']]], - ['const_5freverse_5fiterator_65',['const_reverse_iterator',['../classentt_1_1dense__set.html#a5a9f859755987f8844be29ad84cc37b6',1,'entt::dense_set::const_reverse_iterator'],['../classentt_1_1basic__table.html#afbb42c3edb4e02b4db223ef02c4868d7',1,'entt::basic_table::const_reverse_iterator'],['../classentt_1_1basic__sparse__set.html#a27d66fda0fba1587a5f61e9c16f742f7',1,'entt::basic_sparse_set::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage::const_reverse_iterator']]], - ['const_5fruntime_5fview_66',['const_runtime_view',['../namespaceentt.html#ac3ffdaf3a0c8ebdbb2665f9ec1d63f83',1,'entt']]], - ['constant_67',['Integral constant',['../md_docs_2md_2core.html#integral-constant',1,'']]], - ['constants_20and_20enums_68',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], - ['constness_20as_69',['Constness as',['../md_docs_2md_2core.html#constness-as',1,'']]], - ['constness_5fas_70',['constness_as',['../structentt_1_1constness__as.html',1,'entt']]], - ['constness_5fas_3c_20to_2c_20const_20from_20_3e_71',['constness_as< To, const From >',['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html',1,'entt']]], - ['constness_5fas_5ft_72',['constness_as_t',['../namespaceentt.html#a13168ef82af733bfe584f34f29472d20',1,'entt']]], - ['constraints_73',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], - ['construct_74',['construct',['../classentt_1_1basic__entt__traits.html#a3d3c3e8fd538fb4394ea505dd0415ec5',1,'entt::basic_entt_traits::construct()'],['../classentt_1_1meta__type.html#acd24936afdaa36484a6e508d52f49663',1,'entt::meta_type::construct(meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a429d2a56a3aab671a76f87828e7f10f6',1,'entt::meta_type::construct(Args &&...args) const']]], - ['constructor_75',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], - ['container_20support_76',['Container support',['../md_docs_2md_2meta.html#container-support',1,'']]], - ['containers_77',['Containers',['../md_docs_2md_2container.html#containers',1,'']]], - ['containers_78',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], - ['contains_79',['contains',['../classentt_1_1dense__map.html#a4d884a2b7164b3df97d93dd2804222b0',1,'entt::dense_map::contains(const key_type &key) const'],['../classentt_1_1dense__map.html#a20be7fc1cde4a3ae47f22333e3220200',1,'entt::dense_map::contains(const Other &key) const'],['../classentt_1_1dense__set.html#afd77a2703fb72d17f382f5cb1aeb24b2',1,'entt::dense_set::contains(const value_type &value) const'],['../classentt_1_1dense__set.html#a2f15a3c269ae641901904a3806ee128a',1,'entt::dense_set::contains(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38f5f9228661385295bc7a576fb187fe',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a7c8602aabac11b094162e687a7a07668',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__runtime__view.html#a8ff8f51d9d329fd39633960e1f79994f',1,'entt::basic_runtime_view::contains()'],['../classentt_1_1basic__continuous__loader.html#ab682c079d9ddf61f04e121d6fab421d7',1,'entt::basic_continuous_loader::contains()'],['../classentt_1_1basic__sparse__set.html#a97b47cbaea3fc30442fa3e6366766c86',1,'entt::basic_sparse_set::contains()'],['../classentt_1_1basic__common__view.html#a5123427d3555f05d61b996fe518b78de',1,'entt::basic_common_view::contains()'],['../classentt_1_1basic__storage__view.html#a32339020ae42bc9153a7f283c2e2939b',1,'entt::basic_storage_view::contains()'],['../classentt_1_1adjacency__matrix.html#a783833a34672bcbd0afab063ab417a97',1,'entt::adjacency_matrix::contains()'],['../classentt_1_1resource__cache.html#aff744458b981ee509a7381ffdf544522',1,'entt::resource_cache::contains()'],['../classentt_1_1emitter.html#a6bced239a3a07f86dc759ebc1a71813a',1,'entt::emitter::contains()']]], - ['contents_80',['Contents',['../md_docs_2md_2config.html#table-of-contents',1,'Table of Contents'],['../md_docs_2md_2container.html#table-of-contents-1',1,'Table of Contents'],['../md_docs_2md_2core.html#table-of-contents-2',1,'Table of Contents'],['../md_docs_2md_2entity.html#table-of-contents-3',1,'Table of Contents'],['../md_docs_2md_2faq.html#table-of-contents-4',1,'Table of Contents'],['../md_docs_2md_2graph.html#table-of-contents-5',1,'Table of Contents'],['../md_docs_2md_2lib.html#table-of-contents-6',1,'Table of Contents'],['../md_docs_2md_2links.html#table-of-contents-7',1,'Table of Contents'],['../md_docs_2md_2locator.html#table-of-contents-8',1,'Table of Contents'],['../md_docs_2md_2meta.html#table-of-contents-9',1,'Table of Contents'],['../md_docs_2md_2poly.html#table-of-contents-10',1,'Table of Contents'],['../md_docs_2md_2process.html#table-of-contents-11',1,'Table of Contents'],['../md_docs_2md_2reference.html#table-of-contents-12',1,'Table of Contents'],['../md_docs_2md_2resource.html#table-of-contents-13',1,'Table of Contents'],['../md_docs_2md_2signal.html#table-of-contents-14',1,'Table of Contents'],['../md_docs_2md_2unreal.html#table-of-contents-15',1,'Table of Contents'],['../index.html#table-of-contents-16',1,'Table of Contents']]], - ['context_81',['context',['../classentt_1_1basic__registry.html#af26a23d71ff7ba51457dc54021b41be7',1,'entt::basic_registry']]], - ['context_82',['Context',['../md_docs_2md_2lib.html#meta-context',1,'Meta context'],['../md_docs_2md_2meta.html#meta-context-1',1,'Meta context']]], - ['context_20variables_83',['Context variables',['../md_docs_2md_2entity.html#context-variables',1,'']]], - ['contiguous_84',['contiguous',['../classentt_1_1basic__sparse__set.html#a736ba15d734ea65f18e3c1fd5d748e5e',1,'entt::basic_sparse_set']]], - ['continuous_85',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], - ['continuous_20loader_86',['Continuous loader',['../md_docs_2md_2entity.html#continuous-loader',1,'']]], - ['continuous_5floader_87',['continuous_loader',['../namespaceentt.html#ae827dd63b5553f701ae049a1cf95ef0c',1,'entt']]], - ['contributors_88',['Contributors',['../index.html#contributors',1,'']]], - ['conv_89',['conv',['../classentt_1_1meta__factory.html#a3d01a8256999f198fe5ec829d7b0a5eb',1,'entt::meta_factory::conv() noexcept'],['../classentt_1_1meta__factory.html#a96a4260b25bd05c0d6e8a7c405f669c0',1,'entt::meta_factory::conv() noexcept']]], - ['conversions_90',['Automatic conversions',['../md_docs_2md_2meta.html#automatic-conversions',1,'']]], - ['cooperative_20scheduler_91',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], - ['copyable_20types_92',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], - ['core_20functionalities_93',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], - ['count_94',['count',['../classentt_1_1dense__map.html#a4b5f56217b3b8eae9ad34334df1a931d',1,'entt::dense_map::count(const key_type &key) const'],['../classentt_1_1dense__map.html#a3858017ba66ff9989fe2427065dd6d97',1,'entt::dense_map::count(const Other &key) const'],['../classentt_1_1dense__set.html#a8d3596e86387eb57317a565f23b3d7b9',1,'entt::dense_set::count(const value_type &key) const'],['../classentt_1_1dense__set.html#ae07fa72742e52a2a2823252487af5263',1,'entt::dense_set::count(const Other &key) const']]], - ['course_3a_20configuration_95',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], - ['course_3a_20containers_96',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], - ['course_3a_20cooperative_20scheduler_97',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], - ['course_3a_20core_20functionalities_98',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], - ['course_3a_20entity_20component_20system_99',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], - ['course_3a_20events_20signals_20and_20everything_20in_20between_100',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['course_3a_20graph_101',['Crash Course: graph',['../md_docs_2md_2graph.html',1,'']]], - ['course_3a_20poly_102',['Crash Course: poly',['../md_docs_2md_2poly.html',1,'']]], - ['course_3a_20resource_20management_103',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], - ['course_3a_20runtime_20reflection_20system_104',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], - ['course_3a_20service_20locator_105',['Crash Course: service locator',['../md_docs_2md_2locator.html',1,'']]], - ['cpp17_106',['Enable Cpp17',['../md_docs_2md_2unreal.html#enable-cpp17',1,'']]], - ['crash_20course_3a_20configuration_107',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], - ['crash_20course_3a_20containers_108',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], - ['crash_20course_3a_20cooperative_20scheduler_109',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], - ['crash_20course_3a_20core_20functionalities_110',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], - ['crash_20course_3a_20entity_20component_20system_111',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], - ['crash_20course_3a_20events_20signals_20and_20everything_20in_20between_112',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['crash_20course_3a_20graph_113',['Crash Course: graph',['../md_docs_2md_2graph.html',1,'']]], - ['crash_20course_3a_20poly_114',['Crash Course: poly',['../md_docs_2md_2poly.html',1,'']]], - ['crash_20course_3a_20resource_20management_115',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], - ['crash_20course_3a_20runtime_20reflection_20system_116',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], - ['crash_20course_3a_20service_20locator_117',['Crash Course: service locator',['../md_docs_2md_2locator.html',1,'']]], - ['crbegin_118',['crbegin',['../classentt_1_1dense__set.html#a0ecb4af728c919ff111a03cf79bc4dd3',1,'entt::dense_set::crbegin()'],['../classentt_1_1basic__table.html#aa16ac55ee8d1274ad1e118d0d91102d0',1,'entt::basic_table::crbegin()'],['../classentt_1_1basic__sparse__set.html#ad57b82c12d92837a14d8904e82eb49a9',1,'entt::basic_sparse_set::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage::crbegin()']]], - ['create_119',['create',['../classentt_1_1basic__registry.html#a4ab0e3ed31fb0c455c07d0541941108a',1,'entt::basic_registry::create()'],['../classentt_1_1basic__registry.html#a6366705dc2f7db448434ce17e1403884',1,'entt::basic_registry::create(const entity_type hint)'],['../classentt_1_1basic__registry.html#a5dee7d7c5329e5fd29bcfbe4a5a4842a',1,'entt::basic_registry::create(It first, It last)']]], - ['create_20once_20reuse_20many_20times_120',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], - ['cref_121',['cref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a1e67f2ff0161fbaf51eccefa9abc6ad2',1,'entt']]], - ['crend_122',['crend',['../classentt_1_1dense__set.html#ade757a21f4fc8d6db7bc594ad8157a59',1,'entt::dense_set::crend()'],['../classentt_1_1basic__table.html#a663ceb2e3cf385ba2bd34c98a8d8e13e',1,'entt::basic_table::crend()'],['../classentt_1_1basic__sparse__set.html#ab28f2f1c7bbf2861f4a3e7602a317b96',1,'entt::basic_sparse_set::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage::crend()']]], - ['ctor_123',['ctor',['../classentt_1_1meta__factory.html#a547609767a2953357ce85fc9f0997f72',1,'entt::meta_factory::ctor() noexcept'],['../classentt_1_1meta__factory.html#a1ecd9216d714d1564e9ad7298274e80f',1,'entt::meta_factory::ctor() noexcept']]], - ['ctx_124',['ctx',['../classentt_1_1basic__registry.html#a063e7f4879b50fcd332702bc8cc0fa61',1,'entt::basic_registry::ctx() noexcept'],['../classentt_1_1basic__registry.html#a4ad88b333d9c2ac606b322532a921e40',1,'entt::basic_registry::ctx() const noexcept']]], - ['current_125',['current',['../classentt_1_1basic__registry.html#ad953b537b28f0f8d590e77b81faa1941',1,'entt::basic_registry::current()'],['../classentt_1_1basic__sparse__set.html#a96cf0ed9f37ededbd40f6a8c38c1940b',1,'entt::basic_sparse_set::current()']]], - ['current_5ftype_126',['current_type',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#ac7c32cf26795aa4fc08d21597c68bc3d',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >']]], - ['custom_127',['custom',['../classentt_1_1meta__factory.html#a08a6448ec41cf5e1c7b3e084a91a0ef3',1,'entt::meta_factory::custom()'],['../structentt_1_1meta__data.html#aa7116efed3b5ed7c707d21e6cf55bbfd',1,'entt::meta_data::custom()'],['../structentt_1_1meta__func.html#aa5b5bee63f5eb18605f8335a28ec6d01',1,'entt::meta_func::custom()'],['../classentt_1_1meta__type.html#a22e8791761629cd5e027ccfa4bd4fa69',1,'entt::meta_type::custom()']]], - ['custom_20data_128',['Custom data',['../md_docs_2md_2meta.html#custom-data',1,'']]], - ['custom_20entity_20identifiers_3a_20yay_20or_20nay_129',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]] + ['choice_14',['choice',['../namespaceentt.html#a089f75043b082abca3ea144bce44e9ae',1,'entt']]], + ['choice_5ft_15',['choice_t',['../structentt_1_1choice__t.html',1,'entt']]], + ['choice_5ft_3c_200_20_3e_16',['choice_t< 0 >',['../structentt_1_1choice__t_3_010_01_4.html',1,'entt']]], + ['class_17',['The cache class',['../md_docs_2md_2resource.html#the-cache-class',1,'']]], + ['class_20to_20rule_20them_20all_18',['A base class to rule them all',['../md_docs_2md_2entity.html#a-base-class-to-rule-them-all',1,'']]], + ['class_20type_19',['Member class type',['../md_docs_2md_2core.html#member-class-type',1,'']]], + ['class_5ftype_20',['class_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a4223977fdb0b34434781d3dccee131c0',1,'entt::meta_template_traits< Clazz< Args... > >']]], + ['clear_21',['clear',['../classentt_1_1dense__map.html#a096c30be0af8e15902f5585c8d1208b7',1,'entt::dense_map::clear()'],['../classentt_1_1dense__set.html#a00f6e4f5dd97cbf86554ec14799d2865',1,'entt::dense_set::clear()'],['../classentt_1_1basic__table.html#a9823766a45bf78902f7c884f43cfef25',1,'entt::basic_table::clear()'],['../classentt_1_1basic__organizer.html#a755aaa8b355f58aff645bd54d5674317',1,'entt::basic_organizer::clear()'],['../classentt_1_1basic__registry.html#a65ae6a29493a09a3c19e83748bae6a7e',1,'entt::basic_registry::clear()'],['../classentt_1_1basic__runtime__view.html#aba28ae42bd739ad6ffe2951f9213c7cd',1,'entt::basic_runtime_view::clear()'],['../classentt_1_1basic__sparse__set.html#a6560773b887906122d50a413aea1faad',1,'entt::basic_sparse_set::clear()'],['../classentt_1_1adjacency__matrix.html#a81931cd90488b3e5269217f7d6064c93',1,'entt::adjacency_matrix::clear()'],['../classentt_1_1basic__flow.html#a07719c4e2fa4e79f7381a7a3d30d75f2',1,'entt::basic_flow::clear()'],['../structentt_1_1basic__meta__sequence__container__traits.html#affb4a17eac2bdc76e5cb67a6c40695a7',1,'entt::basic_meta_sequence_container_traits::clear()'],['../structentt_1_1basic__meta__associative__container__traits.html#adf9bc27ae40de083f96c62fcc7bf5aa3',1,'entt::basic_meta_associative_container_traits::clear()'],['../classentt_1_1meta__sequence__container.html#afd684301f43565b7fc23b32b8b92bb6e',1,'entt::meta_sequence_container::clear()'],['../classentt_1_1meta__associative__container.html#af8d886eee95047430e1272ae419be3e4',1,'entt::meta_associative_container::clear()'],['../classentt_1_1basic__scheduler.html#ae92f6e2916a21e4225bb93cc747a90af',1,'entt::basic_scheduler::clear()'],['../classentt_1_1resource__cache.html#afc93c548b1c96d974a24e105ee6afd54',1,'entt::resource_cache::clear()'],['../classentt_1_1basic__dispatcher.html#a02c856afb5d117366cc81543bece0cc8',1,'entt::basic_dispatcher::clear(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a1d149a28b16f00d36400022d5eb5546a',1,'entt::basic_dispatcher::clear() noexcept'],['../classentt_1_1emitter.html#a5222e50d997a70afcdfc678a26d59ca4',1,'entt::emitter::clear()']]], + ['cmake_22',['CMake',['../index.html#cmake',1,'']]], + ['code_20example_23',['Code Example',['../index.html#code-example',1,'']]], + ['combine_24',['combine',['../classentt_1_1basic__entt__traits.html#ad00358aea03a19c59efae2f8c005ae9b',1,'entt::basic_entt_traits']]], + ['common_5ftype_25',['common_type',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ae404710a7c3d6d5ca6b2066d0bffea07',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a51f55ba9c65468ef4f615fae26b881d7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__registry.html#a4d204691f73d602c9f46f3127caf8c81',1,'entt::basic_registry::common_type'],['../classentt_1_1basic__runtime__view.html#acc80c6c7de3e3020edeb51296050eb43',1,'entt::basic_runtime_view::common_type'],['../classentt_1_1basic__common__view.html#ad2a9d4a491583d833ffc421a3913f982',1,'entt::basic_common_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a0ff2cde1a50fddc6d0ea89f3afe9a1cb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type'],['../classentt_1_1basic__storage__view.html#af3a7a5c31f0b29e30fc86119e7f76135',1,'entt::basic_storage_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a353a69f58fbb7c660c140ca284d9d137',1,'entt::basic_view< get_t< Get >, exclude_t<> >::common_type']]], + ['compact_26',['compact',['../classentt_1_1basic__registry.html#ac9008dbd303d18cccf1ef7f279637347',1,'entt::basic_registry::compact()'],['../classentt_1_1basic__sparse__set.html#af4979ce48546cfcc705c4d23654faef2',1,'entt::basic_sparse_set::compact()']]], + ['compile_20time_20generator_27',['Compile-time generator',['../md_docs_2md_2core.html#compile-time-generator',1,'']]], + ['complete_20vs_20continuous_28',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], + ['component_29',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['component_30',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], + ['component_20system_31',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], + ['component_20traits_32',['Component traits',['../md_docs_2md_2entity.html#component-traits',1,'']]], + ['component_5ftraits_33',['component_traits',['../structentt_1_1component__traits.html',1,'entt']]], + ['component_5ftraits_3c_20type_2c_20entity_20_3e_34',['component_traits< Type, Entity >',['../structentt_1_1component__traits.html',1,'entt']]], + ['components_35',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], + ['compressed_20pair_36',['Compressed pair',['../md_docs_2md_2core.html#compressed-pair',1,'']]], + ['compressed_5fpair_37',['compressed_pair',['../classentt_1_1compressed__pair.html',1,'entt::compressed_pair< First, Second >'],['../classentt_1_1compressed__pair.html#a7aa6f4b0acb48a7303db63282e6a7ef0',1,'entt::compressed_pair::compressed_pair() noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)'],['../classentt_1_1compressed__pair.html#a2a25fcd5670e614428cbb8b929f02fca',1,'entt::compressed_pair::compressed_pair(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#a194a2b3c03cae823e6c98717ecbada50',1,'entt::compressed_pair::compressed_pair(compressed_pair &&other) noexcept=default'],['../classentt_1_1compressed__pair.html#a422c707156810ef9670a6d571165ffcb',1,'entt::compressed_pair::compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)'],['../classentt_1_1compressed__pair.html#a6d41221d79b9040ba42a3d80fc5eb376',1,'entt::compressed_pair::compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)'],['../namespaceentt.html#afd93ac21ff904a1ba357caf8ea40cd7f',1,'entt::compressed_pair(Type &&, Other &&) -> compressed_pair< std::decay_t< Type >, std::decay_t< Other > >']]], + ['compressed_5fpair_3c_20container_5ftype_2c_20allocator_5ftype_20_3e_38',['compressed_pair< container_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_3c_20id_5ftype_2c_20typename_20loader_3a_3aresult_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_2c_20loader_5ftype_20_3e_39',['compressed_pair< entt::dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >, loader_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_3c_20key_5ftype_2c_20mapped_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_2c_20allocator_5ftype_20_3e_40',['compressed_pair< entt::dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20packed_5fcontainer_5ftype_2c_20key_5fequal_20_3e_41',['compressed_pair< packed_container_type, key_equal >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20size_5ftype_2c_20allocator_5ftype_20_3e_42',['compressed_pair< size_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20sparse_5fcontainer_5ftype_2c_20hasher_20_3e_43',['compressed_pair< sparse_container_type, hasher >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['concept_44',['Fulfill a concept',['../md_docs_2md_2poly.html#fulfill-a-concept',1,'']]], + ['concept_20and_20implementation_45',['Concept and implementation',['../md_docs_2md_2poly.html#concept-and-implementation',1,'']]], + ['concept_5ftype_46',['concept_type',['../classentt_1_1basic__poly.html#a71786016b64718d72167ff763f4793cf',1,'entt::basic_poly']]], + ['config_47',['pkg-config',['../index.html#pkg-config',1,'']]], + ['configuration_48',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], + ['conflicts_49',['Conflicts',['../md_docs_2md_2core.html#conflicts',1,'']]], + ['connect_5farg_50',['connect_arg',['../namespaceentt.html#a142bebb2be3b87a778b1932b3a267a57',1,'entt']]], + ['connect_5farg_5ft_51',['connect_arg_t',['../structentt_1_1connect__arg__t.html',1,'entt::connect_arg_t< auto >'],['../structentt_1_1connect__arg__t.html#a12a73ad585b91a695c130d132b8692cb',1,'entt::connect_arg_t::connect_arg_t()']]], + ['connection_52',['connection',['../classentt_1_1connection.html',1,'entt::connection'],['../classentt_1_1connection.html#a6cee78e145a8b503654cb0d564848749',1,'entt::connection::connection()']]], + ['connection_20helper_53',['Connection helper',['../md_docs_2md_2entity.html#connection-helper',1,'']]], + ['const_20and_20all_20in_20between_54',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], + ['const_20non_20const_20and_20all_20in_20between_55',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], + ['const_20registry_56',['Const registry',['../md_docs_2md_2entity.html#const-registry',1,'']]], + ['const_5fhandle_57',['const_handle',['../namespaceentt.html#aed8389b9073df462feead9ce84ceeddb',1,'entt']]], + ['const_5fhandle_5fview_58',['const_handle_view',['../namespaceentt.html#a06c301e0976746f3f72b960f1c9c4675',1,'entt']]], + ['const_5fiterable_59',['const_iterable',['../classentt_1_1basic__registry.html#af28295b4eed2182fe6c7fd6287e98d8e',1,'entt::basic_registry::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage::const_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a9ad105c8d5105ab086e364d575f16208',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a364dc9bf92cab24cc7a941fb126b80b0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterable']]], + ['const_5fiterator_60',['const_iterator',['../classentt_1_1dense__map.html#a5c236223418b9ef327397424e2df24f8',1,'entt::dense_map::const_iterator'],['../classentt_1_1dense__set.html#a271e1e1f94361e8156c6de5a81746943',1,'entt::dense_set::const_iterator'],['../classentt_1_1basic__table.html#ae1496cee0ba4c70880f412270c8d92b1',1,'entt::basic_table::const_iterator'],['../classentt_1_1basic__sparse__set.html#a3688979d568f2450725d69aa89571f4f',1,'entt::basic_sparse_set::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage::const_iterator'],['../classentt_1_1resource__cache.html#a8eb72ec2d185a953cba0ac2f6e87d693',1,'entt::resource_cache::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterator']]], + ['const_5flocal_5fiterator_61',['const_local_iterator',['../classentt_1_1dense__map.html#ad699469dc43bfd00d9ea86c686afb394',1,'entt::dense_map::const_local_iterator'],['../classentt_1_1dense__set.html#a0be70471e45867b1d18aa9ee57376496',1,'entt::dense_set::const_local_iterator']]], + ['const_5fpointer_62',['const_pointer',['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage::const_pointer'],['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage< Entity, Entity, Allocator >::const_pointer'],['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_pointer']]], + ['const_5freverse_5fiterable_63',['const_reverse_iterable',['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#adc7b919c1b1a3d7eb47923a05b2399f3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab9e678bee9335c265e4c65cc26ca6ea8',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable'],['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable'],['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterable']]], + ['const_5freverse_5fiterator_64',['const_reverse_iterator',['../classentt_1_1dense__set.html#a5a9f859755987f8844be29ad84cc37b6',1,'entt::dense_set::const_reverse_iterator'],['../classentt_1_1basic__table.html#afbb42c3edb4e02b4db223ef02c4868d7',1,'entt::basic_table::const_reverse_iterator'],['../classentt_1_1basic__sparse__set.html#a27d66fda0fba1587a5f61e9c16f742f7',1,'entt::basic_sparse_set::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterator']]], + ['const_5fruntime_5fview_65',['const_runtime_view',['../namespaceentt.html#ac3ffdaf3a0c8ebdbb2665f9ec1d63f83',1,'entt']]], + ['constant_66',['Integral constant',['../md_docs_2md_2core.html#integral-constant',1,'']]], + ['constants_20and_20enums_67',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], + ['constness_20as_68',['Constness as',['../md_docs_2md_2core.html#constness-as',1,'']]], + ['constness_5fas_69',['constness_as',['../structentt_1_1constness__as.html',1,'entt']]], + ['constness_5fas_3c_20to_2c_20const_20from_20_3e_70',['constness_as< To, const From >',['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html',1,'entt']]], + ['constness_5fas_5ft_71',['constness_as_t',['../namespaceentt.html#a13168ef82af733bfe584f34f29472d20',1,'entt']]], + ['constraints_72',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], + ['construct_73',['construct',['../classentt_1_1basic__entt__traits.html#a3d3c3e8fd538fb4394ea505dd0415ec5',1,'entt::basic_entt_traits::construct()'],['../classentt_1_1meta__type.html#acd24936afdaa36484a6e508d52f49663',1,'entt::meta_type::construct(meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a429d2a56a3aab671a76f87828e7f10f6',1,'entt::meta_type::construct(Args &&...args) const']]], + ['constructor_74',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], + ['container_20support_75',['Container support',['../md_docs_2md_2meta.html#container-support',1,'']]], + ['containers_76',['Containers',['../md_docs_2md_2container.html#containers',1,'']]], + ['containers_77',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], + ['contains_78',['contains',['../classentt_1_1dense__map.html#a4d884a2b7164b3df97d93dd2804222b0',1,'entt::dense_map::contains(const key_type &key) const'],['../classentt_1_1dense__map.html#a20be7fc1cde4a3ae47f22333e3220200',1,'entt::dense_map::contains(const Other &key) const'],['../classentt_1_1dense__set.html#afd77a2703fb72d17f382f5cb1aeb24b2',1,'entt::dense_set::contains(const value_type &value) const'],['../classentt_1_1dense__set.html#a2f15a3c269ae641901904a3806ee128a',1,'entt::dense_set::contains(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38f5f9228661385295bc7a576fb187fe',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a7c8602aabac11b094162e687a7a07668',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__runtime__view.html#a8ff8f51d9d329fd39633960e1f79994f',1,'entt::basic_runtime_view::contains()'],['../classentt_1_1basic__continuous__loader.html#ab682c079d9ddf61f04e121d6fab421d7',1,'entt::basic_continuous_loader::contains()'],['../classentt_1_1basic__sparse__set.html#a97b47cbaea3fc30442fa3e6366766c86',1,'entt::basic_sparse_set::contains()'],['../classentt_1_1basic__common__view.html#a5639cffd5495c9dd1a94cc2a4839fe9f',1,'entt::basic_common_view::contains()'],['../classentt_1_1basic__storage__view.html#a32339020ae42bc9153a7f283c2e2939b',1,'entt::basic_storage_view::contains()'],['../classentt_1_1adjacency__matrix.html#a783833a34672bcbd0afab063ab417a97',1,'entt::adjacency_matrix::contains()'],['../classentt_1_1resource__cache.html#aff744458b981ee509a7381ffdf544522',1,'entt::resource_cache::contains()'],['../classentt_1_1emitter.html#a6bced239a3a07f86dc759ebc1a71813a',1,'entt::emitter::contains()']]], + ['contents_79',['Contents',['../md_docs_2md_2config.html#table-of-contents',1,'Table of Contents'],['../md_docs_2md_2container.html#table-of-contents-1',1,'Table of Contents'],['../md_docs_2md_2core.html#table-of-contents-2',1,'Table of Contents'],['../md_docs_2md_2entity.html#table-of-contents-3',1,'Table of Contents'],['../md_docs_2md_2faq.html#table-of-contents-4',1,'Table of Contents'],['../md_docs_2md_2graph.html#table-of-contents-5',1,'Table of Contents'],['../md_docs_2md_2lib.html#table-of-contents-6',1,'Table of Contents'],['../md_docs_2md_2links.html#table-of-contents-7',1,'Table of Contents'],['../md_docs_2md_2locator.html#table-of-contents-8',1,'Table of Contents'],['../md_docs_2md_2meta.html#table-of-contents-9',1,'Table of Contents'],['../md_docs_2md_2poly.html#table-of-contents-10',1,'Table of Contents'],['../md_docs_2md_2process.html#table-of-contents-11',1,'Table of Contents'],['../md_docs_2md_2reference.html#table-of-contents-12',1,'Table of Contents'],['../md_docs_2md_2resource.html#table-of-contents-13',1,'Table of Contents'],['../md_docs_2md_2signal.html#table-of-contents-14',1,'Table of Contents'],['../md_docs_2md_2unreal.html#table-of-contents-15',1,'Table of Contents'],['../index.html#table-of-contents-16',1,'Table of Contents']]], + ['context_80',['context',['../classentt_1_1basic__registry.html#af26a23d71ff7ba51457dc54021b41be7',1,'entt::basic_registry::context'],['../classentt_1_1meta__any.html#af9f2d87f697d3e78b5bf2100e4cf8cae',1,'entt::meta_any::context()'],['../md_docs_2md_2lib.html#meta-context',1,'Meta context'],['../md_docs_2md_2meta.html#meta-context-1',1,'Meta context']]], + ['context_20variables_81',['Context variables',['../md_docs_2md_2entity.html#context-variables',1,'']]], + ['contiguous_82',['contiguous',['../classentt_1_1basic__sparse__set.html#a736ba15d734ea65f18e3c1fd5d748e5e',1,'entt::basic_sparse_set']]], + ['continuous_83',['Snapshot: complete vs continuous',['../md_docs_2md_2entity.html#snapshot-complete-vs-continuous',1,'']]], + ['continuous_20loader_84',['Continuous loader',['../md_docs_2md_2entity.html#continuous-loader',1,'']]], + ['continuous_5floader_85',['continuous_loader',['../namespaceentt.html#ae827dd63b5553f701ae049a1cf95ef0c',1,'entt']]], + ['contributors_86',['Contributors',['../index.html#contributors',1,'']]], + ['conv_87',['conv',['../classentt_1_1meta__factory.html#a3d01a8256999f198fe5ec829d7b0a5eb',1,'entt::meta_factory::conv() noexcept'],['../classentt_1_1meta__factory.html#a96a4260b25bd05c0d6e8a7c405f669c0',1,'entt::meta_factory::conv() noexcept']]], + ['conversions_88',['Automatic conversions',['../md_docs_2md_2meta.html#automatic-conversions',1,'']]], + ['cooperative_20scheduler_89',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], + ['copyable_20types_90',['The standard and the non-copyable types',['../md_docs_2md_2faq.html#the-standard-and-the-non-copyable-types',1,'']]], + ['core_20functionalities_91',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], + ['count_92',['count',['../classentt_1_1dense__map.html#a4b5f56217b3b8eae9ad34334df1a931d',1,'entt::dense_map::count(const key_type &key) const'],['../classentt_1_1dense__map.html#a3858017ba66ff9989fe2427065dd6d97',1,'entt::dense_map::count(const Other &key) const'],['../classentt_1_1dense__set.html#a8d3596e86387eb57317a565f23b3d7b9',1,'entt::dense_set::count(const value_type &key) const'],['../classentt_1_1dense__set.html#ae07fa72742e52a2a2823252487af5263',1,'entt::dense_set::count(const Other &key) const']]], + ['course_3a_20configuration_93',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], + ['course_3a_20containers_94',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], + ['course_3a_20cooperative_20scheduler_95',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], + ['course_3a_20core_20functionalities_96',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], + ['course_3a_20entity_20component_20system_97',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], + ['course_3a_20events_20signals_20and_20everything_20in_20between_98',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['course_3a_20graph_99',['Crash Course: graph',['../md_docs_2md_2graph.html',1,'']]], + ['course_3a_20poly_100',['Crash Course: poly',['../md_docs_2md_2poly.html',1,'']]], + ['course_3a_20resource_20management_101',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], + ['course_3a_20runtime_20reflection_20system_102',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], + ['course_3a_20service_20locator_103',['Crash Course: service locator',['../md_docs_2md_2locator.html',1,'']]], + ['cpp17_104',['Enable Cpp17',['../md_docs_2md_2unreal.html#enable-cpp17',1,'']]], + ['crash_20course_3a_20configuration_105',['Crash Course: configuration',['../md_docs_2md_2config.html',1,'']]], + ['crash_20course_3a_20containers_106',['Crash Course: containers',['../md_docs_2md_2container.html',1,'']]], + ['crash_20course_3a_20cooperative_20scheduler_107',['Crash Course: cooperative scheduler',['../md_docs_2md_2process.html',1,'']]], + ['crash_20course_3a_20core_20functionalities_108',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], + ['crash_20course_3a_20entity_20component_20system_109',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], + ['crash_20course_3a_20events_20signals_20and_20everything_20in_20between_110',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['crash_20course_3a_20graph_111',['Crash Course: graph',['../md_docs_2md_2graph.html',1,'']]], + ['crash_20course_3a_20poly_112',['Crash Course: poly',['../md_docs_2md_2poly.html',1,'']]], + ['crash_20course_3a_20resource_20management_113',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], + ['crash_20course_3a_20runtime_20reflection_20system_114',['Crash Course: runtime reflection system',['../md_docs_2md_2meta.html',1,'']]], + ['crash_20course_3a_20service_20locator_115',['Crash Course: service locator',['../md_docs_2md_2locator.html',1,'']]], + ['crbegin_116',['crbegin',['../classentt_1_1dense__set.html#a0ecb4af728c919ff111a03cf79bc4dd3',1,'entt::dense_set::crbegin()'],['../classentt_1_1basic__table.html#aa16ac55ee8d1274ad1e118d0d91102d0',1,'entt::basic_table::crbegin()'],['../classentt_1_1basic__sparse__set.html#ad57b82c12d92837a14d8904e82eb49a9',1,'entt::basic_sparse_set::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage< Entity, Entity, Allocator >::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::crbegin()']]], + ['create_117',['create',['../classentt_1_1basic__registry.html#a4ab0e3ed31fb0c455c07d0541941108a',1,'entt::basic_registry::create()'],['../classentt_1_1basic__registry.html#a6366705dc2f7db448434ce17e1403884',1,'entt::basic_registry::create(const entity_type hint)'],['../classentt_1_1basic__registry.html#a5dee7d7c5329e5fd29bcfbe4a5a4842a',1,'entt::basic_registry::create(It first, It last)']]], + ['create_20once_20reuse_20many_20times_118',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], + ['cref_119',['cref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a1e67f2ff0161fbaf51eccefa9abc6ad2',1,'entt']]], + ['crend_120',['crend',['../classentt_1_1dense__set.html#ade757a21f4fc8d6db7bc594ad8157a59',1,'entt::dense_set::crend()'],['../classentt_1_1basic__table.html#a663ceb2e3cf385ba2bd34c98a8d8e13e',1,'entt::basic_table::crend()'],['../classentt_1_1basic__sparse__set.html#ab28f2f1c7bbf2861f4a3e7602a317b96',1,'entt::basic_sparse_set::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage< Entity, Entity, Allocator >::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::crend()']]], + ['ctor_121',['ctor',['../classentt_1_1meta__factory.html#a547609767a2953357ce85fc9f0997f72',1,'entt::meta_factory::ctor() noexcept'],['../classentt_1_1meta__factory.html#a1ecd9216d714d1564e9ad7298274e80f',1,'entt::meta_factory::ctor() noexcept']]], + ['ctx_122',['ctx',['../classentt_1_1basic__registry.html#a063e7f4879b50fcd332702bc8cc0fa61',1,'entt::basic_registry::ctx() noexcept'],['../classentt_1_1basic__registry.html#a4ad88b333d9c2ac606b322532a921e40',1,'entt::basic_registry::ctx() const noexcept']]], + ['current_123',['current',['../classentt_1_1basic__registry.html#ad953b537b28f0f8d590e77b81faa1941',1,'entt::basic_registry::current()'],['../classentt_1_1basic__sparse__set.html#a96cf0ed9f37ededbd40f6a8c38c1940b',1,'entt::basic_sparse_set::current()']]], + ['custom_124',['custom',['../classentt_1_1meta__factory.html#a08a6448ec41cf5e1c7b3e084a91a0ef3',1,'entt::meta_factory::custom()'],['../structentt_1_1meta__data.html#aa7116efed3b5ed7c707d21e6cf55bbfd',1,'entt::meta_data::custom()'],['../structentt_1_1meta__func.html#aa5b5bee63f5eb18605f8335a28ec6d01',1,'entt::meta_func::custom()'],['../classentt_1_1meta__type.html#a22e8791761629cd5e027ccfa4bd4fa69',1,'entt::meta_type::custom()']]], + ['custom_20data_125',['Custom data',['../md_docs_2md_2meta.html#custom-data',1,'']]], + ['custom_20entity_20identifiers_3a_20yay_20or_20nay_126',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]] ]; diff --git a/search/all_3.js b/search/all_3.js index 47dd23d37..081e1b61e 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -1,28 +1,28 @@ var searchData= [ - ['data_0',['Custom data',['../md_docs_2md_2meta.html#custom-data',1,'']]], - ['data_1',['data',['../classentt_1_1basic__any.html#a43d097fa91670846621ec23995bc80f3',1,'entt::basic_any::data() const noexcept'],['../classentt_1_1basic__any.html#afce19133c0447cf4abfb1eea3f812959',1,'entt::basic_any::data(const type_info &req) const noexcept'],['../classentt_1_1basic__any.html#af8f31671bcdb27166a7614a795680ef6',1,'entt::basic_any::data() noexcept'],['../classentt_1_1basic__any.html#ab90a391cc904cb9b68be91b36dd2155e',1,'entt::basic_any::data(const type_info &req) noexcept'],['../classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc',1,'entt::basic_hashed_string::data()'],['../classentt_1_1basic__observer.html#aad7d57a9b49d70b14b198369f2513a6e',1,'entt::basic_observer::data()'],['../structentt_1_1basic__organizer_1_1vertex.html#aca731d5248cacb0ac3e2fb4896feeb9c',1,'entt::basic_organizer::vertex::data()'],['../classentt_1_1basic__sparse__set.html#a4c540ff32bca204b1adbd9e4f4a0240b',1,'entt::basic_sparse_set::data()'],['../classentt_1_1meta__factory.html#a7d1f1ca89f91ee0f320a0253deadfb82',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__any.html#aebfabbc6c792a1aa66c9997435a21c66',1,'entt::meta_any::data() const noexcept'],['../classentt_1_1meta__any.html#a31f23326f36faa933ea4a1652d540a89',1,'entt::meta_any::data() noexcept'],['../classentt_1_1meta__type.html#a89e19eb9f844e4e730781db7613a7947',1,'entt::meta_type::data() const noexcept'],['../classentt_1_1meta__type.html#a68a81b038954d1727a6bb051ed1e810c',1,'entt::meta_type::data(const id_type id) const'],['../classentt_1_1basic__poly.html#aee4305d651f7b2f5248eba2cbfea4f17',1,'entt::basic_poly::data() const noexcept'],['../classentt_1_1basic__poly.html#a37aafd6c5ebf21b0eb66c3934abcbc06',1,'entt::basic_poly::data() noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a9d2053438aeeb385f81b4cf99367c796',1,'entt::delegate< Ret(Args...)>::data()']]], - ['data_2',['User defined data',['../md_docs_2md_2meta.html#user-defined-data',1,'']]], - ['data_20structures_3',['Data structures',['../md_docs_2md_2graph.html#data-structures',1,'']]], - ['debug_20build_20on_20windows_20so_20slow_4',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['decisions_5',['Design decisions',['../md_docs_2md_2entity.html#design-decisions',1,'']]], - ['deduced_20interface_6',['Deduced interface',['../md_docs_2md_2poly.html#deduced-interface',1,'']]], - ['default_20constructor_7',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], - ['defined_20data_8',['User defined data',['../md_docs_2md_2meta.html#user-defined-data',1,'']]], - ['defined_20interface_9',['Defined interface',['../md_docs_2md_2poly.html#defined-interface',1,'']]], - ['definitions_10',['Definitions',['../md_docs_2md_2config.html#definitions',1,'']]], - ['delegate_11',['delegate',['../classentt_1_1delegate.html',1,'entt::delegate< typename >'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ac815fb1339c39d2413bfd5c884aad8af',1,'entt::delegate< Ret(Args...)>::delegate() noexcept=default'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a6621de8a9d4986619a8e133e179710fb',1,'entt::delegate< Ret(Args...)>::delegate(connect_arg_t< Candidate >, Type &&...value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a40c5ed7b7a18636722a6c692845414e3',1,'entt::delegate< Ret(Args...)>::delegate(function_type *function, const void *payload=nullptr) noexcept'],['../namespaceentt.html#acaa5569564e913ef41b15b06e3dca0f4',1,'entt::delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >'],['../namespaceentt.html#af883efa5bf613137f825c322df3ae801',1,'entt::delegate(connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >'],['../namespaceentt.html#aaba06006a862fa5dc613e8561ac4e92c',1,'entt::delegate(Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>']]], - ['delegate_12',['Delegate',['../md_docs_2md_2signal.html#delegate',1,'']]], - ['delegate_3c_20ret_28args_2e_2e_2e_29_3e_13',['delegate< Ret(Args...)>',['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html',1,'entt']]], - ['delete_14',['In-place delete',['../md_docs_2md_2entity.html#in-place-delete',1,'']]], - ['deletion_5fpolicy_15',['deletion_policy',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581',1,'entt']]], - ['delta_5ftype_16',['delta_type',['../classentt_1_1process.html#a625b574ea6d83e3a4933acc3d0279295',1,'entt::process::delta_type'],['../classentt_1_1basic__scheduler.html#aee11899e97bc57ebc9216a1f0f24e329',1,'entt::basic_scheduler::delta_type']]], - ['dense_20map_17',['Dense map',['../md_docs_2md_2container.html#dense-map',1,'']]], - ['dense_20set_18',['Dense set',['../md_docs_2md_2container.html#dense-set',1,'']]], - ['dense_5fmap_19',['dense_map',['../classentt_1_1dense__map.html',1,'entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >'],['../classentt_1_1dense__map.html#af163bec2cf56f3571000a5fc0145832f',1,'entt::dense_map::dense_map()'],['../classentt_1_1dense__map.html#a096357c0bdb6342d7d304716e41fcea5',1,'entt::dense_map::dense_map(const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a524c65b19c282b4a2bce0434facca4c5',1,'entt::dense_map::dense_map(const size_type cnt, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#acb47beb8b4689e0e09e7527bd537f69b',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a07183a6c046d3a3b2e7201bd63aa8efe',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1dense__map.html#aaa72d92d87e8020e0ca5f035cd665d8b',1,'entt::dense_map::dense_map(const dense_map &)=default'],['../classentt_1_1dense__map.html#a8924f4faaa1879a84734ec58f11e6662',1,'entt::dense_map::dense_map(const dense_map &other, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#ad43ca6e61d09cd9f55c684c659dd74cc',1,'entt::dense_map::dense_map(dense_map &&) noexcept=default'],['../classentt_1_1dense__map.html#a352da8efacf3d89715b5892e65b82f66',1,'entt::dense_map::dense_map(dense_map &&other, const allocator_type &allocator)']]], - ['dense_5fmap_3c_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_20_3e_20_3e_20_3e_20',['dense_map< id_type, ro_rw_container_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, ro_rw_container_type > > >',['../classentt_1_1dense__map.html',1,'entt']]], - ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_20_3e_20_3e_20_3e_21',['dense_map< id_type, std::shared_ptr< base_type >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< base_type > > > >',['../classentt_1_1dense__map.html',1,'entt']]], - ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_20_3e_20_3e_20_3e_22',['dense_map< id_type, std::shared_ptr< internal::group_descriptor >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< internal::group_descriptor > > > >',['../classentt_1_1dense__map.html',1,'entt']]], + ['data_0',['data',['../md_docs_2md_2meta.html#custom-data',1,'Custom data'],['../classentt_1_1basic__any.html#a43d097fa91670846621ec23995bc80f3',1,'entt::basic_any::data() const noexcept'],['../classentt_1_1basic__any.html#afce19133c0447cf4abfb1eea3f812959',1,'entt::basic_any::data(const type_info &req) const noexcept'],['../classentt_1_1basic__any.html#af8f31671bcdb27166a7614a795680ef6',1,'entt::basic_any::data() noexcept'],['../classentt_1_1basic__any.html#ab90a391cc904cb9b68be91b36dd2155e',1,'entt::basic_any::data(const type_info &req) noexcept'],['../classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc',1,'entt::basic_hashed_string::data()'],['../structentt_1_1basic__organizer_1_1vertex.html#aca731d5248cacb0ac3e2fb4896feeb9c',1,'entt::basic_organizer::vertex::data()'],['../classentt_1_1basic__sparse__set.html#a4c540ff32bca204b1adbd9e4f4a0240b',1,'entt::basic_sparse_set::data()'],['../classentt_1_1meta__factory.html#a7d1f1ca89f91ee0f320a0253deadfb82',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__any.html#aebfabbc6c792a1aa66c9997435a21c66',1,'entt::meta_any::data() const noexcept'],['../classentt_1_1meta__any.html#a31f23326f36faa933ea4a1652d540a89',1,'entt::meta_any::data() noexcept'],['../classentt_1_1meta__type.html#a89e19eb9f844e4e730781db7613a7947',1,'entt::meta_type::data() const noexcept'],['../classentt_1_1meta__type.html#a68a81b038954d1727a6bb051ed1e810c',1,'entt::meta_type::data(const id_type id) const'],['../classentt_1_1basic__poly.html#aee4305d651f7b2f5248eba2cbfea4f17',1,'entt::basic_poly::data() const noexcept'],['../classentt_1_1basic__poly.html#a37aafd6c5ebf21b0eb66c3934abcbc06',1,'entt::basic_poly::data() noexcept'],['../md_docs_2md_2meta.html#user-defined-data',1,'User defined data']]], + ['data_20structures_1',['Data structures',['../md_docs_2md_2graph.html#data-structures',1,'']]], + ['debug_20build_20on_20windows_20so_20slow_2',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['decisions_3',['Design decisions',['../md_docs_2md_2entity.html#design-decisions',1,'']]], + ['deduced_20interface_4',['Deduced interface',['../md_docs_2md_2poly.html#deduced-interface',1,'']]], + ['default_20constructor_5',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], + ['defined_20data_6',['User defined data',['../md_docs_2md_2meta.html#user-defined-data',1,'']]], + ['defined_20interface_7',['Defined interface',['../md_docs_2md_2poly.html#defined-interface',1,'']]], + ['definitions_8',['Definitions',['../md_docs_2md_2config.html#definitions',1,'']]], + ['delegate_9',['Delegate',['../md_docs_2md_2signal.html#delegate',1,'']]], + ['delegate_10',['delegate',['../classentt_1_1delegate.html',1,'entt::delegate< typename >'],['../namespaceentt.html#acaa5569564e913ef41b15b06e3dca0f4',1,'entt::delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >'],['../namespaceentt.html#af883efa5bf613137f825c322df3ae801',1,'entt::delegate(connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >'],['../namespaceentt.html#aaba06006a862fa5dc613e8561ac4e92c',1,'entt::delegate(Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>']]], + ['delegate_3c_20void_28void_20_2a_29_3e_11',['delegate< void(void *)>',['../classentt_1_1delegate.html',1,'entt']]], + ['delete_12',['In-place delete',['../md_docs_2md_2entity.html#in-place-delete',1,'']]], + ['deletion_5fpolicy_13',['deletion_policy',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581',1,'entt']]], + ['delta_5ftype_14',['delta_type',['../classentt_1_1process.html#a625b574ea6d83e3a4933acc3d0279295',1,'entt::process::delta_type'],['../classentt_1_1basic__scheduler.html#aee11899e97bc57ebc9216a1f0f24e329',1,'entt::basic_scheduler::delta_type']]], + ['dense_20map_15',['Dense map',['../md_docs_2md_2container.html#dense-map',1,'']]], + ['dense_20set_16',['Dense set',['../md_docs_2md_2container.html#dense-set',1,'']]], + ['dense_5fmap_17',['dense_map',['../classentt_1_1dense__map.html',1,'entt::dense_map< Key, Type, Hash, KeyEqual, Allocator >'],['../classentt_1_1dense__map.html#af163bec2cf56f3571000a5fc0145832f',1,'entt::dense_map::dense_map()'],['../classentt_1_1dense__map.html#a096357c0bdb6342d7d304716e41fcea5',1,'entt::dense_map::dense_map(const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a524c65b19c282b4a2bce0434facca4c5',1,'entt::dense_map::dense_map(const size_type cnt, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#acb47beb8b4689e0e09e7527bd537f69b',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a07183a6c046d3a3b2e7201bd63aa8efe',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1dense__map.html#aaa72d92d87e8020e0ca5f035cd665d8b',1,'entt::dense_map::dense_map(const dense_map &)=default'],['../classentt_1_1dense__map.html#a8924f4faaa1879a84734ec58f11e6662',1,'entt::dense_map::dense_map(const dense_map &other, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#ad43ca6e61d09cd9f55c684c659dd74cc',1,'entt::dense_map::dense_map(dense_map &&) noexcept=default'],['../classentt_1_1dense__map.html#a352da8efacf3d89715b5892e65b82f66',1,'entt::dense_map::dense_map(dense_map &&other, const allocator_type &allocator)']]], + ['dense_5fmap_3c_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_20_3e_20_3e_20_3e_18',['dense_map< id_type, ro_rw_container_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, ro_rw_container_type > > >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_20_3e_20_3e_20_3e_19',['dense_map< id_type, std::shared_ptr< base_type >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< base_type > > > >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_20_3e_20_3e_20_3e_20',['dense_map< id_type, std::shared_ptr< internal::group_descriptor >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< internal::group_descriptor > > > >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20id_5ftype_2c_20typename_20loader_3a_3aresult_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_21',['dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20key_5ftype_2c_20mapped_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_22',['dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >',['../classentt_1_1dense__map.html',1,'entt']]], ['dense_5fmap_3c_20typename_20traits_5ftype_3a_3aentity_5ftype_2c_20std_3a_3apair_3c_20entity_5ftype_2c_20entity_5ftype_20_3e_20_3e_23',['dense_map< typename traits_type::entity_type, std::pair< entity_type, entity_type > >',['../classentt_1_1dense__map.html',1,'entt']]], ['dense_5fset_24',['dense_set',['../classentt_1_1dense__set.html',1,'entt::dense_set< Type, Hash, KeyEqual, Allocator >'],['../classentt_1_1dense__set.html#acb2185a8bef7bb0e248a61605c3b0bca',1,'entt::dense_set::dense_set()'],['../classentt_1_1dense__set.html#ac6e88655aa8ad10f1abec3f096c64161',1,'entt::dense_set::dense_set(const allocator_type &allocator)'],['../classentt_1_1dense__set.html#a7f5c5416bd4134d1709a13073f3682bc',1,'entt::dense_set::dense_set(const size_type cnt, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#a6b6ebde571ce025b298aa580b2b77e5b',1,'entt::dense_set::dense_set(const size_type cnt, const hasher &hash, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#ad29198f1dc4accffa9fc9859af956df3',1,'entt::dense_set::dense_set(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1dense__set.html#aa84caa4b8ea63cc40d7c96158a35760f',1,'entt::dense_set::dense_set(const dense_set &)=default'],['../classentt_1_1dense__set.html#a68b3b28b433da48bece9ff3abf1d476e',1,'entt::dense_set::dense_set(const dense_set &other, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#ab2a4eef9bb92ac32b118c155e643795e',1,'entt::dense_set::dense_set(dense_set &&) noexcept=default'],['../classentt_1_1dense__set.html#ada9ee844d6f84e1670da4088f0e38361',1,'entt::dense_set::dense_set(dense_set &&other, const allocator_type &allocator)']]], ['dense_5fset_3c_20id_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20id_5ftype_20_3e_20_3e_25',['dense_set< id_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< id_type > >',['../classentt_1_1dense__set.html',1,'entt']]], @@ -31,16 +31,16 @@ var searchData= ['dereference_5fmeta_5fpointer_5flike_28',['dereference_meta_pointer_like',['../namespaceentt.html#a2ab7b51802157a98106f238335fa7503',1,'entt']]], ['design_20decisions_29',['Design decisions',['../md_docs_2md_2entity.html#design-decisions',1,'']]], ['destroy_30',['destroy',['../classentt_1_1basic__handle.html#a010d60402134ca3ecc2b1665b338c99b',1,'entt::basic_handle::destroy()'],['../classentt_1_1basic__handle.html#a776a7e37785c0cf6e30885e3153375ba',1,'entt::basic_handle::destroy(const version_type version)'],['../classentt_1_1basic__registry.html#a4849d0fe9d6008431239c93c57551d10',1,'entt::basic_registry::destroy(const entity_type entt)'],['../classentt_1_1basic__registry.html#a4e957182d72fd24e436afda55ec25e33',1,'entt::basic_registry::destroy(const entity_type entt, const version_type version)'],['../classentt_1_1basic__registry.html#a90f87bda5906f0a26d118a4d058f376d',1,'entt::basic_registry::destroy(It first, It last)']]], - ['difference_5ftype_31',['difference_type',['../classentt_1_1iota__iterator.html#a18384d6f3528a0bf0cd952668deb0eeb',1,'entt::iota_iterator']]], + ['difference_5ftype_31',['difference_type',['../classentt_1_1dense__map.html#afe9ae8d1427ee98d662e7a7d635a6eff',1,'entt::dense_map::difference_type'],['../classentt_1_1dense__set.html#a12f11ca5f036cb6f606952e2e506179c',1,'entt::dense_set::difference_type'],['../classentt_1_1basic__table.html#a20f12f47432d750f97991ca1732ca836',1,'entt::basic_table::difference_type'],['../classentt_1_1iota__iterator.html#a18384d6f3528a0bf0cd952668deb0eeb',1,'entt::iota_iterator::difference_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a66cfc4cf7cc6ded38267f92436256904',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::difference_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ace5500fb779bdb6d757061b1abb8c144',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::difference_type'],['../classentt_1_1basic__sparse__set.html#a4e4e7bb8e12a2d1b35aa91c92bc573c3',1,'entt::basic_sparse_set::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage::difference_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad5e9634e59995e6a6debeba735e1cb3c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::difference_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a86a28d9e0caa759283ac84ff8fa28d08',1,'entt::basic_storage< Entity, Entity, Allocator >::difference_type'],['../classentt_1_1basic__common__view.html#a665b5a34eee656129ba04d718a98c05a',1,'entt::basic_common_view::difference_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a7eb05a1abede44b13203a2fe4f7a91d6',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::difference_type'],['../classentt_1_1basic__storage__view.html#a29e595d99538b8cf4fafb7fec24e5019',1,'entt::basic_storage_view::difference_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0e36c5565d5d800033981bd3efe5c1b1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage< Entity, Entity, Allocator >::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::difference_type']]], ['directed_5ftag_32',['directed_tag',['../structentt_1_1directed__tag.html',1,'entt']]], - ['disconnect_33',['disconnect',['../classentt_1_1basic__observer.html#a65e696dc55d13d729decb03c148d715e',1,'entt::basic_observer::disconnect()'],['../classentt_1_1basic__dispatcher.html#a6d3929fa7b3de337091f4305a564ba75',1,'entt::basic_dispatcher::disconnect(Type &value_or_instance)'],['../classentt_1_1basic__dispatcher.html#adb5bc2c8ef847a296fe66c230f84569b',1,'entt::basic_dispatcher::disconnect(Type *value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#ae6c4e0a2616ecc906f7b02a280cb6110',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect(Type &&...value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a0011e7774b6c725b2ab3745c31833bb1',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect(const void *value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a43ac539a332574445dc674332bd0726d',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect()']]], + ['disconnect_33',['disconnect',['../classentt_1_1basic__dispatcher.html#a6d3929fa7b3de337091f4305a564ba75',1,'entt::basic_dispatcher::disconnect(Type &value_or_instance)'],['../classentt_1_1basic__dispatcher.html#adb5bc2c8ef847a296fe66c230f84569b',1,'entt::basic_dispatcher::disconnect(Type *value_or_instance)']]], ['disconnection_34',['Listeners disconnection',['../md_docs_2md_2entity.html#listeners-disconnection',1,'']]], - ['dispatcher_35',['dispatcher',['../namespaceentt.html#a0a861217be8dba074e93e11eaf9bfe0c',1,'entt']]], - ['dispatcher_36',['Event dispatcher',['../md_docs_2md_2signal.html#event-dispatcher',1,'']]], - ['document_37',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], - ['documentation_38',['Documentation',['../index.html#documentation',1,'']]], - ['dot_39',['dot',['../namespaceentt.html#a8eb14d05375b98c803a4f335b9db15e4',1,'entt::dot(std::ostream &out, const Graph &graph, Writer writer)'],['../namespaceentt.html#a725644b580d804e01ac6f65a927469fd',1,'entt::dot(std::ostream &out, const Graph &graph)']]], - ['dot_20language_40',['Graphviz dot language',['../md_docs_2md_2graph.html#graphviz-dot-language',1,'']]], - ['dtor_41',['dtor',['../classentt_1_1meta__factory.html#a7938e982cfa68d82a45d085459b0f8cc',1,'entt::meta_factory']]], - ['duplicate_20storage_20for_20the_20same_20component_42',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]] + ['dispatcher_35',['dispatcher',['../namespaceentt.html#a0a861217be8dba074e93e11eaf9bfe0c',1,'entt::dispatcher'],['../md_docs_2md_2signal.html#event-dispatcher',1,'Event dispatcher']]], + ['document_36',['Beyond this document',['../md_docs_2md_2entity.html#beyond-this-document',1,'']]], + ['documentation_37',['Documentation',['../index.html#documentation',1,'']]], + ['dot_38',['dot',['../namespaceentt.html#a8eb14d05375b98c803a4f335b9db15e4',1,'entt::dot(std::ostream &out, const Graph &graph, Writer writer)'],['../namespaceentt.html#a725644b580d804e01ac6f65a927469fd',1,'entt::dot(std::ostream &out, const Graph &graph)']]], + ['dot_20language_39',['Graphviz dot language',['../md_docs_2md_2graph.html#graphviz-dot-language',1,'']]], + ['dtor_40',['dtor',['../classentt_1_1meta__factory.html#a7938e982cfa68d82a45d085459b0f8cc',1,'entt::meta_factory']]], + ['duplicate_20storage_20for_20the_20same_20component_41',['Duplicate storage for the same component',['../md_docs_2md_2faq.html#duplicate-storage-for-the-same-component',1,'']]], + ['dynamic_42',['dynamic',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549ab72f3bd391ba731a35708bfd8cd8a68f',1,'entt']]] ]; diff --git a/search/all_4.js b/search/all_4.js index 4d52184db..12f7a2dc7 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -1,68 +1,70 @@ var searchData= [ - ['each_0',['each',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a7a9e949db960db1c091f7042b6829026',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#adc11363d541605654bf66ed62f5359eb',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02d082ed4b5d573c6b79644383f5f838',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30df55e12ed00f3e90ec23bd25595e2',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__observer.html#a9295584ca9f399bdc9bd0934ed66ae00',1,'entt::basic_observer::each(Func func) const'],['../classentt_1_1basic__observer.html#a7e153e66abae9eab2af3c3775127bab9',1,'entt::basic_observer::each(Func func)'],['../classentt_1_1basic__runtime__view.html#a9477a9767c87dee34b144b687dfa66ae',1,'entt::basic_runtime_view::each()'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage::each() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aba8303422ccc2123c75307b09490a1a7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a73a6df7204aaf27ea1af95627113d671',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac8d3d18104e55f52c6250474bd1d81d5',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aa648c85086af5e1698e35ec0aae4728e',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a201c77165fbb557c7f82023fb6cdeb30',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a9638fe48b3b3dd15d69eccd8ac88c7e1',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#abb851243b85eccc5c978064a2196a29a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aca8aa93c28dfd02fb09310735e4e4925',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each() const noexcept']]], + ['each_0',['each',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a7a9e949db960db1c091f7042b6829026',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#adc11363d541605654bf66ed62f5359eb',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02d082ed4b5d573c6b79644383f5f838',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30df55e12ed00f3e90ec23bd25595e2',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__runtime__view.html#a9477a9767c87dee34b144b687dfa66ae',1,'entt::basic_runtime_view::each()'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage::each() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae8d22ce8b2036a87f02e8235c2fafd1e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad6177f1e9699daf501afb1dbaa9f00be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac8d3d18104e55f52c6250474bd1d81d5',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aa648c85086af5e1698e35ec0aae4728e',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a201c77165fbb557c7f82023fb6cdeb30',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a9638fe48b3b3dd15d69eccd8ac88c7e1',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#abb851243b85eccc5c978064a2196a29a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aca8aa93c28dfd02fb09310735e4e4925',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each() const noexcept'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() const noexcept']]], ['edge_5fiterator_1',['edge_iterator',['../classentt_1_1adjacency__matrix.html#a4e2e74717c42df138ed98b1a33b6ffd8',1,'entt::adjacency_matrix']]], ['edge_5ftype_2',['edge_type',['../classentt_1_1adjacency__matrix.html#aa2ac50f08d437489d4f761b418c48eda',1,'entt::adjacency_matrix']]], ['edges_3',['edges',['../classentt_1_1adjacency__matrix.html#ab6638e821360bafa2d7ce2e12ef0825a',1,'entt::adjacency_matrix']]], - ['element_5ftype_4',['element_type',['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage::element_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a49e83e3a6c6e27d96a14c50a0fdd5c83',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::element_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a9b9274928f9059decb038a2c9effb80e',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1resource.html#a26674fadd2d6b8be621375d4b3195836',1,'entt::resource::element_type']]], - ['emitter_5',['emitter',['../classentt_1_1emitter.html',1,'entt::emitter< Derived, Allocator >'],['../classentt_1_1emitter.html#a685882e0f6b442759dd109f88e5b18a9',1,'entt::emitter::emitter()'],['../classentt_1_1emitter.html#a3e03b43a4239091637f18f63645c23a3',1,'entt::emitter::emitter(const allocator_type &allocator)'],['../classentt_1_1emitter.html#aadc449fbe689da0e4b0042de805a4a11',1,'entt::emitter::emitter(const emitter &)=delete'],['../classentt_1_1emitter.html#a351058758b1fc6840c467a10fd2912c4',1,'entt::emitter::emitter(emitter &&other) noexcept'],['../classentt_1_1emitter.html#ad6eb001ae6ca77ecc0e78db86b9b5aa8',1,'entt::emitter::emitter(emitter &&other, const allocator_type &allocator)']]], - ['emitter_6',['Event emitter',['../md_docs_2md_2signal.html#event-emitter',1,'']]], - ['emplace_7',['emplace',['../classentt_1_1dense__map.html#ab0dfc292981ab6694cd4609879a80dbc',1,'entt::dense_map::emplace()'],['../classentt_1_1dense__set.html#a47d3197d0c31a680cb7d9379f8a3c3d3',1,'entt::dense_set::emplace()'],['../classentt_1_1basic__table.html#af2f360081ff38e4132134872caf20070',1,'entt::basic_table::emplace()'],['../classentt_1_1basic__any.html#a612abee6a4ebf016df27929668839fc0',1,'entt::basic_any::emplace()'],['../classentt_1_1basic__handle.html#a5850a2de85b4977302811d60d4365b03',1,'entt::basic_handle::emplace()'],['../classentt_1_1basic__sigh__mixin.html#a2a7f98c08e026d4e3ca9d0df87b33371',1,'entt::basic_sigh_mixin::emplace()'],['../classentt_1_1basic__sigh__mixin.html#af59de7be0d5844f9bde35a2a5de1d82c',1,'entt::basic_sigh_mixin::emplace(const entity_type hint, Args &&...args)'],['../classentt_1_1basic__organizer.html#a813786d2c24e14f9f14d4a9c8799d868',1,'entt::basic_organizer::emplace(const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ac40558158f729efc26c7787cdc451e11',1,'entt::basic_organizer::emplace(Type &value_or_instance, const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ab902bd0bc4dd15f0ac1e02ac5517a8e8',1,'entt::basic_organizer::emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)'],['../classentt_1_1basic__registry.html#aa3cd5a28e32c30e5c69965c52781bf98',1,'entt::basic_registry::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage::emplace()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0804b16811a3d42cde346e1f2ae69143',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac3f17aef4b12de38be4e9e9e94b6e8e2',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a5828c772e2c92ed556cba475cb858c4a',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace(const entity_type hint)'],['../classentt_1_1locator.html#afb27544514506214a6adaf563ca7862b',1,'entt::locator::emplace(Args &&...args)'],['../classentt_1_1locator.html#a3695e31fe7e6ae073ac6a3555a43b425',1,'entt::locator::emplace(std::allocator_arg_t, Allocator alloc, Args &&...args)'],['../classentt_1_1meta__any.html#a3bb2e8e8a5eeb1cfaf1710b43382fef4',1,'entt::meta_any::emplace()'],['../classentt_1_1basic__poly.html#a6aaa4ef03f6f2a599abcf633412d6a8d',1,'entt::basic_poly::emplace()']]], + ['element_5ftype_4',['element_type',['../structentt_1_1component__traits.html#ad991611996fcdc1dcaae38c6035199f9',1,'entt::component_traits::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage::element_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a452a52b0b503ef989532d64cd409d170',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::element_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a9b9274928f9059decb038a2c9effb80e',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1resource.html#a26674fadd2d6b8be621375d4b3195836',1,'entt::resource::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::element_type']]], + ['embedded_5',['embedded',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a605abe26d014c72e3df9deb267e73756',1,'entt']]], + ['emitter_6',['emitter',['../classentt_1_1emitter.html',1,'entt::emitter< Derived, Allocator >'],['../classentt_1_1emitter.html#a685882e0f6b442759dd109f88e5b18a9',1,'entt::emitter::emitter()'],['../classentt_1_1emitter.html#a3e03b43a4239091637f18f63645c23a3',1,'entt::emitter::emitter(const allocator_type &allocator)'],['../classentt_1_1emitter.html#aadc449fbe689da0e4b0042de805a4a11',1,'entt::emitter::emitter(const emitter &)=delete'],['../classentt_1_1emitter.html#a351058758b1fc6840c467a10fd2912c4',1,'entt::emitter::emitter(emitter &&other) noexcept'],['../classentt_1_1emitter.html#ad6eb001ae6ca77ecc0e78db86b9b5aa8',1,'entt::emitter::emitter(emitter &&other, const allocator_type &allocator)'],['../md_docs_2md_2signal.html#event-emitter',1,'Event emitter']]], + ['emplace_7',['emplace',['../classentt_1_1dense__map.html#ab0dfc292981ab6694cd4609879a80dbc',1,'entt::dense_map::emplace()'],['../classentt_1_1dense__set.html#a47d3197d0c31a680cb7d9379f8a3c3d3',1,'entt::dense_set::emplace()'],['../classentt_1_1basic__table.html#af2f360081ff38e4132134872caf20070',1,'entt::basic_table::emplace()'],['../classentt_1_1basic__any.html#a612abee6a4ebf016df27929668839fc0',1,'entt::basic_any::emplace()'],['../classentt_1_1basic__handle.html#a5850a2de85b4977302811d60d4365b03',1,'entt::basic_handle::emplace()'],['../classentt_1_1basic__sigh__mixin.html#a78517b70c5f6dbf8cb1cdd94ea1b5890',1,'entt::basic_sigh_mixin::emplace()'],['../classentt_1_1basic__organizer.html#a813786d2c24e14f9f14d4a9c8799d868',1,'entt::basic_organizer::emplace(const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ac40558158f729efc26c7787cdc451e11',1,'entt::basic_organizer::emplace(Type &value_or_instance, const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ab902bd0bc4dd15f0ac1e02ac5517a8e8',1,'entt::basic_organizer::emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)'],['../classentt_1_1basic__registry.html#aa3cd5a28e32c30e5c69965c52781bf98',1,'entt::basic_registry::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage::emplace()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae4d9684a7b6ba44ab3a28c63a13282a6',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac3f17aef4b12de38be4e9e9e94b6e8e2',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a5828c772e2c92ed556cba475cb858c4a',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace(const entity_type hint)'],['../classentt_1_1locator.html#afb27544514506214a6adaf563ca7862b',1,'entt::locator::emplace(Args &&...args)'],['../classentt_1_1locator.html#a3695e31fe7e6ae073ac6a3555a43b425',1,'entt::locator::emplace(std::allocator_arg_t, Allocator alloc, Args &&...args)'],['../classentt_1_1meta__any.html#a3bb2e8e8a5eeb1cfaf1710b43382fef4',1,'entt::meta_any::emplace()'],['../classentt_1_1basic__poly.html#a6aaa4ef03f6f2a599abcf633412d6a8d',1,'entt::basic_poly::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::emplace()']]], ['emplace_5for_5freplace_8',['emplace_or_replace',['../classentt_1_1basic__handle.html#a798fb3d599ec98c2667c004ae4dbdb04',1,'entt::basic_handle::emplace_or_replace()'],['../classentt_1_1basic__registry.html#a3ebfbe0d897e77cf0f24bc994a796b15',1,'entt::basic_registry::emplace_or_replace()']]], - ['empty_9',['empty',['../classentt_1_1dense__map.html#ad6f1227e06bf48744b46b3fe251d72f2',1,'entt::dense_map::empty()'],['../classentt_1_1dense__set.html#a6a6ca36a20f2ad2af73161eb71c5aba2',1,'entt::dense_set::empty()'],['../classentt_1_1basic__table.html#a6abcb24d672594848ac4e29b8b79d850',1,'entt::basic_table::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a64e489bb00e091fd7203d91b5d1aaf5a',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4ac68edd780bdec355ef654fd9bd1fd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__observer.html#a0cf971c812b07c963b637950525102a6',1,'entt::basic_observer::empty()'],['../classentt_1_1basic__sparse__set.html#ad8936d80c3656449118a7a7a08be6258',1,'entt::basic_sparse_set::empty()'],['../classentt_1_1basic__storage__view.html#a1009b1f37493279e5f16aa9e516791ab',1,'entt::basic_storage_view::empty()'],['../classentt_1_1adjacency__matrix.html#a4d262116700a6aeda88d3bd0d0f2e3c2',1,'entt::adjacency_matrix::empty()'],['../classentt_1_1basic__flow.html#ae34f6cde54ad1b268a41a822adabdf84',1,'entt::basic_flow::empty()'],['../classentt_1_1basic__scheduler.html#a0148252d629fa78ebfe688519013c9c4',1,'entt::basic_scheduler::empty()'],['../classentt_1_1resource__cache.html#ab56988b1f8e221956bafb499ef409401',1,'entt::resource_cache::empty()'],['../classentt_1_1emitter.html#ac9fe97c008e4923e4e784faddc9f4eca',1,'entt::emitter::empty()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ab595707dcd32d5e7b7fda51a5209b68b',1,'entt::sigh< Ret(Args...), Allocator >::empty()'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a32be15111a76ca5856cdbcf1c6ab73d0',1,'entt::sink< sigh< Ret(Args...), Allocator > >::empty()']]], + ['empty_9',['empty',['../classentt_1_1dense__map.html#ad6f1227e06bf48744b46b3fe251d72f2',1,'entt::dense_map::empty()'],['../classentt_1_1dense__set.html#a6a6ca36a20f2ad2af73161eb71c5aba2',1,'entt::dense_set::empty()'],['../classentt_1_1basic__table.html#a6abcb24d672594848ac4e29b8b79d850',1,'entt::basic_table::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a64e489bb00e091fd7203d91b5d1aaf5a',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4ac68edd780bdec355ef654fd9bd1fd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__sparse__set.html#ad8936d80c3656449118a7a7a08be6258',1,'entt::basic_sparse_set::empty()'],['../classentt_1_1basic__storage__view.html#a1009b1f37493279e5f16aa9e516791ab',1,'entt::basic_storage_view::empty()'],['../classentt_1_1adjacency__matrix.html#a4d262116700a6aeda88d3bd0d0f2e3c2',1,'entt::adjacency_matrix::empty()'],['../classentt_1_1basic__flow.html#ae34f6cde54ad1b268a41a822adabdf84',1,'entt::basic_flow::empty()'],['../classentt_1_1basic__scheduler.html#a0148252d629fa78ebfe688519013c9c4',1,'entt::basic_scheduler::empty()'],['../classentt_1_1resource__cache.html#ab56988b1f8e221956bafb499ef409401',1,'entt::resource_cache::empty()'],['../classentt_1_1emitter.html#ac9fe97c008e4923e4e784faddc9f4eca',1,'entt::emitter::empty()'],['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549aa2e4822a98337283e39f7b60acf85ec9',1,'entt::empty']]], ['empty_20type_20optimization_10',['Empty type optimization',['../md_docs_2md_2entity.html#empty-type-optimization',1,'']]], ['enable_20cpp17_11',['Enable Cpp17',['../md_docs_2md_2unreal.html#enable-cpp17',1,'']]], - ['end_12',['end',['../classentt_1_1dense__map.html#afa80b6dff4ba1f455fabec3ff197e8c5',1,'entt::dense_map::end() const noexcept'],['../classentt_1_1dense__map.html#afd4ff12e8b032e6ca5519557d07d1178',1,'entt::dense_map::end() noexcept'],['../classentt_1_1dense__map.html#a3c36baa7b9aa7df7d3a07ca090319328',1,'entt::dense_map::end(const size_type index) const'],['../classentt_1_1dense__map.html#ab971fb709972a0e26b95e4fdb89aa64e',1,'entt::dense_map::end(const size_type index)'],['../classentt_1_1dense__set.html#acba121addd4d2f1d273ed6c1d9ce711d',1,'entt::dense_set::end() const noexcept'],['../classentt_1_1dense__set.html#a9969d69b8cd34bffe4fc0f0be83d16fa',1,'entt::dense_set::end() noexcept'],['../classentt_1_1dense__set.html#ab5fa4899ccdf38b575c7467da213ffa4',1,'entt::dense_set::end(const size_type index) const'],['../classentt_1_1dense__set.html#a64228ede854cfd6b98665e98ba724542',1,'entt::dense_set::end(const size_type index)'],['../classentt_1_1basic__table.html#a4c4b2c75b3766f2c5236eedb9c4bcb77',1,'entt::basic_table::end() const noexcept'],['../classentt_1_1basic__table.html#a4dbeb89ba617c6ef65f4917d4b97f33f',1,'entt::basic_table::end() noexcept'],['../structentt_1_1iterable__adaptor.html#ab163b4aefd1325876286497924b0da29',1,'entt::iterable_adaptor::end()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac94857c70d27826612b584af4c70f200',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a99c4a0d307973232a293a83e85d578f5',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__observer.html#a97c58c5a50dcb836bcb037a23522ec61',1,'entt::basic_observer::end()'],['../classentt_1_1basic__runtime__view.html#abd8f3fcaf66b7ee4cb033aa9ba13b807',1,'entt::basic_runtime_view::end()'],['../classentt_1_1basic__sparse__set.html#a3187a76bdb963346a715e0ebd833bfd7',1,'entt::basic_sparse_set::end()'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage::end() noexcept'],['../classentt_1_1basic__common__view.html#aac1aa2564ab77156936955392053c61d',1,'entt::basic_common_view::end()'],['../classentt_1_1basic__storage__view.html#a5b513d5daf9a12092903dfe022e02d9d',1,'entt::basic_storage_view::end()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a4505157dd3ad54f5c0b87a9b7393b4aa',1,'entt::basic_meta_sequence_container_traits::end()'],['../structentt_1_1basic__meta__associative__container__traits.html#a17a453ea97824664906c5d2296b63543',1,'entt::basic_meta_associative_container_traits::end()'],['../classentt_1_1meta__sequence__container.html#a4135860b75cc96aca7fa1212d5b17743',1,'entt::meta_sequence_container::end()'],['../classentt_1_1meta__associative__container.html#a33088db7e4cf2bc52ec2d47fa62d4705',1,'entt::meta_associative_container::end()'],['../classentt_1_1resource__cache.html#af97b2505c1819418d81c3dd91bffb880',1,'entt::resource_cache::end() const noexcept'],['../classentt_1_1resource__cache.html#ae8d60475b4bbc2f4675ab801514bd082',1,'entt::resource_cache::end() noexcept']]], + ['end_12',['end',['../classentt_1_1dense__map.html#afa80b6dff4ba1f455fabec3ff197e8c5',1,'entt::dense_map::end() const noexcept'],['../classentt_1_1dense__map.html#afd4ff12e8b032e6ca5519557d07d1178',1,'entt::dense_map::end() noexcept'],['../classentt_1_1dense__map.html#a3c36baa7b9aa7df7d3a07ca090319328',1,'entt::dense_map::end(const size_type index) const'],['../classentt_1_1dense__map.html#ab971fb709972a0e26b95e4fdb89aa64e',1,'entt::dense_map::end(const size_type index)'],['../classentt_1_1dense__set.html#acba121addd4d2f1d273ed6c1d9ce711d',1,'entt::dense_set::end() const noexcept'],['../classentt_1_1dense__set.html#a9969d69b8cd34bffe4fc0f0be83d16fa',1,'entt::dense_set::end() noexcept'],['../classentt_1_1dense__set.html#ab5fa4899ccdf38b575c7467da213ffa4',1,'entt::dense_set::end(const size_type index) const'],['../classentt_1_1dense__set.html#a64228ede854cfd6b98665e98ba724542',1,'entt::dense_set::end(const size_type index)'],['../classentt_1_1basic__table.html#a4c4b2c75b3766f2c5236eedb9c4bcb77',1,'entt::basic_table::end() const noexcept'],['../classentt_1_1basic__table.html#a4dbeb89ba617c6ef65f4917d4b97f33f',1,'entt::basic_table::end() noexcept'],['../structentt_1_1iterable__adaptor.html#ab163b4aefd1325876286497924b0da29',1,'entt::iterable_adaptor::end()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac94857c70d27826612b584af4c70f200',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a99c4a0d307973232a293a83e85d578f5',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__runtime__view.html#abd8f3fcaf66b7ee4cb033aa9ba13b807',1,'entt::basic_runtime_view::end()'],['../classentt_1_1basic__sparse__set.html#a3187a76bdb963346a715e0ebd833bfd7',1,'entt::basic_sparse_set::end()'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage::end() noexcept'],['../classentt_1_1basic__common__view.html#acf2805f088e1f44931e00a4548782dce',1,'entt::basic_common_view::end()'],['../classentt_1_1basic__storage__view.html#a5b513d5daf9a12092903dfe022e02d9d',1,'entt::basic_storage_view::end()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a4505157dd3ad54f5c0b87a9b7393b4aa',1,'entt::basic_meta_sequence_container_traits::end()'],['../structentt_1_1basic__meta__associative__container__traits.html#a17a453ea97824664906c5d2296b63543',1,'entt::basic_meta_associative_container_traits::end()'],['../classentt_1_1meta__sequence__container.html#a4135860b75cc96aca7fa1212d5b17743',1,'entt::meta_sequence_container::end()'],['../classentt_1_1meta__associative__container.html#a33088db7e4cf2bc52ec2d47fa62d4705',1,'entt::meta_associative_container::end()'],['../classentt_1_1resource__cache.html#af97b2505c1819418d81c3dd91bffb880',1,'entt::resource_cache::end() const noexcept'],['../classentt_1_1resource__cache.html#ae8d60475b4bbc2f4675ab801514bd082',1,'entt::resource_cache::end() noexcept'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage< Entity, Entity, Allocator >::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage< Entity, Entity, Allocator >::end() noexcept'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::end() noexcept']]], ['engine_13',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], ['engines_20and_20the_20like_3a_14',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], ['enjoy_20the_20runtime_15',['Enjoy the runtime',['../md_docs_2md_2meta.html#enjoy-the-runtime',1,'']]], ['enqueue_16',['enqueue',['../classentt_1_1basic__dispatcher.html#aefeb6cfbb14cf16ad7bee0148a324867',1,'entt::basic_dispatcher::enqueue(Args &&...args)'],['../classentt_1_1basic__dispatcher.html#a3c13ef83ea854d2b974b9a6029064294',1,'entt::basic_dispatcher::enqueue(Type &&value)']]], ['enqueue_5fhint_17',['enqueue_hint',['../classentt_1_1basic__dispatcher.html#a3da25e303527faa6f57616a077333681',1,'entt::basic_dispatcher::enqueue_hint(const id_type id, Args &&...args)'],['../classentt_1_1basic__dispatcher.html#a223faf63a62726619ff0140d659037ee',1,'entt::basic_dispatcher::enqueue_hint(const id_type id, Type &&value)']]], - ['entity_18',['entity',['../classentt_1_1basic__handle.html#adfe5f3adcfed0c66e72919b6ba1c98a7',1,'entt::basic_handle::entity()'],['../namespaceentt.html#a0b54e231d069e8a231e14b223388808a',1,'entt::entity']]], - ['entity_19',['Entity',['../md_docs_2md_2entity.html#null-entity',1,'Null entity'],['../md_docs_2md_2entity.html#to-entity',1,'To entity']]], - ['entity_20and_20the_20component_20',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], - ['entity_20component_20system_21',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], - ['entity_20identifiers_3a_20yay_20or_20nay_22',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]], - ['entity_20lifecycle_23',['Entity lifecycle',['../md_docs_2md_2entity.html#entity-lifecycle',1,'']]], - ['entity_20storage_24',['Entity storage',['../md_docs_2md_2entity.html#entity-storage',1,'']]], - ['entity_5fmask_25',['entity_mask',['../classentt_1_1basic__entt__traits.html#a6b93920c3b3347171c485fdbdead14ec',1,'entt::basic_entt_traits']]], - ['entity_5ftype_26',['entity_type',['../classentt_1_1basic__entt__traits.html#a066f3db5d13496df1e1fbc8659197793',1,'entt::basic_entt_traits::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac52f9ee1f7aab92da230399fba664480',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#abb8a3829dcd9e0699bb39e52ba42c9c1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__handle.html#ae3da8f3f4ea998e26fce6a7d9497486d',1,'entt::basic_handle::entity_type'],['../classentt_1_1as__view.html#a9ae57dc533e1c2e1279849c8101d07ed',1,'entt::as_view::entity_type'],['../classentt_1_1as__group.html#a01a68f9e8552b14f9bc2e1a48c665c70',1,'entt::as_group::entity_type'],['../classentt_1_1basic__sigh__mixin.html#a0af7926221dcae3edc768c1b710de79f',1,'entt::basic_sigh_mixin::entity_type'],['../classentt_1_1basic__reactive__mixin.html#aa2878e10703e6ba6456c7c45f35bfa55',1,'entt::basic_reactive_mixin::entity_type'],['../classentt_1_1basic__observer.html#a492baa27b5e13ea8759badc5b5681853',1,'entt::basic_observer::entity_type'],['../classentt_1_1basic__organizer.html#adca9a9f4e7676507c10ecd0c46fb7757',1,'entt::basic_organizer::entity_type'],['../classentt_1_1basic__registry.html#abdeb17d13b9834969282c5e8a930656d',1,'entt::basic_registry::entity_type'],['../classentt_1_1basic__runtime__view.html#abb7738cda0849f733d0eab14831b7809',1,'entt::basic_runtime_view::entity_type'],['../classentt_1_1basic__snapshot.html#a052964a4a99d37ab39219bda2372c17b',1,'entt::basic_snapshot::entity_type'],['../classentt_1_1basic__snapshot__loader.html#a21dff5a44dc7ee611a39d9517c8af96e',1,'entt::basic_snapshot_loader::entity_type'],['../classentt_1_1basic__continuous__loader.html#a8ec9043a725da1ddb4f16ce6cb635011',1,'entt::basic_continuous_loader::entity_type'],['../classentt_1_1basic__sparse__set.html#ae90adeddf9bab1f9c8b4b1fff95980f0',1,'entt::basic_sparse_set::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage::entity_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a6facab035e077cf52ecc6319346b8ab0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::entity_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a39bda60ad772dafde668f5a0ac1fd505',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__common__view.html#adab226b6dd6c5fa0959afe67f17a9c75',1,'entt::basic_common_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a05ec937d47504bda347069c6330000c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type'],['../classentt_1_1basic__storage__view.html#ab15a8b7dcf21202d2bb9040b18358de6',1,'entt::basic_storage_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a032956125db6be519c82e860b76beff1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::entity_type']]], + ['entity_18',['entity',['../classentt_1_1basic__handle.html#adfe5f3adcfed0c66e72919b6ba1c98a7',1,'entt::basic_handle::entity()'],['../namespaceentt.html#a0b54e231d069e8a231e14b223388808a',1,'entt::entity'],['../md_docs_2md_2entity.html#null-entity',1,'Null entity'],['../md_docs_2md_2entity.html#to-entity',1,'To entity']]], + ['entity_20and_20the_20component_19',['The Registry, the Entity and the Component',['../md_docs_2md_2entity.html#the-registry-the-entity-and-the-component',1,'']]], + ['entity_20component_20system_20',['Crash Course: entity-component system',['../md_docs_2md_2entity.html',1,'']]], + ['entity_20identifiers_3a_20yay_20or_20nay_21',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]], + ['entity_20lifecycle_22',['Entity lifecycle',['../md_docs_2md_2entity.html#entity-lifecycle',1,'']]], + ['entity_20storage_23',['Entity storage',['../md_docs_2md_2entity.html#entity-storage',1,'']]], + ['entity_5fmask_24',['entity_mask',['../classentt_1_1basic__entt__traits.html#a6b93920c3b3347171c485fdbdead14ec',1,'entt::basic_entt_traits']]], + ['entity_5ftype_25',['entity_type',['../structentt_1_1component__traits.html#ae234a374ad21f25c234a88230eb5b928',1,'entt::component_traits::entity_type'],['../classentt_1_1basic__entt__traits.html#a066f3db5d13496df1e1fbc8659197793',1,'entt::basic_entt_traits::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac52f9ee1f7aab92da230399fba664480',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#abb8a3829dcd9e0699bb39e52ba42c9c1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__handle.html#ae3da8f3f4ea998e26fce6a7d9497486d',1,'entt::basic_handle::entity_type'],['../classentt_1_1as__view.html#a9ae57dc533e1c2e1279849c8101d07ed',1,'entt::as_view::entity_type'],['../classentt_1_1as__group.html#a01a68f9e8552b14f9bc2e1a48c665c70',1,'entt::as_group::entity_type'],['../classentt_1_1basic__sigh__mixin.html#a0af7926221dcae3edc768c1b710de79f',1,'entt::basic_sigh_mixin::entity_type'],['../classentt_1_1basic__reactive__mixin.html#aa2878e10703e6ba6456c7c45f35bfa55',1,'entt::basic_reactive_mixin::entity_type'],['../classentt_1_1basic__organizer.html#adca9a9f4e7676507c10ecd0c46fb7757',1,'entt::basic_organizer::entity_type'],['../classentt_1_1basic__registry.html#abdeb17d13b9834969282c5e8a930656d',1,'entt::basic_registry::entity_type'],['../classentt_1_1basic__runtime__view.html#abb7738cda0849f733d0eab14831b7809',1,'entt::basic_runtime_view::entity_type'],['../classentt_1_1basic__snapshot.html#a052964a4a99d37ab39219bda2372c17b',1,'entt::basic_snapshot::entity_type'],['../classentt_1_1basic__snapshot__loader.html#a21dff5a44dc7ee611a39d9517c8af96e',1,'entt::basic_snapshot_loader::entity_type'],['../classentt_1_1basic__continuous__loader.html#a8ec9043a725da1ddb4f16ce6cb635011',1,'entt::basic_continuous_loader::entity_type'],['../classentt_1_1basic__sparse__set.html#ae90adeddf9bab1f9c8b4b1fff95980f0',1,'entt::basic_sparse_set::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage::entity_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae97a505018e245739a3c1a17c48bc57f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::entity_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a39bda60ad772dafde668f5a0ac1fd505',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__common__view.html#a2a004edc23118d54d2074fe8a1a1cdd7',1,'entt::basic_common_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a05ec937d47504bda347069c6330000c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type'],['../classentt_1_1basic__storage__view.html#ab15a8b7dcf21202d2bb9040b18358de6',1,'entt::basic_storage_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a032956125db6be519c82e860b76beff1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::entity_type']]], + ['entt_26',['EnTT',['../index.html',1,'EnTT'],['../md_docs_2md_2unreal.html#include-entt',1,'Include EnTT']]], ['entt_27',['entt',['../namespaceentt.html',1,'']]], - ['entt_28',['EnTT',['../index.html',1,'EnTT'],['../md_docs_2md_2unreal.html#include-entt',1,'Include EnTT']]], - ['entt_20across_20boundaries_29',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]], - ['entt_20and_20unreal_20engine_30',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], - ['entt_20as_20a_20third_20party_20module_31',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], - ['entt_20in_20action_32',['EnTT in Action',['../md_docs_2md_2links.html',1,'EnTT in Action'],['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], - ['entt_5fassert_33',['ENTT_ASSERT',['../md_docs_2md_2config.html#entt_assert',1,'']]], - ['entt_5fassert_5fconstexpr_34',['ENTT_ASSERT_CONSTEXPR',['../md_docs_2md_2config.html#entt_assert_constexpr',1,'']]], - ['entt_5fdisable_5fassert_35',['ENTT_DISABLE_ASSERT',['../md_docs_2md_2config.html#entt_disable_assert',1,'']]], - ['entt_5fid_5ftype_36',['ENTT_ID_TYPE',['../md_docs_2md_2config.html#entt_id_type',1,'']]], - ['entt_5fno_5feto_37',['ENTT_NO_ETO',['../md_docs_2md_2config.html#entt_no_eto',1,'']]], - ['entt_5fnoexception_38',['ENTT_NOEXCEPTION',['../md_docs_2md_2config.html#entt_noexception',1,'']]], - ['entt_5fpacked_5fpage_39',['ENTT_PACKED_PAGE',['../md_docs_2md_2config.html#entt_packed_page',1,'']]], - ['entt_5fsparse_5fpage_40',['ENTT_SPARSE_PAGE',['../md_docs_2md_2config.html#entt_sparse_page',1,'']]], - ['entt_5fstandard_5fcpp_41',['ENTT_STANDARD_CPP',['../md_docs_2md_2config.html#entt_standard_cpp',1,'']]], - ['entt_5ftraits_42',['entt_traits',['../structentt_1_1entt__traits.html',1,'entt']]], - ['entt_5fuse_5fatomic_43',['ENTT_USE_ATOMIC',['../md_docs_2md_2config.html#entt_use_atomic',1,'']]], - ['enum_20as_20bitmask_44',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], - ['enum_5fas_5fbitmask_45',['enum_as_bitmask',['../structentt_1_1enum__as__bitmask.html',1,'entt']]], - ['enum_5fas_5fbitmask_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28type_3a_3a_5fentt_5fenum_5fas_5fbitmask_29_3e_20_3e_46',['enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >',['../structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html',1,'entt']]], - ['enum_5fas_5fbitmask_5fv_47',['enum_as_bitmask_v',['../namespaceentt.html#a8378b9330b5c90b6b11deee3637ebca6',1,'entt']]], - ['enums_48',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], - ['equal_5frange_49',['equal_range',['../classentt_1_1dense__map.html#a77b33cb48b4784e336d87246701b2024',1,'entt::dense_map::equal_range(const key_type &key)'],['../classentt_1_1dense__map.html#af76ed82791a0f50d0f7aa0bcec46105b',1,'entt::dense_map::equal_range(const key_type &key) const'],['../classentt_1_1dense__map.html#a3d747a3b187a97814603e41ad37bf26e',1,'entt::dense_map::equal_range(const Other &key)'],['../classentt_1_1dense__map.html#a973f2399943dc681e617bb8b46e9244c',1,'entt::dense_map::equal_range(const Other &key) const'],['../classentt_1_1dense__set.html#a5a20617f3bdbf845f746856efbbb99ef',1,'entt::dense_set::equal_range(const value_type &value)'],['../classentt_1_1dense__set.html#af11a86dfc5bd93593a947522fa70bc13',1,'entt::dense_set::equal_range(const value_type &value) const'],['../classentt_1_1dense__set.html#a6207a4c30c9dbc48ebd45f139114144e',1,'entt::dense_set::equal_range(const Other &value)'],['../classentt_1_1dense__set.html#aec681fa3aabf02aaf7666123946817b8',1,'entt::dense_set::equal_range(const Other &value) const']]], - ['erase_50',['erase',['../classentt_1_1dense__map.html#a83036e3f167d28ba9afa943271fb5587',1,'entt::dense_map::erase(const_iterator pos)'],['../classentt_1_1dense__map.html#a49bb9a8de8e27cff97395d4fc527ad04',1,'entt::dense_map::erase(const_iterator first, const_iterator last)'],['../classentt_1_1dense__map.html#a12d1730a14bac304cbd173c05cb2cbf2',1,'entt::dense_map::erase(const key_type &key)'],['../classentt_1_1dense__set.html#ad4ada548c135e15f963efcbdac476e1b',1,'entt::dense_set::erase(const_iterator pos)'],['../classentt_1_1dense__set.html#a2c82fe5721d008445d6bb9af2448cbcd',1,'entt::dense_set::erase(const_iterator first, const_iterator last)'],['../classentt_1_1dense__set.html#abe614f630f49556a49f65c7ed3e1183a',1,'entt::dense_set::erase(const value_type &value)'],['../classentt_1_1basic__table.html#a6e97ec291e59bfa301989558f4b2aeb1',1,'entt::basic_table::erase(const_iterator pos)'],['../classentt_1_1basic__table.html#a9bd606c0fa414aadc77af89087008dca',1,'entt::basic_table::erase(const size_type pos)'],['../classentt_1_1basic__handle.html#a0759182fbb0890e816fb0504ca99e9a0',1,'entt::basic_handle::erase()'],['../classentt_1_1basic__registry.html#afc89c98a7fdc0d6083b2ae23682bc4a9',1,'entt::basic_registry::erase(const entity_type entt)'],['../classentt_1_1basic__registry.html#a9b66704f3f810bc45996802c9197b0d6',1,'entt::basic_registry::erase(It first, It last)'],['../classentt_1_1basic__sparse__set.html#a0a41589e81003ca86b8a6104842680cb',1,'entt::basic_sparse_set::erase(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#a1f3bad1bb267d515e61fd717f4dbb011',1,'entt::basic_sparse_set::erase(It first, It last)'],['../classentt_1_1adjacency__matrix.html#adf91bac04f07bf7ce0478ecd5baeece7',1,'entt::adjacency_matrix::erase()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a713961f32e3f23541b5d082ed6e6a6c2',1,'entt::basic_meta_sequence_container_traits::erase()'],['../structentt_1_1basic__meta__associative__container__traits.html#aea3b661f27c029a72fdbc4f70ae798fb',1,'entt::basic_meta_associative_container_traits::erase()'],['../classentt_1_1meta__sequence__container.html#a74438470b0f80c7af994c0cd83376b0a',1,'entt::meta_sequence_container::erase()'],['../classentt_1_1meta__associative__container.html#a272ccae1664e37085c48aeff2e44c244',1,'entt::meta_associative_container::erase()'],['../classentt_1_1resource__cache.html#a59fd1af63515fbb9e9ed26cb13dbe041',1,'entt::resource_cache::erase(const_iterator pos)'],['../classentt_1_1resource__cache.html#af9938c0c0228fd59b67470e7a904cf3a',1,'entt::resource_cache::erase(const_iterator first, const_iterator last)'],['../classentt_1_1resource__cache.html#a0166a373140e75be2c5b41ccd39d8375',1,'entt::resource_cache::erase(const id_type id)'],['../classentt_1_1emitter.html#aa1c5ac5f75740ebb9fa3eb9f533ba23c',1,'entt::emitter::erase()']]], - ['erase_5fif_51',['erase_if',['../classentt_1_1basic__registry.html#a477abaa59c9e8a9a965c3bcbae103341',1,'entt::basic_registry']]], - ['event_20dispatcher_52',['Event dispatcher',['../md_docs_2md_2signal.html#event-dispatcher',1,'']]], - ['event_20emitter_53',['Event emitter',['../md_docs_2md_2signal.html#event-emitter',1,'']]], - ['events_20signals_20and_20everything_20in_20between_54',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['everything_55',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], - ['everything_20in_20between_56',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['example_57',['Code Example',['../index.html#code-example',1,'']]], - ['example_20to_20rule_20them_20all_58',['One example to rule them all',['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'']]], - ['exclude_59',['exclude',['../classentt_1_1basic__runtime__view.html#a96aac4e03af23f9c49900f43a8b6d6b8',1,'entt::basic_runtime_view::exclude()'],['../namespaceentt.html#a5b73210cef43c4db35ef8ce477cc38a6',1,'entt::exclude']]], - ['exclude_20only_60',['Exclude-only',['../md_docs_2md_2entity.html#exclude-only',1,'']]], - ['exclude_5ft_61',['exclude_t',['../structentt_1_1exclude__t.html',1,'entt::exclude_t< Type >'],['../structentt_1_1exclude__t.html#a3827a2fd7a0e27f2d84f9aa294bf094c',1,'entt::exclude_t::exclude_t()']]], - ['execution_62',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], - ['execution_20graph_63',['Execution graph',['../md_docs_2md_2graph.html#execution-graph',1,'']]], - ['extent_64',['extent',['../classentt_1_1basic__sparse__set.html#a7e51c3904b0581866f8791a04435fc5f',1,'entt::basic_sparse_set']]] + ['entt_20across_20boundaries_28',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]], + ['entt_20and_20unreal_20engine_29',['EnTT and Unreal Engine',['../md_docs_2md_2unreal.html',1,'']]], + ['entt_20as_20a_20third_20party_20module_30',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], + ['entt_20in_20action_31',['EnTT in Action',['../md_docs_2md_2links.html',1,'EnTT in Action'],['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], + ['entt_5fassert_32',['ENTT_ASSERT',['../md_docs_2md_2config.html#entt_assert',1,'']]], + ['entt_5fassert_5fconstexpr_33',['ENTT_ASSERT_CONSTEXPR',['../md_docs_2md_2config.html#entt_assert_constexpr',1,'']]], + ['entt_5fdisable_5fassert_34',['ENTT_DISABLE_ASSERT',['../md_docs_2md_2config.html#entt_disable_assert',1,'']]], + ['entt_5fid_5ftype_35',['ENTT_ID_TYPE',['../md_docs_2md_2config.html#entt_id_type',1,'']]], + ['entt_5fno_5feto_36',['ENTT_NO_ETO',['../md_docs_2md_2config.html#entt_no_eto',1,'']]], + ['entt_5fnoexception_37',['ENTT_NOEXCEPTION',['../md_docs_2md_2config.html#entt_noexception',1,'']]], + ['entt_5fpacked_5fpage_38',['ENTT_PACKED_PAGE',['../md_docs_2md_2config.html#entt_packed_page',1,'']]], + ['entt_5fsparse_5fpage_39',['ENTT_SPARSE_PAGE',['../md_docs_2md_2config.html#entt_sparse_page',1,'']]], + ['entt_5fstandard_5fcpp_40',['ENTT_STANDARD_CPP',['../md_docs_2md_2config.html#entt_standard_cpp',1,'']]], + ['entt_5ftraits_41',['entt_traits',['../structentt_1_1entt__traits.html',1,'entt']]], + ['entt_5ftraits_3c_20entity_20_3e_42',['entt_traits< Entity >',['../structentt_1_1entt__traits.html',1,'entt']]], + ['entt_5ftraits_3c_20typename_20registry_3a_3aentity_5ftype_20_3e_43',['entt_traits< typename Registry::entity_type >',['../structentt_1_1entt__traits.html',1,'entt']]], + ['entt_5fuse_5fatomic_44',['ENTT_USE_ATOMIC',['../md_docs_2md_2config.html#entt_use_atomic',1,'']]], + ['enum_20as_20bitmask_45',['Enum as bitmask',['../md_docs_2md_2core.html#enum-as-bitmask',1,'']]], + ['enum_5fas_5fbitmask_46',['enum_as_bitmask',['../structentt_1_1enum__as__bitmask.html',1,'entt']]], + ['enum_5fas_5fbitmask_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28type_3a_3a_5fentt_5fenum_5fas_5fbitmask_29_3e_20_3e_47',['enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >',['../structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html',1,'entt']]], + ['enum_5fas_5fbitmask_5fv_48',['enum_as_bitmask_v',['../namespaceentt.html#a8378b9330b5c90b6b11deee3637ebca6',1,'entt']]], + ['enums_49',['Named constants and enums',['../md_docs_2md_2meta.html#named-constants-and-enums',1,'']]], + ['equal_5frange_50',['equal_range',['../classentt_1_1dense__map.html#a77b33cb48b4784e336d87246701b2024',1,'entt::dense_map::equal_range(const key_type &key)'],['../classentt_1_1dense__map.html#af76ed82791a0f50d0f7aa0bcec46105b',1,'entt::dense_map::equal_range(const key_type &key) const'],['../classentt_1_1dense__map.html#a3d747a3b187a97814603e41ad37bf26e',1,'entt::dense_map::equal_range(const Other &key)'],['../classentt_1_1dense__map.html#a973f2399943dc681e617bb8b46e9244c',1,'entt::dense_map::equal_range(const Other &key) const'],['../classentt_1_1dense__set.html#a5a20617f3bdbf845f746856efbbb99ef',1,'entt::dense_set::equal_range(const value_type &value)'],['../classentt_1_1dense__set.html#af11a86dfc5bd93593a947522fa70bc13',1,'entt::dense_set::equal_range(const value_type &value) const'],['../classentt_1_1dense__set.html#a6207a4c30c9dbc48ebd45f139114144e',1,'entt::dense_set::equal_range(const Other &value)'],['../classentt_1_1dense__set.html#aec681fa3aabf02aaf7666123946817b8',1,'entt::dense_set::equal_range(const Other &value) const']]], + ['erase_51',['erase',['../classentt_1_1dense__map.html#a83036e3f167d28ba9afa943271fb5587',1,'entt::dense_map::erase(const_iterator pos)'],['../classentt_1_1dense__map.html#a49bb9a8de8e27cff97395d4fc527ad04',1,'entt::dense_map::erase(const_iterator first, const_iterator last)'],['../classentt_1_1dense__map.html#a12d1730a14bac304cbd173c05cb2cbf2',1,'entt::dense_map::erase(const key_type &key)'],['../classentt_1_1dense__set.html#ad4ada548c135e15f963efcbdac476e1b',1,'entt::dense_set::erase(const_iterator pos)'],['../classentt_1_1dense__set.html#a2c82fe5721d008445d6bb9af2448cbcd',1,'entt::dense_set::erase(const_iterator first, const_iterator last)'],['../classentt_1_1dense__set.html#abe614f630f49556a49f65c7ed3e1183a',1,'entt::dense_set::erase(const value_type &value)'],['../classentt_1_1basic__table.html#a6e97ec291e59bfa301989558f4b2aeb1',1,'entt::basic_table::erase(const_iterator pos)'],['../classentt_1_1basic__table.html#a9bd606c0fa414aadc77af89087008dca',1,'entt::basic_table::erase(const size_type pos)'],['../classentt_1_1basic__handle.html#a0759182fbb0890e816fb0504ca99e9a0',1,'entt::basic_handle::erase()'],['../classentt_1_1basic__registry.html#afc89c98a7fdc0d6083b2ae23682bc4a9',1,'entt::basic_registry::erase(const entity_type entt)'],['../classentt_1_1basic__registry.html#a9b66704f3f810bc45996802c9197b0d6',1,'entt::basic_registry::erase(It first, It last)'],['../classentt_1_1basic__sparse__set.html#a0a41589e81003ca86b8a6104842680cb',1,'entt::basic_sparse_set::erase(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#a1f3bad1bb267d515e61fd717f4dbb011',1,'entt::basic_sparse_set::erase(It first, It last)'],['../classentt_1_1adjacency__matrix.html#adf91bac04f07bf7ce0478ecd5baeece7',1,'entt::adjacency_matrix::erase()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a713961f32e3f23541b5d082ed6e6a6c2',1,'entt::basic_meta_sequence_container_traits::erase()'],['../structentt_1_1basic__meta__associative__container__traits.html#aea3b661f27c029a72fdbc4f70ae798fb',1,'entt::basic_meta_associative_container_traits::erase()'],['../classentt_1_1meta__sequence__container.html#a74438470b0f80c7af994c0cd83376b0a',1,'entt::meta_sequence_container::erase()'],['../classentt_1_1meta__associative__container.html#a272ccae1664e37085c48aeff2e44c244',1,'entt::meta_associative_container::erase()'],['../classentt_1_1resource__cache.html#a59fd1af63515fbb9e9ed26cb13dbe041',1,'entt::resource_cache::erase(const_iterator pos)'],['../classentt_1_1resource__cache.html#af9938c0c0228fd59b67470e7a904cf3a',1,'entt::resource_cache::erase(const_iterator first, const_iterator last)'],['../classentt_1_1resource__cache.html#a0166a373140e75be2c5b41ccd39d8375',1,'entt::resource_cache::erase(const id_type id)'],['../classentt_1_1emitter.html#aa1c5ac5f75740ebb9fa3eb9f533ba23c',1,'entt::emitter::erase()']]], + ['erase_5fif_52',['erase_if',['../classentt_1_1basic__registry.html#a477abaa59c9e8a9a965c3bcbae103341',1,'entt::basic_registry']]], + ['event_20dispatcher_53',['Event dispatcher',['../md_docs_2md_2signal.html#event-dispatcher',1,'']]], + ['event_20emitter_54',['Event emitter',['../md_docs_2md_2signal.html#event-emitter',1,'']]], + ['events_20signals_20and_20everything_20in_20between_55',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['everything_56',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], + ['everything_20in_20between_57',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], + ['example_58',['Code Example',['../index.html#code-example',1,'']]], + ['example_20to_20rule_20them_20all_59',['One example to rule them all',['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'']]], + ['exclude_60',['exclude',['../classentt_1_1basic__runtime__view.html#a96aac4e03af23f9c49900f43a8b6d6b8',1,'entt::basic_runtime_view::exclude()'],['../namespaceentt.html#a5b73210cef43c4db35ef8ce477cc38a6',1,'entt::exclude']]], + ['exclude_20only_61',['Exclude-only',['../md_docs_2md_2entity.html#exclude-only',1,'']]], + ['exclude_5ft_62',['exclude_t',['../structentt_1_1exclude__t.html',1,'entt::exclude_t< Type >'],['../structentt_1_1exclude__t.html#a3827a2fd7a0e27f2d84f9aa294bf094c',1,'entt::exclude_t::exclude_t()']]], + ['exclude_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_63',['exclude_t< typename Op< Type >::type... >',['../structentt_1_1exclude__t.html',1,'entt']]], + ['execution_64',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['execution_20graph_65',['Execution graph',['../md_docs_2md_2graph.html#execution-graph',1,'']]], + ['extent_66',['extent',['../classentt_1_1basic__sparse__set.html#a7e51c3904b0581866f8791a04435fc5f',1,'entt::basic_sparse_set']]] ]; diff --git a/search/all_5.js b/search/all_5.js index c5db042ad..555b7c396 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -5,7 +5,7 @@ var searchData= ['family_2',['family',['../classentt_1_1family.html',1,'entt']]], ['faq_3',['FAQ',['../md_docs_2md_2faq.html#faq',1,'']]], ['fast_5fmod_4',['fast_mod',['../namespaceentt.html#a1ae98eeee0b0cb3e94d97d08a74a06f0',1,'entt']]], - ['find_5',['find',['../classentt_1_1dense__map.html#a77aa062268245a84c4c27dcc01839814',1,'entt::dense_map::find(const key_type &key)'],['../classentt_1_1dense__map.html#a5b47e5c447352298fca87921774c4a3d',1,'entt::dense_map::find(const key_type &key) const'],['../classentt_1_1dense__map.html#abf771ba10ee17109769cecd68f0991c5',1,'entt::dense_map::find(const Other &key)'],['../classentt_1_1dense__map.html#a4c611a71d59737c941b1aaf29e64c9b7',1,'entt::dense_map::find(const Other &key) const'],['../classentt_1_1dense__set.html#a3cb64f1ed07507fc9ecbc6f94e582e44',1,'entt::dense_set::find(const value_type &value)'],['../classentt_1_1dense__set.html#a6e8732dc86fd8f04f585deebb0b39ad5',1,'entt::dense_set::find(const value_type &value) const'],['../classentt_1_1dense__set.html#ad75a164225ececfa173b230e587b46c6',1,'entt::dense_set::find(const Other &value)'],['../classentt_1_1dense__set.html#a9ef9e51dc8219cfd2427a7594ff4bf65',1,'entt::dense_set::find(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac63cc46269cc44038dee7f51a3663342',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a656bae2e26463cc4600b1767b54bb369',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__sparse__set.html#a8b9656b9f037aede492f66e87e57a6ca',1,'entt::basic_sparse_set::find()'],['../classentt_1_1basic__common__view.html#abb964d3db8d2476860c91314e6f353b0',1,'entt::basic_common_view::find()'],['../classentt_1_1basic__storage__view.html#afc36aa8a8900f919ba7246aefffb7cda',1,'entt::basic_storage_view::find()'],['../structentt_1_1basic__meta__associative__container__traits.html#a10b86dc92a1d115c794d171472288428',1,'entt::basic_meta_associative_container_traits::find()'],['../classentt_1_1meta__associative__container.html#a2886d0a5df87b31cb7c8804ab097b585',1,'entt::meta_associative_container::find()']]], + ['find_5',['find',['../classentt_1_1dense__map.html#a77aa062268245a84c4c27dcc01839814',1,'entt::dense_map::find(const key_type &key)'],['../classentt_1_1dense__map.html#a5b47e5c447352298fca87921774c4a3d',1,'entt::dense_map::find(const key_type &key) const'],['../classentt_1_1dense__map.html#abf771ba10ee17109769cecd68f0991c5',1,'entt::dense_map::find(const Other &key)'],['../classentt_1_1dense__map.html#a4c611a71d59737c941b1aaf29e64c9b7',1,'entt::dense_map::find(const Other &key) const'],['../classentt_1_1dense__set.html#a3cb64f1ed07507fc9ecbc6f94e582e44',1,'entt::dense_set::find(const value_type &value)'],['../classentt_1_1dense__set.html#a6e8732dc86fd8f04f585deebb0b39ad5',1,'entt::dense_set::find(const value_type &value) const'],['../classentt_1_1dense__set.html#ad75a164225ececfa173b230e587b46c6',1,'entt::dense_set::find(const Other &value)'],['../classentt_1_1dense__set.html#a9ef9e51dc8219cfd2427a7594ff4bf65',1,'entt::dense_set::find(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac63cc46269cc44038dee7f51a3663342',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a656bae2e26463cc4600b1767b54bb369',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__sparse__set.html#a8b9656b9f037aede492f66e87e57a6ca',1,'entt::basic_sparse_set::find()'],['../classentt_1_1basic__common__view.html#a206be195c1f69d1a06894af690b3f768',1,'entt::basic_common_view::find()'],['../classentt_1_1basic__storage__view.html#afc36aa8a8900f919ba7246aefffb7cda',1,'entt::basic_storage_view::find()'],['../structentt_1_1basic__meta__associative__container__traits.html#a10b86dc92a1d115c794d171472288428',1,'entt::basic_meta_associative_container_traits::find()'],['../classentt_1_1meta__associative__container.html#a2886d0a5df87b31cb7c8804ab097b585',1,'entt::meta_associative_container::find()']]], ['finished_6',['finished',['../classentt_1_1process.html#a0385aa714f8fe603a7d89c960b22751e',1,'entt::process']]], ['first_7',['first',['../classentt_1_1compressed__pair.html#a6551d4795fa99d140d5c8eb8e55d9d38',1,'entt::compressed_pair::first() noexcept'],['../classentt_1_1compressed__pair.html#a1523a89c4f1e0fd5f1122d6322b7ce1a',1,'entt::compressed_pair::first() const noexcept']]], ['first_5ftype_8',['first_type',['../classentt_1_1compressed__pair.html#a6db727eef0bb9927d0d299f6a620005a',1,'entt::compressed_pair']]], @@ -21,12 +21,12 @@ var searchData= ['free_5flist_18',['free_list',['../classentt_1_1basic__sparse__set.html#abc26c3d5467a929c2b88d7ad915c1fa9',1,'entt::basic_sparse_set::free_list() const noexcept'],['../classentt_1_1basic__sparse__set.html#acd0d917af2718dcc8f3dc71d3086e013',1,'entt::basic_sparse_set::free_list(const size_type value) noexcept']]], ['frequently_20asked_20questions_19',['Frequently Asked Questions',['../md_docs_2md_2faq.html',1,'']]], ['from_20void_20to_20any_20',['From void to any',['../md_docs_2md_2meta.html#from-void-to-any',1,'']]], - ['from_5fvoid_21',['from_void',['../classentt_1_1meta__type.html#a775629305e7928a84ded060951f5a5da',1,'entt::meta_type::from_void(void *elem) const'],['../classentt_1_1meta__type.html#a7b6e4c538811516d5eeffa4a118836e0',1,'entt::meta_type::from_void(const void *elem) const']]], - ['front_22',['front',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab5ba983fbaee1dce61af5edeb3872ecd',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a824f21536b1352d744fdfcee94d79c8c',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__common__view.html#a7d5614b020a387078f807a58cea0cd90',1,'entt::basic_common_view::front()'],['../classentt_1_1basic__storage__view.html#a05395820519fbf8866d7f94ba9c2c0a7',1,'entt::basic_storage_view::front()']]], + ['from_5fvoid_21',['from_void',['../classentt_1_1meta__type.html#a2569a34e9e39c158a10412eff1065004',1,'entt::meta_type::from_void(void *elem, bool transfer_ownership=false) const'],['../classentt_1_1meta__type.html#a7b6e4c538811516d5eeffa4a118836e0',1,'entt::meta_type::from_void(const void *elem) const']]], + ['front_22',['front',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab5ba983fbaee1dce61af5edeb3872ecd',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a824f21536b1352d744fdfcee94d79c8c',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__common__view.html#a94855cfbd9b0c88fdfb2161b0c5753bc',1,'entt::basic_common_view::front()'],['../classentt_1_1basic__storage__view.html#a05395820519fbf8866d7f94ba9c2c0a7',1,'entt::basic_storage_view::front()']]], ['fulfill_20a_20concept_23',['Fulfill a concept',['../md_docs_2md_2poly.html#fulfill-a-concept',1,'']]], ['full_20owning_20groups_24',['Full-owning groups',['../md_docs_2md_2entity.html#full-owning-groups',1,'']]], ['func_25',['func',['../classentt_1_1meta__factory.html#ae1e568d14719075a21064b0b72aac446',1,'entt::meta_factory::func()'],['../classentt_1_1meta__type.html#a1210d053a37080ba86c3b8fef0fd63fa',1,'entt::meta_type::func() const noexcept'],['../classentt_1_1meta__type.html#a3e345e527b4f36c2146254e1ed9b6649',1,'entt::meta_type::func(const id_type id) const']]], - ['function_5ftype_26',['function_type',['../classentt_1_1basic__organizer.html#ab4111ab706d0160d4bbf3a9223583d94',1,'entt::basic_organizer::function_type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a1a5ceebde7cebde69a1b2022f539a656',1,'entt::delegate< Ret(Args...)>::function_type']]], + ['function_5ftype_26',['function_type',['../classentt_1_1basic__organizer.html#ab4111ab706d0160d4bbf3a9223583d94',1,'entt::basic_organizer']]], ['functionalities_27',['Crash Course: core functionalities',['../md_docs_2md_2core.html',1,'']]], ['functions_20trigger_20which_20signals_28',['Which functions trigger which signals',['../md_docs_2md_2faq.html#which-functions-trigger-which-signals',1,'']]] ]; diff --git a/search/all_6.js b/search/all_6.js index 329092361..49f9f69e3 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -1,22 +1,23 @@ var searchData= [ ['games_0',['Games',['../md_docs_2md_2links.html#games',1,'']]], - ['generated_20default_20constructor_1',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], - ['generator_2',['Generator',['../md_docs_2md_2core.html#compile-time-generator',1,'Compile-time generator'],['../md_docs_2md_2core.html#runtime-generator',1,'Runtime generator']]], - ['get_3',['get',['../classentt_1_1compressed__pair.html#a4b39321fd471de2bcf190e3ef21b6836',1,'entt::compressed_pair::get() noexcept'],['../classentt_1_1compressed__pair.html#a496b3daad5244a40644fd8de519ef448',1,'entt::compressed_pair::get() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a507bcb4508ac957e96be3b4691633aa9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a8a9d3d57c43e454d991d1c7c85752cd9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a0cc40a8d9473eace55d248be609671a7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ad3fe15acceec2e1d20c222919ec30441',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__handle.html#a1991e05e46cc0426d2556c3c3dab4b0f',1,'entt::basic_handle::get()'],['../classentt_1_1basic__registry.html#abe347a879e04298df37c19b757f6ab08',1,'entt::basic_registry::get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a96d520486439b2017faef0c7c399ea11',1,'entt::basic_registry::get(const entity_type entt)'],['../classentt_1_1basic__snapshot.html#a6d49e430bdc8a0558c5eca20be7ad382',1,'entt::basic_snapshot::get(Archive &archive, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot.html#ae4c96723bedd73f8db3789389f933b94',1,'entt::basic_snapshot::get(Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot__loader.html#a395cd08d4fe6dca759ae400d5584ef88',1,'entt::basic_snapshot_loader::get()'],['../classentt_1_1basic__continuous__loader.html#ad4962b919dc91a9f6dfc223bcf983376',1,'entt::basic_continuous_loader::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a183863f3241e5c21589e08cedd9cca17',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a2c4bcec746cdc4fe6378614090a8a1dc',1,'entt::basic_storage< Entity, Entity, Allocator >::get()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#aab5ab7ecb196e9ed26312af6b284d5af',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2774600071b22c8b8507f425ab346df3',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1meta__any.html#af4248edb9b372270a6c0d2e914a17c7d',1,'entt::meta_any::get(id_type id) const'],['../classentt_1_1meta__any.html#a7cf7b8163435bd7ca9e9d5cf8c7d910d',1,'entt::meta_any::get(id_type id)'],['../structentt_1_1meta__data.html#a754da41b4c8057f7c9a3ff4738935d04',1,'entt::meta_data::get()'],['../classentt_1_1meta__type.html#ab702cf8050c2625eaf9e4c82c8381117',1,'entt::meta_type::get()'],['../namespaceentt.html#a8c24ecc5ab0055f9f2a4725c95afb29e',1,'entt::get']]], - ['get_5fallocator_4',['get_allocator',['../classentt_1_1dense__map.html#a9cd5632c26bf5281cfbbd7fbd9f85bf5',1,'entt::dense_map::get_allocator()'],['../classentt_1_1dense__set.html#ae130fd3c8ef0c3899ac2ba45fb6a1965',1,'entt::dense_set::get_allocator()'],['../classentt_1_1basic__registry.html#aa0db3b1ef8738ee88b164f0f9530961b',1,'entt::basic_registry::get_allocator()'],['../classentt_1_1basic__runtime__view.html#a7461d8fe5d56fa8d1c5ec997f2b086c6',1,'entt::basic_runtime_view::get_allocator()'],['../classentt_1_1basic__sparse__set.html#ab292b60dd8782739701906aec8f381ab',1,'entt::basic_sparse_set::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage::get_allocator()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a172622381f03e8710c0836e7ad11b8cf',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_allocator()'],['../classentt_1_1adjacency__matrix.html#aea59b70885fd22df3f80f59cf6e9e58b',1,'entt::adjacency_matrix::get_allocator()'],['../classentt_1_1basic__flow.html#a49e335a9671725195bfe923e6e39a413',1,'entt::basic_flow::get_allocator()'],['../classentt_1_1basic__scheduler.html#abc471579324ff48d2c55a520024449d3',1,'entt::basic_scheduler::get_allocator()'],['../classentt_1_1resource__cache.html#aebe73d139285eec2ea6284112609af8a',1,'entt::resource_cache::get_allocator()'],['../classentt_1_1basic__dispatcher.html#ad2491b6dfbb3fc48624e0765cfac8cc1',1,'entt::basic_dispatcher::get_allocator()'],['../classentt_1_1emitter.html#ae7a4a02a33a8b4c0fb6014f32a793dd9',1,'entt::emitter::get_allocator()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a824b29db11cab30390cff4d87da199eb',1,'entt::sigh< Ret(Args...), Allocator >::get_allocator()']]], - ['get_5fas_5ftuple_5',['get_as_tuple',['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aafadc116ef4610e4c95cfdf198bee3c7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_as_tuple()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#afd19d01b5c34b4173416ef1836997f75',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple()']]], - ['get_5for_5femplace_6',['get_or_emplace',['../classentt_1_1basic__handle.html#aa6226287fd3b506b4a095cc38ceb7792',1,'entt::basic_handle::get_or_emplace()'],['../classentt_1_1basic__registry.html#a13eee32008020e19e15ccc87f4025a2e',1,'entt::basic_registry::get_or_emplace()']]], - ['get_5ft_7',['get_t',['../structentt_1_1get__t.html',1,'entt::get_t< Type >'],['../structentt_1_1get__t.html#a068783ad48f1d473bb0bf9b5ca1f134f',1,'entt::get_t::get_t()']]], - ['give_20me_20everything_8',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], - ['graph_9',['Crash Course: graph',['../md_docs_2md_2graph.html',1,'']]], - ['graph_10',['Execution graph',['../md_docs_2md_2graph.html#execution-graph',1,'']]], - ['graph_11',['graph',['../classentt_1_1basic__organizer.html#a540973737740605acac4c35d1176abde',1,'entt::basic_organizer::graph()'],['../classentt_1_1basic__flow.html#a5077f0aef10e4e9b898b6b7df36ccb39',1,'entt::basic_flow::graph()']]], + ['generate_1',['generate',['../classentt_1_1basic__sigh__mixin.html#aecb243e7869599f48e8acf9b21a380ca',1,'entt::basic_sigh_mixin::generate()'],['../classentt_1_1basic__sigh__mixin.html#a3c5c054e7644149a58e88025aa607cce',1,'entt::basic_sigh_mixin::generate(const entity_type hint)'],['../classentt_1_1basic__sigh__mixin.html#a18f129c8b510408c7e697e5210dbcb6f',1,'entt::basic_sigh_mixin::generate(It first, It last)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f3765fe1e8898905a8ba0f0876fbb4c',1,'entt::basic_storage< Entity, Entity, Allocator >::generate()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a34d010a5cc9170002b6518b99c9cfc00',1,'entt::basic_storage< Entity, Entity, Allocator >::generate(const entity_type hint)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aaf15a615fb26f5f95b27f211681cd554',1,'entt::basic_storage< Entity, Entity, Allocator >::generate(It first, It last)']]], + ['generated_20default_20constructor_2',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], + ['generator_3',['generator',['../md_docs_2md_2core.html#compile-time-generator',1,'Compile-time generator'],['../md_docs_2md_2core.html#runtime-generator',1,'Runtime generator']]], + ['get_4',['get',['../classentt_1_1compressed__pair.html#a4b39321fd471de2bcf190e3ef21b6836',1,'entt::compressed_pair::get() noexcept'],['../classentt_1_1compressed__pair.html#a496b3daad5244a40644fd8de519ef448',1,'entt::compressed_pair::get() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a507bcb4508ac957e96be3b4691633aa9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a8a9d3d57c43e454d991d1c7c85752cd9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a0cc40a8d9473eace55d248be609671a7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ad3fe15acceec2e1d20c222919ec30441',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__handle.html#a1991e05e46cc0426d2556c3c3dab4b0f',1,'entt::basic_handle::get()'],['../classentt_1_1basic__registry.html#abe347a879e04298df37c19b757f6ab08',1,'entt::basic_registry::get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a96d520486439b2017faef0c7c399ea11',1,'entt::basic_registry::get(const entity_type entt)'],['../classentt_1_1basic__snapshot.html#a6d49e430bdc8a0558c5eca20be7ad382',1,'entt::basic_snapshot::get(Archive &archive, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot.html#ae4c96723bedd73f8db3789389f933b94',1,'entt::basic_snapshot::get(Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot__loader.html#a395cd08d4fe6dca759ae400d5584ef88',1,'entt::basic_snapshot_loader::get()'],['../classentt_1_1basic__continuous__loader.html#ad4962b919dc91a9f6dfc223bcf983376',1,'entt::basic_continuous_loader::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ab9cafbd4986dbf0111d3826bc4a33a52',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a2c4bcec746cdc4fe6378614090a8a1dc',1,'entt::basic_storage< Entity, Entity, Allocator >::get()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#aab5ab7ecb196e9ed26312af6b284d5af',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2774600071b22c8b8507f425ab346df3',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1meta__any.html#af4248edb9b372270a6c0d2e914a17c7d',1,'entt::meta_any::get(id_type id) const'],['../classentt_1_1meta__any.html#a7cf7b8163435bd7ca9e9d5cf8c7d910d',1,'entt::meta_any::get(id_type id)'],['../structentt_1_1meta__data.html#a754da41b4c8057f7c9a3ff4738935d04',1,'entt::meta_data::get()'],['../classentt_1_1meta__type.html#ab702cf8050c2625eaf9e4c82c8381117',1,'entt::meta_type::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage< Entity, Entity, Allocator >::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage< Entity, Entity, Allocator >::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get(const entity_type entt) noexcept'],['../namespaceentt.html#a8c24ecc5ab0055f9f2a4725c95afb29e',1,'entt::get']]], + ['get_5fallocator_5',['get_allocator',['../classentt_1_1dense__map.html#a9cd5632c26bf5281cfbbd7fbd9f85bf5',1,'entt::dense_map::get_allocator()'],['../classentt_1_1dense__set.html#ae130fd3c8ef0c3899ac2ba45fb6a1965',1,'entt::dense_set::get_allocator()'],['../classentt_1_1basic__registry.html#aa0db3b1ef8738ee88b164f0f9530961b',1,'entt::basic_registry::get_allocator()'],['../classentt_1_1basic__runtime__view.html#a7461d8fe5d56fa8d1c5ec997f2b086c6',1,'entt::basic_runtime_view::get_allocator()'],['../classentt_1_1basic__sparse__set.html#ab292b60dd8782739701906aec8f381ab',1,'entt::basic_sparse_set::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage::get_allocator()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a2860b57d969a24f6cf9f84bd8f6fe3a2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_allocator()'],['../classentt_1_1adjacency__matrix.html#aea59b70885fd22df3f80f59cf6e9e58b',1,'entt::adjacency_matrix::get_allocator()'],['../classentt_1_1basic__flow.html#a49e335a9671725195bfe923e6e39a413',1,'entt::basic_flow::get_allocator()'],['../classentt_1_1basic__scheduler.html#abc471579324ff48d2c55a520024449d3',1,'entt::basic_scheduler::get_allocator()'],['../classentt_1_1resource__cache.html#aebe73d139285eec2ea6284112609af8a',1,'entt::resource_cache::get_allocator()'],['../classentt_1_1basic__dispatcher.html#ad2491b6dfbb3fc48624e0765cfac8cc1',1,'entt::basic_dispatcher::get_allocator()'],['../classentt_1_1emitter.html#ae7a4a02a33a8b4c0fb6014f32a793dd9',1,'entt::emitter::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage< Entity, Entity, Allocator >::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_allocator()']]], + ['get_5fas_5ftuple_6',['get_as_tuple',['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a597c72c7242e354b36b23862d4d85c95',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#afd19d01b5c34b4173416ef1836997f75',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple(const entity_type entt) noexcept']]], + ['get_5for_5femplace_7',['get_or_emplace',['../classentt_1_1basic__handle.html#aa6226287fd3b506b4a095cc38ceb7792',1,'entt::basic_handle::get_or_emplace()'],['../classentt_1_1basic__registry.html#a13eee32008020e19e15ccc87f4025a2e',1,'entt::basic_registry::get_or_emplace()']]], + ['get_5ft_8',['get_t',['../structentt_1_1get__t.html',1,'entt::get_t< Type >'],['../structentt_1_1get__t.html#a068783ad48f1d473bb0bf9b5ca1f134f',1,'entt::get_t::get_t()']]], + ['get_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_9',['get_t< typename Op< Type >::type... >',['../structentt_1_1get__t.html',1,'entt']]], + ['give_20me_20everything_10',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], + ['graph_11',['graph',['../md_docs_2md_2graph.html',1,'Crash Course: graph'],['../md_docs_2md_2graph.html#execution-graph',1,'Execution graph'],['../classentt_1_1basic__organizer.html#a540973737740605acac4c35d1176abde',1,'entt::basic_organizer::graph()'],['../classentt_1_1basic__flow.html#a5077f0aef10e4e9b898b6b7df36ccb39',1,'entt::basic_flow::graph()']]], ['graph_5fcategory_12',['graph_category',['../classentt_1_1adjacency__matrix.html#a3beccfd9cecbffa10c80dc702ef95917',1,'entt::adjacency_matrix']]], ['graph_5ftype_13',['graph_type',['../classentt_1_1basic__flow.html#a552d8b3474416c8a9ce91377359b5bd0',1,'entt::basic_flow']]], ['graphviz_20dot_20language_14',['Graphviz dot language',['../md_docs_2md_2graph.html#graphviz-dot-language',1,'']]], - ['group_15',['group',['../structentt_1_1basic__collector_3_4.html#a718ff87ec2db7fa4332b2b3d47a7998f',1,'entt::basic_collector<>::group()'],['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#a84a5b944f463c1b1e1907a2906793b54',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::group()'],['../classentt_1_1basic__registry.html#ade9bff8409333c2e85c33411b09998f1',1,'entt::basic_registry::group()'],['../namespaceentt.html#a7e718d299437d564f6c3891c4c230f06',1,'entt::group']]], + ['group_15',['group',['../classentt_1_1basic__registry.html#ade9bff8409333c2e85c33411b09998f1',1,'entt::basic_registry::group()'],['../namespaceentt.html#a7e718d299437d564f6c3891c4c230f06',1,'entt::group']]], ['group_5fid_16',['group_id',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1087af5249eb3f2049610ae8d0b07bd7',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::group_id()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae1cc1b088c5625d4fc991a35d959995d',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::group_id()']]], ['group_5fif_5fexists_17',['group_if_exists',['../classentt_1_1basic__registry.html#a7e1bde3245d81f921be211cef7df5c7f',1,'entt::basic_registry']]], - ['groups_18',['Groups',['../md_docs_2md_2entity.html#full-owning-groups',1,'Full-owning groups'],['../md_docs_2md_2entity.html#groups',1,'Groups'],['../md_docs_2md_2entity.html#non-owning-groups',1,'Non-owning groups'],['../md_docs_2md_2entity.html#partial-owning-groups',1,'Partial-owning groups'],['../md_docs_2md_2entity.html#views-and-groups',1,'Views and Groups']]] + ['groups_18',['Groups',['../md_docs_2md_2entity.html#groups',1,'Groups'],['../md_docs_2md_2entity.html#views-and-groups',1,'Views and Groups']]], + ['groups_19',['groups',['../md_docs_2md_2entity.html#full-owning-groups',1,'Full-owning groups'],['../md_docs_2md_2entity.html#non-owning-groups',1,'Non-owning groups'],['../md_docs_2md_2entity.html#partial-owning-groups',1,'Partial-owning groups']]] ]; diff --git a/search/all_7.js b/search/all_7.js index 30535813f..eb14517be 100644 --- a/search/all_7.js +++ b/search/all_7.js @@ -1,7 +1,7 @@ var searchData= [ - ['handle_0',['handle',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4d5bfe2db9bebc127208c2d19e4731f6',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02195bbadcbe2f41854c7dc0a0a178e1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__common__view.html#a4d4caecc5dfcf100b0132198fdfe43b3',1,'entt::basic_common_view::handle()'],['../classentt_1_1basic__storage__view.html#af229ede8e401c470bc1912752d004132',1,'entt::basic_storage_view::handle()'],['../classentt_1_1locator.html#a09b8c4659e08c600c113ce9e5b8fa7d3',1,'entt::locator::handle()'],['../classentt_1_1resource.html#a54b9a81a75cae1cba84c940e653a9f19',1,'entt::resource::handle()'],['../namespaceentt.html#a4709e4ff444e7d9b73f97d9e471bf8af',1,'entt::handle']]], - ['handle_1',['Handle',['../md_docs_2md_2entity.html#handle',1,'Handle'],['../md_docs_2md_2resource.html#resource-handle',1,'Resource handle']]], + ['handle_0',['Handle',['../md_docs_2md_2entity.html#handle',1,'']]], + ['handle_1',['handle',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4d5bfe2db9bebc127208c2d19e4731f6',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02195bbadcbe2f41854c7dc0a0a178e1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__common__view.html#a2aff92b331b0ca09fc2dc6006261fa2f',1,'entt::basic_common_view::handle()'],['../classentt_1_1basic__storage__view.html#af229ede8e401c470bc1912752d004132',1,'entt::basic_storage_view::handle()'],['../classentt_1_1locator.html#a09b8c4659e08c600c113ce9e5b8fa7d3',1,'entt::locator::handle()'],['../classentt_1_1resource.html#a54b9a81a75cae1cba84c940e653a9f19',1,'entt::resource::handle()'],['../namespaceentt.html#a4709e4ff444e7d9b73f97d9e471bf8af',1,'entt::handle'],['../md_docs_2md_2resource.html#resource-handle',1,'Resource handle']]], ['handle_5ftype_2',['handle_type',['../classentt_1_1resource.html#ae7e7cbc1c49a5c8d1c2f9714f7863182',1,'entt::resource']]], ['handle_5fview_3',['handle_view',['../namespaceentt.html#a6f4731e2abbad1637d6fd851cf4039f6',1,'entt']]], ['handler_4',['handler',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac308d47ad733d64e47937a9e9a3be3e2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handler'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a5ebb7fc96e20ebb95ce3af127983f296',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handler']]], diff --git a/search/all_8.js b/search/all_8.js index c47c0adf3..f89f23edd 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -2,84 +2,84 @@ var searchData= [ ['i_20represent_20hierarchies_20with_20my_20components_0',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], ['id_1',['id',['../classentt_1_1meta__type.html#a36146bea036a793d7a4a677e9b98c575',1,'entt::meta_type']]], - ['id_5ftype_2',['id_type',['../namespaceentt.html#a7f3ac95ffe482bbd1a70b624ef8bb641',1,'entt']]], + ['id_5ftype_2',['id_type',['../namespaceentt.html#a620d583c0e6d64acf3d394524bb72303',1,'entt']]], ['ident_3',['ident',['../classentt_1_1ident.html',1,'entt']]], - ['identifiers_4',['Identifiers',['../md_docs_2md_2core.html#almost-unique-identifiers',1,'Almost unique identifiers'],['../md_docs_2md_2meta.html#names-and-identifiers',1,'Names and identifiers'],['../md_docs_2md_2core.html#unique-sequential-identifiers',1,'Unique sequential identifiers']]], + ['identifiers_4',['identifiers',['../md_docs_2md_2core.html#almost-unique-identifiers',1,'Almost unique identifiers'],['../md_docs_2md_2meta.html#names-and-identifiers',1,'Names and identifiers'],['../md_docs_2md_2entity.html#reserved-identifiers',1,'Reserved identifiers'],['../md_docs_2md_2core.html#unique-sequential-identifiers',1,'Unique sequential identifiers']]], ['identifiers_3a_20yay_20or_20nay_5',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]], ['identity_6',['identity',['../structentt_1_1identity.html',1,'entt']]], ['implementation_7',['Concept and implementation',['../md_docs_2md_2poly.html#concept-and-implementation',1,'']]], ['implicitly_20generated_20default_20constructor_8',['Implicitly generated default constructor',['../md_docs_2md_2meta.html#implicitly-generated-default-constructor',1,'']]], ['in_20a_20nutshell_9',['Reflection in a nutshell',['../md_docs_2md_2meta.html#reflection-in-a-nutshell',1,'']]], - ['in_20action_10',['EnTT in Action',['../md_docs_2md_2links.html',1,'']]], - ['in_20action_11',['In Action',['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], - ['in_20any_20type_12',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], - ['in_20between_13',['Crash Course: events, signals and everything in between',['../md_docs_2md_2signal.html',1,'']]], - ['in_20between_14',['Types: const, non-const and all in between',['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'']]], - ['in_20place_20delete_15',['In-place delete',['../md_docs_2md_2entity.html#in-place-delete',1,'']]], - ['in_20rtti_20support_16',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], - ['in_20the_20wild_17',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], - ['in_5fedge_5fiterator_18',['in_edge_iterator',['../classentt_1_1adjacency__matrix.html#ad1eb3bad19846f57d9a6a44bed6f360d',1,'entt::adjacency_matrix']]], - ['in_5fedges_19',['in_edges',['../structentt_1_1basic__organizer_1_1vertex.html#a4c2af4ab50517f9a67f30fa543033f9c',1,'entt::basic_organizer::vertex::in_edges()'],['../classentt_1_1adjacency__matrix.html#a9213407b3d7b543348000a44357ccca1',1,'entt::adjacency_matrix::in_edges()']]], - ['in_5fplace_20',['in_place',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581aa49f99ae99ae9daddd1fb79b73d2db28',1,'entt']]], - ['in_5fplace_5fdelete_21',['in_place_delete',['../structentt_1_1component__traits.html#ac3efe50eb183fe2a31b642ade474017f',1,'entt::component_traits']]], - ['in_5fplace_5fpop_22',['in_place_pop',['../classentt_1_1basic__sparse__set.html#aa45b7ab945ade01c286a35cba5376d7f',1,'entt::basic_sparse_set']]], - ['include_20entt_23',['Include EnTT',['../md_docs_2md_2unreal.html#include-entt',1,'']]], - ['index_24',['index',['../structentt_1_1type__info.html#a3335aa54e69d9a63d5ccbcef8e994d3b',1,'entt::type_info::index()'],['../classentt_1_1basic__sparse__set.html#ad8a8fc74771c26b36fce8234f5e1d1fa',1,'entt::basic_sparse_set::index()']]], - ['info_25',['info',['../structentt_1_1basic__organizer_1_1vertex.html#a1c373d102d50fc634f732f7c1e23e4c5',1,'entt::basic_organizer::vertex::info()'],['../classentt_1_1meta__type.html#ad743b3cf68435895e2ae35d685874793',1,'entt::meta_type::info()']]], - ['info_26',['Type info',['../md_docs_2md_2core.html#type-info',1,'']]], - ['information_27',['Template information',['../md_docs_2md_2meta.html#template-information',1,'']]], - ['inheritance_28',['Inheritance',['../md_docs_2md_2poly.html#inheritance',1,'']]], - ['input_20iterator_20pointer_29',['Input iterator pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'']]], - ['input_5fiterator_5fpointer_30',['input_iterator_pointer',['../structentt_1_1input__iterator__pointer.html',1,'entt::input_iterator_pointer< Type >'],['../structentt_1_1input__iterator__pointer.html#a1805365ee66a86c99a5297932da42392',1,'entt::input_iterator_pointer::input_iterator_pointer()']]], - ['insert_31',['insert',['../classentt_1_1dense__map.html#ada4ac1f5a3295d80d8bb4fa6387023db',1,'entt::dense_map::insert(const value_type &value)'],['../classentt_1_1dense__map.html#a71e1a562a523572405bbf0a53bb8535d',1,'entt::dense_map::insert(value_type &&value)'],['../classentt_1_1dense__map.html#a92eced5574b8354b8357f79faf16fc23',1,'entt::dense_map::insert(Arg &&value)'],['../classentt_1_1dense__map.html#a3c94e139b8d65ac65df36161183a8a49',1,'entt::dense_map::insert(It first, It last)'],['../classentt_1_1dense__set.html#a818d80686b709f02cec08f5fc082e279',1,'entt::dense_set::insert(const value_type &value)'],['../classentt_1_1dense__set.html#ac1c11ba7070fd958ada9dab7b9106ec6',1,'entt::dense_set::insert(value_type &&value)'],['../classentt_1_1dense__set.html#ae52c7f8b38e6bfc15e421fcc8021ba15',1,'entt::dense_set::insert(It first, It last)'],['../classentt_1_1basic__sigh__mixin.html#aa53fc080eb084535f639efd1e67f3e3c',1,'entt::basic_sigh_mixin::insert()'],['../classentt_1_1basic__registry.html#ae299b32827f0667903d8564e10ca6774',1,'entt::basic_registry::insert(It first, It last, const Type &value={})'],['../classentt_1_1basic__registry.html#ae4630a45e531d05669da84aa4a5e9778',1,'entt::basic_registry::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#acd7d5ee354baa947b8e7e3a8ee72ed04',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::insert()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a376d14e745c1cc4f02cbebf70cab4753',1,'entt::basic_storage< Entity, Entity, Allocator >::insert()'],['../classentt_1_1adjacency__matrix.html#a16d422fbdac17535196b27001b4bfd63',1,'entt::adjacency_matrix::insert()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a7caf932772ff942247e61673d8c3df61',1,'entt::basic_meta_sequence_container_traits::insert()'],['../structentt_1_1basic__meta__associative__container__traits.html#ae403d257c39ca55b238e86689e890b19',1,'entt::basic_meta_associative_container_traits::insert()'],['../classentt_1_1meta__sequence__container.html#a16ff101b059da6a38e3fe9f025db110c',1,'entt::meta_sequence_container::insert()'],['../classentt_1_1meta__associative__container.html#a292d90c2d8cbee3d6c2c32a899a9cb5e',1,'entt::meta_associative_container::insert()']]], - ['insert_5for_5fassign_32',['insert_or_assign',['../classentt_1_1dense__map.html#aafff57a203cd3fc561320bad6eeea0c3',1,'entt::dense_map::insert_or_assign(const key_type &key, Arg &&value)'],['../classentt_1_1dense__map.html#a9a9522dcd518bd3d73769d80d35606db',1,'entt::dense_map::insert_or_assign(key_type &&key, Arg &&value)']]], - ['insertion_5fsort_33',['insertion_sort',['../structentt_1_1insertion__sort.html',1,'entt']]], - ['instance_34',['instance',['../classentt_1_1poly__vtable.html#a2b8979ab014f71105f54cb3c94aa983d',1,'entt::poly_vtable']]], - ['integral_20constant_35',['Integral constant',['../md_docs_2md_2core.html#integral-constant',1,'']]], - ['integral_5fconstant_36',['integral_constant',['../namespaceentt.html#a0e653af66fcdc9e4abc2a81f362b8963',1,'entt']]], - ['integration_37',['Integration',['../index.html#integration',1,'']]], - ['interface_38',['Interface',['../md_docs_2md_2poly.html#deduced-interface',1,'Deduced interface'],['../md_docs_2md_2poly.html#defined-interface',1,'Defined interface']]], - ['introduction_39',['Introduction',['../md_docs_2md_2config.html#introduction',1,'Introduction'],['../md_docs_2md_2container.html#introduction-1',1,'Introduction'],['../md_docs_2md_2core.html#introduction-2',1,'Introduction'],['../md_docs_2md_2entity.html#introduction-3',1,'Introduction'],['../md_docs_2md_2faq.html#introduction-4',1,'Introduction'],['../md_docs_2md_2graph.html#introduction-5',1,'Introduction'],['../md_docs_2md_2links.html#introduction-6',1,'Introduction'],['../md_docs_2md_2locator.html#introduction-7',1,'Introduction'],['../md_docs_2md_2meta.html#introduction-8',1,'Introduction'],['../md_docs_2md_2poly.html#introduction-9',1,'Introduction'],['../md_docs_2md_2process.html#introduction-10',1,'Introduction'],['../md_docs_2md_2reference.html#introduction-11',1,'Introduction'],['../md_docs_2md_2resource.html#introduction-12',1,'Introduction'],['../md_docs_2md_2signal.html#introduction-13',1,'Introduction'],['../index.html#introduction-14',1,'Introduction']]], - ['invoke_40',['invoke',['../classentt_1_1meta__any.html#a27324d1a7a5ba142831623e43aed263d',1,'entt::meta_any::invoke(id_type id, Args &&...args) const'],['../classentt_1_1meta__any.html#a6f42174cc6ddf8eb76089ee5ac552308',1,'entt::meta_any::invoke(id_type id, Args &&...args)'],['../structentt_1_1meta__func.html#a83fb3576c1a3873de1e1e041f759180b',1,'entt::meta_func::invoke(meta_handle instance, meta_any *const args, const size_type sz) const'],['../structentt_1_1meta__func.html#aa10b325b5da2a1c04259f2d6dc1f6746',1,'entt::meta_func::invoke(meta_handle instance, Args &&...args) const'],['../classentt_1_1meta__type.html#ad846c918ce1e2f496b7464cc6a6d6d5e',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a99a835b500d3aa1f4f25090d8bef3802',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, Args &&...args) const'],['../structentt_1_1poly__inspector.html#a8539b30952dd5a66aa24f334ae4976de',1,'entt::poly_inspector::invoke(Args &&...args) const'],['../structentt_1_1poly__inspector.html#ac829c393c3d78f306edd0307f71139cb',1,'entt::poly_inspector::invoke(Args &&...args)'],['../structentt_1_1poly__base.html#a814fd041b02ddfe60577b23d174e7182',1,'entt::poly_base::invoke(const poly_base &self, Args &&...args) const'],['../structentt_1_1poly__base.html#a8e782d45ce62d6bd620ad22a0ee913e2',1,'entt::poly_base::invoke(poly_base &self, Args &&...args)'],['../namespaceentt.html#ac25eea8903b4a5d58408cc2e9ecb1a2e',1,'entt::invoke()']]], - ['invoke_41',['Invoke',['../md_docs_2md_2entity.html#invoke',1,'']]], - ['iota_20iterator_42',['Iota iterator',['../md_docs_2md_2core.html#iota-iterator',1,'']]], - ['iota_5fiterator_43',['iota_iterator',['../classentt_1_1iota__iterator.html',1,'entt::iota_iterator< Type >'],['../classentt_1_1iota__iterator.html#ae28c3ba9c14922bdfdab9514ef2092a2',1,'entt::iota_iterator::iota_iterator() noexcept'],['../classentt_1_1iota__iterator.html#a01de893e18176972ea441644a1792efe',1,'entt::iota_iterator::iota_iterator(const value_type init) noexcept']]], - ['is_20allowed_20and_20what_20is_20not_44',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], - ['is_20applicable_45',['Is applicable',['../md_docs_2md_2core.html#is-applicable',1,'']]], - ['is_20it_20possible_46',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], - ['is_20my_20debug_20build_20on_20windows_20so_20slow_47',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['is_5fapplicable_48',['is_applicable',['../structentt_1_1is__applicable.html',1,'entt']]], - ['is_5fapplicable_3c_20func_2c_20const_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_49',['is_applicable< Func, const Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fapplicable_3c_20func_2c_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_50',['is_applicable< Func, Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fapplicable_5fr_51',['is_applicable_r',['../structentt_1_1is__applicable__r.html',1,'entt']]], - ['is_5fapplicable_5fr_3c_20ret_2c_20func_2c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_52',['is_applicable_r< Ret, Func, std::tuple< Args... > >',['../structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fapplicable_5fr_5fv_53',['is_applicable_r_v',['../namespaceentt.html#ae764716fab8c01b12d3e209004b62647',1,'entt']]], - ['is_5fapplicable_5fv_54',['is_applicable_v',['../namespaceentt.html#a4f238620469de3ef2bafdb28fe4657ef',1,'entt']]], - ['is_5farithmetic_55',['is_arithmetic',['../classentt_1_1meta__type.html#a0dbdf15b44d9ec06c0d5170a854d0bc7',1,'entt::meta_type']]], - ['is_5farray_56',['is_array',['../classentt_1_1meta__type.html#a565960e80be7756e72f379f460df6bcb',1,'entt::meta_type']]], - ['is_5fassociative_5fcontainer_57',['is_associative_container',['../classentt_1_1meta__type.html#adcacc3fd54583aa8d94efc7390b2a697',1,'entt::meta_type']]], - ['is_5fclass_58',['is_class',['../classentt_1_1meta__type.html#a703a710385de2497b25a151d015df9cf',1,'entt::meta_type']]], - ['is_5fcomplete_59',['is_complete',['../structentt_1_1is__complete.html',1,'entt']]], - ['is_5fcomplete_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_60',['is_complete< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], - ['is_5fcomplete_5fv_61',['is_complete_v',['../namespaceentt.html#a8a96fcc4bc8da9a2aa1cdb0bc15b75c8',1,'entt']]], - ['is_5fconst_62',['is_const',['../structentt_1_1meta__function__descriptor__traits.html#abb5a7b79fcad9c6d6483be10e3aaeb3a',1,'entt::meta_function_descriptor_traits::is_const'],['../structentt_1_1meta__data.html#a148f106584bfdd2bb33591d790c4a1c1',1,'entt::meta_data::is_const()'],['../structentt_1_1meta__func.html#a8a935c3b78d74afbc953bdcfabe12d4b',1,'entt::meta_func::is_const()']]], - ['is_5febco_5feligible_63',['is_ebco_eligible',['../structentt_1_1is__ebco__eligible.html',1,'entt']]], - ['is_5febco_5feligible_5fv_64',['is_ebco_eligible_v',['../namespaceentt.html#afb5b1446d23f1cba20563114f5da1f9d',1,'entt']]], - ['is_5fenum_65',['is_enum',['../classentt_1_1meta__type.html#aadcf2f5ab500f7797274b4483434a5a3',1,'entt::meta_type']]], - ['is_5fequality_5fcomparable_66',['is_equality_comparable',['../structentt_1_1is__equality__comparable.html',1,'entt']]], - ['is_5fequality_5fcomparable_3c_20const_20type_20_3e_67',['is_equality_comparable< const Type >',['../structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html',1,'entt']]], - ['is_5fequality_5fcomparable_5fv_68',['is_equality_comparable_v',['../namespaceentt.html#a068dd98a70c771935d2bf3dd96dbad6d',1,'entt']]], - ['is_5fintegral_69',['is_integral',['../classentt_1_1meta__type.html#acd91251d1dcc3543eeefcbc3925e4988',1,'entt::meta_type']]], - ['is_5fiterator_70',['is_iterator',['../structentt_1_1is__iterator.html',1,'entt']]], - ['is_5fiterator_3c_20type_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5fvoid_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5fpointer_5ft_3c_20type_20_3e_20_3e_20_3e_20_3e_20_3e_71',['is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >',['../structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html',1,'entt']]], - ['is_5fiterator_5fv_72',['is_iterator_v',['../namespaceentt.html#a3ac133ddb24ec535a11baf3143d188d6',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_73',['is_meta_pointer_like',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20const_20type_20_3e_74',['is_meta_pointer_like< const Type >',['../structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3ashared_5fptr_3c_20type_20_3e_20_3e_75',['is_meta_pointer_like< std::shared_ptr< Type > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3aunique_5fptr_3c_20type_2c_20args_2e_2e_2e_20_3e_20_3e_76',['is_meta_pointer_like< std::unique_ptr< Type, Args... > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_20_2a_20_3e_77',['is_meta_pointer_like< Type * >',['../structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_20_3e_78',['is_meta_pointer_like< Type >',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_28_2a_29_5bn_5d_3e_79',['is_meta_pointer_like< Type(*)[N]>',['../structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html',1,'entt']]], + ['in_20action_10',['in Action',['../md_docs_2md_2links.html',1,'EnTT in Action'],['../md_docs_2md_2links.html#entt-in-action-1',1,'EnTT in Action'],['../index.html#entt-in-action-2',1,'EnTT in Action']]], + ['in_20any_20type_11',['Any as in any type',['../md_docs_2md_2core.html#any-as-in-any-type',1,'']]], + ['in_20between_12',['in between',['../md_docs_2md_2signal.html',1,'Crash Course: events, signals and everything in between'],['../md_docs_2md_2entity.html#types-const-non-const-and-all-in-between',1,'Types: const, non-const and all in between']]], + ['in_20place_20delete_13',['In-place delete',['../md_docs_2md_2entity.html#in-place-delete',1,'']]], + ['in_20rtti_20support_14',['Built-in RTTI support',['../md_docs_2md_2core.html#built-in-rtti-support',1,'']]], + ['in_20the_20wild_15',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], + ['in_5fedge_5fiterator_16',['in_edge_iterator',['../classentt_1_1adjacency__matrix.html#ad1eb3bad19846f57d9a6a44bed6f360d',1,'entt::adjacency_matrix']]], + ['in_5fedges_17',['in_edges',['../structentt_1_1basic__organizer_1_1vertex.html#a4c2af4ab50517f9a67f30fa543033f9c',1,'entt::basic_organizer::vertex::in_edges()'],['../classentt_1_1adjacency__matrix.html#a9213407b3d7b543348000a44357ccca1',1,'entt::adjacency_matrix::in_edges()']]], + ['in_5fplace_18',['in_place',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581aa49f99ae99ae9daddd1fb79b73d2db28',1,'entt']]], + ['in_5fplace_5fdelete_19',['in_place_delete',['../structentt_1_1component__traits.html#a1c3296904a082d8ca44d77344ad002ec',1,'entt::component_traits']]], + ['in_5fplace_5fpop_20',['in_place_pop',['../classentt_1_1basic__sparse__set.html#aa45b7ab945ade01c286a35cba5376d7f',1,'entt::basic_sparse_set']]], + ['include_20entt_21',['Include EnTT',['../md_docs_2md_2unreal.html#include-entt',1,'']]], + ['index_22',['index',['../structentt_1_1type__info.html#a3335aa54e69d9a63d5ccbcef8e994d3b',1,'entt::type_info::index()'],['../classentt_1_1basic__sparse__set.html#ad8a8fc74771c26b36fce8234f5e1d1fa',1,'entt::basic_sparse_set::index()']]], + ['info_23',['info',['../structentt_1_1basic__organizer_1_1vertex.html#a1c373d102d50fc634f732f7c1e23e4c5',1,'entt::basic_organizer::vertex::info()'],['../classentt_1_1meta__type.html#ad743b3cf68435895e2ae35d685874793',1,'entt::meta_type::info()'],['../md_docs_2md_2core.html#type-info',1,'Type info']]], + ['information_24',['Template information',['../md_docs_2md_2meta.html#template-information',1,'']]], + ['inheritance_25',['Inheritance',['../md_docs_2md_2poly.html#inheritance',1,'']]], + ['input_20iterator_20pointer_26',['Input iterator pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'']]], + ['input_5fiterator_5fpointer_27',['input_iterator_pointer',['../structentt_1_1input__iterator__pointer.html',1,'entt::input_iterator_pointer< Type >'],['../structentt_1_1input__iterator__pointer.html#a1805365ee66a86c99a5297932da42392',1,'entt::input_iterator_pointer::input_iterator_pointer()']]], + ['insert_28',['insert',['../classentt_1_1dense__map.html#ada4ac1f5a3295d80d8bb4fa6387023db',1,'entt::dense_map::insert(const value_type &value)'],['../classentt_1_1dense__map.html#a71e1a562a523572405bbf0a53bb8535d',1,'entt::dense_map::insert(value_type &&value)'],['../classentt_1_1dense__map.html#a92eced5574b8354b8357f79faf16fc23',1,'entt::dense_map::insert(Arg &&value)'],['../classentt_1_1dense__map.html#a3c94e139b8d65ac65df36161183a8a49',1,'entt::dense_map::insert(It first, It last)'],['../classentt_1_1dense__set.html#a818d80686b709f02cec08f5fc082e279',1,'entt::dense_set::insert(const value_type &value)'],['../classentt_1_1dense__set.html#ac1c11ba7070fd958ada9dab7b9106ec6',1,'entt::dense_set::insert(value_type &&value)'],['../classentt_1_1dense__set.html#ae52c7f8b38e6bfc15e421fcc8021ba15',1,'entt::dense_set::insert(It first, It last)'],['../classentt_1_1basic__sigh__mixin.html#aa53fc080eb084535f639efd1e67f3e3c',1,'entt::basic_sigh_mixin::insert()'],['../classentt_1_1basic__registry.html#ae299b32827f0667903d8564e10ca6774',1,'entt::basic_registry::insert(It first, It last, const Type &value={})'],['../classentt_1_1basic__registry.html#ae4630a45e531d05669da84aa4a5e9778',1,'entt::basic_registry::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a0b7d950f65304e97a723497e7555d584',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a376d14e745c1cc4f02cbebf70cab4753',1,'entt::basic_storage< Entity, Entity, Allocator >::insert()'],['../classentt_1_1adjacency__matrix.html#a16d422fbdac17535196b27001b4bfd63',1,'entt::adjacency_matrix::insert()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a7caf932772ff942247e61673d8c3df61',1,'entt::basic_meta_sequence_container_traits::insert()'],['../structentt_1_1basic__meta__associative__container__traits.html#ae403d257c39ca55b238e86689e890b19',1,'entt::basic_meta_associative_container_traits::insert()'],['../classentt_1_1meta__sequence__container.html#a16ff101b059da6a38e3fe9f025db110c',1,'entt::meta_sequence_container::insert()'],['../classentt_1_1meta__associative__container.html#a292d90c2d8cbee3d6c2c32a899a9cb5e',1,'entt::meta_associative_container::insert()'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage< Entity, Entity, Allocator >::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage< Entity, Entity, Allocator >::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert(EIt first, EIt last, CIt from)']]], + ['insert_5for_5fassign_29',['insert_or_assign',['../classentt_1_1dense__map.html#aafff57a203cd3fc561320bad6eeea0c3',1,'entt::dense_map::insert_or_assign(const key_type &key, Arg &&value)'],['../classentt_1_1dense__map.html#a9a9522dcd518bd3d73769d80d35606db',1,'entt::dense_map::insert_or_assign(key_type &&key, Arg &&value)']]], + ['insertion_5fsort_30',['insertion_sort',['../structentt_1_1insertion__sort.html',1,'entt']]], + ['instance_31',['instance',['../classentt_1_1poly__vtable.html#a2b8979ab014f71105f54cb3c94aa983d',1,'entt::poly_vtable']]], + ['integral_20constant_32',['Integral constant',['../md_docs_2md_2core.html#integral-constant',1,'']]], + ['integral_5fconstant_33',['integral_constant',['../namespaceentt.html#a0e653af66fcdc9e4abc2a81f362b8963',1,'entt']]], + ['integration_34',['Integration',['../index.html#integration',1,'']]], + ['interface_35',['interface',['../md_docs_2md_2poly.html#deduced-interface',1,'Deduced interface'],['../md_docs_2md_2poly.html#defined-interface',1,'Defined interface']]], + ['introduction_36',['Introduction',['../md_docs_2md_2config.html#introduction',1,'Introduction'],['../md_docs_2md_2container.html#introduction-1',1,'Introduction'],['../md_docs_2md_2core.html#introduction-2',1,'Introduction'],['../md_docs_2md_2entity.html#introduction-3',1,'Introduction'],['../md_docs_2md_2faq.html#introduction-4',1,'Introduction'],['../md_docs_2md_2graph.html#introduction-5',1,'Introduction'],['../md_docs_2md_2links.html#introduction-6',1,'Introduction'],['../md_docs_2md_2locator.html#introduction-7',1,'Introduction'],['../md_docs_2md_2meta.html#introduction-8',1,'Introduction'],['../md_docs_2md_2poly.html#introduction-9',1,'Introduction'],['../md_docs_2md_2process.html#introduction-10',1,'Introduction'],['../md_docs_2md_2reference.html#introduction-11',1,'Introduction'],['../md_docs_2md_2resource.html#introduction-12',1,'Introduction'],['../md_docs_2md_2signal.html#introduction-13',1,'Introduction'],['../index.html#introduction-14',1,'Introduction']]], + ['invoke_37',['Invoke',['../md_docs_2md_2entity.html#invoke',1,'']]], + ['invoke_38',['invoke',['../classentt_1_1meta__any.html#a27324d1a7a5ba142831623e43aed263d',1,'entt::meta_any::invoke(id_type id, Args &&...args) const'],['../classentt_1_1meta__any.html#a6f42174cc6ddf8eb76089ee5ac552308',1,'entt::meta_any::invoke(id_type id, Args &&...args)'],['../structentt_1_1meta__func.html#a83fb3576c1a3873de1e1e041f759180b',1,'entt::meta_func::invoke(meta_handle instance, meta_any *const args, const size_type sz) const'],['../structentt_1_1meta__func.html#aa10b325b5da2a1c04259f2d6dc1f6746',1,'entt::meta_func::invoke(meta_handle instance, Args &&...args) const'],['../classentt_1_1meta__type.html#ad846c918ce1e2f496b7464cc6a6d6d5e',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a99a835b500d3aa1f4f25090d8bef3802',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, Args &&...args) const'],['../structentt_1_1poly__inspector.html#a8539b30952dd5a66aa24f334ae4976de',1,'entt::poly_inspector::invoke(Args &&...args) const'],['../structentt_1_1poly__inspector.html#ac829c393c3d78f306edd0307f71139cb',1,'entt::poly_inspector::invoke(Args &&...args)'],['../structentt_1_1poly__base.html#a814fd041b02ddfe60577b23d174e7182',1,'entt::poly_base::invoke(const poly_base &self, Args &&...args) const'],['../structentt_1_1poly__base.html#a8e782d45ce62d6bd620ad22a0ee913e2',1,'entt::poly_base::invoke(poly_base &self, Args &&...args)'],['../namespaceentt.html#ac25eea8903b4a5d58408cc2e9ecb1a2e',1,'entt::invoke()']]], + ['iota_20iterator_39',['Iota iterator',['../md_docs_2md_2core.html#iota-iterator',1,'']]], + ['iota_5fiterator_40',['iota_iterator',['../classentt_1_1iota__iterator.html',1,'entt::iota_iterator< Type >'],['../classentt_1_1iota__iterator.html#ae28c3ba9c14922bdfdab9514ef2092a2',1,'entt::iota_iterator::iota_iterator() noexcept'],['../classentt_1_1iota__iterator.html#a01de893e18176972ea441644a1792efe',1,'entt::iota_iterator::iota_iterator(const value_type init) noexcept']]], + ['iota_5fiterator_3c_20vertex_5ftype_20_3e_41',['iota_iterator< vertex_type >',['../classentt_1_1iota__iterator.html',1,'entt']]], + ['is_20allowed_20and_20what_20is_20not_42',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], + ['is_20applicable_43',['Is applicable',['../md_docs_2md_2core.html#is-applicable',1,'']]], + ['is_20it_20possible_44',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], + ['is_20my_20debug_20build_20on_20windows_20so_20slow_45',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['is_20not_46',['What is allowed and what is not',['../md_docs_2md_2entity.html#what-is-allowed-and-what-is-not',1,'']]], + ['is_5fapplicable_47',['is_applicable',['../structentt_1_1is__applicable.html',1,'entt']]], + ['is_5fapplicable_3c_20func_2c_20const_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_48',['is_applicable< Func, const Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fapplicable_3c_20func_2c_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_49',['is_applicable< Func, Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fapplicable_5fr_50',['is_applicable_r',['../structentt_1_1is__applicable__r.html',1,'entt']]], + ['is_5fapplicable_5fr_3c_20ret_2c_20func_2c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_51',['is_applicable_r< Ret, Func, std::tuple< Args... > >',['../structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fapplicable_5fr_5fv_52',['is_applicable_r_v',['../namespaceentt.html#ae764716fab8c01b12d3e209004b62647',1,'entt']]], + ['is_5fapplicable_5fv_53',['is_applicable_v',['../namespaceentt.html#a4f238620469de3ef2bafdb28fe4657ef',1,'entt']]], + ['is_5farithmetic_54',['is_arithmetic',['../classentt_1_1meta__type.html#a0dbdf15b44d9ec06c0d5170a854d0bc7',1,'entt::meta_type']]], + ['is_5farray_55',['is_array',['../classentt_1_1meta__type.html#a565960e80be7756e72f379f460df6bcb',1,'entt::meta_type']]], + ['is_5fassociative_5fcontainer_56',['is_associative_container',['../classentt_1_1meta__type.html#adcacc3fd54583aa8d94efc7390b2a697',1,'entt::meta_type']]], + ['is_5fclass_57',['is_class',['../classentt_1_1meta__type.html#a703a710385de2497b25a151d015df9cf',1,'entt::meta_type']]], + ['is_5fcomplete_58',['is_complete',['../structentt_1_1is__complete.html',1,'entt']]], + ['is_5fcomplete_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_59',['is_complete< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], + ['is_5fcomplete_5fv_60',['is_complete_v',['../namespaceentt.html#a8a96fcc4bc8da9a2aa1cdb0bc15b75c8',1,'entt']]], + ['is_5fconst_61',['is_const',['../structentt_1_1meta__function__descriptor__traits.html#abb5a7b79fcad9c6d6483be10e3aaeb3a',1,'entt::meta_function_descriptor_traits::is_const'],['../structentt_1_1meta__data.html#a148f106584bfdd2bb33591d790c4a1c1',1,'entt::meta_data::is_const()'],['../structentt_1_1meta__func.html#a8a935c3b78d74afbc953bdcfabe12d4b',1,'entt::meta_func::is_const()']]], + ['is_5febco_5feligible_62',['is_ebco_eligible',['../structentt_1_1is__ebco__eligible.html',1,'entt']]], + ['is_5febco_5feligible_5fv_63',['is_ebco_eligible_v',['../namespaceentt.html#afb5b1446d23f1cba20563114f5da1f9d',1,'entt']]], + ['is_5fenum_64',['is_enum',['../classentt_1_1meta__type.html#aadcf2f5ab500f7797274b4483434a5a3',1,'entt::meta_type']]], + ['is_5fequality_5fcomparable_65',['is_equality_comparable',['../structentt_1_1is__equality__comparable.html',1,'entt']]], + ['is_5fequality_5fcomparable_3c_20const_20type_20_3e_66',['is_equality_comparable< const Type >',['../structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html',1,'entt']]], + ['is_5fequality_5fcomparable_5fv_67',['is_equality_comparable_v',['../namespaceentt.html#a068dd98a70c771935d2bf3dd96dbad6d',1,'entt']]], + ['is_5fintegral_68',['is_integral',['../classentt_1_1meta__type.html#acd91251d1dcc3543eeefcbc3925e4988',1,'entt::meta_type']]], + ['is_5fiterator_69',['is_iterator',['../structentt_1_1is__iterator.html',1,'entt']]], + ['is_5fiterator_3c_20type_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5fvoid_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5fpointer_5ft_3c_20type_20_3e_20_3e_20_3e_20_3e_20_3e_70',['is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >',['../structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html',1,'entt']]], + ['is_5fiterator_5fv_71',['is_iterator_v',['../namespaceentt.html#a3ac133ddb24ec535a11baf3143d188d6',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_72',['is_meta_pointer_like',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20const_20type_20_3e_73',['is_meta_pointer_like< const Type >',['../structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3ashared_5fptr_3c_20type_20_3e_20_3e_74',['is_meta_pointer_like< std::shared_ptr< Type > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3aunique_5fptr_3c_20type_2c_20args_2e_2e_2e_20_3e_20_3e_75',['is_meta_pointer_like< std::unique_ptr< Type, Args... > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_20_2a_20_3e_76',['is_meta_pointer_like< Type * >',['../structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_20_3e_77',['is_meta_pointer_like< Type >',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_28_2a_29_5bn_5d_3e_78',['is_meta_pointer_like< Type(*)[N]>',['../structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_2c_20std_3a_3avoid_5ft_3c_20typename_20type_3a_3ais_5fmeta_5fpointer_5flike_20_3e_20_3e_79',['is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >',['../structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__meta__pointer__like_01_4_01_4.html',1,'entt']]], ['is_5fmeta_5fpointer_5flike_5fv_80',['is_meta_pointer_like_v',['../namespaceentt.html#aaa8c390cfe71301a0c10f4844e98424c',1,'entt']]], ['is_5fmeta_5fpolicy_81',['is_meta_policy',['../structentt_1_1is__meta__policy.html',1,'entt']]], ['is_5fmeta_5fpolicy_5fv_82',['is_meta_policy_v',['../namespaceentt.html#a91aeaedca642d9e7220c77c7e1d2855b',1,'entt']]], @@ -93,16 +93,32 @@ var searchData= ['is_5ftransparent_3c_20type_2c_20std_3a_3avoid_5ft_3c_20typename_20type_3a_3ais_5ftransparent_20_3e_20_3e_90',['is_transparent< Type, std::void_t< typename Type::is_transparent > >',['../structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html',1,'entt']]], ['is_5ftransparent_5fv_91',['is_transparent_v',['../namespaceentt.html#a5fd3998d86cc531f800d0104478771f4',1,'entt']]], ['is_5ftuple_92',['is_tuple',['../structentt_1_1is__tuple.html',1,'entt']]], - ['is_5ftuple_5fv_93',['is_tuple_v',['../namespaceentt.html#a0617c69b8aa01b123162d23d7213c6aa',1,'entt']]], - ['it_20possible_94',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], - ['iterable_95',['iterable',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a41dc2207369df205d0776db3e78be604',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4e52d1b38e4284b76bc51a72cb0b8c3',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__handle.html#a5ba0413c2b98df4629eace236ef6f765',1,'entt::basic_handle::iterable'],['../classentt_1_1basic__registry.html#a3b46298ebd98b1f89b3b8910838ea0eb',1,'entt::basic_registry::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage::iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#ae05d4d6b3e57fa075caea89001f12418',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abca6514000d50e1a758c6528dbbd1969',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad2bf640daad08eec4206cd7fd0442f9a',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#afcea8ad4fe6ebb1ac142528f85f96b1b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterable'],['../classentt_1_1basic__flow.html#a40ae2917753dbe694ccbd8a0b9d030e4',1,'entt::basic_flow::iterable']]], - ['iterable_20adaptor_96',['Iterable adaptor',['../md_docs_2md_2core.html#iterable-adaptor',1,'']]], - ['iterable_5fadaptor_97',['iterable_adaptor',['../structentt_1_1iterable__adaptor.html',1,'entt::iterable_adaptor< It, Sentinel >'],['../structentt_1_1iterable__adaptor.html#ae1be6228c8fbd7054c855bec203aa032',1,'entt::iterable_adaptor::iterable_adaptor() noexcept(std::is_nothrow_default_constructible_v< iterator > &&std::is_nothrow_default_constructible_v< sentinel >)'],['../structentt_1_1iterable__adaptor.html#a30734998404edef001981076cba50b25',1,'entt::iterable_adaptor::iterable_adaptor(iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v< iterator > &&std::is_nothrow_move_constructible_v< sentinel >)']]], - ['iterate_98',['iterate',['../classentt_1_1basic__runtime__view.html#ae3d9cd9d4afe45ab70b76902ff600e20',1,'entt::basic_runtime_view']]], - ['iteration_20order_99',['Iteration order',['../md_docs_2md_2entity.html#iteration-order',1,'']]], - ['iterator_100',['Iota iterator',['../md_docs_2md_2core.html#iota-iterator',1,'']]], - ['iterator_101',['iterator',['../classentt_1_1dense__map.html#acc07b299f15a57db885089cc1a31322d',1,'entt::dense_map::iterator'],['../classentt_1_1dense__set.html#a44f127ff9c4a0fa1c8284f7d072bd5c3',1,'entt::dense_set::iterator'],['../classentt_1_1basic__table.html#a5d47acc4b3df21d03434bf8caa34b8c3',1,'entt::basic_table::iterator'],['../structentt_1_1iterable__adaptor.html#a5f7920bf5cba9b4aa765affe21490a2d',1,'entt::iterable_adaptor::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#acd96ed39873cbcb38100928945e5781f',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a611925e5ae41497d06519a40aaabdc64',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__observer.html#a263f1e60f3662e09f5e3c734c1e9c86e',1,'entt::basic_observer::iterator'],['../classentt_1_1basic__runtime__view.html#a46936cbc64be35947bf709b67cef5f3f',1,'entt::basic_runtime_view::iterator'],['../classentt_1_1basic__sparse__set.html#a6cea231ae7386a12487164d918f632b0',1,'entt::basic_sparse_set::iterator'],['../classentt_1_1basic__storage.html#af35a4def9687b5404ecc33a30665e54b',1,'entt::basic_storage::iterator'],['../classentt_1_1basic__common__view.html#acca0fa3e8c6ca7fb4e3cebb1964ab146',1,'entt::basic_common_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a572ec90eb0a60a1de9f801d3b9c3a448',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator'],['../classentt_1_1basic__storage__view.html#a7e768d8d546580a784a6ce6ce03bbcd8',1,'entt::basic_storage_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a596bf9b9e3c27f5e02fa5dd13cf9780b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterator'],['../structentt_1_1basic__meta__sequence__container__traits.html#a04287f0c1dc224c4625090a4040691f0',1,'entt::basic_meta_sequence_container_traits::iterator'],['../structentt_1_1basic__meta__associative__container__traits.html#a40e3448c9cd000ed80e672847be3c684',1,'entt::basic_meta_associative_container_traits::iterator'],['../classentt_1_1meta__sequence__container.html#a878e2f710e88a6ae42449cb7a93c3928',1,'entt::meta_sequence_container::iterator'],['../classentt_1_1meta__associative__container.html#aafbaf281035562432a4e8e55443e9584',1,'entt::meta_associative_container::iterator'],['../classentt_1_1resource__cache.html#aad6a23cc2ea4a9367ebdb9b186308353',1,'entt::resource_cache::iterator']]], - ['iterator_20pointer_102',['Input iterator pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'']]], - ['iterator_5fcategory_103',['iterator_category',['../classentt_1_1iota__iterator.html#aa3fa6540a202f4434a1326a7f0ebba8e',1,'entt::iota_iterator']]], - ['iterators_104',['Iterators',['../md_docs_2md_2core.html#iterators',1,'Iterators'],['../md_docs_2md_2entity.html#iterators-1',1,'Iterators']]] + ['is_5ftuple_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_93',['is_tuple< std::tuple< Args... > >',['../structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5ftuple_5fv_94',['is_tuple_v',['../namespaceentt.html#a0617c69b8aa01b123162d23d7213c6aa',1,'entt']]], + ['it_20possible_95',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], + ['iterable_96',['iterable',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a41dc2207369df205d0776db3e78be604',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4e52d1b38e4284b76bc51a72cb0b8c3',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__handle.html#a5ba0413c2b98df4629eace236ef6f765',1,'entt::basic_handle::iterable'],['../classentt_1_1basic__registry.html#a3b46298ebd98b1f89b3b8910838ea0eb',1,'entt::basic_registry::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage::iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a91bed3dea6aa83ced50d6c66e3a5a451',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abca6514000d50e1a758c6528dbbd1969',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad2bf640daad08eec4206cd7fd0442f9a',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#afcea8ad4fe6ebb1ac142528f85f96b1b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterable'],['../classentt_1_1basic__flow.html#a40ae2917753dbe694ccbd8a0b9d030e4',1,'entt::basic_flow::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterable']]], + ['iterable_20adaptor_97',['Iterable adaptor',['../md_docs_2md_2core.html#iterable-adaptor',1,'']]], + ['iterable_5fadaptor_98',['iterable_adaptor',['../structentt_1_1iterable__adaptor.html',1,'entt::iterable_adaptor< It, Sentinel >'],['../structentt_1_1iterable__adaptor.html#ae1be6228c8fbd7054c855bec203aa032',1,'entt::iterable_adaptor::iterable_adaptor() noexcept(std::is_nothrow_default_constructible_v< iterator > &&std::is_nothrow_default_constructible_v< sentinel >)'],['../structentt_1_1iterable__adaptor.html#a30734998404edef001981076cba50b25',1,'entt::iterable_adaptor::iterable_adaptor(iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v< iterator > &&std::is_nothrow_move_constructible_v< sentinel >)']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fgroup_5fiterator_3c_20iterator_2c_20owned_5ft_3c_20owned_2e_2e_2e_20_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_20_3e_20_3e_99',['iterable_adaptor< internal::extended_group_iterator< iterator, owned_t< Owned... >, get_t< Get... > > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fgroup_5fiterator_3c_20iterator_2c_20owned_5ft_3c_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_20_3e_20_3e_100',['iterable_adaptor< internal::extended_group_iterator< iterator, owned_t<>, get_t< Get... > > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5fiterator_20_3e_20_3e_101',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5fiterator_2c_20const_5fiterator_20_3e_20_3e_102',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator, const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5freverse_5fiterator_20_3e_20_3e_103',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5freverse_5fiterator_2c_20const_5freverse_5fiterator_20_3e_20_3e_104',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator, const_reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aiterator_20_3e_20_3e_105',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aiterator_2c_20iterator_20_3e_20_3e_106',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator, iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3areverse_5fiterator_20_3e_20_3e_107',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3areverse_5fiterator_2c_20reverse_5fiterator_20_3e_20_3e_108',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator, reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fview_5fiterator_3c_20iterator_2c_20get_2e_2e_2e_20_3e_20_3e_109',['iterable_adaptor< internal::extended_view_iterator< iterator, Get... > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3ahandle_5fstorage_5fiterator_3c_20typename_20decltype_28std_3a_3adeclval_3c_20registry_5ftype_20_3e_28_29_2estorage_28_29_29_3a_3aiterator_20_3e_20_3e_110',['iterable_adaptor< internal::handle_storage_iterator< typename decltype(std::declval< registry_type >().storage())::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3ameta_5frange_5fiterator_3c_20type_2c_20it_20_3e_20_3e_111',['iterable_adaptor< internal::meta_range_iterator< Type, It > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aregistry_5fstorage_5fiterator_3c_20typename_20pool_5fcontainer_5ftype_3a_3aconst_5fiterator_20_3e_20_3e_112',['iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aregistry_5fstorage_5fiterator_3c_20typename_20pool_5fcontainer_5ftype_3a_3aiterator_20_3e_20_3e_113',['iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20typename_20task_5fcontainer_5ftype_3a_3aconst_5fiterator_20_3e_114',['iterable_adaptor< typename task_container_type::const_iterator >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterate_115',['iterate',['../classentt_1_1basic__runtime__view.html#ae3d9cd9d4afe45ab70b76902ff600e20',1,'entt::basic_runtime_view']]], + ['iteration_20order_116',['Iteration order',['../md_docs_2md_2entity.html#iteration-order',1,'']]], + ['iterator_117',['iterator',['../md_docs_2md_2core.html#iota-iterator',1,'Iota iterator'],['../classentt_1_1dense__map.html#acc07b299f15a57db885089cc1a31322d',1,'entt::dense_map::iterator'],['../classentt_1_1dense__set.html#a44f127ff9c4a0fa1c8284f7d072bd5c3',1,'entt::dense_set::iterator'],['../classentt_1_1basic__table.html#a5d47acc4b3df21d03434bf8caa34b8c3',1,'entt::basic_table::iterator'],['../structentt_1_1iterable__adaptor.html#a5f7920bf5cba9b4aa765affe21490a2d',1,'entt::iterable_adaptor::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#acd96ed39873cbcb38100928945e5781f',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a611925e5ae41497d06519a40aaabdc64',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__runtime__view.html#a46936cbc64be35947bf709b67cef5f3f',1,'entt::basic_runtime_view::iterator'],['../classentt_1_1basic__sparse__set.html#a6cea231ae7386a12487164d918f632b0',1,'entt::basic_sparse_set::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage::iterator'],['../classentt_1_1basic__common__view.html#ac1779f77c4f07bd1db2479b9557be325',1,'entt::basic_common_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a572ec90eb0a60a1de9f801d3b9c3a448',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator'],['../classentt_1_1basic__storage__view.html#a948136cfa7098e8ea86e2036228e2c64',1,'entt::basic_storage_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a596bf9b9e3c27f5e02fa5dd13cf9780b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterator'],['../structentt_1_1basic__meta__sequence__container__traits.html#a04287f0c1dc224c4625090a4040691f0',1,'entt::basic_meta_sequence_container_traits::iterator'],['../structentt_1_1basic__meta__associative__container__traits.html#a40e3448c9cd000ed80e672847be3c684',1,'entt::basic_meta_associative_container_traits::iterator'],['../classentt_1_1meta__sequence__container.html#a878e2f710e88a6ae42449cb7a93c3928',1,'entt::meta_sequence_container::iterator'],['../classentt_1_1meta__associative__container.html#aafbaf281035562432a4e8e55443e9584',1,'entt::meta_associative_container::iterator'],['../classentt_1_1resource__cache.html#aad6a23cc2ea4a9367ebdb9b186308353',1,'entt::resource_cache::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage< Entity, Entity, Allocator >::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterator']]], + ['iterator_20pointer_118',['Input iterator pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'']]], + ['iterator_5fcategory_119',['iterator_category',['../classentt_1_1iota__iterator.html#aa3fa6540a202f4434a1326a7f0ebba8e',1,'entt::iota_iterator']]], + ['iterators_120',['Iterators',['../md_docs_2md_2core.html#iterators',1,'Iterators'],['../md_docs_2md_2entity.html#iterators-1',1,'Iterators']]] ]; diff --git a/search/all_a.js b/search/all_a.js index 63eab9d75..67b0b9cc0 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -11,17 +11,15 @@ var searchData= ['like_8',['Hierarchies and the like',['../md_docs_2md_2entity.html#hierarchies-and-the-like',1,'']]], ['like_20types_9',['Pointer-like types',['../md_docs_2md_2meta.html#pointer-like-types',1,'']]], ['like_3a_10',['Engines and the like:',['../md_docs_2md_2links.html#engines-and-the-like',1,'']]], - ['list_20and_20value_20list_11',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], - ['listeners_20disconnection_12',['Listeners disconnection',['../md_docs_2md_2entity.html#listeners-disconnection',1,'']]], - ['load_13',['load',['../classentt_1_1resource__cache.html#a4683e49fd16e93399c934b8e086d8175',1,'entt::resource_cache']]], - ['load_5ffactor_14',['load_factor',['../classentt_1_1dense__map.html#a0ebd2095ae61e1908572efa33dc3df56',1,'entt::dense_map::load_factor()'],['../classentt_1_1dense__set.html#abceb56d6788f953e79b6d6924bfcbfe2',1,'entt::dense_set::load_factor()']]], - ['loader_15',['Continuous loader',['../md_docs_2md_2entity.html#continuous-loader',1,'']]], - ['loader_16',['loader',['../classentt_1_1resource__cache.html#a29225250d340dfc89818ab6662efe774',1,'entt::resource_cache']]], - ['loader_17',['Snapshot loader',['../md_docs_2md_2entity.html#snapshot-loader',1,'']]], - ['loader_20and_20the_20cache_18',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], - ['loader_5ftype_19',['loader_type',['../classentt_1_1resource__cache.html#a834f161302d84ba1303358ce22f6e982',1,'entt::resource_cache']]], - ['loaders_20',['Loaders',['../md_docs_2md_2resource.html#loaders',1,'']]], - ['local_5fiterator_21',['local_iterator',['../classentt_1_1dense__map.html#ad05e437f37f277cbe5c6121e67a4e89a',1,'entt::dense_map::local_iterator'],['../classentt_1_1dense__set.html#a83489efab7359c9c31d910844d96faa5',1,'entt::dense_set::local_iterator']]], - ['locator_22',['locator',['../md_docs_2md_2locator.html',1,'Crash Course: service locator'],['../classentt_1_1locator.html',1,'entt::locator< Service >'],['../classentt_1_1locator.html#af0226a1ca179eba7e3b63ee47c1d668c',1,'entt::locator::locator()=delete'],['../classentt_1_1locator.html#a82dc46a7f4d405b674e487236fea8a2f',1,'entt::locator::locator(const locator &)=delete']]], - ['locator_23',['Service locator',['../md_docs_2md_2locator.html#service-locator',1,'']]] + ['list_11',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], + ['list_20and_20value_20list_12',['Type list and value list',['../md_docs_2md_2core.html#type-list-and-value-list',1,'']]], + ['listeners_20disconnection_13',['Listeners disconnection',['../md_docs_2md_2entity.html#listeners-disconnection',1,'']]], + ['load_14',['load',['../classentt_1_1resource__cache.html#a4683e49fd16e93399c934b8e086d8175',1,'entt::resource_cache']]], + ['load_5ffactor_15',['load_factor',['../classentt_1_1dense__map.html#a0ebd2095ae61e1908572efa33dc3df56',1,'entt::dense_map::load_factor()'],['../classentt_1_1dense__set.html#abceb56d6788f953e79b6d6924bfcbfe2',1,'entt::dense_set::load_factor()']]], + ['loader_16',['loader',['../md_docs_2md_2entity.html#continuous-loader',1,'Continuous loader'],['../classentt_1_1resource__cache.html#a29225250d340dfc89818ab6662efe774',1,'entt::resource_cache::loader()'],['../md_docs_2md_2entity.html#snapshot-loader',1,'Snapshot loader']]], + ['loader_20and_20the_20cache_17',['The resource, the loader and the cache',['../md_docs_2md_2resource.html#the-resource-the-loader-and-the-cache',1,'']]], + ['loader_5ftype_18',['loader_type',['../classentt_1_1resource__cache.html#a834f161302d84ba1303358ce22f6e982',1,'entt::resource_cache']]], + ['loaders_19',['Loaders',['../md_docs_2md_2resource.html#loaders',1,'']]], + ['local_5fiterator_20',['local_iterator',['../classentt_1_1dense__map.html#ad05e437f37f277cbe5c6121e67a4e89a',1,'entt::dense_map::local_iterator'],['../classentt_1_1dense__set.html#a83489efab7359c9c31d910844d96faa5',1,'entt::dense_set::local_iterator']]], + ['locator_21',['locator',['../md_docs_2md_2locator.html',1,'Crash Course: service locator'],['../classentt_1_1locator.html',1,'entt::locator< Service >'],['../classentt_1_1locator.html#af0226a1ca179eba7e3b63ee47c1d668c',1,'entt::locator::locator()=delete'],['../classentt_1_1locator.html#a82dc46a7f4d405b674e487236fea8a2f',1,'entt::locator::locator(const locator &)=delete'],['../md_docs_2md_2locator.html#service-locator',1,'Service locator']]] ]; diff --git a/search/all_b.js b/search/all_b.js index e3bb003e2..8c4d4453e 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -3,89 +3,86 @@ var searchData= ['macro_0',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], ['make_5fany_1',['make_any',['../namespaceentt.html#adb86dc3145589485c094960a089eb953',1,'entt']]], ['make_5fobj_5fusing_5fallocator_2',['make_obj_using_allocator',['../namespaceentt.html#a12e4d0c58f9c4cc6f5513c39c530b9b7',1,'entt']]], - ['management_3',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], - ['management_4',['Memory Management',['../md_docs_2md_2lib.html#memory-management',1,'']]], + ['management_3',['Memory Management',['../md_docs_2md_2lib.html#memory-management',1,'']]], + ['management_4',['Crash Course: resource management',['../md_docs_2md_2resource.html',1,'']]], ['many_20times_5',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], - ['map_6',['Dense map',['../md_docs_2md_2container.html#dense-map',1,'']]], - ['map_7',['map',['../classentt_1_1basic__continuous__loader.html#ac243f6a783ffe8839fd864d887ea0153',1,'entt::basic_continuous_loader']]], - ['mapped_5ftype_8',['mapped_type',['../classentt_1_1dense__map.html#a7cdfe85f102518543b7a684c9e8e3bd3',1,'entt::dense_map::mapped_type'],['../classentt_1_1meta__associative__container.html#a9bae47c15cad6c219d3e03e6885f1675',1,'entt::meta_associative_container::mapped_type()']]], - ['matcher_9',['matcher',['../structentt_1_1matcher.html',1,'entt']]], - ['matrix_10',['Adjacency matrix',['../md_docs_2md_2graph.html#adjacency-matrix',1,'']]], - ['max_20and_20the_20macro_11',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], - ['max_5fbucket_5fcount_12',['max_bucket_count',['../classentt_1_1dense__map.html#a4818548e35a239228a5fae77af01e7f5',1,'entt::dense_map::max_bucket_count()'],['../classentt_1_1dense__set.html#ac3410a73c0331657be2da1c8f0855949',1,'entt::dense_set::max_bucket_count()']]], - ['max_5fload_5ffactor_13',['max_load_factor',['../classentt_1_1dense__map.html#a54a2dd65d401a992fd91fb8a91faea86',1,'entt::dense_map::max_load_factor() const'],['../classentt_1_1dense__map.html#a608539db499acbc3a7548421ea5d8709',1,'entt::dense_map::max_load_factor(const float value)'],['../classentt_1_1dense__set.html#aeb02fd08b390059b8c1cffc39a6f40f1',1,'entt::dense_set::max_load_factor() const'],['../classentt_1_1dense__set.html#ab740b6ce89b700657c796b7388563569',1,'entt::dense_set::max_load_factor(const float value)']]], - ['max_5fsize_14',['max_size',['../classentt_1_1dense__map.html#a45843ecba66cc9692ae4facac5461e4d',1,'entt::dense_map::max_size()'],['../classentt_1_1dense__set.html#a4c6b94ce7998769b18635a11a7c044de',1,'entt::dense_set::max_size()']]], - ['me_20everything_15',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], - ['me_20reactive_20storage_16',['They call me reactive storage',['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'']]], - ['me_20up_20registry_17',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], - ['meet_20the_20runtime_18',['Meet the runtime',['../md_docs_2md_2entity.html#meet-the-runtime',1,'']]], - ['member_20class_20type_19',['Member class type',['../md_docs_2md_2core.html#member-class-type',1,'']]], - ['member_5fclass_20',['member_class',['../classentt_1_1member__class.html',1,'entt']]], - ['member_5fclass_5ft_21',['member_class_t',['../namespaceentt.html#a021c5343afb213cf29d3703cdc2c8cbc',1,'entt']]], - ['memory_22',['Memory',['../md_docs_2md_2core.html#memory',1,'']]], - ['memory_20management_23',['Memory Management',['../md_docs_2md_2lib.html#memory-management',1,'']]], - ['meta_24',['meta',['../namespaceentt.html#a2d7c05b6ee08bf9582e2a119dd6cbd8d',1,'entt::meta(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a78885d25ace657bedd664e3044152f03',1,'entt::meta() noexcept']]], - ['meta_20context_25',['Meta context',['../md_docs_2md_2lib.html#meta-context',1,'Meta context'],['../md_docs_2md_2meta.html#meta-context-1',1,'Meta context']]], - ['meta_5fany_26',['meta_any',['../classentt_1_1meta__any.html',1,'entt::meta_any'],['../classentt_1_1meta__any.html#a2669cb479aa2c88729630efc277ef186',1,'entt::meta_any::meta_any()=default'],['../classentt_1_1meta__any.html#a72a627b0d0bd6d469dc372e435076b75',1,'entt::meta_any::meta_any(meta_ctx_arg_t, const meta_ctx &area)'],['../classentt_1_1meta__any.html#a327704bdb52c21b9ea8f221cdac11b20',1,'entt::meta_any::meta_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a612396f0d0c0acf9499d13450a8b2dde',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a7e1dba79e26c96a353743a327d1c7b8e',1,'entt::meta_any::meta_any(Type &&value)'],['../classentt_1_1meta__any.html#a59650d3b6cd69d36c65830cd0a4e987a',1,'entt::meta_any::meta_any(const meta_ctx &area, Type &&value)'],['../classentt_1_1meta__any.html#a25a7090663c345aa7a6d6fc3259ac404',1,'entt::meta_any::meta_any(const meta_ctx &area, const meta_any &other)'],['../classentt_1_1meta__any.html#a4446871c0d4bbd77ca4fb3baa8b89820',1,'entt::meta_any::meta_any(const meta_ctx &area, meta_any &&other)'],['../classentt_1_1meta__any.html#a51936bb6212a3bfc87b71afb2d6085c3',1,'entt::meta_any::meta_any(const meta_any &other)=default'],['../classentt_1_1meta__any.html#a30f860927336ca054fa561a7ae61a00b',1,'entt::meta_any::meta_any(meta_any &&other) noexcept']]], - ['meta_5fany_5fpolicy_27',['meta_any_policy',['../namespaceentt.html#a1c42091382f4a183ae6b917eb95aef50',1,'entt']]], - ['meta_5fassociative_5fcontainer_28',['meta_associative_container',['../classentt_1_1meta__associative__container.html',1,'entt::meta_associative_container'],['../classentt_1_1meta__associative__container.html#a088ac917d0505b0dd55a0378cc725225',1,'entt::meta_associative_container::meta_associative_container()=default'],['../classentt_1_1meta__associative__container.html#a12bd958e5b524f5192310c3497b3dbd1',1,'entt::meta_associative_container::meta_associative_container(const meta_ctx &area) noexcept']]], - ['meta_5fassociative_5fcontainer_5ftraits_29',['meta_associative_container_traits',['../structentt_1_1meta__associative__container__traits.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_30',['meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_31',['meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_32',['meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_33',['meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_34',['meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_35',['meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fclass_5ftemplate_5ftag_36',['meta_class_template_tag',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], - ['meta_5fconstruct_37',['meta_construct',['../namespaceentt.html#a571cc8688ebf018c16e2a15f6c45764a',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a3b0d075524517183181aa512417358a0',1,'entt::meta_construct(meta_any *const args)'],['../namespaceentt.html#a21d052556804c409d65dcf2985dc44e2',1,'entt::meta_construct(const meta_ctx &ctx, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7ba2afbd0762cd23f85df6d65d6a8413',1,'entt::meta_construct(Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7f1ee2282bd9da8ef9a8b1f2c49c431b',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a5fbe3810e19337b32c66c6bab769338a',1,'entt::meta_construct(meta_any *const args)']]], - ['meta_5fctx_38',['meta_ctx',['../classentt_1_1meta__ctx.html',1,'entt']]], - ['meta_5fctx_5farg_39',['meta_ctx_arg',['../namespaceentt.html#aa7148c0f5c0a81e2c48c9d4e52d31f55',1,'entt']]], - ['meta_5fctx_5farg_5ft_40',['meta_ctx_arg_t',['../classentt_1_1meta__ctx__arg__t.html',1,'entt']]], - ['meta_5fcustom_41',['meta_custom',['../structentt_1_1meta__custom.html',1,'entt::meta_custom'],['../structentt_1_1meta__custom.html#ab75c19be61cb66f02a4e9d8e652d1261',1,'entt::meta_custom::meta_custom() noexcept=default'],['../structentt_1_1meta__custom.html#ab46973553b3953a293f2eb1d1aabea21',1,'entt::meta_custom::meta_custom(internal::meta_custom_node curr) noexcept']]], - ['meta_5fdata_42',['meta_data',['../structentt_1_1meta__data.html',1,'entt::meta_data'],['../structentt_1_1meta__data.html#ad6c58a93321a1201867f5d9934439326',1,'entt::meta_data::meta_data() noexcept=default'],['../structentt_1_1meta__data.html#ae20aa5d5f917f006c5b717858c2f8943',1,'entt::meta_data::meta_data(const meta_ctx &area, const internal::meta_data_node &curr) noexcept']]], - ['meta_5fdispatch_43',['meta_dispatch',['../namespaceentt.html#a8f82832c0a318d045d51e4cdc3f90c7e',1,'entt::meta_dispatch(const meta_ctx &ctx, Type &&value)'],['../namespaceentt.html#aefa0d4c01cb554a8c4ff29154fba457a',1,'entt::meta_dispatch(Type &&value)']]], - ['meta_5ffactory_44',['meta_factory',['../classentt_1_1meta__factory.html',1,'entt::meta_factory< Type >'],['../classentt_1_1meta__factory.html#a59030405fb067442bd8ee6cde0b0dd3f',1,'entt::meta_factory::meta_factory() noexcept'],['../classentt_1_1meta__factory.html#a806bf70fb4f0097f3f2e4bf3923a72ac',1,'entt::meta_factory::meta_factory(meta_ctx &area) noexcept']]], - ['meta_5ffunc_45',['meta_func',['../structentt_1_1meta__func.html',1,'entt::meta_func'],['../structentt_1_1meta__func.html#a4d90c32da75cd41f8b4692431b6a07ae',1,'entt::meta_func::meta_func() noexcept=default'],['../structentt_1_1meta__func.html#a6892346c41d49382502cc00fce777219',1,'entt::meta_func::meta_func(const meta_ctx &area, const internal::meta_func_node &curr) noexcept']]], - ['meta_5ffunction_5fdescriptor_46',['meta_function_descriptor',['../structentt_1_1meta__function__descriptor.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_20class_3a_3a_2a_20_3e_47',['meta_function_descriptor< Type, Ret Class::* >',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28_2a_29_28_29_3e_48',['meta_function_descriptor< Type, Ret(*)()>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28_2a_29_28maybetype_2c_20args_2e_2e_2e_29_3e_49',['meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28class_3a_3a_2a_29_28args_2e_2e_2e_29_20const_20_3e_50',['meta_function_descriptor< Type, Ret(Class::*)(Args...) const >',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28class_3a_3a_2a_29_28args_2e_2e_2e_29_3e_51',['meta_function_descriptor< Type, Ret(Class::*)(Args...)>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_52',['meta_function_descriptor_traits',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_20_26_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_3e_2c_20type_5flist_3c_20class_20_26_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20false_20_3e_53',['meta_function_descriptor_traits< Ret &, std::conditional_t< std::is_base_of_v< Class, Type >, type_list<>, type_list< Class & > >, !std::is_base_of_v< Class, Type >, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20class_20_26_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20false_20_3e_54',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< Class &, Args... > >, !std::is_base_of_v< Class, Type >, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20const_20class_20_26_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20true_20_3e_55',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< const Class &, Args... > >, !std::is_base_of_v< Class, Type >, true >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20maybetype_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21_28std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_29_2c_20std_3a_3ais_5fconst_5fv_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_20_26_26_28std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_29_3e_56',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >, type_list< Args... >, type_list< MaybeType, Args... > >, !(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >), std::is_const_v< std::remove_reference_t< MaybeType > > &&(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >)>',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20type_5flist_3c_3e_2c_20true_2c_20false_20_3e_57',['meta_function_descriptor_traits< Ret, type_list<>, true, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], - ['meta_5ffunction_5fhelper_58',['meta_function_helper',['../classentt_1_1meta__function__helper.html',1,'entt']]], - ['meta_5ffunction_5fhelper_5ft_59',['meta_function_helper_t',['../namespaceentt.html#a396e96dc705319d2fc6ded344292004f',1,'entt']]], - ['meta_5fgetter_60',['meta_getter',['../namespaceentt.html#aa754d1db973d40e40f7b1aa6aebb7ab3',1,'entt::meta_getter(const meta_ctx &ctx, meta_handle instance)'],['../namespaceentt.html#a492632c2f27d1e0c745d73398ac534d3',1,'entt::meta_getter(meta_handle instance)']]], - ['meta_5fhandle_61',['meta_handle',['../structentt_1_1meta__handle.html',1,'entt::meta_handle'],['../structentt_1_1meta__handle.html#a8d02bbf3a8088aa698db4491374dbf4c',1,'entt::meta_handle::meta_handle()=default'],['../structentt_1_1meta__handle.html#ae49bd4f8600e9b2ca010d1957174af1c',1,'entt::meta_handle::meta_handle(meta_ctx_arg_t, const meta_ctx &area)'],['../structentt_1_1meta__handle.html#ae76ed97e67730f4b901e9d27313ddadb',1,'entt::meta_handle::meta_handle(meta_any &value)'],['../structentt_1_1meta__handle.html#a14f204ee9172d932389f84b9e1f18714',1,'entt::meta_handle::meta_handle(const meta_any &value)'],['../structentt_1_1meta__handle.html#a379cb22588ec1a71e313e3df5380cd32',1,'entt::meta_handle::meta_handle(const meta_ctx &ctx, Type &value)'],['../structentt_1_1meta__handle.html#aed6a735b7dd561d9231334e54fe6fe55',1,'entt::meta_handle::meta_handle(Type &value)'],['../structentt_1_1meta__handle.html#a947d0bfa9519665cd6d7d6aec5ab6500',1,'entt::meta_handle::meta_handle(const meta_ctx &area, const meta_handle &other)'],['../structentt_1_1meta__handle.html#ac25571687a6a744a99841b9277cd9986',1,'entt::meta_handle::meta_handle(const meta_ctx &area, meta_handle &&other)'],['../structentt_1_1meta__handle.html#acaaa33d743703cf1af62691de0b86f50',1,'entt::meta_handle::meta_handle(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aa988b1809a9687be4d25f21722075da5',1,'entt::meta_handle::meta_handle(meta_handle &&)=default']]], - ['meta_5finvoke_62',['meta_invoke',['../namespaceentt.html#a1f4a6163636762f35f9e984f1278905f',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a8befe85c5ee65562cff4dadac3dc00ef',1,'entt::meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#ac23a3b88b27196cb423e5d45eada1348',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args)'],['../namespaceentt.html#aef1b2e11225caa53d5880e81915e9316',1,'entt::meta_invoke(meta_handle instance, meta_any *const args)']]], - ['meta_5fprop_63',['meta_prop',['../structentt_1_1meta__prop.html',1,'entt::meta_prop'],['../structentt_1_1meta__prop.html#a97351ae0500c7b63ec1b0e5144171250',1,'entt::meta_prop::meta_prop() noexcept=default'],['../structentt_1_1meta__prop.html#a02fae19146cfec483a367f62028eb74d',1,'entt::meta_prop::meta_prop(const meta_ctx &area, internal::meta_prop_node curr) noexcept']]], - ['meta_5frange_64',['meta_range',['../namespaceentt.html#a7885dfa7d8e1307ff909f99182a64134',1,'entt']]], - ['meta_5freset_65',['meta_reset',['../namespaceentt.html#aa4a4a3ee0126a16959fcdfe6229fd057',1,'entt::meta_reset(meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#af9e4b586c541f816d71ff5c23b1d2a65',1,'entt::meta_reset(const id_type id) noexcept'],['../namespaceentt.html#a3d262b7705ff50f3fb58d2c90b2d6b61',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#abe9a45bd7c93035354ec03dc7f196482',1,'entt::meta_reset() noexcept'],['../namespaceentt.html#a4671352f38341177295442a0d956c9d8',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a4a0484b50821691e6aacea122481c1e6',1,'entt::meta_reset() noexcept']]], - ['meta_5fsequence_5fcontainer_66',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html',1,'entt::meta_sequence_container'],['../classentt_1_1meta__sequence__container.html#a392df26352c3267384c89e71cd9b2b0b',1,'entt::meta_sequence_container::meta_sequence_container()=default'],['../classentt_1_1meta__sequence__container.html#aabcc278e0621444ac043cdc79257d162',1,'entt::meta_sequence_container::meta_sequence_container(const meta_ctx &area) noexcept']]], - ['meta_5fsequence_5fcontainer_5ftraits_67',['meta_sequence_container_traits',['../structentt_1_1meta__sequence__container__traits.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_68',['meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_69',['meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_70',['meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_71',['meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fsetter_72',['meta_setter',['../namespaceentt.html#ac14f35fbe2a40c6a94108b95507517fb',1,'entt']]], - ['meta_5ftemplate_5ftraits_73',['meta_template_traits',['../structentt_1_1meta__template__traits.html',1,'entt']]], - ['meta_5ftemplate_5ftraits_3c_20clazz_3c_20args_2e_2e_2e_20_3e_20_3e_74',['meta_template_traits< Clazz< Args... > >',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5ftype_75',['meta_type',['../classentt_1_1meta__type.html',1,'entt::meta_type'],['../classentt_1_1meta__type.html#aaf8c5816b1f47af7f7d1c3ca3af2c9eb',1,'entt::meta_type::meta_type() noexcept=default'],['../classentt_1_1meta__type.html#a7cde7474cc0892fe3b5928dc6fdd43a8',1,'entt::meta_type::meta_type(const meta_ctx &area, internal::meta_type_node curr) noexcept'],['../classentt_1_1meta__type.html#ad538c90f0dda2b2a5bf1b71392d124cd',1,'entt::meta_type::meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept']]], - ['min_20the_20max_20and_20the_20macro_76',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], - ['module_77',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], - ['monostate_78',['monostate',['../structentt_1_1monostate.html',1,'entt']]], - ['monostate_79',['Monostate',['../md_docs_2md_2core.html#monostate',1,'']]], - ['monostate_5fv_80',['monostate_v',['../namespaceentt.html#ab43a13f7ee60bcb0d04a001f92b86fa2',1,'entt']]], - ['more_20constraints_81',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], - ['more_20performance_20more_20constraints_82',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], - ['more_20the_20less_83',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], - ['motivation_84',['Motivation',['../index.html#motivation',1,'']]], - ['multithreading_85',['Multithreading',['../md_docs_2md_2entity.html#multithreading',1,'']]], - ['my_20components_86',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], - ['my_20debug_20build_20on_20windows_20so_20slow_87',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]] + ['map_6',['map',['../md_docs_2md_2container.html#dense-map',1,'Dense map'],['../classentt_1_1basic__continuous__loader.html#ac243f6a783ffe8839fd864d887ea0153',1,'entt::basic_continuous_loader::map()']]], + ['mapped_5ftype_7',['mapped_type',['../classentt_1_1dense__map.html#a7cdfe85f102518543b7a684c9e8e3bd3',1,'entt::dense_map::mapped_type'],['../classentt_1_1meta__associative__container.html#a9bae47c15cad6c219d3e03e6885f1675',1,'entt::meta_associative_container::mapped_type()']]], + ['matrix_8',['Adjacency matrix',['../md_docs_2md_2graph.html#adjacency-matrix',1,'']]], + ['max_20and_20the_20macro_9',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['max_5fbucket_5fcount_10',['max_bucket_count',['../classentt_1_1dense__map.html#a4818548e35a239228a5fae77af01e7f5',1,'entt::dense_map::max_bucket_count()'],['../classentt_1_1dense__set.html#ac3410a73c0331657be2da1c8f0855949',1,'entt::dense_set::max_bucket_count()']]], + ['max_5fload_5ffactor_11',['max_load_factor',['../classentt_1_1dense__map.html#a54a2dd65d401a992fd91fb8a91faea86',1,'entt::dense_map::max_load_factor() const'],['../classentt_1_1dense__map.html#a608539db499acbc3a7548421ea5d8709',1,'entt::dense_map::max_load_factor(const float value)'],['../classentt_1_1dense__set.html#aeb02fd08b390059b8c1cffc39a6f40f1',1,'entt::dense_set::max_load_factor() const'],['../classentt_1_1dense__set.html#ab740b6ce89b700657c796b7388563569',1,'entt::dense_set::max_load_factor(const float value)']]], + ['max_5fsize_12',['max_size',['../classentt_1_1dense__map.html#a45843ecba66cc9692ae4facac5461e4d',1,'entt::dense_map::max_size()'],['../classentt_1_1dense__set.html#a4c6b94ce7998769b18635a11a7c044de',1,'entt::dense_set::max_size()']]], + ['me_20everything_13',['Give me everything',['../md_docs_2md_2entity.html#give-me-everything',1,'']]], + ['me_20reactive_20storage_14',['They call me reactive storage',['../md_docs_2md_2entity.html#they-call-me-reactive-storage',1,'']]], + ['me_20up_20registry_15',['Beam me up, registry',['../md_docs_2md_2entity.html#beam-me-up-registry',1,'']]], + ['meet_20the_20runtime_16',['Meet the runtime',['../md_docs_2md_2entity.html#meet-the-runtime',1,'']]], + ['member_20class_20type_17',['Member class type',['../md_docs_2md_2core.html#member-class-type',1,'']]], + ['member_5fclass_18',['member_class',['../classentt_1_1member__class.html',1,'entt']]], + ['member_5fclass_5ft_19',['member_class_t',['../namespaceentt.html#a021c5343afb213cf29d3703cdc2c8cbc',1,'entt']]], + ['memory_20',['Memory',['../md_docs_2md_2core.html#memory',1,'']]], + ['memory_20management_21',['Memory Management',['../md_docs_2md_2lib.html#memory-management',1,'']]], + ['meta_22',['meta',['../namespaceentt.html#a2d7c05b6ee08bf9582e2a119dd6cbd8d',1,'entt::meta(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a78885d25ace657bedd664e3044152f03',1,'entt::meta() noexcept']]], + ['meta_20context_23',['Meta context',['../md_docs_2md_2lib.html#meta-context',1,'Meta context'],['../md_docs_2md_2meta.html#meta-context-1',1,'Meta context']]], + ['meta_5fany_24',['meta_any',['../classentt_1_1meta__any.html',1,'entt::meta_any'],['../classentt_1_1meta__any.html#a2669cb479aa2c88729630efc277ef186',1,'entt::meta_any::meta_any()=default'],['../classentt_1_1meta__any.html#a72a627b0d0bd6d469dc372e435076b75',1,'entt::meta_any::meta_any(meta_ctx_arg_t, const meta_ctx &area)'],['../classentt_1_1meta__any.html#a327704bdb52c21b9ea8f221cdac11b20',1,'entt::meta_any::meta_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a612396f0d0c0acf9499d13450a8b2dde',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a3fefd5ab2953a3ecffa34aae3cbd8f9f',1,'entt::meta_any::meta_any(std::in_place_t, Type *value)'],['../classentt_1_1meta__any.html#ad5a513235b06a51acde930b3e6f06b07',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_t, Type *value)'],['../classentt_1_1meta__any.html#a7e1dba79e26c96a353743a327d1c7b8e',1,'entt::meta_any::meta_any(Type &&value)'],['../classentt_1_1meta__any.html#a59650d3b6cd69d36c65830cd0a4e987a',1,'entt::meta_any::meta_any(const meta_ctx &area, Type &&value)'],['../classentt_1_1meta__any.html#a25a7090663c345aa7a6d6fc3259ac404',1,'entt::meta_any::meta_any(const meta_ctx &area, const meta_any &other)'],['../classentt_1_1meta__any.html#a4446871c0d4bbd77ca4fb3baa8b89820',1,'entt::meta_any::meta_any(const meta_ctx &area, meta_any &&other)'],['../classentt_1_1meta__any.html#a51936bb6212a3bfc87b71afb2d6085c3',1,'entt::meta_any::meta_any(const meta_any &other)=default'],['../classentt_1_1meta__any.html#a30f860927336ca054fa561a7ae61a00b',1,'entt::meta_any::meta_any(meta_any &&other) noexcept']]], + ['meta_5fassociative_5fcontainer_25',['meta_associative_container',['../classentt_1_1meta__associative__container.html',1,'entt::meta_associative_container'],['../classentt_1_1meta__associative__container.html#a088ac917d0505b0dd55a0378cc725225',1,'entt::meta_associative_container::meta_associative_container()=default'],['../classentt_1_1meta__associative__container.html#a79e0a60500cf5cb568ae41281a0aabf2',1,'entt::meta_associative_container::meta_associative_container(const meta_ctx &area, Type &instance) noexcept']]], + ['meta_5fassociative_5fcontainer_5ftraits_26',['meta_associative_container_traits',['../structentt_1_1meta__associative__container__traits.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_27',['meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_28',['meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_29',['meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_30',['meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_31',['meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_32',['meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fclass_5ftemplate_5ftag_33',['meta_class_template_tag',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], + ['meta_5fclass_5ftemplate_5ftag_3c_20clazz_20_3e_34',['meta_class_template_tag< Clazz >',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], + ['meta_5fconstruct_35',['meta_construct',['../namespaceentt.html#a571cc8688ebf018c16e2a15f6c45764a',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a3b0d075524517183181aa512417358a0',1,'entt::meta_construct(meta_any *const args)'],['../namespaceentt.html#a21d052556804c409d65dcf2985dc44e2',1,'entt::meta_construct(const meta_ctx &ctx, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7ba2afbd0762cd23f85df6d65d6a8413',1,'entt::meta_construct(Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7f1ee2282bd9da8ef9a8b1f2c49c431b',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a5fbe3810e19337b32c66c6bab769338a',1,'entt::meta_construct(meta_any *const args)']]], + ['meta_5fctx_36',['meta_ctx',['../classentt_1_1meta__ctx.html',1,'entt']]], + ['meta_5fctx_5farg_37',['meta_ctx_arg',['../namespaceentt.html#aa7148c0f5c0a81e2c48c9d4e52d31f55',1,'entt']]], + ['meta_5fctx_5farg_5ft_38',['meta_ctx_arg_t',['../classentt_1_1meta__ctx__arg__t.html',1,'entt']]], + ['meta_5fcustom_39',['meta_custom',['../structentt_1_1meta__custom.html',1,'entt::meta_custom'],['../structentt_1_1meta__custom.html#ab75c19be61cb66f02a4e9d8e652d1261',1,'entt::meta_custom::meta_custom() noexcept=default'],['../structentt_1_1meta__custom.html#ab46973553b3953a293f2eb1d1aabea21',1,'entt::meta_custom::meta_custom(internal::meta_custom_node curr) noexcept']]], + ['meta_5fdata_40',['meta_data',['../structentt_1_1meta__data.html',1,'entt::meta_data'],['../structentt_1_1meta__data.html#ad6c58a93321a1201867f5d9934439326',1,'entt::meta_data::meta_data() noexcept=default'],['../structentt_1_1meta__data.html#ac771dc050a78143f1672bfe32bf81ad6',1,'entt::meta_data::meta_data(const meta_ctx &area, internal::meta_data_node curr) noexcept']]], + ['meta_5fdispatch_41',['meta_dispatch',['../namespaceentt.html#a8f82832c0a318d045d51e4cdc3f90c7e',1,'entt::meta_dispatch(const meta_ctx &ctx, Type &&value)'],['../namespaceentt.html#aefa0d4c01cb554a8c4ff29154fba457a',1,'entt::meta_dispatch(Type &&value)']]], + ['meta_5ffactory_42',['meta_factory',['../classentt_1_1meta__factory.html',1,'entt::meta_factory< Type >'],['../classentt_1_1meta__factory.html#a59030405fb067442bd8ee6cde0b0dd3f',1,'entt::meta_factory::meta_factory() noexcept'],['../classentt_1_1meta__factory.html#a806bf70fb4f0097f3f2e4bf3923a72ac',1,'entt::meta_factory::meta_factory(meta_ctx &area) noexcept']]], + ['meta_5ffunc_43',['meta_func',['../structentt_1_1meta__func.html',1,'entt::meta_func'],['../structentt_1_1meta__func.html#a4d90c32da75cd41f8b4692431b6a07ae',1,'entt::meta_func::meta_func() noexcept=default'],['../structentt_1_1meta__func.html#a9885a8438083912faa40038c45ee7a53',1,'entt::meta_func::meta_func(const meta_ctx &area, internal::meta_func_node curr) noexcept']]], + ['meta_5ffunction_5fdescriptor_44',['meta_function_descriptor',['../structentt_1_1meta__function__descriptor.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_20class_3a_3a_2a_20_3e_45',['meta_function_descriptor< Type, Ret Class::* >',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28_2a_29_28_29_3e_46',['meta_function_descriptor< Type, Ret(*)()>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28_2a_29_28maybetype_2c_20args_2e_2e_2e_29_3e_47',['meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28class_3a_3a_2a_29_28args_2e_2e_2e_29_20const_20_3e_48',['meta_function_descriptor< Type, Ret(Class::*)(Args...) const >',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_3c_20type_2c_20ret_28class_3a_3a_2a_29_28args_2e_2e_2e_29_3e_49',['meta_function_descriptor< Type, Ret(Class::*)(Args...)>',['../structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_50',['meta_function_descriptor_traits',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_20_26_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_3e_2c_20type_5flist_3c_20class_20_26_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20false_20_3e_51',['meta_function_descriptor_traits< Ret &, std::conditional_t< std::is_base_of_v< Class, Type >, type_list<>, type_list< Class & > >, !std::is_base_of_v< Class, Type >, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20class_20_26_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20false_20_3e_52',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< Class &, Args... > >, !std::is_base_of_v< Class, Type >, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20const_20class_20_26_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21std_3a_3ais_5fbase_5fof_5fv_3c_20class_2c_20type_20_3e_2c_20true_20_3e_53',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_base_of_v< Class, Type >, type_list< Args... >, type_list< const Class &, Args... > >, !std::is_base_of_v< Class, Type >, true >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20std_3a_3aconditional_5ft_3c_20std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_2c_20type_5flist_3c_20args_2e_2e_2e_20_3e_2c_20type_5flist_3c_20maybetype_2c_20args_2e_2e_2e_20_3e_20_3e_2c_20_21_28std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_29_2c_20std_3a_3ais_5fconst_5fv_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_20_26_26_28std_3a_3ais_5fsame_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_7c_7cstd_3a_3ais_5fbase_5fof_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5freference_5ft_3c_20maybetype_20_3e_20_3e_2c_20type_20_3e_29_3e_54',['meta_function_descriptor_traits< Ret, std::conditional_t< std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >, type_list< Args... >, type_list< MaybeType, Args... > >, !(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >), std::is_const_v< std::remove_reference_t< MaybeType > > &&(std::is_same_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >||std::is_base_of_v< std::remove_cv_t< std::remove_reference_t< MaybeType > >, Type >)>',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20type_5flist_3c_3e_2c_20true_2c_20false_20_3e_55',['meta_function_descriptor_traits< Ret, type_list<>, true, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], + ['meta_5ffunction_5fhelper_56',['meta_function_helper',['../classentt_1_1meta__function__helper.html',1,'entt']]], + ['meta_5ffunction_5fhelper_5ft_57',['meta_function_helper_t',['../namespaceentt.html#a396e96dc705319d2fc6ded344292004f',1,'entt']]], + ['meta_5fgetter_58',['meta_getter',['../namespaceentt.html#a492632c2f27d1e0c745d73398ac534d3',1,'entt::meta_getter(meta_handle instance)'],['../namespaceentt.html#aa754d1db973d40e40f7b1aa6aebb7ab3',1,'entt::meta_getter(const meta_ctx &ctx, meta_handle instance)']]], + ['meta_5fhandle_59',['meta_handle',['../structentt_1_1meta__handle.html',1,'entt::meta_handle'],['../structentt_1_1meta__handle.html#a8d02bbf3a8088aa698db4491374dbf4c',1,'entt::meta_handle::meta_handle()=default'],['../structentt_1_1meta__handle.html#ae49bd4f8600e9b2ca010d1957174af1c',1,'entt::meta_handle::meta_handle(meta_ctx_arg_t, const meta_ctx &area)'],['../structentt_1_1meta__handle.html#ae76ed97e67730f4b901e9d27313ddadb',1,'entt::meta_handle::meta_handle(meta_any &value)'],['../structentt_1_1meta__handle.html#a14f204ee9172d932389f84b9e1f18714',1,'entt::meta_handle::meta_handle(const meta_any &value)'],['../structentt_1_1meta__handle.html#a379cb22588ec1a71e313e3df5380cd32',1,'entt::meta_handle::meta_handle(const meta_ctx &ctx, Type &value)'],['../structentt_1_1meta__handle.html#aed6a735b7dd561d9231334e54fe6fe55',1,'entt::meta_handle::meta_handle(Type &value)'],['../structentt_1_1meta__handle.html#a947d0bfa9519665cd6d7d6aec5ab6500',1,'entt::meta_handle::meta_handle(const meta_ctx &area, const meta_handle &other)'],['../structentt_1_1meta__handle.html#ac25571687a6a744a99841b9277cd9986',1,'entt::meta_handle::meta_handle(const meta_ctx &area, meta_handle &&other)'],['../structentt_1_1meta__handle.html#acaaa33d743703cf1af62691de0b86f50',1,'entt::meta_handle::meta_handle(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aa988b1809a9687be4d25f21722075da5',1,'entt::meta_handle::meta_handle(meta_handle &&)=default']]], + ['meta_5finvoke_60',['meta_invoke',['../namespaceentt.html#a8befe85c5ee65562cff4dadac3dc00ef',1,'entt::meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a1f4a6163636762f35f9e984f1278905f',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#aef1b2e11225caa53d5880e81915e9316',1,'entt::meta_invoke(meta_handle instance, meta_any *const args)'],['../namespaceentt.html#ac23a3b88b27196cb423e5d45eada1348',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args)']]], + ['meta_5frange_61',['meta_range',['../namespaceentt.html#a7885dfa7d8e1307ff909f99182a64134',1,'entt']]], + ['meta_5freset_62',['meta_reset',['../namespaceentt.html#aa4a4a3ee0126a16959fcdfe6229fd057',1,'entt::meta_reset(meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#af9e4b586c541f816d71ff5c23b1d2a65',1,'entt::meta_reset(const id_type id) noexcept'],['../namespaceentt.html#a3d262b7705ff50f3fb58d2c90b2d6b61',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#abe9a45bd7c93035354ec03dc7f196482',1,'entt::meta_reset() noexcept'],['../namespaceentt.html#a4671352f38341177295442a0d956c9d8',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a4a0484b50821691e6aacea122481c1e6',1,'entt::meta_reset() noexcept']]], + ['meta_5fsequence_5fcontainer_63',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html',1,'entt::meta_sequence_container'],['../classentt_1_1meta__sequence__container.html#a392df26352c3267384c89e71cd9b2b0b',1,'entt::meta_sequence_container::meta_sequence_container()=default'],['../classentt_1_1meta__sequence__container.html#a756be999106059134841601ad358e4e1',1,'entt::meta_sequence_container::meta_sequence_container(const meta_ctx &area, Type &instance) noexcept']]], + ['meta_5fsequence_5fcontainer_5ftraits_64',['meta_sequence_container_traits',['../structentt_1_1meta__sequence__container__traits.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_65',['meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_66',['meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_67',['meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_68',['meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fsetter_69',['meta_setter',['../namespaceentt.html#ac14f35fbe2a40c6a94108b95507517fb',1,'entt']]], + ['meta_5ftemplate_5ftraits_70',['meta_template_traits',['../structentt_1_1meta__template__traits.html',1,'entt']]], + ['meta_5ftemplate_5ftraits_3c_20clazz_3c_20args_2e_2e_2e_20_3e_20_3e_71',['meta_template_traits< Clazz< Args... > >',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5ftype_72',['meta_type',['../classentt_1_1meta__type.html',1,'entt::meta_type'],['../classentt_1_1meta__type.html#aaf8c5816b1f47af7f7d1c3ca3af2c9eb',1,'entt::meta_type::meta_type() noexcept=default'],['../classentt_1_1meta__type.html#a7cde7474cc0892fe3b5928dc6fdd43a8',1,'entt::meta_type::meta_type(const meta_ctx &area, internal::meta_type_node curr) noexcept'],['../classentt_1_1meta__type.html#ad538c90f0dda2b2a5bf1b71392d124cd',1,'entt::meta_type::meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept']]], + ['min_20the_20max_20and_20the_20macro_73',['Warning C4003: the min, the max and the macro',['../md_docs_2md_2faq.html#warning-c4003-the-min-the-max-and-the-macro',1,'']]], + ['module_74',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], + ['monostate_75',['Monostate',['../md_docs_2md_2core.html#monostate',1,'']]], + ['monostate_76',['monostate',['../structentt_1_1monostate.html',1,'entt']]], + ['monostate_5fv_77',['monostate_v',['../namespaceentt.html#ab43a13f7ee60bcb0d04a001f92b86fa2',1,'entt']]], + ['more_20constraints_78',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], + ['more_20performance_20more_20constraints_79',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], + ['more_20the_20less_80',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], + ['motivation_81',['Motivation',['../index.html#motivation',1,'']]], + ['multithreading_82',['Multithreading',['../md_docs_2md_2entity.html#multithreading',1,'']]], + ['my_20components_83',['How can I represent hierarchies with my components?',['../md_docs_2md_2faq.html#how-can-i-represent-hierarchies-with-my-components',1,'']]], + ['my_20debug_20build_20on_20windows_20so_20slow_84',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]] ]; diff --git a/search/all_d.js b/search/all_d.js index e234ed018..d20ae99d8 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -1,71 +1,71 @@ var searchData= [ ['observe_20changes_0',['Observe changes',['../md_docs_2md_2entity.html#observe-changes',1,'']]], - ['observer_1',['observer',['../namespaceentt.html#ab53f35f7c2e36603582be3372af9d9e4',1,'entt']]], - ['of_2',['Size of',['../md_docs_2md_2core.html#size-of',1,'']]], - ['of_20a_20kind_20to_20the_20registry_3',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], - ['of_20contents_4',['Of Contents',['../md_docs_2md_2config.html#table-of-contents',1,'Table of Contents'],['../md_docs_2md_2container.html#table-of-contents-1',1,'Table of Contents'],['../md_docs_2md_2core.html#table-of-contents-2',1,'Table of Contents'],['../md_docs_2md_2entity.html#table-of-contents-3',1,'Table of Contents'],['../md_docs_2md_2faq.html#table-of-contents-4',1,'Table of Contents'],['../md_docs_2md_2graph.html#table-of-contents-5',1,'Table of Contents'],['../md_docs_2md_2lib.html#table-of-contents-6',1,'Table of Contents'],['../md_docs_2md_2links.html#table-of-contents-7',1,'Table of Contents'],['../md_docs_2md_2locator.html#table-of-contents-8',1,'Table of Contents'],['../md_docs_2md_2meta.html#table-of-contents-9',1,'Table of Contents'],['../md_docs_2md_2poly.html#table-of-contents-10',1,'Table of Contents'],['../md_docs_2md_2process.html#table-of-contents-11',1,'Table of Contents'],['../md_docs_2md_2reference.html#table-of-contents-12',1,'Table of Contents'],['../md_docs_2md_2resource.html#table-of-contents-13',1,'Table of Contents'],['../md_docs_2md_2signal.html#table-of-contents-14',1,'Table of Contents'],['../md_docs_2md_2unreal.html#table-of-contents-15',1,'Table of Contents'],['../index.html#table-of-contents-16',1,'Table of Contents']]], - ['of_20execution_5',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], - ['on_6',['on',['../classentt_1_1emitter.html#ad620441c088f7e4d1cc4f852f4ec4bad',1,'entt::emitter']]], - ['on_20windows_20so_20slow_7',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], - ['on_5fconstruct_8',['on_construct',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a1d77fc6d2924e419a9cc022231ad0e32',1,'entt::sigh_helper< Registry, Type >::on_construct()'],['../classentt_1_1basic__sigh__mixin.html#a0c57f7ab639278e2445da4cd1ac32187',1,'entt::basic_sigh_mixin::on_construct()'],['../classentt_1_1basic__reactive__mixin.html#af3eb5ddbf128303f1339f3b513168c26',1,'entt::basic_reactive_mixin::on_construct()'],['../classentt_1_1basic__registry.html#ab68c1ba5692d30350d30121663203aea',1,'entt::basic_registry::on_construct()']]], - ['on_5fdestroy_9',['on_destroy',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a0bf3fdfbe983ec6d9ce9fae4b0465ddf',1,'entt::sigh_helper< Registry, Type >::on_destroy()'],['../classentt_1_1basic__sigh__mixin.html#ab95e47b07373502e551033b45fd79c74',1,'entt::basic_sigh_mixin::on_destroy()'],['../classentt_1_1basic__reactive__mixin.html#ad4e2176d8715837b780eae5f29375a01',1,'entt::basic_reactive_mixin::on_destroy()'],['../classentt_1_1basic__registry.html#a0984ffe101cfef78d7e755bbaed5842e',1,'entt::basic_registry::on_destroy()']]], - ['on_5fupdate_10',['on_update',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#abbd7db28fd4c97ba98b25c22dff7c26f',1,'entt::sigh_helper< Registry, Type >::on_update()'],['../classentt_1_1basic__sigh__mixin.html#a0ac778697e4f09d34062415753b13f27',1,'entt::basic_sigh_mixin::on_update()'],['../classentt_1_1basic__reactive__mixin.html#acbfcbbb0f1f889fba12104643a29beff',1,'entt::basic_reactive_mixin::on_update()'],['../classentt_1_1basic__registry.html#a1b83f8586cfb519b7b966751094c5381',1,'entt::basic_registry::on_update()']]], - ['once_20reuse_20many_20times_11',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], - ['one_20example_20to_20rule_20them_20all_12',['One example to rule them all',['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'']]], - ['one_20of_20a_20kind_20to_20the_20registry_13',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], - ['only_14',['Exclude-only',['../md_docs_2md_2entity.html#exclude-only',1,'']]], - ['opaque_20handles_15',['Opaque handles',['../md_docs_2md_2locator.html#opaque-handles',1,'']]], - ['operator_20basic_5fgroup_3c_20owned_2c_20get_2c_20exclude_20_3e_16',['operator basic_group< Owned, Get, Exclude >',['../classentt_1_1as__group.html#ab252f9fcd1a370a52dd8abfd7f32cec8',1,'entt::as_group']]], - ['operator_20basic_5fhandle_3c_20other_2c_20args_2e_2e_2e_20_3e_17',['operator basic_handle< Other, Args... >',['../classentt_1_1basic__handle.html#ac1c8add27af60e420f5f0d1d2fd078db',1,'entt::basic_handle']]], - ['operator_20basic_5fview_3c_20get_2c_20exclude_20_3e_18',['operator basic_view< Get, Exclude >',['../classentt_1_1as__view.html#afd2048bc06e3758fa9fb811e7dd10c5f',1,'entt::as_view']]], - ['operator_20bool_19',['operator bool',['../classentt_1_1basic__any.html#a0a4e687230c96ff901b41d16b7fd41f6',1,'entt::basic_any::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a5032823e971e2da23bacae135c78fbd2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ac4a67ec8ec5c496f331e10a01acf7ef8',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__handle.html#a9d6c1f30cb7e6eed039de66b6ed05163',1,'entt::basic_handle::operator bool()'],['../classentt_1_1basic__sigh__mixin.html#a1dc138f96dbb5d5ccb6668b812f80231',1,'entt::basic_sigh_mixin::operator bool()'],['../classentt_1_1basic__reactive__mixin.html#a07f2a09ede7efaff93491e720d0ea081',1,'entt::basic_reactive_mixin::operator bool()'],['../classentt_1_1basic__runtime__view.html#ae60420edc7a111866fd4164d060cc513',1,'entt::basic_runtime_view::operator bool()'],['../classentt_1_1basic__common__view.html#afd888f9d6b8141c3f1b4c1b1334720ac',1,'entt::basic_common_view::operator bool()'],['../classentt_1_1basic__storage__view.html#a1a64743073c0809b1dda953492865db6',1,'entt::basic_storage_view::operator bool()'],['../classentt_1_1meta__sequence__container.html#a92441a5f3cb720a1fff0f5f4e7451341',1,'entt::meta_sequence_container::operator bool()'],['../classentt_1_1meta__associative__container.html#a3fb7890a5a5e93ed3b76c7206b71a901',1,'entt::meta_associative_container::operator bool()'],['../classentt_1_1meta__any.html#a0aec8274019fc0727cf96c91866707e5',1,'entt::meta_any::operator bool()'],['../structentt_1_1meta__handle.html#a581c82651e531f669d95fbe2a673b1c6',1,'entt::meta_handle::operator bool()'],['../structentt_1_1meta__prop.html#a97affd0004b41d0fedc5287157f701c6',1,'entt::meta_prop::operator bool()'],['../structentt_1_1meta__data.html#a1127923d5d2f1c59af5e739c95f4798a',1,'entt::meta_data::operator bool()'],['../structentt_1_1meta__func.html#a9727c67eadcaea8a0dc66b7d4b7637e0',1,'entt::meta_func::operator bool()'],['../classentt_1_1meta__type.html#aa982605bfed3124bca1cbd492683d5a5',1,'entt::meta_type::operator bool()'],['../classentt_1_1basic__poly.html#a9bd854e20fcb28a1c8bd9e616cce21a7',1,'entt::basic_poly::operator bool()'],['../classentt_1_1resource.html#a45e0fc4a3de1153c781729a79a7d5314',1,'entt::resource::operator bool()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ae6135edc6c6155d19f86b7f27038a1f6',1,'entt::delegate< Ret(Args...)>::operator bool()'],['../classentt_1_1connection.html#a408ef4df083d255a92f708219c7dffc6',1,'entt::connection::operator bool()'],['../structentt_1_1scoped__connection.html#a33c6351e2adea868ca13888e9f228259',1,'entt::scoped_connection::operator bool()']]], - ['operator_20const_20value_5ftype_20_2a_20',['operator const value_type *',['../classentt_1_1basic__hashed__string.html#aea866875a9b05e5c01c9642766a5857f',1,'entt::basic_hashed_string']]], - ['operator_20element_5ftype_20_26_21',['operator element_type &',['../classentt_1_1resource.html#ab4ab5d954d3603d3080e5434691f81b9',1,'entt::resource']]], - ['operator_20entity_22',['operator Entity',['../structentt_1_1null__t.html#a645f6d96cbb99f7b245058a05bf0e28b',1,'entt::null_t::operator Entity()'],['../structentt_1_1tombstone__t.html#a7ac55427538dd1b5e39ec064a4ffdd14',1,'entt::tombstone_t::operator Entity()']]], - ['operator_20entity_5ftype_23',['operator entity_type',['../classentt_1_1basic__handle.html#a309c43b46efbd454f2c2c22b0a23b71f',1,'entt::basic_handle']]], - ['operator_20hash_5ftype_24',['operator hash_type',['../classentt_1_1basic__hashed__string.html#af0018b378b254991675acc20ba2c600d',1,'entt::basic_hashed_string']]], - ['operator_20id_5ftype_25',['operator id_type',['../structentt_1_1type__index.html#a77cd61cb3147ea14f8dddb408d7fac26',1,'entt::type_index::operator id_type()'],['../structentt_1_1type__hash.html#af2b51b4b9e0350fe1e3ee3882aefbb9f',1,'entt::type_hash::operator id_type()']]], - ['operator_20std_3a_3astring_5fview_26',['string_view',['../structentt_1_1type__name.html#aa5ff3bff84b5b96fc77e63a7af1e3d7a',1,'entt::type_name']]], - ['operator_20type_27',['operator Type',['../structentt_1_1monostate.html#a9e5a76a9f1aba8a54cd1c8b4d7ded0d3',1,'entt::monostate']]], - ['operator_20type_20_26_28',['operator Type &',['../structentt_1_1meta__custom.html#ac33462d129dd8a34b665a6a28fa75e32',1,'entt::meta_custom']]], - ['operator_20type_20_26_26_29',['operator Type &&',['../structentt_1_1poly__inspector.html#a5b44cbea11e79b2ff918165b7bf100eb',1,'entt::poly_inspector']]], - ['operator_20type_20_2a_30',['operator Type *',['../structentt_1_1meta__custom.html#ac2b8276f7ecc30a497bfef7643f6a004',1,'entt::meta_custom']]], - ['operator_21_3d_31',['operator!=',['../classentt_1_1basic__any.html#a749a2855eff737c3ce0882f30bf7ad9a',1,'entt::basic_any::operator!=()'],['../structentt_1_1null__t.html#a6736a78ac5ffa158b229fdf4fefcdc34',1,'entt::null_t::operator!=(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a2c8a4bdade66b7f7520d10b4bb4fc858',1,'entt::null_t::operator!=(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#ac4d838cb66da20f90041cf6e57775512',1,'entt::tombstone_t::operator!=(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#ac66ba66ee149c57866a9a97ac1188eba',1,'entt::tombstone_t::operator!=(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#aec29c7df7a409e920594e0d34f3f71e0',1,'entt::meta_any::operator!=()'],['../structentt_1_1meta__handle.html#a11b6e0b55c075f6fff13a7f5ebae586e',1,'entt::meta_handle::operator!=()'],['../namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf',1,'entt::operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a883ee8e2a3f32a371b44e579ef0d0f25',1,'entt::operator!=(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#afe4410448e22ae52de3bcbf262be9030',1,'entt::operator!=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9abdd7e1b2d1e98662354d5b8f691e91',1,'entt::operator!=(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a5010897ed603a4eb066ea9d151a5f6cc',1,'entt::operator!=(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a7c7a84015d46560a44cf751eed96cfeb',1,'entt::operator!=(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a9c9eee8c572008fa0c43ef8e246de840',1,'entt::operator!=(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#aae197610a7827612780de43b269557c9',1,'entt::operator!=(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a4683753e1e9aa6d3fa003a9643998363',1,'entt::operator!=(const meta_prop &lhs, const meta_prop &rhs) noexcept'],['../namespaceentt.html#a0ed9c972bb7bad7649ee35ec290d3456',1,'entt::operator!=(const meta_data &lhs, const meta_data &rhs) noexcept'],['../namespaceentt.html#a89afa571a2a098039702fea19dcc6882',1,'entt::operator!=(const meta_func &lhs, const meta_func &rhs) noexcept'],['../namespaceentt.html#a85b862c2db6e5771fb95d7a7930e9b18',1,'entt::operator!=(const meta_type &lhs, const meta_type &rhs) noexcept'],['../namespaceentt.html#a73315d70b75d683d36c09fce559fd6d6',1,'entt::operator!=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept'],['../namespaceentt.html#ae663976796b773780f6136606c1a3f31',1,'entt::operator!=(const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept']]], - ['operator_22_22_5fhs_32',['operator""_hs',['../namespaceentt.html#a6d5ebc5e9d0e87c18a22a72d2261bdf5',1,'entt::literals']]], - ['operator_22_22_5fhws_33',['operator""_hws',['../namespaceentt.html#a6fa5b29e7184fb8fe184417411792290',1,'entt::literals']]], - ['operator_28_29_34',['operator()',['../structentt_1_1std__sort.html#a8895e4acd1677a60e07d7e28748fe667',1,'entt::std_sort::operator()()'],['../structentt_1_1insertion__sort.html#a73a5644fe5b683f9b9376c89ac47f2b8',1,'entt::insertion_sort::operator()()'],['../structentt_1_1radix__sort.html#a1989f6fbe18d3d82fdea9745d6b9ee96',1,'entt::radix_sort::operator()()'],['../structentt_1_1allocation__deleter.html#aaeea55e9539671ec5d6b1660f25e57d3',1,'entt::allocation_deleter::operator()()'],['../structentt_1_1forward__apply.html#a151fa7f389efe40a8b4c09c1bd055ec2',1,'entt::forward_apply::operator()(Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))'],['../structentt_1_1forward__apply.html#afc1bb10152536953a716529e1772a418',1,'entt::forward_apply::operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args)))'],['../structentt_1_1identity.html#a01974d2754961c63e5c9b9c2a9051dbd',1,'entt::identity::operator()()'],['../structentt_1_1y__combinator.html#a60dcd896c4b8724ed4886c63977943fa',1,'entt::y_combinator::operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)'],['../structentt_1_1y__combinator.html#a1811863af3a07ef59aa25b9bff2a1e1d',1,'entt::y_combinator::operator()(Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)'],['../structentt_1_1resource__loader.html#a675f609c3081613b042167bd44050e70',1,'entt::resource_loader::operator()()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a0e53caedb53810bc96aa71bce199c990',1,'entt::delegate< Ret(Args...)>::operator()()']]], - ['operator_2a_35',['operator*',['../structentt_1_1input__iterator__pointer.html#acd0737a761dfcece982e92e34ed531e4',1,'entt::input_iterator_pointer::operator*()'],['../classentt_1_1iota__iterator.html#a6bfaf493a4c0f62e2f80efbcddb38b00',1,'entt::iota_iterator::operator*()'],['../classentt_1_1meta__any.html#a51f864d385388b5c9144a10bb4215424',1,'entt::meta_any::operator*()'],['../classentt_1_1resource.html#a3e7db8eefa9359ac9988d834b3962207',1,'entt::resource::operator*()']]], - ['operator_2b_36',['operator+',['../namespaceentt.html#ab36ceb26049f62c07817a385e35395f6',1,'entt::operator+(type_list< Type... >, type_list< Other... >)'],['../namespaceentt.html#a722a64074f983c827563bdd5cf7d5dde',1,'entt::operator+(value_list< Value... >, value_list< Other... >)']]], - ['operator_2b_2b_37',['operator++',['../classentt_1_1iota__iterator.html#ab19a713e192ed574e22011a409c053c8',1,'entt::iota_iterator::operator++() noexcept'],['../classentt_1_1iota__iterator.html#a1e2be9d5b3c2726542524b3275a1617d',1,'entt::iota_iterator::operator++(int) noexcept']]], - ['operator_2d_3e_38',['operator->',['../structentt_1_1input__iterator__pointer.html#a82563e07f0b715f1c587bd2d0e270fbc',1,'entt::input_iterator_pointer::operator->()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0fdbe80b1384bd2eb8d1e41cfb7c3d9f',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator->()'],['../structentt_1_1meta__handle.html#af23a9a171e4e55cb8cd75888dab84b8b',1,'entt::meta_handle::operator->()'],['../structentt_1_1meta__handle.html#ac9ff12a3e7d7abc0ed9fd8a90a402b7c',1,'entt::meta_handle::operator->() const'],['../classentt_1_1basic__poly.html#a490333415cfcb0c59b12a11f8ccd36c7',1,'entt::basic_poly::operator->() noexcept'],['../classentt_1_1basic__poly.html#aa4453091b5b53c536ae2f6a1b1fce189',1,'entt::basic_poly::operator->() const noexcept'],['../classentt_1_1resource.html#a7b38d4c222cb67f5576872dcb8fe1d13',1,'entt::resource::operator->()']]], - ['operator_3c_39',['operator<',['../namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f',1,'entt::operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a5f6216409945594d3a50e9b8d3ad72f7',1,'entt::operator<(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a514ed3fdf758d9d0cb616424d570e68d',1,'entt::operator<(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_3c_3d_40',['operator<=',['../namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0',1,'entt::operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#acce5a8a6786a787daa1a656f221158cf',1,'entt::operator<=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a687a34a8c4a32c0e4018b38dd2041417',1,'entt::operator<=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_3d_41',['operator=',['../classentt_1_1dense__map.html#a6ee333a078e7bc2b1035a911aff3b7ed',1,'entt::dense_map::operator=(const dense_map &)=default'],['../classentt_1_1dense__map.html#a3decbf479ab29fe63161d66299ef20af',1,'entt::dense_map::operator=(dense_map &&) noexcept=default'],['../classentt_1_1dense__set.html#ad26d7ce37fefc322767d3df9a2c83da6',1,'entt::dense_set::operator=(const dense_set &)=default'],['../classentt_1_1dense__set.html#a49d41accce8880851a66504317b2690c',1,'entt::dense_set::operator=(dense_set &&) noexcept=default'],['../classentt_1_1basic__table.html#a3beaa90d9c3d99609c228c57edbdaf8f',1,'entt::basic_table::operator=(const basic_table &)=delete'],['../classentt_1_1basic__table.html#a91b0f7e8ac65129da41bbfe5aec7029b',1,'entt::basic_table::operator=(basic_table &&other) noexcept'],['../classentt_1_1basic__any.html#ab3f60cd57d55ff657927371cf06c2325',1,'entt::basic_any::operator=(const basic_any &other)'],['../classentt_1_1basic__any.html#ace596f46c6bb613430b9f7ee5e4b3d01',1,'entt::basic_any::operator=(basic_any &&other) noexcept'],['../classentt_1_1basic__any.html#ac54b5130a6ceee1cc396290e7701a7c3',1,'entt::basic_any::operator=(Type &&value)'],['../classentt_1_1compressed__pair.html#a7c76e9284458d874cf928a2145cdc86f',1,'entt::compressed_pair::operator=(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#aee1613d2651cefe502ee86a759ce9d41',1,'entt::compressed_pair::operator=(compressed_pair &&other) noexcept=default'],['../structentt_1_1monostate.html#a00071b958f5e4ede520390a10c3e0f1e',1,'entt::monostate::operator=()'],['../classentt_1_1basic__sigh__mixin.html#af44458bdfcc2084eed576af724383fdd',1,'entt::basic_sigh_mixin::operator=(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a4c00f12e254af5e6b3ccd6ab89d79737',1,'entt::basic_sigh_mixin::operator=(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#ae24f79e5531d76a1518efa34aa3a6e94',1,'entt::basic_reactive_mixin::operator=(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a04cc8d9b1069319225e47cfd8feb8375',1,'entt::basic_reactive_mixin::operator=(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__observer.html#a9ff68c4fcb08832a12235b8556b4c427',1,'entt::basic_observer::operator=(const basic_observer &)=delete'],['../classentt_1_1basic__observer.html#a67ef87b4649db8258a79daa58b154199',1,'entt::basic_observer::operator=(basic_observer &&)=delete'],['../classentt_1_1basic__registry.html#aaf838797891c1fe058679f96bd88f473',1,'entt::basic_registry::operator=(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#a825a977af35627faca20c0ea388d10fa',1,'entt::basic_registry::operator=(basic_registry &&other) noexcept'],['../classentt_1_1basic__runtime__view.html#a554579a85e4c40fd1506949c01706c27',1,'entt::basic_runtime_view::operator=(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#abf9d409908a25e0eb7123a52f803c43b',1,'entt::basic_runtime_view::operator=(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__snapshot.html#aa5883b6e7876173f6e2fb25d50e6f021',1,'entt::basic_snapshot::operator=(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#a149c419863771ff599abd2103647ec6b',1,'entt::basic_snapshot::operator=(basic_snapshot &&) noexcept=default'],['../classentt_1_1basic__snapshot__loader.html#ab856775274932d343039740b17b6957e',1,'entt::basic_snapshot_loader::operator=(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#ac7653702c1ae5d81510d3ea338fb5c4a',1,'entt::basic_snapshot_loader::operator=(basic_snapshot_loader &&) noexcept=default'],['../classentt_1_1basic__continuous__loader.html#a55ad0d865e74ea3d53cd67812fe2c4e1',1,'entt::basic_continuous_loader::operator=(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#ade392e168f1b045c70608544283ff7cc',1,'entt::basic_continuous_loader::operator=(basic_continuous_loader &&) noexcept=default'],['../classentt_1_1basic__sparse__set.html#a71e7865957db2ed2243c77eac979c8ee',1,'entt::basic_sparse_set::operator=(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#a53f8aad7f89c040a3ef0e79ad9e814fb',1,'entt::basic_sparse_set::operator=(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a5f887a113631ee4bddfcfaf863b96ab7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#acc79299daa427277fc5367baad15029d',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator=(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#af605f563b7a0be4036fa8dba278d57fb',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a723daaf0eab065ab697d1d6d1be56452',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1adjacency__matrix.html#ab26e50bcbe59bf835f6a34a21a622095',1,'entt::adjacency_matrix::operator=(const adjacency_matrix &)=default'],['../classentt_1_1adjacency__matrix.html#a760b57bbb50f8e98a9f6bf8c6c6a19c5',1,'entt::adjacency_matrix::operator=(adjacency_matrix &&) noexcept=default'],['../classentt_1_1basic__flow.html#aede173e1874fb7302bf87dc42ec3dfc8',1,'entt::basic_flow::operator=(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#abc4820f568a811f5c7f0557dc08d1233',1,'entt::basic_flow::operator=(basic_flow &&) noexcept=default'],['../classentt_1_1locator.html#a0a8dc9e782cce49d16fe39cfbd94f70b',1,'entt::locator::operator=()'],['../classentt_1_1meta__any.html#a0a9a19e8d19c2f86d53fb159d591364a',1,'entt::meta_any::operator=(const meta_any &other)'],['../classentt_1_1meta__any.html#af9a77fb222630d6e75d20a560a534d86',1,'entt::meta_any::operator=(meta_any &&other) noexcept'],['../classentt_1_1meta__any.html#a9b068349a86008147c24a9811ae8f8aa',1,'entt::meta_any::operator=(Type &&value)'],['../structentt_1_1meta__handle.html#a2d301c4614d689edbeab106a27fc8e46',1,'entt::meta_handle::operator=(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aed732316016fd9d0da3b2bd51b3ac229',1,'entt::meta_handle::operator=(meta_handle &&)=default'],['../classentt_1_1process.html#a72788a7962cf5001746c4714659f4630',1,'entt::process::operator=(const process &)=default'],['../classentt_1_1process.html#aa0bf8ba1041e6fccd9062dc113ede77e',1,'entt::process::operator=(process &&) noexcept=default'],['../classentt_1_1basic__scheduler.html#a466f28758a275cd736b5cbab7b6b1fbb',1,'entt::basic_scheduler::operator=(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a7cc74ea04a1e79e23cb8b007cf89b6d6',1,'entt::basic_scheduler::operator=(basic_scheduler &&other) noexcept'],['../classentt_1_1resource__cache.html#ad007cb4884a7dfa45d5c6937cd2d6943',1,'entt::resource_cache::operator=(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a0f6b476fa530f7175aa628739e3f4f93',1,'entt::resource_cache::operator=(resource_cache &&) noexcept=default'],['../classentt_1_1resource.html#a712fbb5bb404c4510999ef9383651f5d',1,'entt::resource::operator=(const resource &) noexcept=default'],['../classentt_1_1resource.html#a8b209d227259b38f2a8a90f59b93894c',1,'entt::resource::operator=(resource &&) noexcept=default'],['../classentt_1_1resource.html#a4f265832bcfbe190b85cacd9c3f439b2',1,'entt::resource::operator=(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#a3d5ead24b83945b4fbed0aaca5a9c7e8',1,'entt::resource::operator=(resource< Other > &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a9f55a869d2cd940755cec8e6aefa96e9',1,'entt::basic_dispatcher::operator=(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#ae743b9211b995d86eec1fba117fc9799',1,'entt::basic_dispatcher::operator=(basic_dispatcher &&other) noexcept'],['../classentt_1_1emitter.html#a0677221836c6d2625c982d381cc4702f',1,'entt::emitter::operator=(const emitter &)=delete'],['../classentt_1_1emitter.html#a3cf6cad201e76ebbc43d426518928501',1,'entt::emitter::operator=(emitter &&other) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ad92f4541d506af1081b0506a7c02192f',1,'entt::sigh< Ret(Args...), Allocator >::operator=(const sigh &other)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a43953819af6fc464c71b7cea5cf4657e',1,'entt::sigh< Ret(Args...), Allocator >::operator=(sigh &&other) noexcept'],['../structentt_1_1scoped__connection.html#a964913528a3c74d950eee17f6d7705ac',1,'entt::scoped_connection::operator=(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#ae44d8083b66e134ba920dfbe3b928d48',1,'entt::scoped_connection::operator=(scoped_connection &&other) noexcept'],['../structentt_1_1scoped__connection.html#ae1f1dbc4b9c8d3e94a8566c6bbc4e351',1,'entt::scoped_connection::operator=(connection other)']]], - ['operator_3d_3d_42',['operator==',['../classentt_1_1basic__any.html#ae7b91c6ef21a43af18d8f1657e458461',1,'entt::basic_any::operator==()'],['../structentt_1_1null__t.html#aed9c63b072bec4c7c6c15dc110620a93',1,'entt::null_t::operator==(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a1b143232fe50fc52fee376f4f8e23a76',1,'entt::null_t::operator==(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#af95e989594791f7eb458b22269b0a3b5',1,'entt::tombstone_t::operator==(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#a872e744dc422954ddcdfbbb191d8ec34',1,'entt::tombstone_t::operator==(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#ae2fc0c5e7414152fa8d0cf821005dc5c',1,'entt::meta_any::operator==()'],['../structentt_1_1meta__handle.html#aa50eb4ecc61428fae6cdced618d75608',1,'entt::meta_handle::operator==()'],['../structentt_1_1meta__prop.html#ac7c7cc8175382311c5d63a5f636a442a',1,'entt::meta_prop::operator==()'],['../structentt_1_1meta__data.html#a9316b0562ce25724c72a271344d856ca',1,'entt::meta_data::operator==()'],['../structentt_1_1meta__func.html#a671bac8b8f15d534c5fa6c80cac22270',1,'entt::meta_func::operator==()'],['../classentt_1_1meta__type.html#ab0d6c416d233c2ff0199f2c6c01d17b0',1,'entt::meta_type::operator==()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a02045624d6c4c1e2d0f25f24b5fa6349',1,'entt::delegate< Ret(Args...)>::operator==()'],['../namespaceentt.html#af7c61951b721a1e3612cf536bd707501',1,'entt::operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a4423ccae6f6edef721acf6624b8cec41',1,'entt::operator==(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#a2dcf4803e990dfe0867025bf76de501c',1,'entt::operator==(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a60d2331ec59eb76f0304e675cfd645db',1,'entt::operator==(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a9332718aa52e1ebd2c22c825eec7075c',1,'entt::operator==(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a3bf3030e5e15a6249460c9665395be79',1,'entt::operator==(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a4dbbdfb66ed6652c8fc9e50fa0e17fcf',1,'entt::operator==(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a83884fa568c12d936d2980ff22032469',1,'entt::operator==(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a59c12ec665a2bdc1a99e6a6298772adf',1,'entt::operator==(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_3e_43',['operator>',['../namespaceentt.html#aec8131af000055ceab85646c14f234ad',1,'entt::operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#abad8ef328173f0b43d96f8d042d7f444',1,'entt::operator>(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9cbf699fc7665abc206832e0d70d812a',1,'entt::operator>(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_3e_3d_44',['operator>=',['../namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4',1,'entt::operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a502743d6a5b36ceff050779d93b444ca',1,'entt::operator>=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a55ce0b2a8f91b438dba5febd8d79f61c',1,'entt::operator>=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_5b_5d_45',['operator[]',['../classentt_1_1dense__map.html#a9b5784ca7ce9ab1ea46b303598f9987d',1,'entt::dense_map::operator[](const key_type &key)'],['../classentt_1_1dense__map.html#a19e0c8cdb0eef57582ce061a631b0a56',1,'entt::dense_map::operator[](key_type &&key)'],['../classentt_1_1basic__table.html#a45844694a4a21b1ce5440924d47688c4',1,'entt::basic_table::operator[](const size_type pos) const'],['../classentt_1_1basic__table.html#ad1a66ffd9035e3cb8cb313747ae88263',1,'entt::basic_table::operator[](const size_type pos)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38ee47145fc3fcb63ab0a80250f43a55',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9c8624960249235714926777c1b4423e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__sparse__set.html#aba848e5d30f1f8fadce544d7bba7296a',1,'entt::basic_sparse_set::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ab0ba88c753f7b489eaa6a01ada6a35c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aee1e863b2ec94b44a87697b9969ff30e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator[]()'],['../classentt_1_1basic__flow.html#a12d419b34b81caf99d8e15e7fcb07316',1,'entt::basic_flow::operator[]()'],['../classentt_1_1meta__sequence__container.html#a379aff72294a9e5ae13e476ca6386966',1,'entt::meta_sequence_container::operator[]()'],['../classentt_1_1resource__cache.html#a9b251c4193a8a6b7e5e3856e5ea95078',1,'entt::resource_cache::operator[](const id_type id) const'],['../classentt_1_1resource__cache.html#a3586708bffde50076bb16e8cda6222d5',1,'entt::resource_cache::operator[](const id_type id)']]], - ['operator_7c_46',['operator|',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a461907e002f095b23398cff58bc88f03',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a06b95c774a25f1329bde53d85035765a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|()']]], - ['optimization_47',['Optimization',['../md_docs_2md_2entity.html#empty-type-optimization',1,'Empty type optimization'],['../md_docs_2md_2core.html#small-buffer-optimization',1,'Small buffer optimization']]], - ['or_20nay_48',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]], - ['or_20nothing_49',['All or nothing',['../md_docs_2md_2entity.html#all-or-nothing',1,'']]], - ['order_50',['Iteration order',['../md_docs_2md_2entity.html#iteration-order',1,'']]], - ['order_20of_20execution_51',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['of_1',['Size of',['../md_docs_2md_2core.html#size-of',1,'']]], + ['of_20a_20kind_20to_20the_20registry_2',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], + ['of_20contents_3',['of Contents',['../md_docs_2md_2config.html#table-of-contents',1,'Table of Contents'],['../md_docs_2md_2container.html#table-of-contents-1',1,'Table of Contents'],['../md_docs_2md_2core.html#table-of-contents-2',1,'Table of Contents'],['../md_docs_2md_2entity.html#table-of-contents-3',1,'Table of Contents'],['../md_docs_2md_2faq.html#table-of-contents-4',1,'Table of Contents'],['../md_docs_2md_2graph.html#table-of-contents-5',1,'Table of Contents'],['../md_docs_2md_2lib.html#table-of-contents-6',1,'Table of Contents'],['../md_docs_2md_2links.html#table-of-contents-7',1,'Table of Contents'],['../md_docs_2md_2locator.html#table-of-contents-8',1,'Table of Contents'],['../md_docs_2md_2meta.html#table-of-contents-9',1,'Table of Contents'],['../md_docs_2md_2poly.html#table-of-contents-10',1,'Table of Contents'],['../md_docs_2md_2process.html#table-of-contents-11',1,'Table of Contents'],['../md_docs_2md_2reference.html#table-of-contents-12',1,'Table of Contents'],['../md_docs_2md_2resource.html#table-of-contents-13',1,'Table of Contents'],['../md_docs_2md_2signal.html#table-of-contents-14',1,'Table of Contents'],['../md_docs_2md_2unreal.html#table-of-contents-15',1,'Table of Contents'],['../index.html#table-of-contents-16',1,'Table of Contents']]], + ['of_20execution_4',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['on_5',['on',['../classentt_1_1emitter.html#ad620441c088f7e4d1cc4f852f4ec4bad',1,'entt::emitter']]], + ['on_20windows_20so_20slow_6',['Why is my debug build on Windows so slow?',['../md_docs_2md_2faq.html#why-is-my-debug-build-on-windows-so-slow',1,'']]], + ['on_5fconstruct_7',['on_construct',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a1d77fc6d2924e419a9cc022231ad0e32',1,'entt::sigh_helper< Registry, Type >::on_construct()'],['../classentt_1_1basic__sigh__mixin.html#a0c57f7ab639278e2445da4cd1ac32187',1,'entt::basic_sigh_mixin::on_construct()'],['../classentt_1_1basic__reactive__mixin.html#af3eb5ddbf128303f1339f3b513168c26',1,'entt::basic_reactive_mixin::on_construct()'],['../classentt_1_1basic__registry.html#ab68c1ba5692d30350d30121663203aea',1,'entt::basic_registry::on_construct()']]], + ['on_5fdestroy_8',['on_destroy',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a0bf3fdfbe983ec6d9ce9fae4b0465ddf',1,'entt::sigh_helper< Registry, Type >::on_destroy()'],['../classentt_1_1basic__sigh__mixin.html#ab95e47b07373502e551033b45fd79c74',1,'entt::basic_sigh_mixin::on_destroy()'],['../classentt_1_1basic__reactive__mixin.html#ad4e2176d8715837b780eae5f29375a01',1,'entt::basic_reactive_mixin::on_destroy()'],['../classentt_1_1basic__registry.html#a0984ffe101cfef78d7e755bbaed5842e',1,'entt::basic_registry::on_destroy()']]], + ['on_5fupdate_9',['on_update',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#abbd7db28fd4c97ba98b25c22dff7c26f',1,'entt::sigh_helper< Registry, Type >::on_update()'],['../classentt_1_1basic__sigh__mixin.html#a0ac778697e4f09d34062415753b13f27',1,'entt::basic_sigh_mixin::on_update()'],['../classentt_1_1basic__reactive__mixin.html#acbfcbbb0f1f889fba12104643a29beff',1,'entt::basic_reactive_mixin::on_update()'],['../classentt_1_1basic__registry.html#a1b83f8586cfb519b7b966751094c5381',1,'entt::basic_registry::on_update()']]], + ['once_20reuse_20many_20times_10',['Create once, reuse many times',['../md_docs_2md_2entity.html#create-once-reuse-many-times',1,'']]], + ['one_20example_20to_20rule_20them_20all_11',['One example to rule them all',['../md_docs_2md_2entity.html#one-example-to-rule-them-all',1,'']]], + ['one_20of_20a_20kind_20to_20the_20registry_12',['One of a kind to the registry',['../md_docs_2md_2entity.html#one-of-a-kind-to-the-registry',1,'']]], + ['only_13',['Exclude-only',['../md_docs_2md_2entity.html#exclude-only',1,'']]], + ['opaque_20handles_14',['Opaque handles',['../md_docs_2md_2locator.html#opaque-handles',1,'']]], + ['operator_20basic_5fgroup_3c_20owned_2c_20get_2c_20exclude_20_3e_15',['operator basic_group< Owned, Get, Exclude >',['../classentt_1_1as__group.html#ab252f9fcd1a370a52dd8abfd7f32cec8',1,'entt::as_group']]], + ['operator_20basic_5fhandle_3c_20other_2c_20args_2e_2e_2e_20_3e_16',['operator basic_handle< Other, Args... >',['../classentt_1_1basic__handle.html#ac1c8add27af60e420f5f0d1d2fd078db',1,'entt::basic_handle']]], + ['operator_20basic_5fview_3c_20get_2c_20exclude_20_3e_17',['operator basic_view< Get, Exclude >',['../classentt_1_1as__view.html#afd2048bc06e3758fa9fb811e7dd10c5f',1,'entt::as_view']]], + ['operator_20bool_18',['operator bool',['../classentt_1_1basic__any.html#a0a4e687230c96ff901b41d16b7fd41f6',1,'entt::basic_any::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a5032823e971e2da23bacae135c78fbd2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ac4a67ec8ec5c496f331e10a01acf7ef8',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__handle.html#a9d6c1f30cb7e6eed039de66b6ed05163',1,'entt::basic_handle::operator bool()'],['../classentt_1_1basic__sigh__mixin.html#a1dc138f96dbb5d5ccb6668b812f80231',1,'entt::basic_sigh_mixin::operator bool()'],['../classentt_1_1basic__reactive__mixin.html#a07f2a09ede7efaff93491e720d0ea081',1,'entt::basic_reactive_mixin::operator bool()'],['../classentt_1_1basic__runtime__view.html#ae60420edc7a111866fd4164d060cc513',1,'entt::basic_runtime_view::operator bool()'],['../classentt_1_1basic__common__view.html#ae300d448aaf4ef7330fb7b635e5877a4',1,'entt::basic_common_view::operator bool()'],['../classentt_1_1basic__storage__view.html#a1a64743073c0809b1dda953492865db6',1,'entt::basic_storage_view::operator bool()'],['../classentt_1_1meta__sequence__container.html#a92441a5f3cb720a1fff0f5f4e7451341',1,'entt::meta_sequence_container::operator bool()'],['../classentt_1_1meta__associative__container.html#a3fb7890a5a5e93ed3b76c7206b71a901',1,'entt::meta_associative_container::operator bool()'],['../classentt_1_1meta__any.html#a0aec8274019fc0727cf96c91866707e5',1,'entt::meta_any::operator bool()'],['../structentt_1_1meta__handle.html#a581c82651e531f669d95fbe2a673b1c6',1,'entt::meta_handle::operator bool()'],['../structentt_1_1meta__data.html#a1127923d5d2f1c59af5e739c95f4798a',1,'entt::meta_data::operator bool()'],['../structentt_1_1meta__func.html#a9727c67eadcaea8a0dc66b7d4b7637e0',1,'entt::meta_func::operator bool()'],['../classentt_1_1meta__type.html#aa982605bfed3124bca1cbd492683d5a5',1,'entt::meta_type::operator bool()'],['../classentt_1_1basic__poly.html#a9bd854e20fcb28a1c8bd9e616cce21a7',1,'entt::basic_poly::operator bool()'],['../classentt_1_1resource.html#a45e0fc4a3de1153c781729a79a7d5314',1,'entt::resource::operator bool()'],['../classentt_1_1connection.html#a408ef4df083d255a92f708219c7dffc6',1,'entt::connection::operator bool()'],['../structentt_1_1scoped__connection.html#a33c6351e2adea868ca13888e9f228259',1,'entt::scoped_connection::operator bool()']]], + ['operator_20const_20value_5ftype_20_2a_19',['operator const value_type *',['../classentt_1_1basic__hashed__string.html#aea866875a9b05e5c01c9642766a5857f',1,'entt::basic_hashed_string']]], + ['operator_20element_5ftype_20_26_20',['operator element_type &',['../classentt_1_1resource.html#ab4ab5d954d3603d3080e5434691f81b9',1,'entt::resource']]], + ['operator_20entity_21',['operator Entity',['../structentt_1_1null__t.html#a645f6d96cbb99f7b245058a05bf0e28b',1,'entt::null_t::operator Entity()'],['../structentt_1_1tombstone__t.html#a7ac55427538dd1b5e39ec064a4ffdd14',1,'entt::tombstone_t::operator Entity()']]], + ['operator_20entity_5ftype_22',['operator entity_type',['../classentt_1_1basic__handle.html#a309c43b46efbd454f2c2c22b0a23b71f',1,'entt::basic_handle']]], + ['operator_20hash_5ftype_23',['operator hash_type',['../classentt_1_1basic__hashed__string.html#af0018b378b254991675acc20ba2c600d',1,'entt::basic_hashed_string']]], + ['operator_20id_5ftype_24',['operator id_type',['../structentt_1_1type__index.html#a77cd61cb3147ea14f8dddb408d7fac26',1,'entt::type_index::operator id_type()'],['../structentt_1_1type__hash.html#af2b51b4b9e0350fe1e3ee3882aefbb9f',1,'entt::type_hash::operator id_type()']]], + ['operator_20std_3a_3astring_5fview_25',['string_view',['../structentt_1_1type__name.html#aa5ff3bff84b5b96fc77e63a7af1e3d7a',1,'entt::type_name']]], + ['operator_20type_26',['operator Type',['../structentt_1_1monostate.html#a9e5a76a9f1aba8a54cd1c8b4d7ded0d3',1,'entt::monostate']]], + ['operator_20type_20_26_27',['operator Type &',['../structentt_1_1meta__custom.html#ac33462d129dd8a34b665a6a28fa75e32',1,'entt::meta_custom']]], + ['operator_20type_20_26_26_28',['operator Type &&',['../structentt_1_1poly__inspector.html#a5b44cbea11e79b2ff918165b7bf100eb',1,'entt::poly_inspector']]], + ['operator_20type_20_2a_29',['operator Type *',['../structentt_1_1meta__custom.html#ac2b8276f7ecc30a497bfef7643f6a004',1,'entt::meta_custom']]], + ['operator_21_3d_30',['operator!=',['../classentt_1_1basic__any.html#a749a2855eff737c3ce0882f30bf7ad9a',1,'entt::basic_any::operator!=()'],['../structentt_1_1null__t.html#a6736a78ac5ffa158b229fdf4fefcdc34',1,'entt::null_t::operator!=(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a2c8a4bdade66b7f7520d10b4bb4fc858',1,'entt::null_t::operator!=(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#ac4d838cb66da20f90041cf6e57775512',1,'entt::tombstone_t::operator!=(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#ac66ba66ee149c57866a9a97ac1188eba',1,'entt::tombstone_t::operator!=(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#aec29c7df7a409e920594e0d34f3f71e0',1,'entt::meta_any::operator!=()'],['../structentt_1_1meta__handle.html#a11b6e0b55c075f6fff13a7f5ebae586e',1,'entt::meta_handle::operator!=()'],['../namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf',1,'entt::operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a883ee8e2a3f32a371b44e579ef0d0f25',1,'entt::operator!=(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#afe4410448e22ae52de3bcbf262be9030',1,'entt::operator!=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9abdd7e1b2d1e98662354d5b8f691e91',1,'entt::operator!=(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a5010897ed603a4eb066ea9d151a5f6cc',1,'entt::operator!=(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a7c7a84015d46560a44cf751eed96cfeb',1,'entt::operator!=(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a9c9eee8c572008fa0c43ef8e246de840',1,'entt::operator!=(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#aae197610a7827612780de43b269557c9',1,'entt::operator!=(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a0ed9c972bb7bad7649ee35ec290d3456',1,'entt::operator!=(const meta_data &lhs, const meta_data &rhs) noexcept'],['../namespaceentt.html#a89afa571a2a098039702fea19dcc6882',1,'entt::operator!=(const meta_func &lhs, const meta_func &rhs) noexcept'],['../namespaceentt.html#a85b862c2db6e5771fb95d7a7930e9b18',1,'entt::operator!=(const meta_type &lhs, const meta_type &rhs) noexcept'],['../namespaceentt.html#a73315d70b75d683d36c09fce559fd6d6',1,'entt::operator!=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept'],['../namespaceentt.html#ae663976796b773780f6136606c1a3f31',1,'entt::operator!=(const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept']]], + ['operator_22_22_5fhs_31',['operator""_hs',['../namespaceentt.html#a6d5ebc5e9d0e87c18a22a72d2261bdf5',1,'entt::literals']]], + ['operator_22_22_5fhws_32',['operator""_hws',['../namespaceentt.html#a6fa5b29e7184fb8fe184417411792290',1,'entt::literals']]], + ['operator_28_29_33',['operator()',['../structentt_1_1std__sort.html#a8895e4acd1677a60e07d7e28748fe667',1,'entt::std_sort::operator()()'],['../structentt_1_1insertion__sort.html#a73a5644fe5b683f9b9376c89ac47f2b8',1,'entt::insertion_sort::operator()()'],['../structentt_1_1radix__sort.html#a1989f6fbe18d3d82fdea9745d6b9ee96',1,'entt::radix_sort::operator()()'],['../structentt_1_1allocation__deleter.html#aaeea55e9539671ec5d6b1660f25e57d3',1,'entt::allocation_deleter::operator()()'],['../structentt_1_1forward__apply.html#a151fa7f389efe40a8b4c09c1bd055ec2',1,'entt::forward_apply::operator()(Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))'],['../structentt_1_1forward__apply.html#afc1bb10152536953a716529e1772a418',1,'entt::forward_apply::operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args)))'],['../structentt_1_1identity.html#a01974d2754961c63e5c9b9c2a9051dbd',1,'entt::identity::operator()()'],['../structentt_1_1y__combinator.html#a60dcd896c4b8724ed4886c63977943fa',1,'entt::y_combinator::operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)'],['../structentt_1_1y__combinator.html#a1811863af3a07ef59aa25b9bff2a1e1d',1,'entt::y_combinator::operator()(Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)'],['../structentt_1_1resource__loader.html#a675f609c3081613b042167bd44050e70',1,'entt::resource_loader::operator()()']]], + ['operator_2a_34',['operator*',['../structentt_1_1input__iterator__pointer.html#acd0737a761dfcece982e92e34ed531e4',1,'entt::input_iterator_pointer::operator*()'],['../classentt_1_1iota__iterator.html#a6bfaf493a4c0f62e2f80efbcddb38b00',1,'entt::iota_iterator::operator*()'],['../classentt_1_1meta__any.html#a51f864d385388b5c9144a10bb4215424',1,'entt::meta_any::operator*()'],['../classentt_1_1resource.html#a3e7db8eefa9359ac9988d834b3962207',1,'entt::resource::operator*()']]], + ['operator_2b_35',['operator+',['../namespaceentt.html#ab36ceb26049f62c07817a385e35395f6',1,'entt::operator+(type_list< Type... >, type_list< Other... >)'],['../namespaceentt.html#a722a64074f983c827563bdd5cf7d5dde',1,'entt::operator+(value_list< Value... >, value_list< Other... >)']]], + ['operator_2b_2b_36',['operator++',['../classentt_1_1iota__iterator.html#ab19a713e192ed574e22011a409c053c8',1,'entt::iota_iterator::operator++() noexcept'],['../classentt_1_1iota__iterator.html#a1e2be9d5b3c2726542524b3275a1617d',1,'entt::iota_iterator::operator++(int) noexcept']]], + ['operator_2d_3e_37',['operator->',['../structentt_1_1input__iterator__pointer.html#a82563e07f0b715f1c587bd2d0e270fbc',1,'entt::input_iterator_pointer::operator->()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0fdbe80b1384bd2eb8d1e41cfb7c3d9f',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator->()'],['../structentt_1_1meta__handle.html#af23a9a171e4e55cb8cd75888dab84b8b',1,'entt::meta_handle::operator->()'],['../structentt_1_1meta__handle.html#ac9ff12a3e7d7abc0ed9fd8a90a402b7c',1,'entt::meta_handle::operator->() const'],['../classentt_1_1basic__poly.html#a490333415cfcb0c59b12a11f8ccd36c7',1,'entt::basic_poly::operator->() noexcept'],['../classentt_1_1basic__poly.html#aa4453091b5b53c536ae2f6a1b1fce189',1,'entt::basic_poly::operator->() const noexcept'],['../classentt_1_1resource.html#a7b38d4c222cb67f5576872dcb8fe1d13',1,'entt::resource::operator->()']]], + ['operator_3c_38',['operator<',['../namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f',1,'entt::operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a5f6216409945594d3a50e9b8d3ad72f7',1,'entt::operator<(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a514ed3fdf758d9d0cb616424d570e68d',1,'entt::operator<(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_3c_3d_39',['operator<=',['../namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0',1,'entt::operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#acce5a8a6786a787daa1a656f221158cf',1,'entt::operator<=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a687a34a8c4a32c0e4018b38dd2041417',1,'entt::operator<=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_3d_40',['operator=',['../classentt_1_1dense__map.html#a6ee333a078e7bc2b1035a911aff3b7ed',1,'entt::dense_map::operator=(const dense_map &)=default'],['../classentt_1_1dense__map.html#a3decbf479ab29fe63161d66299ef20af',1,'entt::dense_map::operator=(dense_map &&) noexcept=default'],['../classentt_1_1dense__set.html#ad26d7ce37fefc322767d3df9a2c83da6',1,'entt::dense_set::operator=(const dense_set &)=default'],['../classentt_1_1dense__set.html#a49d41accce8880851a66504317b2690c',1,'entt::dense_set::operator=(dense_set &&) noexcept=default'],['../classentt_1_1basic__table.html#a3beaa90d9c3d99609c228c57edbdaf8f',1,'entt::basic_table::operator=(const basic_table &)=delete'],['../classentt_1_1basic__table.html#a91b0f7e8ac65129da41bbfe5aec7029b',1,'entt::basic_table::operator=(basic_table &&other) noexcept'],['../classentt_1_1basic__any.html#ab3f60cd57d55ff657927371cf06c2325',1,'entt::basic_any::operator=(const basic_any &other)'],['../classentt_1_1basic__any.html#ace596f46c6bb613430b9f7ee5e4b3d01',1,'entt::basic_any::operator=(basic_any &&other) noexcept'],['../classentt_1_1basic__any.html#ac54b5130a6ceee1cc396290e7701a7c3',1,'entt::basic_any::operator=(Type &&value)'],['../classentt_1_1compressed__pair.html#a7c76e9284458d874cf928a2145cdc86f',1,'entt::compressed_pair::operator=(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#aee1613d2651cefe502ee86a759ce9d41',1,'entt::compressed_pair::operator=(compressed_pair &&other) noexcept=default'],['../structentt_1_1monostate.html#a00071b958f5e4ede520390a10c3e0f1e',1,'entt::monostate::operator=()'],['../classentt_1_1basic__sigh__mixin.html#af44458bdfcc2084eed576af724383fdd',1,'entt::basic_sigh_mixin::operator=(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a4c00f12e254af5e6b3ccd6ab89d79737',1,'entt::basic_sigh_mixin::operator=(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#ae24f79e5531d76a1518efa34aa3a6e94',1,'entt::basic_reactive_mixin::operator=(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a04cc8d9b1069319225e47cfd8feb8375',1,'entt::basic_reactive_mixin::operator=(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__registry.html#aaf838797891c1fe058679f96bd88f473',1,'entt::basic_registry::operator=(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#a825a977af35627faca20c0ea388d10fa',1,'entt::basic_registry::operator=(basic_registry &&other) noexcept'],['../classentt_1_1basic__runtime__view.html#a554579a85e4c40fd1506949c01706c27',1,'entt::basic_runtime_view::operator=(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#abf9d409908a25e0eb7123a52f803c43b',1,'entt::basic_runtime_view::operator=(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__snapshot.html#aa5883b6e7876173f6e2fb25d50e6f021',1,'entt::basic_snapshot::operator=(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#a149c419863771ff599abd2103647ec6b',1,'entt::basic_snapshot::operator=(basic_snapshot &&) noexcept=default'],['../classentt_1_1basic__snapshot__loader.html#ab856775274932d343039740b17b6957e',1,'entt::basic_snapshot_loader::operator=(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#ac7653702c1ae5d81510d3ea338fb5c4a',1,'entt::basic_snapshot_loader::operator=(basic_snapshot_loader &&) noexcept=default'],['../classentt_1_1basic__continuous__loader.html#a55ad0d865e74ea3d53cd67812fe2c4e1',1,'entt::basic_continuous_loader::operator=(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#ade392e168f1b045c70608544283ff7cc',1,'entt::basic_continuous_loader::operator=(basic_continuous_loader &&) noexcept=default'],['../classentt_1_1basic__sparse__set.html#a71e7865957db2ed2243c77eac979c8ee',1,'entt::basic_sparse_set::operator=(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#a53f8aad7f89c040a3ef0e79ad9e814fb',1,'entt::basic_sparse_set::operator=(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a1615c58d643c86da7b901acedc6af5e9',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#adc2b36e7668fccf8c46f4ef70db1fc34',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#af605f563b7a0be4036fa8dba278d57fb',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a723daaf0eab065ab697d1d6d1be56452',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1adjacency__matrix.html#ab26e50bcbe59bf835f6a34a21a622095',1,'entt::adjacency_matrix::operator=(const adjacency_matrix &)=default'],['../classentt_1_1adjacency__matrix.html#a760b57bbb50f8e98a9f6bf8c6c6a19c5',1,'entt::adjacency_matrix::operator=(adjacency_matrix &&) noexcept=default'],['../classentt_1_1basic__flow.html#aede173e1874fb7302bf87dc42ec3dfc8',1,'entt::basic_flow::operator=(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#abc4820f568a811f5c7f0557dc08d1233',1,'entt::basic_flow::operator=(basic_flow &&) noexcept=default'],['../classentt_1_1locator.html#a0a8dc9e782cce49d16fe39cfbd94f70b',1,'entt::locator::operator=()'],['../classentt_1_1meta__any.html#a0a9a19e8d19c2f86d53fb159d591364a',1,'entt::meta_any::operator=(const meta_any &other)'],['../classentt_1_1meta__any.html#af9a77fb222630d6e75d20a560a534d86',1,'entt::meta_any::operator=(meta_any &&other) noexcept'],['../classentt_1_1meta__any.html#a9b068349a86008147c24a9811ae8f8aa',1,'entt::meta_any::operator=(Type &&value)'],['../structentt_1_1meta__handle.html#a2d301c4614d689edbeab106a27fc8e46',1,'entt::meta_handle::operator=(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aed732316016fd9d0da3b2bd51b3ac229',1,'entt::meta_handle::operator=(meta_handle &&)=default'],['../classentt_1_1process.html#a72788a7962cf5001746c4714659f4630',1,'entt::process::operator=(const process &)=default'],['../classentt_1_1process.html#aa0bf8ba1041e6fccd9062dc113ede77e',1,'entt::process::operator=(process &&) noexcept=default'],['../classentt_1_1basic__scheduler.html#a466f28758a275cd736b5cbab7b6b1fbb',1,'entt::basic_scheduler::operator=(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a7cc74ea04a1e79e23cb8b007cf89b6d6',1,'entt::basic_scheduler::operator=(basic_scheduler &&other) noexcept'],['../classentt_1_1resource__cache.html#ad007cb4884a7dfa45d5c6937cd2d6943',1,'entt::resource_cache::operator=(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a0f6b476fa530f7175aa628739e3f4f93',1,'entt::resource_cache::operator=(resource_cache &&) noexcept=default'],['../classentt_1_1resource.html#a712fbb5bb404c4510999ef9383651f5d',1,'entt::resource::operator=(const resource &) noexcept=default'],['../classentt_1_1resource.html#a8b209d227259b38f2a8a90f59b93894c',1,'entt::resource::operator=(resource &&) noexcept=default'],['../classentt_1_1resource.html#a4f265832bcfbe190b85cacd9c3f439b2',1,'entt::resource::operator=(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#a3d5ead24b83945b4fbed0aaca5a9c7e8',1,'entt::resource::operator=(resource< Other > &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a9f55a869d2cd940755cec8e6aefa96e9',1,'entt::basic_dispatcher::operator=(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#ae743b9211b995d86eec1fba117fc9799',1,'entt::basic_dispatcher::operator=(basic_dispatcher &&other) noexcept'],['../classentt_1_1emitter.html#a0677221836c6d2625c982d381cc4702f',1,'entt::emitter::operator=(const emitter &)=delete'],['../classentt_1_1emitter.html#a3cf6cad201e76ebbc43d426518928501',1,'entt::emitter::operator=(emitter &&other) noexcept'],['../structentt_1_1scoped__connection.html#a964913528a3c74d950eee17f6d7705ac',1,'entt::scoped_connection::operator=(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#ae44d8083b66e134ba920dfbe3b928d48',1,'entt::scoped_connection::operator=(scoped_connection &&other) noexcept'],['../structentt_1_1scoped__connection.html#ae1f1dbc4b9c8d3e94a8566c6bbc4e351',1,'entt::scoped_connection::operator=(connection other)'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(basic_storage &&other) noexcept']]], + ['operator_3d_3d_41',['operator==',['../classentt_1_1basic__any.html#ae7b91c6ef21a43af18d8f1657e458461',1,'entt::basic_any::operator==()'],['../structentt_1_1null__t.html#aed9c63b072bec4c7c6c15dc110620a93',1,'entt::null_t::operator==(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a1b143232fe50fc52fee376f4f8e23a76',1,'entt::null_t::operator==(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#af95e989594791f7eb458b22269b0a3b5',1,'entt::tombstone_t::operator==(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#a872e744dc422954ddcdfbbb191d8ec34',1,'entt::tombstone_t::operator==(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#ae2fc0c5e7414152fa8d0cf821005dc5c',1,'entt::meta_any::operator==()'],['../structentt_1_1meta__handle.html#aa50eb4ecc61428fae6cdced618d75608',1,'entt::meta_handle::operator==()'],['../structentt_1_1meta__data.html#a9316b0562ce25724c72a271344d856ca',1,'entt::meta_data::operator==()'],['../structentt_1_1meta__func.html#a671bac8b8f15d534c5fa6c80cac22270',1,'entt::meta_func::operator==()'],['../classentt_1_1meta__type.html#ab0d6c416d233c2ff0199f2c6c01d17b0',1,'entt::meta_type::operator==()'],['../namespaceentt.html#af7c61951b721a1e3612cf536bd707501',1,'entt::operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a4423ccae6f6edef721acf6624b8cec41',1,'entt::operator==(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#a2dcf4803e990dfe0867025bf76de501c',1,'entt::operator==(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a60d2331ec59eb76f0304e675cfd645db',1,'entt::operator==(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a9332718aa52e1ebd2c22c825eec7075c',1,'entt::operator==(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a3bf3030e5e15a6249460c9665395be79',1,'entt::operator==(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a4dbbdfb66ed6652c8fc9e50fa0e17fcf',1,'entt::operator==(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a83884fa568c12d936d2980ff22032469',1,'entt::operator==(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a59c12ec665a2bdc1a99e6a6298772adf',1,'entt::operator==(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_3e_42',['operator>',['../namespaceentt.html#aec8131af000055ceab85646c14f234ad',1,'entt::operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#abad8ef328173f0b43d96f8d042d7f444',1,'entt::operator>(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9cbf699fc7665abc206832e0d70d812a',1,'entt::operator>(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_3e_3d_43',['operator>=',['../namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4',1,'entt::operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a502743d6a5b36ceff050779d93b444ca',1,'entt::operator>=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a55ce0b2a8f91b438dba5febd8d79f61c',1,'entt::operator>=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_5b_5d_44',['operator[]',['../classentt_1_1dense__map.html#a9b5784ca7ce9ab1ea46b303598f9987d',1,'entt::dense_map::operator[](const key_type &key)'],['../classentt_1_1dense__map.html#a19e0c8cdb0eef57582ce061a631b0a56',1,'entt::dense_map::operator[](key_type &&key)'],['../classentt_1_1basic__table.html#a45844694a4a21b1ce5440924d47688c4',1,'entt::basic_table::operator[](const size_type pos) const'],['../classentt_1_1basic__table.html#ad1a66ffd9035e3cb8cb313747ae88263',1,'entt::basic_table::operator[](const size_type pos)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38ee47145fc3fcb63ab0a80250f43a55',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9c8624960249235714926777c1b4423e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__sparse__set.html#aba848e5d30f1f8fadce544d7bba7296a',1,'entt::basic_sparse_set::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ab0ba88c753f7b489eaa6a01ada6a35c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aee1e863b2ec94b44a87697b9969ff30e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator[]()'],['../classentt_1_1basic__flow.html#a12d419b34b81caf99d8e15e7fcb07316',1,'entt::basic_flow::operator[]()'],['../classentt_1_1meta__sequence__container.html#a379aff72294a9e5ae13e476ca6386966',1,'entt::meta_sequence_container::operator[]()'],['../classentt_1_1resource__cache.html#a9b251c4193a8a6b7e5e3856e5ea95078',1,'entt::resource_cache::operator[](const id_type id) const'],['../classentt_1_1resource__cache.html#a3586708bffde50076bb16e8cda6222d5',1,'entt::resource_cache::operator[](const id_type id)']]], + ['operator_7c_45',['operator|',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a3db3419fce2bcc22d9f0e87e5dc8931b',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|(OGet &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a461907e002f095b23398cff58bc88f03',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aaf7ab4d560858ba63a244723b2221ca8',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|(OGet &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a06b95c774a25f1329bde53d85035765a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept']]], + ['optimization_46',['optimization',['../md_docs_2md_2entity.html#empty-type-optimization',1,'Empty type optimization'],['../md_docs_2md_2core.html#small-buffer-optimization',1,'Small buffer optimization']]], + ['or_20nay_47',['Custom entity identifiers: yay or nay?',['../md_docs_2md_2faq.html#custom-entity-identifiers-yay-or-nay',1,'']]], + ['or_20nothing_48',['All or nothing',['../md_docs_2md_2entity.html#all-or-nothing',1,'']]], + ['order_49',['Iteration order',['../md_docs_2md_2entity.html#iteration-order',1,'']]], + ['order_20of_20execution_50',['Fake resources and order of execution',['../md_docs_2md_2graph.html#fake-resources-and-order-of-execution',1,'']]], + ['organizer_51',['Organizer',['../md_docs_2md_2entity.html#organizer',1,'']]], ['organizer_52',['organizer',['../namespaceentt.html#a20330b209394a912be898c964f228327',1,'entt']]], - ['organizer_53',['Organizer',['../md_docs_2md_2entity.html#organizer',1,'']]], - ['orphan_54',['orphan',['../classentt_1_1basic__handle.html#a7ed6c2bcefa06c826c90013abf9c15f2',1,'entt::basic_handle::orphan()'],['../classentt_1_1basic__registry.html#a1b36843b380e02019ad88c455d6e6d17',1,'entt::basic_registry::orphan()']]], - ['orphans_55',['orphans',['../classentt_1_1basic__snapshot__loader.html#ad37932c98a812596d40456bd4610e535',1,'entt::basic_snapshot_loader::orphans()'],['../classentt_1_1basic__continuous__loader.html#ae497e30cd8fa96978a067bb0f4dee5cd',1,'entt::basic_continuous_loader::orphans()']]], - ['other_20business_3a_56',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]], - ['other_20libraries_57',['Other libraries',['../md_docs_2md_2poly.html#other-libraries',1,'']]], - ['otherwise_58',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], - ['out_5fedge_5fiterator_59',['out_edge_iterator',['../classentt_1_1adjacency__matrix.html#a88b3a1f0df93f9785b51ece42cb71852',1,'entt::adjacency_matrix']]], - ['out_5fedges_60',['out_edges',['../structentt_1_1basic__organizer_1_1vertex.html#a5c72c137063f8006fcfadeddd35621a0',1,'entt::basic_organizer::vertex::out_edges()'],['../classentt_1_1adjacency__matrix.html#a4e28de523aa924aea9c8c78b5981a9df',1,'entt::adjacency_matrix::out_edges()']]], - ['overload_61',['overload',['../namespaceentt.html#ac5131df9ce458a6884c43595f501f916',1,'entt::overload(Type Class::*member) noexcept'],['../namespaceentt.html#a267f6d6d3ea49bd36f7e8d2f002ec1d1',1,'entt::overload(Func *func) noexcept']]], - ['overloaded_62',['overloaded',['../structentt_1_1overloaded.html',1,'entt::overloaded< Func >'],['../namespaceentt.html#a26eb67ac302229374c5fb623d529f5eb',1,'entt::overloaded(Func...) -> overloaded< Func... >']]], - ['own_63',['Build your own',['../md_docs_2md_2entity.html#build-your-own',1,'']]], - ['owned_64',['owned',['../classentt_1_1basic__registry.html#a0da9b805673a9753a4c9f6f1609e0d87',1,'entt::basic_registry::owned()'],['../namespaceentt.html#ac91ddbe2446a912714a5fe7251e25768',1,'entt::owned']]], - ['owned_5ft_65',['owned_t',['../structentt_1_1owned__t.html',1,'entt::owned_t< Type >'],['../structentt_1_1owned__t.html#a77389f65faa2cd82b68b61f9c15ea9f8',1,'entt::owned_t::owned_t()']]], - ['owner_66',['owner',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a72122ce96bfec66e2396d2e25225d70a',1,'entt']]], - ['owning_20groups_67',['Owning groups',['../md_docs_2md_2entity.html#full-owning-groups',1,'Full-owning groups'],['../md_docs_2md_2entity.html#non-owning-groups',1,'Non-owning groups'],['../md_docs_2md_2entity.html#partial-owning-groups',1,'Partial-owning groups']]] + ['orphan_53',['orphan',['../classentt_1_1basic__handle.html#a7ed6c2bcefa06c826c90013abf9c15f2',1,'entt::basic_handle::orphan()'],['../classentt_1_1basic__registry.html#a1b36843b380e02019ad88c455d6e6d17',1,'entt::basic_registry::orphan()']]], + ['orphans_54',['orphans',['../classentt_1_1basic__snapshot__loader.html#ad37932c98a812596d40456bd4610e535',1,'entt::basic_snapshot_loader::orphans()'],['../classentt_1_1basic__continuous__loader.html#ae497e30cd8fa96978a067bb0f4dee5cd',1,'entt::basic_continuous_loader::orphans()']]], + ['other_20business_3a_55',['Any Other Business:',['../md_docs_2md_2links.html#any-other-business',1,'']]], + ['other_20libraries_56',['Other libraries',['../md_docs_2md_2poly.html#other-libraries',1,'']]], + ['otherwise_57',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], + ['out_5fedge_5fiterator_58',['out_edge_iterator',['../classentt_1_1adjacency__matrix.html#a88b3a1f0df93f9785b51ece42cb71852',1,'entt::adjacency_matrix']]], + ['out_5fedges_59',['out_edges',['../structentt_1_1basic__organizer_1_1vertex.html#a5c72c137063f8006fcfadeddd35621a0',1,'entt::basic_organizer::vertex::out_edges()'],['../classentt_1_1adjacency__matrix.html#a4e28de523aa924aea9c8c78b5981a9df',1,'entt::adjacency_matrix::out_edges()']]], + ['overload_60',['overload',['../namespaceentt.html#ac5131df9ce458a6884c43595f501f916',1,'entt::overload(Type Class::*member) noexcept'],['../namespaceentt.html#a267f6d6d3ea49bd36f7e8d2f002ec1d1',1,'entt::overload(Func *func) noexcept']]], + ['overloaded_61',['overloaded',['../structentt_1_1overloaded.html',1,'entt::overloaded< Func >'],['../namespaceentt.html#a26eb67ac302229374c5fb623d529f5eb',1,'entt::overloaded(Func...) -> overloaded< Func... >']]], + ['own_62',['Build your own',['../md_docs_2md_2entity.html#build-your-own',1,'']]], + ['owned_63',['owned',['../classentt_1_1basic__registry.html#a0da9b805673a9753a4c9f6f1609e0d87',1,'entt::basic_registry::owned()'],['../namespaceentt.html#ac91ddbe2446a912714a5fe7251e25768',1,'entt::owned']]], + ['owned_5ft_64',['owned_t',['../structentt_1_1owned__t.html',1,'entt::owned_t< Type >'],['../structentt_1_1owned__t.html#a77389f65faa2cd82b68b61f9c15ea9f8',1,'entt::owned_t::owned_t()']]], + ['owned_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_65',['owned_t< typename Op< Type >::type... >',['../structentt_1_1owned__t.html',1,'entt']]], + ['owner_66',['owner',['../classentt_1_1basic__any.html#a4f36479ca4ac3ad94a80fc3ac3eb1a24',1,'entt::basic_any']]], + ['owning_20groups_67',['owning groups',['../md_docs_2md_2entity.html#full-owning-groups',1,'Full-owning groups'],['../md_docs_2md_2entity.html#non-owning-groups',1,'Non-owning groups'],['../md_docs_2md_2entity.html#partial-owning-groups',1,'Partial-owning groups']]] ]; diff --git a/search/all_e.js b/search/all_e.js index 3a1ed78fe..e911048a8 100644 --- a/search/all_e.js +++ b/search/all_e.js @@ -2,11 +2,11 @@ var searchData= [ ['pack_0',['View pack',['../md_docs_2md_2entity.html#view-pack',1,'']]], ['packaging_20tools_1',['Packaging Tools',['../index.html#packaging-tools',1,'']]], - ['page_5fsize_2',['page_size',['../structentt_1_1component__traits.html#a8fa4acd0fc9b0c554ea805961a5b6f8b',1,'entt::component_traits::page_size'],['../structentt_1_1entt__traits.html#a187c362626da03111928aff88f43bb83',1,'entt::entt_traits::page_size']]], + ['page_5fsize_2',['page_size',['../structentt_1_1component__traits.html#ae37a0cf9d057ff1ae12261be2abde7b3',1,'entt::component_traits::page_size'],['../structentt_1_1entt__traits.html#a187c362626da03111928aff88f43bb83',1,'entt::entt_traits::page_size']]], ['pair_3',['Compressed pair',['../md_docs_2md_2core.html#compressed-pair',1,'']]], ['partial_20owning_20groups_4',['Partial-owning groups',['../md_docs_2md_2entity.html#partial-owning-groups',1,'']]], ['party_20module_5',['EnTT as a third party module',['../md_docs_2md_2unreal.html#entt-as-a-third-party-module',1,'']]], - ['patch_6',['patch',['../classentt_1_1basic__handle.html#a464d4084991529843c7c5a88d56e12cd',1,'entt::basic_handle::patch()'],['../classentt_1_1basic__sigh__mixin.html#a1825979313096feb7d59d09f2e821d77',1,'entt::basic_sigh_mixin::patch()'],['../classentt_1_1basic__registry.html#a77c108caf74d8fcce9f3fb94906cd4db',1,'entt::basic_registry::patch()'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage::patch()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a95f0f91666cc79c7b8ac8d340c574571',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::patch()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#adbcee0a91f31c48bb5fd6b3186585d78',1,'entt::basic_storage< Entity, Entity, Allocator >::patch()']]], + ['patch_6',['patch',['../classentt_1_1basic__handle.html#a464d4084991529843c7c5a88d56e12cd',1,'entt::basic_handle::patch()'],['../classentt_1_1basic__sigh__mixin.html#a1825979313096feb7d59d09f2e821d77',1,'entt::basic_sigh_mixin::patch()'],['../classentt_1_1basic__registry.html#a77c108caf74d8fcce9f3fb94906cd4db',1,'entt::basic_registry::patch()'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage::patch()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a5a781be8ab6936be9128829159918048',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::patch()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#adbcee0a91f31c48bb5fd6b3186585d78',1,'entt::basic_storage< Entity, Entity, Allocator >::patch(const entity_type entt, Func &&...func)'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage< Entity, Entity, Allocator >::patch(const entity_type entt, Func &&...func)'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::patch()']]], ['pause_7',['pause',['../classentt_1_1process.html#a2bcdfd9f2ec24b591ba1fbf38f563023',1,'entt::process']]], ['paused_8',['paused',['../classentt_1_1process.html#ac7738f4e908293a072a89981a004669a',1,'entt::process']]], ['pay_20per_20use_9',['Pay per use',['../md_docs_2md_2entity.html#pay-per-use',1,'']]], @@ -14,39 +14,35 @@ var searchData= ['performance_20more_20constraints_11',['More performance, more constraints',['../md_docs_2md_2entity.html#more-performance-more-constraints',1,'']]], ['pkg_20config_12',['pkg-config',['../index.html#pkg-config',1,'']]], ['place_20delete_13',['In-place delete',['../md_docs_2md_2entity.html#in-place-delete',1,'']]], - ['pointer_14',['Input iterator pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'']]], - ['pointer_15',['pointer',['../structentt_1_1input__iterator__pointer.html#ad1541f6a78eb2f792fc03d9a6bfefbab',1,'entt::input_iterator_pointer::pointer'],['../classentt_1_1iota__iterator.html#ad41ace26ec6af78a2da98e01053e7578',1,'entt::iota_iterator::pointer'],['../structentt_1_1allocation__deleter.html#a37186f63eb16409b00b0261041b68c5c',1,'entt::allocation_deleter::pointer'],['../classentt_1_1basic__sparse__set.html#a8b18963e68d4f003e19389fd342f90cc',1,'entt::basic_sparse_set::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage::pointer']]], - ['pointer_20like_20types_16',['Pointer-like types',['../md_docs_2md_2meta.html#pointer-like-types',1,'']]], - ['pointer_20stability_17',['Pointer stability',['../md_docs_2md_2entity.html#pointer-stability',1,'']]], - ['pointers_18',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]], - ['points_19',['Sync points',['../md_docs_2md_2graph.html#sync-points',1,'']]], - ['policies_3a_20the_20more_20the_20less_20',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], - ['policy_21',['policy',['../classentt_1_1basic__any.html#aa596e3cbca62ec101627dcdd82f216b7',1,'entt::basic_any::policy()'],['../classentt_1_1basic__sparse__set.html#a91f80e4333c16c6c3786b041c8a7e8a2',1,'entt::basic_sparse_set::policy()'],['../classentt_1_1meta__any.html#a51934b60872f554b279c7f790fe2ee7c',1,'entt::meta_any::policy()']]], - ['poly_22',['poly',['../md_docs_2md_2poly.html',1,'Crash Course: poly'],['../namespaceentt.html#ab6d2fe9024bafa328c5f4e4adbc96298',1,'entt::poly']]], - ['poly_5fbase_23',['poly_base',['../structentt_1_1poly__base.html',1,'entt']]], - ['poly_5fcall_24',['poly_call',['../namespaceentt.html#a8b4f2adf317a555138ef5c1cf45b034a',1,'entt']]], - ['poly_5finspector_25',['poly_inspector',['../structentt_1_1poly__inspector.html',1,'entt']]], - ['poly_5fvtable_26',['poly_vtable',['../classentt_1_1poly__vtable.html',1,'entt']]], - ['polymorphism_20in_20the_20wild_27',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], - ['pop_28',['pop',['../classentt_1_1basic__sparse__set.html#a8f66cbcaa360286d296dcb7a33c7e1ce',1,'entt::basic_sparse_set::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage::pop()']]], - ['pop_5fall_29',['pop_all',['../classentt_1_1basic__sparse__set.html#a1e8e00e8bfa75311482f2fa071e244e6',1,'entt::basic_sparse_set::pop_all()'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage::pop_all()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a4703e670597bf8dfebe036f8a378ca12',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all()']]], - ['popcount_30',['popcount',['../namespaceentt.html#afab136c473d8c862b183cec9d4a13915',1,'entt']]], - ['possible_31',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], - ['posts_3a_32',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], - ['prepare_33',['prepare',['../structentt_1_1basic__organizer_1_1vertex.html#a7af8e230d84a2a6210185126cbc23180',1,'entt::basic_organizer::vertex']]], - ['process_34',['process',['../classentt_1_1process.html',1,'entt::process< Derived, Delta >'],['../classentt_1_1process.html#a4a5cf6bbe22a8b5b60b8b6c7221bc3b9',1,'entt::process::process()=default'],['../classentt_1_1process.html#a23a46de31f2f5e8eeefcc07739b28038',1,'entt::process::process(const process &)=default'],['../classentt_1_1process.html#a5bd3a2e2889ad05c3314367652bf3223',1,'entt::process::process(process &&) noexcept=default']]], - ['process_35',['The process',['../md_docs_2md_2process.html#the-process',1,'']]], - ['process_3c_20process_5fadaptor_3c_20func_2c_20delta_20_3e_2c_20delta_20_3e_36',['process< process_adaptor< Func, Delta >, Delta >',['../classentt_1_1process.html',1,'entt']]], - ['process_5fadaptor_37',['process_adaptor',['../structentt_1_1process__adaptor.html',1,'entt::process_adaptor< Func, Delta >'],['../structentt_1_1process__adaptor.html#af065d57ac7c645279e4a5033f326abd8',1,'entt::process_adaptor::process_adaptor()']]], - ['projects_38',['Similar projects',['../md_docs_2md_2reference.html',1,'']]], - ['projects_39',['Similar projects',['../md_docs_2md_2reference.html#similar-projects-1',1,'']]], - ['prop_40',['prop',['../classentt_1_1meta__factory.html#a461250b92c9bb91f165780b35ba7ba9a',1,'entt::meta_factory::prop()'],['../structentt_1_1meta__data.html#a8dc86b923a3a2c46e0077d0222529696',1,'entt::meta_data::prop() const noexcept'],['../structentt_1_1meta__data.html#a66cf4f9de4950b6cccada44832c77c35',1,'entt::meta_data::prop(const id_type key) const'],['../structentt_1_1meta__func.html#a7107251c7e73ac57c8a31827f509163d',1,'entt::meta_func::prop() const noexcept'],['../structentt_1_1meta__func.html#a6933a7fb0b246800be22d4e0bc79142c',1,'entt::meta_func::prop(const id_type key) const'],['../classentt_1_1meta__type.html#a566ae00244b74151c228a7b19b83901f',1,'entt::meta_type::prop() const noexcept'],['../classentt_1_1meta__type.html#a93f0e9e80f1a2db90a5c33f8f4dfccc9',1,'entt::meta_type::prop(const id_type key) const']]], - ['propagate_5fon_5fcontainer_5fcopy_5fassignment_41',['propagate_on_container_copy_assignment',['../namespaceentt.html#ae934980252d1f2ce8f2473c8d74347df',1,'entt']]], - ['propagate_5fon_5fcontainer_5fmove_5fassignment_42',['propagate_on_container_move_assignment',['../namespaceentt.html#a46cd263b358a2d495d4f4ee27d4537d7',1,'entt']]], - ['propagate_5fon_5fcontainer_5fswap_43',['propagate_on_container_swap',['../namespaceentt.html#a0dd7ed3d3f11933cd542d8f4646cd695',1,'entt']]], - ['properties_44',['Aliased properties',['../md_docs_2md_2entity.html#aliased-properties',1,'']]], - ['proven_20otherwise_45',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], - ['publish_46',['publish',['../classentt_1_1emitter.html#a7d8d8141c67248b448f47f5a123fd8e9',1,'entt::emitter::publish()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a0893ef46dac20781070826fb93c50fb4',1,'entt::sigh< Ret(Args...), Allocator >::publish()']]], - ['push_47',['push',['../classentt_1_1basic__sparse__set.html#a8cf01b2a8d20329ec1c1d5d3b5708969',1,'entt::basic_sparse_set::push(const entity_type entt, const void *elem=nullptr)'],['../classentt_1_1basic__sparse__set.html#a43205b128298f90d1255cf4ce768297c',1,'entt::basic_sparse_set::push(It first, It last)']]], - ['push_20entt_20across_20boundaries_48',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]] + ['pointer_14',['pointer',['../md_docs_2md_2core.html#input-iterator-pointer',1,'Input iterator pointer'],['../structentt_1_1input__iterator__pointer.html#ad1541f6a78eb2f792fc03d9a6bfefbab',1,'entt::input_iterator_pointer::pointer'],['../classentt_1_1iota__iterator.html#ad41ace26ec6af78a2da98e01053e7578',1,'entt::iota_iterator::pointer'],['../structentt_1_1allocation__deleter.html#a37186f63eb16409b00b0261041b68c5c',1,'entt::allocation_deleter::pointer'],['../classentt_1_1basic__sparse__set.html#a8b18963e68d4f003e19389fd342f90cc',1,'entt::basic_sparse_set::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage< Entity, Entity, Allocator >::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pointer']]], + ['pointer_20like_20types_15',['Pointer-like types',['../md_docs_2md_2meta.html#pointer-like-types',1,'']]], + ['pointer_20stability_16',['Pointer stability',['../md_docs_2md_2entity.html#pointer-stability',1,'']]], + ['pointers_17',['Allocator aware unique pointers',['../md_docs_2md_2core.html#allocator-aware-unique-pointers',1,'']]], + ['points_18',['Sync points',['../md_docs_2md_2graph.html#sync-points',1,'']]], + ['policies_3a_20the_20more_20the_20less_19',['Policies: the more, the less',['../md_docs_2md_2meta.html#policies-the-more-the-less',1,'']]], + ['policy_20',['policy',['../classentt_1_1basic__any.html#aa596e3cbca62ec101627dcdd82f216b7',1,'entt::basic_any::policy()'],['../classentt_1_1basic__sparse__set.html#a91f80e4333c16c6c3786b041c8a7e8a2',1,'entt::basic_sparse_set::policy()'],['../classentt_1_1meta__any.html#a042c1518c41a31a282941cac1d40fa46',1,'entt::meta_any::policy()']]], + ['poly_21',['poly',['../md_docs_2md_2poly.html',1,'Crash Course: poly'],['../namespaceentt.html#ab6d2fe9024bafa328c5f4e4adbc96298',1,'entt::poly']]], + ['poly_5fbase_22',['poly_base',['../structentt_1_1poly__base.html',1,'entt']]], + ['poly_5fcall_23',['poly_call',['../namespaceentt.html#a8b4f2adf317a555138ef5c1cf45b034a',1,'entt']]], + ['poly_5finspector_24',['poly_inspector',['../structentt_1_1poly__inspector.html',1,'entt']]], + ['poly_5fvtable_25',['poly_vtable',['../classentt_1_1poly__vtable.html',1,'entt']]], + ['polymorphism_20in_20the_20wild_26',['Static polymorphism in the wild',['../md_docs_2md_2poly.html#static-polymorphism-in-the-wild',1,'']]], + ['pop_27',['pop',['../classentt_1_1basic__sparse__set.html#a8f66cbcaa360286d296dcb7a33c7e1ce',1,'entt::basic_sparse_set::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage< Entity, Entity, Allocator >::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pop()']]], + ['pop_5fall_28',['pop_all',['../classentt_1_1basic__sparse__set.html#a1e8e00e8bfa75311482f2fa071e244e6',1,'entt::basic_sparse_set::pop_all()'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage::pop_all()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a4703e670597bf8dfebe036f8a378ca12',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all() override'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all() override'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pop_all()']]], + ['popcount_29',['popcount',['../namespaceentt.html#afab136c473d8c862b183cec9d4a13915',1,'entt']]], + ['possible_30',['Sorting: is it possible?',['../md_docs_2md_2entity.html#sorting-is-it-possible',1,'']]], + ['posts_3a_31',['Articles, videos and blog posts:',['../md_docs_2md_2links.html#articles-videos-and-blog-posts',1,'']]], + ['prepare_32',['prepare',['../structentt_1_1basic__organizer_1_1vertex.html#a7af8e230d84a2a6210185126cbc23180',1,'entt::basic_organizer::vertex']]], + ['process_33',['process',['../classentt_1_1process.html',1,'entt::process< Derived, Delta >'],['../classentt_1_1process.html#a4a5cf6bbe22a8b5b60b8b6c7221bc3b9',1,'entt::process::process()=default'],['../classentt_1_1process.html#a23a46de31f2f5e8eeefcc07739b28038',1,'entt::process::process(const process &)=default'],['../classentt_1_1process.html#a5bd3a2e2889ad05c3314367652bf3223',1,'entt::process::process(process &&) noexcept=default'],['../md_docs_2md_2process.html#the-process',1,'The process']]], + ['process_3c_20process_5fadaptor_3c_20func_2c_20delta_20_3e_2c_20delta_20_3e_34',['process< process_adaptor< Func, Delta >, Delta >',['../classentt_1_1process.html',1,'entt']]], + ['process_5fadaptor_35',['process_adaptor',['../structentt_1_1process__adaptor.html',1,'entt::process_adaptor< Func, Delta >'],['../structentt_1_1process__adaptor.html#af065d57ac7c645279e4a5033f326abd8',1,'entt::process_adaptor::process_adaptor()']]], + ['projects_36',['projects',['../md_docs_2md_2reference.html',1,'Similar projects'],['../md_docs_2md_2reference.html#similar-projects-1',1,'Similar projects']]], + ['propagate_5fon_5fcontainer_5fcopy_5fassignment_37',['propagate_on_container_copy_assignment',['../namespaceentt.html#ae934980252d1f2ce8f2473c8d74347df',1,'entt']]], + ['propagate_5fon_5fcontainer_5fmove_5fassignment_38',['propagate_on_container_move_assignment',['../namespaceentt.html#a46cd263b358a2d495d4f4ee27d4537d7',1,'entt']]], + ['propagate_5fon_5fcontainer_5fswap_39',['propagate_on_container_swap',['../namespaceentt.html#a0dd7ed3d3f11933cd542d8f4646cd695',1,'entt']]], + ['properties_40',['Aliased properties',['../md_docs_2md_2entity.html#aliased-properties',1,'']]], + ['proven_20otherwise_41',['Smooth until proven otherwise',['../md_docs_2md_2lib.html#smooth-until-proven-otherwise',1,'']]], + ['publish_42',['publish',['../classentt_1_1emitter.html#af8d32b1f07b24db8b1b1fbb20dda89c2',1,'entt::emitter']]], + ['push_43',['push',['../classentt_1_1basic__sparse__set.html#a8cf01b2a8d20329ec1c1d5d3b5708969',1,'entt::basic_sparse_set::push(const entity_type entt, const void *elem=nullptr)'],['../classentt_1_1basic__sparse__set.html#a43205b128298f90d1255cf4ce768297c',1,'entt::basic_sparse_set::push(It first, It last)']]], + ['push_20entt_20across_20boundaries_44',['Push EnTT across boundaries',['../md_docs_2md_2lib.html',1,'']]] ]; diff --git a/search/classes_0.js b/search/classes_0.js index 09431e585..f786b9e4b 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -1,12 +1,13 @@ var searchData= [ ['adjacency_5fmatrix_0',['adjacency_matrix',['../classentt_1_1adjacency__matrix.html',1,'entt']]], - ['adl_5fmeta_5fpointer_5flike_1',['adl_meta_pointer_like',['../structentt_1_1adl__meta__pointer__like.html',1,'entt']]], - ['allocation_5fdeleter_2',['allocation_deleter',['../structentt_1_1allocation__deleter.html',1,'entt']]], - ['as_5fcref_5ft_3',['as_cref_t',['../structentt_1_1as__cref__t.html',1,'entt']]], - ['as_5fgroup_4',['as_group',['../classentt_1_1as__group.html',1,'entt']]], - ['as_5fis_5ft_5',['as_is_t',['../structentt_1_1as__is__t.html',1,'entt']]], - ['as_5fref_5ft_6',['as_ref_t',['../structentt_1_1as__ref__t.html',1,'entt']]], - ['as_5fview_7',['as_view',['../classentt_1_1as__view.html',1,'entt']]], - ['as_5fvoid_5ft_8',['as_void_t',['../structentt_1_1as__void__t.html',1,'entt']]] + ['adjacency_5fmatrix_3c_20directed_5ftag_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3asize_5ft_20_3e_20_3e_1',['adjacency_matrix< directed_tag, typename alloc_traits::template rebind_alloc< std::size_t > >',['../classentt_1_1adjacency__matrix.html',1,'entt']]], + ['adl_5fmeta_5fpointer_5flike_2',['adl_meta_pointer_like',['../structentt_1_1adl__meta__pointer__like.html',1,'entt']]], + ['allocation_5fdeleter_3',['allocation_deleter',['../structentt_1_1allocation__deleter.html',1,'entt']]], + ['as_5fcref_5ft_4',['as_cref_t',['../structentt_1_1as__cref__t.html',1,'entt']]], + ['as_5fgroup_5',['as_group',['../classentt_1_1as__group.html',1,'entt']]], + ['as_5fis_5ft_6',['as_is_t',['../structentt_1_1as__is__t.html',1,'entt']]], + ['as_5fref_5ft_7',['as_ref_t',['../structentt_1_1as__ref__t.html',1,'entt']]], + ['as_5fview_8',['as_view',['../classentt_1_1as__view.html',1,'entt']]], + ['as_5fvoid_5ft_9',['as_void_t',['../structentt_1_1as__void__t.html',1,'entt']]] ]; diff --git a/search/classes_1.js b/search/classes_1.js index c690737a3..6aa51ed7f 100644 --- a/search/classes_1.js +++ b/search/classes_1.js @@ -2,13 +2,13 @@ var searchData= [ ['basic_5fany_0',['basic_any',['../classentt_1_1basic__any.html',1,'entt']]], ['basic_5fany_3c_3e_1',['basic_any<>',['../classentt_1_1basic__any.html',1,'entt']]], - ['basic_5fcollector_2',['basic_collector',['../structentt_1_1basic__collector.html',1,'entt']]], - ['basic_5fcollector_3c_20matcher_3c_20type_5flist_3c_20reject_2e_2e_2e_20_3e_2c_20type_5flist_3c_20require_2e_2e_2e_20_3e_2c_20rule_2e_2e_2e_20_3e_2c_20other_2e_2e_2e_20_3e_3',['basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html',1,'entt']]], - ['basic_5fcollector_3c_3e_4',['basic_collector<>',['../structentt_1_1basic__collector_3_4.html',1,'entt']]], - ['basic_5fcommon_5fview_5',['basic_common_view',['../classentt_1_1basic__common__view.html',1,'entt']]], - ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20get_3a_3abase_5ftype_2e_2e_2e_2c_20exclude_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_6',['basic_common_view< std::common_type_t< Get::base_type..., Exclude::base_type... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], - ['basic_5fcontinuous_5floader_7',['basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html',1,'entt']]], - ['basic_5fdispatcher_8',['basic_dispatcher',['../classentt_1_1basic__dispatcher.html',1,'entt']]], + ['basic_5fcommon_5fview_2',['basic_common_view',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20get_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20internal_3a_3atombstone_5fcheck_5fv_3c_20get_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_3',['basic_common_view< std::common_type_t< Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcommon_5fview_3c_20std_3a_3acommon_5ftype_5ft_3c_20typename_20get_3a_3abase_5ftype_2e_2e_2e_20_3e_2c_20internal_3a_3atombstone_5fcheck_5fv_3c_20get_2e_2e_2e_20_3e_2c_20sizeof_2e_2e_2e_28get_29_2c_20sizeof_2e_2e_2e_28exclude_29_3e_4',['basic_common_view< std::common_type_t< typename Get::base_type... >, internal::tombstone_check_v< Get... >, sizeof...(Get), sizeof...(Exclude)>',['../classentt_1_1basic__common__view.html',1,'entt']]], + ['basic_5fcontinuous_5floader_5',['basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html',1,'entt']]], + ['basic_5fcontinuous_5floader_3c_20registry_20_3e_6',['basic_continuous_loader< registry >',['../classentt_1_1basic__continuous__loader.html',1,'entt']]], + ['basic_5fdispatcher_7',['basic_dispatcher',['../classentt_1_1basic__dispatcher.html',1,'entt']]], + ['basic_5fdispatcher_3c_3e_8',['basic_dispatcher<>',['../classentt_1_1basic__dispatcher.html',1,'entt']]], ['basic_5fentt_5ftraits_9',['basic_entt_traits',['../classentt_1_1basic__entt__traits.html',1,'entt']]], ['basic_5fentt_5ftraits_3c_20internal_3a_3aentt_5ftraits_3c_20type_20_3e_20_3e_10',['basic_entt_traits< internal::entt_traits< Type > >',['../classentt_1_1basic__entt__traits.html',1,'entt']]], ['basic_5fflow_11',['basic_flow',['../classentt_1_1basic__flow.html',1,'entt']]], @@ -16,41 +16,64 @@ var searchData= ['basic_5fgroup_13',['basic_group',['../classentt_1_1basic__group.html',1,'entt']]], ['basic_5fgroup_3c_20owned_5ft_3c_20owned_2e_2e_2e_20_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_20_3e_14',['basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >',['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html',1,'entt']]], ['basic_5fgroup_3c_20owned_5ft_3c_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_20_3e_15',['basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html',1,'entt']]], - ['basic_5fhandle_16',['basic_handle',['../classentt_1_1basic__handle.html',1,'entt']]], - ['basic_5fhashed_5fstring_17',['basic_hashed_string',['../classentt_1_1basic__hashed__string.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_18',['basic_meta_associative_container_traits',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_19',['basic_meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_20',['basic_meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_21',['basic_meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_22',['basic_meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_23',['basic_meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_24',['basic_meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_25',['basic_meta_sequence_container_traits',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_26',['basic_meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_27',['basic_meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_28',['basic_meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_29',['basic_meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], - ['basic_5fobserver_30',['basic_observer',['../classentt_1_1basic__observer.html',1,'entt']]], - ['basic_5forganizer_31',['basic_organizer',['../classentt_1_1basic__organizer.html',1,'entt']]], - ['basic_5fpoly_32',['basic_poly',['../classentt_1_1basic__poly.html',1,'entt']]], - ['basic_5freactive_5fmixin_33',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], - ['basic_5fregistry_34',['basic_registry',['../classentt_1_1basic__registry.html',1,'entt']]], - ['basic_5fruntime_5fview_35',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html',1,'entt']]], - ['basic_5fscheduler_36',['basic_scheduler',['../classentt_1_1basic__scheduler.html',1,'entt']]], - ['basic_5fsigh_5fmixin_37',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], - ['basic_5fsnapshot_38',['basic_snapshot',['../classentt_1_1basic__snapshot.html',1,'entt']]], - ['basic_5fsnapshot_5floader_39',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html',1,'entt']]], - ['basic_5fsparse_5fset_40',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html',1,'entt']]], - ['basic_5fsparse_5fset_3c_20entity_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_41',['basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], - ['basic_5fsparse_5fset_3c_20typename_20registry_3a_3aentity_5ftype_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20typename_20registry_3a_3aentity_5ftype_20_3e_20_3e_42',['basic_sparse_set< typename Registry::entity_type, std::allocator_traits< Allocator >::template rebind_alloc< typename Registry::entity_type > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], - ['basic_5fstorage_43',['basic_storage',['../classentt_1_1basic__storage.html',1,'entt']]], - ['basic_5fstorage_3c_20entity_2c_20entity_2c_20allocator_20_3e_44',['basic_storage< Entity, Entity, Allocator >',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], - ['basic_5fstorage_3c_20mask_5ftype_2c_20typename_20registry_3a_3aentity_5ftype_2c_20typename_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20mask_5ftype_20_3e_20_3e_45',['basic_storage< mask_type, typename Registry::entity_type, typename std::allocator_traits< Allocator >::template rebind_alloc< mask_type > >',['../classentt_1_1basic__storage.html',1,'entt']]], - ['basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_2c_20std_3a_3aenable_5fif_5ft_3c_20component_5ftraits_3c_20type_20_3e_3a_3apage_5fsize_3d_3d0u_20_3e_20_3e_46',['basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >',['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html',1,'entt']]], - ['basic_5fstorage_5fview_47',['basic_storage_view',['../classentt_1_1basic__storage__view.html',1,'entt']]], - ['basic_5fstorage_5fview_3c_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_48',['basic_storage_view< Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], - ['basic_5ftable_49',['basic_table',['../classentt_1_1basic__table.html',1,'entt']]], - ['basic_5fview_50',['basic_view',['../classentt_1_1basic__view.html',1,'entt']]], - ['basic_5fview_3c_20get_5ft_3c_20get_20_3e_2c_20exclude_5ft_3c_3e_20_3e_51',['basic_view< get_t< Get >, exclude_t<> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html',1,'entt']]], - ['basic_5fview_3c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_28sizeof_2e_2e_2e_28get_29_20_21_3d0u_29_3e_20_3e_52',['basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html',1,'entt']]] + ['basic_5fgroup_3c_20type_5flist_5ftransform_5ft_3c_20owned_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20get_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20exclude_2c_20storage_5ffor_20_3e_20_3e_16',['basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > >',['../classentt_1_1basic__group.html',1,'entt']]], + ['basic_5fhandle_17',['basic_handle',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20const_20registry_20_3e_18',['basic_handle< const registry >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20const_20registry_2c_20args_2e_2e_2e_20_3e_19',['basic_handle< const registry, Args... >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20registry_20_3e_20',['basic_handle< registry >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhandle_3c_20registry_2c_20args_2e_2e_2e_20_3e_21',['basic_handle< registry, Args... >',['../classentt_1_1basic__handle.html',1,'entt']]], + ['basic_5fhashed_5fstring_22',['basic_hashed_string',['../classentt_1_1basic__hashed__string.html',1,'entt']]], + ['basic_5fhashed_5fstring_3c_20char_20_3e_23',['basic_hashed_string< char >',['../classentt_1_1basic__hashed__string.html',1,'entt']]], + ['basic_5fhashed_5fstring_3c_20wchar_5ft_20_3e_24',['basic_hashed_string< wchar_t >',['../classentt_1_1basic__hashed__string.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_25',['basic_meta_associative_container_traits',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_26',['basic_meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_27',['basic_meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_28',['basic_meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_29',['basic_meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_30',['basic_meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_31',['basic_meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1basic__meta__associative__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_32',['basic_meta_sequence_container_traits',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_33',['basic_meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_34',['basic_meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_35',['basic_meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5fmeta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_36',['basic_meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1basic__meta__sequence__container__traits.html',1,'entt']]], + ['basic_5forganizer_37',['basic_organizer',['../classentt_1_1basic__organizer.html',1,'entt']]], + ['basic_5forganizer_3c_20registry_20_3e_38',['basic_organizer< registry >',['../classentt_1_1basic__organizer.html',1,'entt']]], + ['basic_5fpoly_39',['basic_poly',['../classentt_1_1basic__poly.html',1,'entt']]], + ['basic_5fpoly_3c_20concept_20_3e_40',['basic_poly< Concept >',['../classentt_1_1basic__poly.html',1,'entt']]], + ['basic_5freactive_5fmixin_41',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], + ['basic_5freactive_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_42',['basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], + ['basic_5freactive_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_3c_20basic_5fstorage_3c_20reactive_2c_20entity_2c_20allocator_20_3e_20_3e_43',['basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >< basic_storage< reactive, Entity, Allocator > >',['../classentt_1_1basic__reactive__mixin.html',1,'entt']]], + ['basic_5fregistry_44',['basic_registry',['../classentt_1_1basic__registry.html',1,'entt']]], + ['basic_5fregistry_3c_20typename_20owner_5ftype_3a_3aentity_5ftype_2c_20typename_20owner_5ftype_3a_3aallocator_5ftype_20_3e_45',['basic_registry< typename owner_type::entity_type, typename owner_type::allocator_type >',['../classentt_1_1basic__registry.html',1,'entt']]], + ['basic_5fregistry_3c_3e_46',['basic_registry<>',['../classentt_1_1basic__registry.html',1,'entt']]], + ['basic_5fruntime_5fview_47',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html',1,'entt']]], + ['basic_5fruntime_5fview_3c_20const_20sparse_5fset_20_3e_48',['basic_runtime_view< const sparse_set >',['../classentt_1_1basic__runtime__view.html',1,'entt']]], + ['basic_5fruntime_5fview_3c_20sparse_5fset_20_3e_49',['basic_runtime_view< sparse_set >',['../classentt_1_1basic__runtime__view.html',1,'entt']]], + ['basic_5fscheduler_50',['basic_scheduler',['../classentt_1_1basic__scheduler.html',1,'entt']]], + ['basic_5fscheduler_3c_3e_51',['basic_scheduler<>',['../classentt_1_1basic__scheduler.html',1,'entt']]], + ['basic_5fsigh_5fmixin_52',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], + ['basic_5fsigh_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_53',['basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], + ['basic_5fsigh_5fmixin_3c_20type_2c_20basic_5fregistry_3c_20typename_20type_3a_3aentity_5ftype_2c_20typename_20type_3a_3abase_5ftype_3a_3aallocator_5ftype_20_3e_20_3e_3c_20basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_20_3e_20_3e_54',['basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > >< basic_storage< Type, Entity, Allocator > >',['../classentt_1_1basic__sigh__mixin.html',1,'entt']]], + ['basic_5fsnapshot_55',['basic_snapshot',['../classentt_1_1basic__snapshot.html',1,'entt']]], + ['basic_5fsnapshot_3c_20registry_20_3e_56',['basic_snapshot< registry >',['../classentt_1_1basic__snapshot.html',1,'entt']]], + ['basic_5fsnapshot_5floader_57',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html',1,'entt']]], + ['basic_5fsnapshot_5floader_3c_20registry_20_3e_58',['basic_snapshot_loader< registry >',['../classentt_1_1basic__snapshot__loader.html',1,'entt']]], + ['basic_5fsparse_5fset_59',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fsparse_5fset_3c_20entity_2c_20std_3a_3aallocator_5ftraits_3c_20allocator_20_3e_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_60',['basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fsparse_5fset_3c_20entity_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20entity_20_3e_20_3e_61',['basic_sparse_set< Entity, typename alloc_traits::template rebind_alloc< Entity > >',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fsparse_5fset_3c_3e_62',['basic_sparse_set<>',['../classentt_1_1basic__sparse__set.html',1,'entt']]], + ['basic_5fstorage_63',['basic_storage',['../classentt_1_1basic__storage.html',1,'entt']]], + ['basic_5fstorage_3c_20entity_2c_20entity_2c_20allocator_20_3e_64',['basic_storage< Entity, Entity, Allocator >',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html',1,'entt']]], + ['basic_5fstorage_3c_20type_20_3e_65',['basic_storage< Type >',['../classentt_1_1basic__storage.html',1,'entt']]], + ['basic_5fstorage_3c_20type_2c_20entity_2c_20allocator_2c_20std_3a_3aenable_5fif_5ft_3c_20component_5ftraits_3c_20type_2c_20entity_20_3e_3a_3apage_5fsize_3d_3d0u_20_3e_20_3e_66',['basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >',['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html',1,'entt']]], + ['basic_5fstorage_5fview_67',['basic_storage_view',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5fstorage_5fview_3c_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_68',['basic_storage_view< Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5fstorage_5fview_3c_20typename_20get_3a_3abase_5ftype_2c_20get_3a_3astorage_5fpolicy_20_3e_69',['basic_storage_view< typename Get::base_type, Get::storage_policy >',['../classentt_1_1basic__storage__view.html',1,'entt']]], + ['basic_5ftable_70',['basic_table',['../classentt_1_1basic__table.html',1,'entt']]], + ['basic_5ftable_3c_20std_3a_3avector_3c_20type_20_3e_2e_2e_2e_20_3e_71',['basic_table< std::vector< Type >... >',['../classentt_1_1basic__table.html',1,'entt']]], + ['basic_5fview_72',['basic_view',['../classentt_1_1basic__view.html',1,'entt']]], + ['basic_5fview_3c_20get_5ft_3c_20get_20_3e_2c_20exclude_5ft_3c_3e_20_3e_73',['basic_view< get_t< Get >, exclude_t<> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html',1,'entt']]], + ['basic_5fview_3c_20get_5ft_3c_20get_2e_2e_2e_20_3e_2c_20exclude_5ft_3c_20exclude_2e_2e_2e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_28sizeof_2e_2e_2e_28get_29_20_21_3d0u_29_3e_20_3e_74',['basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html',1,'entt']]], + ['basic_5fview_3c_20type_5flist_5ftransform_5ft_3c_20get_2c_20storage_5ffor_20_3e_2c_20type_5flist_5ftransform_5ft_3c_20exclude_2c_20storage_5ffor_20_3e_20_3e_75',['basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > >',['../classentt_1_1basic__view.html',1,'entt']]] ]; diff --git a/search/classes_11.js b/search/classes_11.js index 74d88d796..b6f458840 100644 --- a/search/classes_11.js +++ b/search/classes_11.js @@ -1,25 +1,27 @@ var searchData= [ ['value_5flist_0',['value_list',['../structentt_1_1value__list.html',1,'entt']]], - ['value_5flist_5fcat_1',['value_list_cat',['../structentt_1_1value__list__cat.html',1,'entt']]], - ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_2',['value_list_cat< value_list< Value... > >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_3',['value_list_cat< value_list< Value... >, value_list< Other... >, List... >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], - ['value_5flist_5fcat_3c_3e_4',['value_list_cat<>',['../structentt_1_1value__list__cat_3_4.html',1,'entt']]], - ['value_5flist_5fcontains_5',['value_list_contains',['../structentt_1_1value__list__contains.html',1,'entt']]], - ['value_5flist_5fcontains_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20other_20_3e_6',['value_list_contains< value_list< Value... >, Other >',['../structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], - ['value_5flist_5fdiff_7',['value_list_diff',['../structentt_1_1value__list__diff.html',1,'entt']]], - ['value_5flist_5fdiff_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_8',['value_list_diff< value_list< Value... >, value_list< Other... > >',['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5felement_9',['value_list_element',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_200u_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_10',['value_list_element< 0u, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_20_2d_201u_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_11',['value_list_element< Index - 1u, value_list< Other... > >',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_12',['value_list_element< Index, entt::value_list< Value... > >',['../structentt_1_1value__list__element.html',1,'entt']]], - ['value_5flist_5felement_3c_20index_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_13',['value_list_element< Index, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_14',['value_list_index',['../structentt_1_1value__list__index.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_15',['value_list_index< Value, value_list< First, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_16',['value_list_index< Value, value_list< Value, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_3e_20_3e_17',['value_list_index< Value, value_list<> >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html',1,'entt']]], - ['value_5flist_5funique_18',['value_list_unique',['../structentt_1_1value__list__unique.html',1,'entt']]], - ['value_5flist_5funique_3c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_19',['value_list_unique< value_list< Value, Other... > >',['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['value_5flist_5funique_3c_20value_5flist_3c_3e_20_3e_20',['value_list_unique< value_list<> >',['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html',1,'entt']]], - ['vertex_21',['vertex',['../structentt_1_1basic__organizer_1_1vertex.html',1,'entt::basic_organizer']]] + ['value_5flist_3c_20value_2e_2e_2e_20_3e_1',['value_list< Value... >',['../structentt_1_1value__list.html',1,'entt']]], + ['value_5flist_3c_3e_2',['value_list<>',['../structentt_1_1value__list.html',1,'entt']]], + ['value_5flist_5fcat_3',['value_list_cat',['../structentt_1_1value__list__cat.html',1,'entt']]], + ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_4',['value_list_cat< value_list< Value... > >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5fcat_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_5',['value_list_cat< value_list< Value... >, value_list< Other... >, List... >',['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], + ['value_5flist_5fcat_3c_3e_6',['value_list_cat<>',['../structentt_1_1value__list__cat_3_4.html',1,'entt']]], + ['value_5flist_5fcontains_7',['value_list_contains',['../structentt_1_1value__list__contains.html',1,'entt']]], + ['value_5flist_5fcontains_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20other_20_3e_8',['value_list_contains< value_list< Value... >, Other >',['../structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], + ['value_5flist_5fdiff_9',['value_list_diff',['../structentt_1_1value__list__diff.html',1,'entt']]], + ['value_5flist_5fdiff_3c_20value_5flist_3c_20value_2e_2e_2e_20_3e_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_10',['value_list_diff< value_list< Value... >, value_list< Other... > >',['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5felement_11',['value_list_element',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_200u_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_12',['value_list_element< 0u, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_20_2d_201u_2c_20value_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_13',['value_list_element< Index - 1u, value_list< Other... > >',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_2c_20entt_3a_3avalue_5flist_3c_20value_2e_2e_2e_20_3e_20_3e_14',['value_list_element< Index, entt::value_list< Value... > >',['../structentt_1_1value__list__element.html',1,'entt']]], + ['value_5flist_5felement_3c_20index_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_15',['value_list_element< Index, value_list< Value, Other... > >',['../structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_16',['value_list_index',['../structentt_1_1value__list__index.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_17',['value_list_index< Value, value_list< First, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_18',['value_list_index< Value, value_list< Value, Other... > >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5findex_3c_20value_2c_20value_5flist_3c_3e_20_3e_19',['value_list_index< Value, value_list<> >',['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html',1,'entt']]], + ['value_5flist_5funique_20',['value_list_unique',['../structentt_1_1value__list__unique.html',1,'entt']]], + ['value_5flist_5funique_3c_20value_5flist_3c_20value_2c_20other_2e_2e_2e_20_3e_20_3e_21',['value_list_unique< value_list< Value, Other... > >',['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['value_5flist_5funique_3c_20value_5flist_3c_3e_20_3e_22',['value_list_unique< value_list<> >',['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html',1,'entt']]], + ['vertex_23',['vertex',['../structentt_1_1basic__organizer_1_1vertex.html',1,'entt::basic_organizer']]] ]; diff --git a/search/classes_2.js b/search/classes_2.js index 49a285eac..cfd26020d 100644 --- a/search/classes_2.js +++ b/search/classes_2.js @@ -3,15 +3,16 @@ var searchData= ['choice_5ft_0',['choice_t',['../structentt_1_1choice__t.html',1,'entt']]], ['choice_5ft_3c_200_20_3e_1',['choice_t< 0 >',['../structentt_1_1choice__t_3_010_01_4.html',1,'entt']]], ['component_5ftraits_2',['component_traits',['../structentt_1_1component__traits.html',1,'entt']]], - ['compressed_5fpair_3',['compressed_pair',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20container_5ftype_2c_20allocator_5ftype_20_3e_4',['compressed_pair< container_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_2c_20allocator_5ftype_20_3e_5',['compressed_pair< entt::dense_map, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_2c_20loader_5ftype_20_3e_6',['compressed_pair< entt::dense_map, loader_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20packed_5fcontainer_5ftype_2c_20key_5fequal_20_3e_7',['compressed_pair< packed_container_type, key_equal >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20size_5ftype_2c_20allocator_5ftype_20_3e_8',['compressed_pair< size_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['compressed_5fpair_3c_20sparse_5fcontainer_5ftype_2c_20hasher_20_3e_9',['compressed_pair< sparse_container_type, hasher >',['../classentt_1_1compressed__pair.html',1,'entt']]], - ['connect_5farg_5ft_10',['connect_arg_t',['../structentt_1_1connect__arg__t.html',1,'entt']]], - ['connection_11',['connection',['../classentt_1_1connection.html',1,'entt']]], - ['constness_5fas_12',['constness_as',['../structentt_1_1constness__as.html',1,'entt']]], - ['constness_5fas_3c_20to_2c_20const_20from_20_3e_13',['constness_as< To, const From >',['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html',1,'entt']]] + ['component_5ftraits_3c_20type_2c_20entity_20_3e_3',['component_traits< Type, Entity >',['../structentt_1_1component__traits.html',1,'entt']]], + ['compressed_5fpair_4',['compressed_pair',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20container_5ftype_2c_20allocator_5ftype_20_3e_5',['compressed_pair< container_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_3c_20id_5ftype_2c_20typename_20loader_3a_3aresult_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_2c_20loader_5ftype_20_3e_6',['compressed_pair< entt::dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >, loader_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20entt_3a_3adense_5fmap_3c_20key_5ftype_2c_20mapped_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_2c_20allocator_5ftype_20_3e_7',['compressed_pair< entt::dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20packed_5fcontainer_5ftype_2c_20key_5fequal_20_3e_8',['compressed_pair< packed_container_type, key_equal >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20size_5ftype_2c_20allocator_5ftype_20_3e_9',['compressed_pair< size_type, allocator_type >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['compressed_5fpair_3c_20sparse_5fcontainer_5ftype_2c_20hasher_20_3e_10',['compressed_pair< sparse_container_type, hasher >',['../classentt_1_1compressed__pair.html',1,'entt']]], + ['connect_5farg_5ft_11',['connect_arg_t',['../structentt_1_1connect__arg__t.html',1,'entt']]], + ['connection_12',['connection',['../classentt_1_1connection.html',1,'entt']]], + ['constness_5fas_13',['constness_as',['../structentt_1_1constness__as.html',1,'entt']]], + ['constness_5fas_3c_20to_2c_20const_20from_20_3e_14',['constness_as< To, const From >',['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html',1,'entt']]] ]; diff --git a/search/classes_3.js b/search/classes_3.js index eb6927e8d..e6d98f357 100644 --- a/search/classes_3.js +++ b/search/classes_3.js @@ -1,13 +1,15 @@ var searchData= [ ['delegate_0',['delegate',['../classentt_1_1delegate.html',1,'entt']]], - ['delegate_3c_20ret_28args_2e_2e_2e_29_3e_1',['delegate< Ret(Args...)>',['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html',1,'entt']]], + ['delegate_3c_20void_28void_20_2a_29_3e_1',['delegate< void(void *)>',['../classentt_1_1delegate.html',1,'entt']]], ['dense_5fmap_2',['dense_map',['../classentt_1_1dense__map.html',1,'entt']]], ['dense_5fmap_3c_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20ro_5frw_5fcontainer_5ftype_20_3e_20_3e_20_3e_3',['dense_map< id_type, ro_rw_container_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, ro_rw_container_type > > >',['../classentt_1_1dense__map.html',1,'entt']]], ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20base_5ftype_20_3e_20_3e_20_3e_20_3e_4',['dense_map< id_type, std::shared_ptr< base_type >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< base_type > > > >',['../classentt_1_1dense__map.html',1,'entt']]], ['dense_5fmap_3c_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20std_3a_3apair_3c_20const_20id_5ftype_2c_20std_3a_3ashared_5fptr_3c_20internal_3a_3agroup_5fdescriptor_20_3e_20_3e_20_3e_20_3e_5',['dense_map< id_type, std::shared_ptr< internal::group_descriptor >, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< std::pair< const id_type, std::shared_ptr< internal::group_descriptor > > > >',['../classentt_1_1dense__map.html',1,'entt']]], - ['dense_5fmap_3c_20typename_20traits_5ftype_3a_3aentity_5ftype_2c_20std_3a_3apair_3c_20entity_5ftype_2c_20entity_5ftype_20_3e_20_3e_6',['dense_map< typename traits_type::entity_type, std::pair< entity_type, entity_type > >',['../classentt_1_1dense__map.html',1,'entt']]], - ['dense_5fset_7',['dense_set',['../classentt_1_1dense__set.html',1,'entt']]], - ['dense_5fset_3c_20id_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20id_5ftype_20_3e_20_3e_8',['dense_set< id_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< id_type > >',['../classentt_1_1dense__set.html',1,'entt']]], - ['directed_5ftag_9',['directed_tag',['../structentt_1_1directed__tag.html',1,'entt']]] + ['dense_5fmap_3c_20id_5ftype_2c_20typename_20loader_3a_3aresult_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_6',['dense_map< id_type, typename Loader::result_type, identity, std::equal_to<>, container_allocator >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20key_5ftype_2c_20mapped_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20container_5fallocator_20_3e_7',['dense_map< key_type, mapped_type, identity, std::equal_to<>, container_allocator >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fmap_3c_20typename_20traits_5ftype_3a_3aentity_5ftype_2c_20std_3a_3apair_3c_20entity_5ftype_2c_20entity_5ftype_20_3e_20_3e_8',['dense_map< typename traits_type::entity_type, std::pair< entity_type, entity_type > >',['../classentt_1_1dense__map.html',1,'entt']]], + ['dense_5fset_9',['dense_set',['../classentt_1_1dense__set.html',1,'entt']]], + ['dense_5fset_3c_20id_5ftype_2c_20identity_2c_20std_3a_3aequal_5fto_3c_3e_2c_20typename_20alloc_5ftraits_3a_3atemplate_20rebind_5falloc_3c_20id_5ftype_20_3e_20_3e_10',['dense_set< id_type, identity, std::equal_to<>, typename alloc_traits::template rebind_alloc< id_type > >',['../classentt_1_1dense__set.html',1,'entt']]], + ['directed_5ftag_11',['directed_tag',['../structentt_1_1directed__tag.html',1,'entt']]] ]; diff --git a/search/classes_4.js b/search/classes_4.js index f970b7cdd..bc6f7cab1 100644 --- a/search/classes_4.js +++ b/search/classes_4.js @@ -2,7 +2,10 @@ var searchData= [ ['emitter_0',['emitter',['../classentt_1_1emitter.html',1,'entt']]], ['entt_5ftraits_1',['entt_traits',['../structentt_1_1entt__traits.html',1,'entt']]], - ['enum_5fas_5fbitmask_2',['enum_as_bitmask',['../structentt_1_1enum__as__bitmask.html',1,'entt']]], - ['enum_5fas_5fbitmask_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28type_3a_3a_5fentt_5fenum_5fas_5fbitmask_29_3e_20_3e_3',['enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >',['../structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html',1,'entt']]], - ['exclude_5ft_4',['exclude_t',['../structentt_1_1exclude__t.html',1,'entt']]] + ['entt_5ftraits_3c_20entity_20_3e_2',['entt_traits< Entity >',['../structentt_1_1entt__traits.html',1,'entt']]], + ['entt_5ftraits_3c_20typename_20registry_3a_3aentity_5ftype_20_3e_3',['entt_traits< typename Registry::entity_type >',['../structentt_1_1entt__traits.html',1,'entt']]], + ['enum_5fas_5fbitmask_4',['enum_as_bitmask',['../structentt_1_1enum__as__bitmask.html',1,'entt']]], + ['enum_5fas_5fbitmask_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28type_3a_3a_5fentt_5fenum_5fas_5fbitmask_29_3e_20_3e_5',['enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >',['../structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html',1,'entt']]], + ['exclude_5ft_6',['exclude_t',['../structentt_1_1exclude__t.html',1,'entt']]], + ['exclude_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_7',['exclude_t< typename Op< Type >::type... >',['../structentt_1_1exclude__t.html',1,'entt']]] ]; diff --git a/search/classes_6.js b/search/classes_6.js index fa586c2f3..852669eb0 100644 --- a/search/classes_6.js +++ b/search/classes_6.js @@ -1,4 +1,5 @@ var searchData= [ - ['get_5ft_0',['get_t',['../structentt_1_1get__t.html',1,'entt']]] + ['get_5ft_0',['get_t',['../structentt_1_1get__t.html',1,'entt']]], + ['get_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_1',['get_t< typename Op< Type >::type... >',['../structentt_1_1get__t.html',1,'entt']]] ]; diff --git a/search/classes_7.js b/search/classes_7.js index 3aa920b39..5a5baefd0 100644 --- a/search/classes_7.js +++ b/search/classes_7.js @@ -5,28 +5,47 @@ var searchData= ['input_5fiterator_5fpointer_2',['input_iterator_pointer',['../structentt_1_1input__iterator__pointer.html',1,'entt']]], ['insertion_5fsort_3',['insertion_sort',['../structentt_1_1insertion__sort.html',1,'entt']]], ['iota_5fiterator_4',['iota_iterator',['../classentt_1_1iota__iterator.html',1,'entt']]], - ['is_5fapplicable_5',['is_applicable',['../structentt_1_1is__applicable.html',1,'entt']]], - ['is_5fapplicable_3c_20func_2c_20const_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_6',['is_applicable< Func, const Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fapplicable_3c_20func_2c_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_7',['is_applicable< Func, Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fapplicable_5fr_8',['is_applicable_r',['../structentt_1_1is__applicable__r.html',1,'entt']]], - ['is_5fapplicable_5fr_3c_20ret_2c_20func_2c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_9',['is_applicable_r< Ret, Func, std::tuple< Args... > >',['../structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fcomplete_10',['is_complete',['../structentt_1_1is__complete.html',1,'entt']]], - ['is_5fcomplete_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_11',['is_complete< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], - ['is_5febco_5feligible_12',['is_ebco_eligible',['../structentt_1_1is__ebco__eligible.html',1,'entt']]], - ['is_5fequality_5fcomparable_13',['is_equality_comparable',['../structentt_1_1is__equality__comparable.html',1,'entt']]], - ['is_5fequality_5fcomparable_3c_20const_20type_20_3e_14',['is_equality_comparable< const Type >',['../structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html',1,'entt']]], - ['is_5fiterator_15',['is_iterator',['../structentt_1_1is__iterator.html',1,'entt']]], - ['is_5fiterator_3c_20type_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5fvoid_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5fpointer_5ft_3c_20type_20_3e_20_3e_20_3e_20_3e_20_3e_16',['is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >',['../structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_17',['is_meta_pointer_like',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20const_20type_20_3e_18',['is_meta_pointer_like< const Type >',['../structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3ashared_5fptr_3c_20type_20_3e_20_3e_19',['is_meta_pointer_like< std::shared_ptr< Type > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3aunique_5fptr_3c_20type_2c_20args_2e_2e_2e_20_3e_20_3e_20',['is_meta_pointer_like< std::unique_ptr< Type, Args... > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_20_2a_20_3e_21',['is_meta_pointer_like< Type * >',['../structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_20_3e_22',['is_meta_pointer_like< Type >',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], - ['is_5fmeta_5fpointer_5flike_3c_20type_28_2a_29_5bn_5d_3e_23',['is_meta_pointer_like< Type(*)[N]>',['../structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html',1,'entt']]], - ['is_5fmeta_5fpolicy_24',['is_meta_policy',['../structentt_1_1is__meta__policy.html',1,'entt']]], - ['is_5ftransparent_25',['is_transparent',['../structentt_1_1is__transparent.html',1,'entt']]], - ['is_5ftransparent_3c_20type_2c_20std_3a_3avoid_5ft_3c_20typename_20type_3a_3ais_5ftransparent_20_3e_20_3e_26',['is_transparent< Type, std::void_t< typename Type::is_transparent > >',['../structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html',1,'entt']]], - ['is_5ftuple_27',['is_tuple',['../structentt_1_1is__tuple.html',1,'entt']]], - ['iterable_5fadaptor_28',['iterable_adaptor',['../structentt_1_1iterable__adaptor.html',1,'entt']]] + ['iota_5fiterator_3c_20vertex_5ftype_20_3e_5',['iota_iterator< vertex_type >',['../classentt_1_1iota__iterator.html',1,'entt']]], + ['is_5fapplicable_6',['is_applicable',['../structentt_1_1is__applicable.html',1,'entt']]], + ['is_5fapplicable_3c_20func_2c_20const_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_7',['is_applicable< Func, const Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fapplicable_3c_20func_2c_20tuple_3c_20args_2e_2e_2e_20_3e_20_3e_8',['is_applicable< Func, Tuple< Args... > >',['../structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fapplicable_5fr_9',['is_applicable_r',['../structentt_1_1is__applicable__r.html',1,'entt']]], + ['is_5fapplicable_5fr_3c_20ret_2c_20func_2c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_10',['is_applicable_r< Ret, Func, std::tuple< Args... > >',['../structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fcomplete_11',['is_complete',['../structentt_1_1is__complete.html',1,'entt']]], + ['is_5fcomplete_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_12',['is_complete< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], + ['is_5febco_5feligible_13',['is_ebco_eligible',['../structentt_1_1is__ebco__eligible.html',1,'entt']]], + ['is_5fequality_5fcomparable_14',['is_equality_comparable',['../structentt_1_1is__equality__comparable.html',1,'entt']]], + ['is_5fequality_5fcomparable_3c_20const_20type_20_3e_15',['is_equality_comparable< const Type >',['../structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html',1,'entt']]], + ['is_5fiterator_16',['is_iterator',['../structentt_1_1is__iterator.html',1,'entt']]], + ['is_5fiterator_3c_20type_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5fvoid_5fv_3c_20std_3a_3aremove_5fcv_5ft_3c_20std_3a_3aremove_5fpointer_5ft_3c_20type_20_3e_20_3e_20_3e_20_3e_20_3e_17',['is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >',['../structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_18',['is_meta_pointer_like',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20const_20type_20_3e_19',['is_meta_pointer_like< const Type >',['../structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3ashared_5fptr_3c_20type_20_3e_20_3e_20',['is_meta_pointer_like< std::shared_ptr< Type > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20std_3a_3aunique_5fptr_3c_20type_2c_20args_2e_2e_2e_20_3e_20_3e_21',['is_meta_pointer_like< std::unique_ptr< Type, Args... > >',['../structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_20_2a_20_3e_22',['is_meta_pointer_like< Type * >',['../structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_20_3e_23',['is_meta_pointer_like< Type >',['../structentt_1_1is__meta__pointer__like.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_28_2a_29_5bn_5d_3e_24',['is_meta_pointer_like< Type(*)[N]>',['../structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html',1,'entt']]], + ['is_5fmeta_5fpointer_5flike_3c_20type_2c_20std_3a_3avoid_5ft_3c_20typename_20type_3a_3ais_5fmeta_5fpointer_5flike_20_3e_20_3e_25',['is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >',['../structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__meta__pointer__like_01_4_01_4.html',1,'entt']]], + ['is_5fmeta_5fpolicy_26',['is_meta_policy',['../structentt_1_1is__meta__policy.html',1,'entt']]], + ['is_5ftransparent_27',['is_transparent',['../structentt_1_1is__transparent.html',1,'entt']]], + ['is_5ftransparent_3c_20type_2c_20std_3a_3avoid_5ft_3c_20typename_20type_3a_3ais_5ftransparent_20_3e_20_3e_28',['is_transparent< Type, std::void_t< typename Type::is_transparent > >',['../structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html',1,'entt']]], + ['is_5ftuple_29',['is_tuple',['../structentt_1_1is__tuple.html',1,'entt']]], + ['is_5ftuple_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_30',['is_tuple< std::tuple< Args... > >',['../structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['iterable_5fadaptor_31',['iterable_adaptor',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fgroup_5fiterator_3c_20iterator_2c_20owned_5ft_3c_20owned_2e_2e_2e_20_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_20_3e_20_3e_32',['iterable_adaptor< internal::extended_group_iterator< iterator, owned_t< Owned... >, get_t< Get... > > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fgroup_5fiterator_3c_20iterator_2c_20owned_5ft_3c_3e_2c_20get_5ft_3c_20get_2e_2e_2e_20_3e_20_3e_20_3e_33',['iterable_adaptor< internal::extended_group_iterator< iterator, owned_t<>, get_t< Get... > > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5fiterator_20_3e_20_3e_34',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5fiterator_2c_20const_5fiterator_20_3e_20_3e_35',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator, const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5freverse_5fiterator_20_3e_20_3e_36',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aconst_5freverse_5fiterator_2c_20const_5freverse_5fiterator_20_3e_20_3e_37',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator, const_reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aiterator_20_3e_20_3e_38',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3aiterator_2c_20iterator_20_3e_20_3e_39',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator, iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3areverse_5fiterator_20_3e_20_3e_40',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fstorage_5fiterator_3c_20typename_20base_5ftype_3a_3areverse_5fiterator_2c_20reverse_5fiterator_20_3e_20_3e_41',['iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator, reverse_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aextended_5fview_5fiterator_3c_20iterator_2c_20get_2e_2e_2e_20_3e_20_3e_42',['iterable_adaptor< internal::extended_view_iterator< iterator, Get... > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3ahandle_5fstorage_5fiterator_3c_20typename_20decltype_28std_3a_3adeclval_3c_20registry_5ftype_20_3e_28_29_2estorage_28_29_29_3a_3aiterator_20_3e_20_3e_43',['iterable_adaptor< internal::handle_storage_iterator< typename decltype(std::declval< registry_type >().storage())::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3ameta_5frange_5fiterator_3c_20type_2c_20it_20_3e_20_3e_44',['iterable_adaptor< internal::meta_range_iterator< Type, It > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aregistry_5fstorage_5fiterator_3c_20typename_20pool_5fcontainer_5ftype_3a_3aconst_5fiterator_20_3e_20_3e_45',['iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::const_iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20internal_3a_3aregistry_5fstorage_5fiterator_3c_20typename_20pool_5fcontainer_5ftype_3a_3aiterator_20_3e_20_3e_46',['iterable_adaptor< internal::registry_storage_iterator< typename pool_container_type::iterator > >',['../structentt_1_1iterable__adaptor.html',1,'entt']]], + ['iterable_5fadaptor_3c_20typename_20task_5fcontainer_5ftype_3a_3aconst_5fiterator_20_3e_47',['iterable_adaptor< typename task_container_type::const_iterator >',['../structentt_1_1iterable__adaptor.html',1,'entt']]] ]; diff --git a/search/classes_9.js b/search/classes_9.js index 79adc0269..90752a64b 100644 --- a/search/classes_9.js +++ b/search/classes_9.js @@ -1,17 +1,17 @@ var searchData= [ - ['matcher_0',['matcher',['../structentt_1_1matcher.html',1,'entt']]], - ['member_5fclass_1',['member_class',['../classentt_1_1member__class.html',1,'entt']]], - ['meta_5fany_2',['meta_any',['../classentt_1_1meta__any.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_3',['meta_associative_container',['../classentt_1_1meta__associative__container.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_4',['meta_associative_container_traits',['../structentt_1_1meta__associative__container__traits.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_5',['meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_6',['meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_7',['meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_8',['meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_9',['meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_10',['meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fclass_5ftemplate_5ftag_11',['meta_class_template_tag',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], + ['member_5fclass_0',['member_class',['../classentt_1_1member__class.html',1,'entt']]], + ['meta_5fany_1',['meta_any',['../classentt_1_1meta__any.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_2',['meta_associative_container',['../classentt_1_1meta__associative__container.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3',['meta_associative_container_traits',['../structentt_1_1meta__associative__container__traits.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_4',['meta_associative_container_traits< dense_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20dense_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_5',['meta_associative_container_traits< dense_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3amap_3c_20args_2e_2e_2e_20_3e_20_3e_6',['meta_associative_container_traits< std::map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aset_3c_20args_2e_2e_2e_20_3e_20_3e_7',['meta_associative_container_traits< std::set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fmap_3c_20args_2e_2e_2e_20_3e_20_3e_8',['meta_associative_container_traits< std::unordered_map< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fassociative_5fcontainer_5ftraits_3c_20std_3a_3aunordered_5fset_3c_20args_2e_2e_2e_20_3e_20_3e_9',['meta_associative_container_traits< std::unordered_set< Args... > >',['../structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fclass_5ftemplate_5ftag_10',['meta_class_template_tag',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], + ['meta_5fclass_5ftemplate_5ftag_3c_20clazz_20_3e_11',['meta_class_template_tag< Clazz >',['../structentt_1_1meta__class__template__tag.html',1,'entt']]], ['meta_5fctx_12',['meta_ctx',['../classentt_1_1meta__ctx.html',1,'entt']]], ['meta_5fctx_5farg_5ft_13',['meta_ctx_arg_t',['../classentt_1_1meta__ctx__arg__t.html',1,'entt']]], ['meta_5fcustom_14',['meta_custom',['../structentt_1_1meta__custom.html',1,'entt']]], @@ -32,15 +32,14 @@ var searchData= ['meta_5ffunction_5fdescriptor_5ftraits_3c_20ret_2c_20type_5flist_3c_3e_2c_20true_2c_20false_20_3e_29',['meta_function_descriptor_traits< Ret, type_list<>, true, false >',['../structentt_1_1meta__function__descriptor__traits.html',1,'entt']]], ['meta_5ffunction_5fhelper_30',['meta_function_helper',['../classentt_1_1meta__function__helper.html',1,'entt']]], ['meta_5fhandle_31',['meta_handle',['../structentt_1_1meta__handle.html',1,'entt']]], - ['meta_5fprop_32',['meta_prop',['../structentt_1_1meta__prop.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_33',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_34',['meta_sequence_container_traits',['../structentt_1_1meta__sequence__container__traits.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_35',['meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_36',['meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_37',['meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_38',['meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5ftemplate_5ftraits_39',['meta_template_traits',['../structentt_1_1meta__template__traits.html',1,'entt']]], - ['meta_5ftemplate_5ftraits_3c_20clazz_3c_20args_2e_2e_2e_20_3e_20_3e_40',['meta_template_traits< Clazz< Args... > >',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], - ['meta_5ftype_41',['meta_type',['../classentt_1_1meta__type.html',1,'entt']]], - ['monostate_42',['monostate',['../structentt_1_1monostate.html',1,'entt']]] + ['meta_5fsequence_5fcontainer_32',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_33',['meta_sequence_container_traits',['../structentt_1_1meta__sequence__container__traits.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3aarray_3c_20type_2c_20n_20_3e_20_3e_34',['meta_sequence_container_traits< std::array< Type, N > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3adeque_3c_20args_2e_2e_2e_20_3e_20_3e_35',['meta_sequence_container_traits< std::deque< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3alist_3c_20args_2e_2e_2e_20_3e_20_3e_36',['meta_sequence_container_traits< std::list< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5fsequence_5fcontainer_5ftraits_3c_20std_3a_3avector_3c_20args_2e_2e_2e_20_3e_20_3e_37',['meta_sequence_container_traits< std::vector< Args... > >',['../structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5ftemplate_5ftraits_38',['meta_template_traits',['../structentt_1_1meta__template__traits.html',1,'entt']]], + ['meta_5ftemplate_5ftraits_3c_20clazz_3c_20args_2e_2e_2e_20_3e_20_3e_39',['meta_template_traits< Clazz< Args... > >',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html',1,'entt']]], + ['meta_5ftype_40',['meta_type',['../classentt_1_1meta__type.html',1,'entt']]], + ['monostate_41',['monostate',['../structentt_1_1monostate.html',1,'entt']]] ]; diff --git a/search/classes_b.js b/search/classes_b.js index 053e26883..e645923bc 100644 --- a/search/classes_b.js +++ b/search/classes_b.js @@ -1,5 +1,6 @@ var searchData= [ ['overloaded_0',['overloaded',['../structentt_1_1overloaded.html',1,'entt']]], - ['owned_5ft_1',['owned_t',['../structentt_1_1owned__t.html',1,'entt']]] + ['owned_5ft_1',['owned_t',['../structentt_1_1owned__t.html',1,'entt']]], + ['owned_5ft_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_2',['owned_t< typename Op< Type >::type... >',['../structentt_1_1owned__t.html',1,'entt']]] ]; diff --git a/search/classes_e.js b/search/classes_e.js index d997c8a5a..2cf4054af 100644 --- a/search/classes_e.js +++ b/search/classes_e.js @@ -2,17 +2,15 @@ var searchData= [ ['scoped_5fconnection_0',['scoped_connection',['../structentt_1_1scoped__connection.html',1,'entt']]], ['sigh_1',['sigh',['../classentt_1_1sigh.html',1,'entt']]], - ['sigh_3c_20ret_28args_2e_2e_2e_29_2c_20allocator_20_3e_2',['sigh< Ret(Args...), Allocator >',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html',1,'entt']]], - ['sigh_3c_20void_28owner_5ftype_20_26_2c_20const_20typename_20underlying_5ftype_3a_3aentity_5ftype_29_2c_20typename_20underlying_5ftype_3a_3aallocator_5ftype_20_3e_3',['sigh< void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type >',['../classentt_1_1sigh.html',1,'entt']]], - ['sigh_5fhelper_4',['sigh_helper',['../structentt_1_1sigh__helper.html',1,'entt']]], - ['sigh_5fhelper_3c_20registry_20_3e_5',['sigh_helper< Registry >',['../structentt_1_1sigh__helper_3_01Registry_01_4.html',1,'entt']]], - ['sigh_5fhelper_3c_20registry_2c_20type_20_3e_6',['sigh_helper< Registry, Type >',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html',1,'entt']]], - ['sink_7',['sink',['../classentt_1_1sink.html',1,'entt']]], - ['sink_3c_20sigh_3c_20ret_28args_2e_2e_2e_29_2c_20allocator_20_3e_20_3e_8',['sink< sigh< Ret(Args...), Allocator > >',['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html',1,'entt']]], - ['size_5fof_9',['size_of',['../structentt_1_1size__of.html',1,'entt']]], - ['size_5fof_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_10',['size_of< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], - ['std_5fsort_11',['std_sort',['../structentt_1_1std__sort.html',1,'entt']]], - ['storage_5ffor_12',['storage_for',['../structentt_1_1storage__for.html',1,'entt']]], - ['storage_5ftype_13',['storage_type',['../structentt_1_1storage__type.html',1,'entt']]], - ['storage_5ftype_3c_20reactive_2c_20entity_2c_20allocator_20_3e_14',['storage_type< reactive, Entity, Allocator >',['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html',1,'entt']]] + ['sigh_3c_20void_28owner_5ftype_20_26_2c_20const_20typename_20underlying_5ftype_3a_3aentity_5ftype_29_2c_20typename_20underlying_5ftype_3a_3aallocator_5ftype_20_3e_2',['sigh< void(owner_type &, const typename underlying_type::entity_type), typename underlying_type::allocator_type >',['../classentt_1_1sigh.html',1,'entt']]], + ['sigh_5fhelper_3',['sigh_helper',['../structentt_1_1sigh__helper.html',1,'entt']]], + ['sigh_5fhelper_3c_20registry_20_3e_4',['sigh_helper< Registry >',['../structentt_1_1sigh__helper_3_01Registry_01_4.html',1,'entt']]], + ['sigh_5fhelper_3c_20registry_2c_20type_20_3e_5',['sigh_helper< Registry, Type >',['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html',1,'entt']]], + ['sink_6',['sink',['../classentt_1_1sink.html',1,'entt']]], + ['size_5fof_7',['size_of',['../structentt_1_1size__of.html',1,'entt']]], + ['size_5fof_3c_20type_2c_20std_3a_3avoid_5ft_3c_20decltype_28sizeof_28type_29_29_3e_20_3e_8',['size_of< Type, std::void_t< decltype(sizeof(Type))> >',['../structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html',1,'entt']]], + ['std_5fsort_9',['std_sort',['../structentt_1_1std__sort.html',1,'entt']]], + ['storage_5ffor_10',['storage_for',['../structentt_1_1storage__for.html',1,'entt']]], + ['storage_5ftype_11',['storage_type',['../structentt_1_1storage__type.html',1,'entt']]], + ['storage_5ftype_3c_20reactive_2c_20entity_2c_20allocator_20_3e_12',['storage_type< reactive, Entity, Allocator >',['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html',1,'entt']]] ]; diff --git a/search/classes_f.js b/search/classes_f.js index a199d0662..040784891 100644 --- a/search/classes_f.js +++ b/search/classes_f.js @@ -12,29 +12,32 @@ var searchData= ['type_5findex_9',['type_index',['../structentt_1_1type__index.html',1,'entt']]], ['type_5finfo_10',['type_info',['../structentt_1_1type__info.html',1,'entt']]], ['type_5flist_11',['type_list',['../structentt_1_1type__list.html',1,'entt']]], - ['type_5flist_3c_20type_2e_2e_2e_20_3e_12',['type_list< Type... >',['../structentt_1_1type__list.html',1,'entt']]], - ['type_5flist_5fcat_13',['type_list_cat',['../structentt_1_1type__list__cat.html',1,'entt']]], - ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_14',['type_list_cat< type_list< Type... > >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_15',['type_list_cat< type_list< Type... >, type_list< Other... >, List... >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], - ['type_5flist_5fcat_3c_3e_16',['type_list_cat<>',['../structentt_1_1type__list__cat_3_4.html',1,'entt']]], - ['type_5flist_5fcontains_17',['type_list_contains',['../structentt_1_1type__list__contains.html',1,'entt']]], - ['type_5flist_5fcontains_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20other_20_3e_18',['type_list_contains< type_list< Type... >, Other >',['../structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], - ['type_5flist_5fdiff_19',['type_list_diff',['../structentt_1_1type__list__diff.html',1,'entt']]], - ['type_5flist_5fdiff_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_20',['type_list_diff< type_list< Type... >, type_list< Other... > >',['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5felement_21',['type_list_element',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_200u_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_22',['type_list_element< 0u, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_20_2d_201u_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_23',['type_list_element< Index - 1u, type_list< Other... > >',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_24',['type_list_element< Index, entt::type_list< Type... > >',['../structentt_1_1type__list__element.html',1,'entt']]], - ['type_5flist_5felement_3c_20index_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_25',['type_list_element< Index, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_26',['type_list_index',['../structentt_1_1type__list__index.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_27',['type_list_index< Type, type_list< First, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20type_2c_20other_2e_2e_2e_20_3e_20_3e_28',['type_list_index< Type, type_list< Type, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], - ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_3e_20_3e_29',['type_list_index< Type, type_list<> >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_30',['type_list_transform',['../structentt_1_1type__list__transform.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20exclude_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_31',['type_list_transform< exclude_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20get_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_32',['type_list_transform< get_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20owned_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_33',['type_list_transform< owned_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5ftransform_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_34',['type_list_transform< type_list< Type... >, Op >',['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], - ['type_5flist_5funique_35',['type_list_unique',['../structentt_1_1type__list__unique.html',1,'entt']]], - ['type_5fname_36',['type_name',['../structentt_1_1type__name.html',1,'entt']]] + ['type_5flist_3c_20args_2e_2e_2e_20_3e_12',['type_list< Args... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_20type_2e_2e_2e_20_3e_13',['type_list< Type... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_20typename_20op_3c_20type_20_3e_3a_3atype_2e_2e_2e_20_3e_14',['type_list< typename Op< Type >::type... >',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_3c_3e_15',['type_list<>',['../structentt_1_1type__list.html',1,'entt']]], + ['type_5flist_5fcat_16',['type_list_cat',['../structentt_1_1type__list__cat.html',1,'entt']]], + ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_17',['type_list_cat< type_list< Type... > >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5fcat_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_2c_20list_2e_2e_2e_20_3e_18',['type_list_cat< type_list< Type... >, type_list< Other... >, List... >',['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html',1,'entt']]], + ['type_5flist_5fcat_3c_3e_19',['type_list_cat<>',['../structentt_1_1type__list__cat_3_4.html',1,'entt']]], + ['type_5flist_5fcontains_20',['type_list_contains',['../structentt_1_1type__list__contains.html',1,'entt']]], + ['type_5flist_5fcontains_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20other_20_3e_21',['type_list_contains< type_list< Type... >, Other >',['../structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html',1,'entt']]], + ['type_5flist_5fdiff_22',['type_list_diff',['../structentt_1_1type__list__diff.html',1,'entt']]], + ['type_5flist_5fdiff_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_23',['type_list_diff< type_list< Type... >, type_list< Other... > >',['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5felement_24',['type_list_element',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_200u_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_25',['type_list_element< 0u, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_20_2d_201u_2c_20type_5flist_3c_20other_2e_2e_2e_20_3e_20_3e_26',['type_list_element< Index - 1u, type_list< Other... > >',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_2c_20entt_3a_3atype_5flist_3c_20type_2e_2e_2e_20_3e_20_3e_27',['type_list_element< Index, entt::type_list< Type... > >',['../structentt_1_1type__list__element.html',1,'entt']]], + ['type_5flist_5felement_3c_20index_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_28',['type_list_element< Index, type_list< First, Other... > >',['../structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_29',['type_list_index',['../structentt_1_1type__list__index.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20first_2c_20other_2e_2e_2e_20_3e_20_3e_30',['type_list_index< Type, type_list< First, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_20type_2c_20other_2e_2e_2e_20_3e_20_3e_31',['type_list_index< Type, type_list< Type, Other... > >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html',1,'entt']]], + ['type_5flist_5findex_3c_20type_2c_20type_5flist_3c_3e_20_3e_32',['type_list_index< Type, type_list<> >',['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_33',['type_list_transform',['../structentt_1_1type__list__transform.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20exclude_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_34',['type_list_transform< exclude_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20get_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_35',['type_list_transform< get_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20owned_5ft_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_36',['type_list_transform< owned_t< Type... >, Op >',['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5ftransform_3c_20type_5flist_3c_20type_2e_2e_2e_20_3e_2c_20op_20_3e_37',['type_list_transform< type_list< Type... >, Op >',['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html',1,'entt']]], + ['type_5flist_5funique_38',['type_list_unique',['../structentt_1_1type__list__unique.html',1,'entt']]], + ['type_5fname_39',['type_name',['../structentt_1_1type__name.html',1,'entt']]] ]; diff --git a/search/enums_0.js b/search/enums_0.js index c7be4a206..9e8a9eec4 100644 --- a/search/enums_0.js +++ b/search/enums_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['any_5fpolicy_0',['any_policy',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt']]] + ['any_5fpolicy_0',['any_policy',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt::any_policy'],['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549',1,'entt::any_policy']]] ]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js index e0f44a8bd..7955eb529 100644 --- a/search/enumvalues_1.js +++ b/search/enumvalues_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['in_5fplace_0',['in_place',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581aa49f99ae99ae9daddd1fb79b73d2db28',1,'entt']]] + ['dynamic_0',['dynamic',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549ab72f3bd391ba731a35708bfd8cd8a68f',1,'entt']]] ]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js index 7e34b7b39..232ddd2ca 100644 --- a/search/enumvalues_2.js +++ b/search/enumvalues_2.js @@ -1,4 +1,5 @@ var searchData= [ - ['owner_0',['owner',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a72122ce96bfec66e2396d2e25225d70a',1,'entt']]] + ['embedded_0',['embedded',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a605abe26d014c72e3df9deb267e73756',1,'entt']]], + ['empty_1',['empty',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549aa2e4822a98337283e39f7b60acf85ec9',1,'entt']]] ]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js index c29c90a02..e0f44a8bd 100644 --- a/search/enumvalues_3.js +++ b/search/enumvalues_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['ref_0',['ref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a18389a4a9ad5795744699cff0ba66c15',1,'entt']]] + ['in_5fplace_0',['in_place',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581aa49f99ae99ae9daddd1fb79b73d2db28',1,'entt']]] ]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js index 44effdbd5..c29c90a02 100644 --- a/search/enumvalues_4.js +++ b/search/enumvalues_4.js @@ -1,5 +1,4 @@ var searchData= [ - ['swap_5fand_5fpop_0',['swap_and_pop',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a8223d1ccb16b6dd0b19fe9c6fdb13708',1,'entt']]], - ['swap_5fonly_1',['swap_only',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a62044f8c7b1568e4536403704282322b',1,'entt']]] + ['ref_0',['ref',['../namespaceentt.html#add777bc22ff30abfbf52abd37d4e1549a18389a4a9ad5795744699cff0ba66c15',1,'entt']]] ]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 000000000..44effdbd5 --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['swap_5fand_5fpop_0',['swap_and_pop',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a8223d1ccb16b6dd0b19fe9c6fdb13708',1,'entt']]], + ['swap_5fonly_1',['swap_only',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581a62044f8c7b1568e4536403704282322b',1,'entt']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 000000000..6776636a7 --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unspecified_0',['unspecified',['../namespaceentt.html#abc4d0fa77fae26e7c01793990996c581ad415f0e30c471dfdd9bc4f827329ef48',1,'entt']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js index 34d81be8c..ff2848c42 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -1,32 +1,31 @@ var searchData= [ - ['back_0',['back',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ad23be7c83702338af05db3fd851a4a1b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3a32cd6d22bd3a4a5e1b99a13da02ad1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__common__view.html#a6b0517d50e658cec5c259d0cf1cad8d7',1,'entt::basic_common_view::back()'],['../classentt_1_1basic__storage__view.html#a2ab99ba76cfc6d6e68eb39819bdbd960',1,'entt::basic_storage_view::back()']]], - ['base_1',['base',['../classentt_1_1meta__factory.html#a00634c7e4c152c9b47a1bff286fffb94',1,'entt::meta_factory::base()'],['../classentt_1_1meta__type.html#ab18bae88d915e2a5dd3890f91777e712',1,'entt::meta_type::base()']]], - ['basic_5fany_2',['basic_any',['../classentt_1_1basic__any.html#a164cd19f4369e7c010f4581971ae2c9c',1,'entt::basic_any::basic_any() noexcept'],['../classentt_1_1basic__any.html#a3a84c837c69ab23b08a535ab79f7eefa',1,'entt::basic_any::basic_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__any.html#afb1d00c509ae9127faa1cc2a5887bdab',1,'entt::basic_any::basic_any(Type &&value)'],['../classentt_1_1basic__any.html#a3196700b32252e5b59a79994b907afda',1,'entt::basic_any::basic_any(const basic_any &other)'],['../classentt_1_1basic__any.html#aa335df93ca9c2ba89efd9664f9e66609',1,'entt::basic_any::basic_any(basic_any &&other) noexcept']]], + ['back_0',['back',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ad23be7c83702338af05db3fd851a4a1b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3a32cd6d22bd3a4a5e1b99a13da02ad1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::back()'],['../classentt_1_1basic__common__view.html#a63c2d833d41810b5a5b28ecf653dc056',1,'entt::basic_common_view::back()'],['../classentt_1_1basic__storage__view.html#a2ab99ba76cfc6d6e68eb39819bdbd960',1,'entt::basic_storage_view::back()']]], + ['base_1',['base',['../classentt_1_1meta__factory.html#a00634c7e4c152c9b47a1bff286fffb94',1,'entt::meta_factory::base()'],['../classentt_1_1meta__any.html#a64583a70475eae75c17c05670be1083b',1,'entt::meta_any::base()'],['../classentt_1_1meta__type.html#ab18bae88d915e2a5dd3890f91777e712',1,'entt::meta_type::base()']]], + ['basic_5fany_2',['basic_any',['../classentt_1_1basic__any.html#a164cd19f4369e7c010f4581971ae2c9c',1,'entt::basic_any::basic_any() noexcept'],['../classentt_1_1basic__any.html#a3a84c837c69ab23b08a535ab79f7eefa',1,'entt::basic_any::basic_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__any.html#aa73a486cc548eb0625807c6e4c43fe8c',1,'entt::basic_any::basic_any(std::in_place_t, Type *value)'],['../classentt_1_1basic__any.html#afb1d00c509ae9127faa1cc2a5887bdab',1,'entt::basic_any::basic_any(Type &&value)'],['../classentt_1_1basic__any.html#a3196700b32252e5b59a79994b907afda',1,'entt::basic_any::basic_any(const basic_any &other)'],['../classentt_1_1basic__any.html#aa335df93ca9c2ba89efd9664f9e66609',1,'entt::basic_any::basic_any(basic_any &&other) noexcept']]], ['basic_5fcontinuous_5floader_3',['basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html#a4546c59ad6f12d4c071e99215790873f',1,'entt::basic_continuous_loader::basic_continuous_loader(registry_type &source) noexcept'],['../classentt_1_1basic__continuous__loader.html#a251ef8adbb329c667b5fe1857bac0078',1,'entt::basic_continuous_loader::basic_continuous_loader(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#a5e29f22ee49b992ea16d352d3f1041d9',1,'entt::basic_continuous_loader::basic_continuous_loader(basic_continuous_loader &&) noexcept=default']]], ['basic_5fdispatcher_4',['basic_dispatcher',['../classentt_1_1basic__dispatcher.html#ad479b016e5261d80b30c25a540cc4fbd',1,'entt::basic_dispatcher::basic_dispatcher()'],['../classentt_1_1basic__dispatcher.html#ad9f651ee2a41ecf134790e203d4f3654',1,'entt::basic_dispatcher::basic_dispatcher(const allocator_type &allocator)'],['../classentt_1_1basic__dispatcher.html#aa8ea67b22aed27899dcba5c9d27ddbbb',1,'entt::basic_dispatcher::basic_dispatcher(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#a942a4de622068676062ee1e47e9ef275',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a30ee1d0e53506ccde1d3f5411411380c',1,'entt::basic_dispatcher::basic_dispatcher(basic_dispatcher &&other, const allocator_type &allocator)']]], ['basic_5fflow_5',['basic_flow',['../classentt_1_1basic__flow.html#aca29e5858a6863940a79eba950791eaf',1,'entt::basic_flow::basic_flow()'],['../classentt_1_1basic__flow.html#a51a89fc2a993298d4a95f7b01381d094',1,'entt::basic_flow::basic_flow(const allocator_type &allocator)'],['../classentt_1_1basic__flow.html#afe89940ee2068832234ab76baa26d192',1,'entt::basic_flow::basic_flow(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#acf8c4ee6fd75933eb7f1a6deae169c00',1,'entt::basic_flow::basic_flow(const basic_flow &other, const allocator_type &allocator)'],['../classentt_1_1basic__flow.html#a77e9b92d33be504cca952abca68f8611',1,'entt::basic_flow::basic_flow(basic_flow &&) noexcept=default'],['../classentt_1_1basic__flow.html#a7ade1aff980a5d137cdb746976702b40',1,'entt::basic_flow::basic_flow(basic_flow &&other, const allocator_type &allocator)']]], ['basic_5fgroup_6',['basic_group',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#af0007b6e275808ca8037551a4133a0b8',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::basic_group() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a2048d3e38b1ef64777a701d4a9e1a92d',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::basic_group(handler &ref) noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a181467a35167330707fbe2ad94a60e57',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::basic_group() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a891037fd8c4d3d4eb6dca94ebbd0ab74',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::basic_group(handler &ref) noexcept']]], ['basic_5fhandle_7',['basic_handle',['../classentt_1_1basic__handle.html#a626e946763abe4c6471f8a367e6be42e',1,'entt::basic_handle::basic_handle() noexcept'],['../classentt_1_1basic__handle.html#a76c7232a30b5cee98b05409c8ef10727',1,'entt::basic_handle::basic_handle(registry_type &ref, entity_type value) noexcept']]], ['basic_5fhashed_5fstring_8',['basic_hashed_string',['../classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595',1,'entt::basic_hashed_string::basic_hashed_string() noexcept'],['../classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e',1,'entt::basic_hashed_string::basic_hashed_string(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd',1,'entt::basic_hashed_string::basic_hashed_string(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0',1,'entt::basic_hashed_string::basic_hashed_string(const_wrapper wrapper) noexcept'],['../namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9',1,'entt::basic_hashed_string(const Char *str, std::size_t len) -> basic_hashed_string< Char >'],['../namespaceentt.html#aaa97361ef962166a4fc51a582d7c6392',1,'entt::basic_hashed_string(const Char(&str)[N]) -> basic_hashed_string< Char >']]], - ['basic_5fobserver_9',['basic_observer',['../classentt_1_1basic__observer.html#a31dba068369fa37f15ff120d6cdbdec1',1,'entt::basic_observer::basic_observer()'],['../classentt_1_1basic__observer.html#a604a9b0d192dd468d2c019ebc92bd17a',1,'entt::basic_observer::basic_observer(const allocator_type &allocator)'],['../classentt_1_1basic__observer.html#ac047f4c16a0c8aa180fdb78ed7889db2',1,'entt::basic_observer::basic_observer(const basic_observer &)=delete'],['../classentt_1_1basic__observer.html#a70e4dd096aa7aa8d27a7ba8e4b26ef5a',1,'entt::basic_observer::basic_observer(basic_observer &&)=delete'],['../classentt_1_1basic__observer.html#ad96408e8956a3457cd15d8d97708801f',1,'entt::basic_observer::basic_observer(registry_type &reg, basic_collector< Matcher... >, const allocator_type &allocator=allocator_type{})']]], - ['basic_5fpoly_10',['basic_poly',['../classentt_1_1basic__poly.html#af1ee3622b7b01d9934dd903f54846e44',1,'entt::basic_poly::basic_poly() noexcept=default'],['../classentt_1_1basic__poly.html#aed074839fc14e757f761d89606895062',1,'entt::basic_poly::basic_poly(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__poly.html#aa587d96479005de4cd19047a7c76cf94',1,'entt::basic_poly::basic_poly(Type &&value) noexcept']]], - ['basic_5freactive_5fmixin_11',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a5f95e4f7cf9cfaf3a169db75dc0c147b',1,'entt::basic_reactive_mixin::basic_reactive_mixin()'],['../classentt_1_1basic__reactive__mixin.html#a24156d6ae47d5b777b6be8a9ba7aa99f',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__reactive__mixin.html#aca2d1ec327b157a1a7f41c7935a98832',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a3a0067a81152d2bfbec2723e0664461a',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#a8327edcef07c577a904fee0ef5f7a64e',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other, const allocator_type &allocator)']]], - ['basic_5fregistry_12',['basic_registry',['../classentt_1_1basic__registry.html#afb2496f183300f9f9b7ae24617df0a3c',1,'entt::basic_registry::basic_registry()'],['../classentt_1_1basic__registry.html#ab66e63c6c5398d5a0c9fc40d2fe8201f',1,'entt::basic_registry::basic_registry(const allocator_type &allocator)'],['../classentt_1_1basic__registry.html#a1b6c762063ff48a0f4ca8efa063ebd53',1,'entt::basic_registry::basic_registry(const size_type count, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1basic__registry.html#af096d2149b6cc869875319aa22066e69',1,'entt::basic_registry::basic_registry(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#ac5cfdf43791119f4ab2d6976bec62644',1,'entt::basic_registry::basic_registry(basic_registry &&other) noexcept']]], - ['basic_5fruntime_5fview_13',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a14c8cb432c8ddbf865f79d2765f02400',1,'entt::basic_runtime_view::basic_runtime_view() noexcept'],['../classentt_1_1basic__runtime__view.html#a262d2b09f30d57e67a6e8028c016b637',1,'entt::basic_runtime_view::basic_runtime_view(const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#a0f89fdc9d23992e1c86c3306ad012292',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#ad96d2f1aaa57c82c9330e8f64f0e83fb',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &other, const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#afef04d25b27c5226bb2b0bbf073501cf',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__runtime__view.html#ae977102b64bd4eff2e1c903bddf58492',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&other, const allocator_type &allocator)']]], - ['basic_5fscheduler_14',['basic_scheduler',['../classentt_1_1basic__scheduler.html#a3c15133d781d3d2671ff64d4281d8d62',1,'entt::basic_scheduler::basic_scheduler()'],['../classentt_1_1basic__scheduler.html#a730077cba34cf06999080b542e940a2e',1,'entt::basic_scheduler::basic_scheduler(const allocator_type &allocator)'],['../classentt_1_1basic__scheduler.html#a0bebce4f1b2c70862171a2a0785ef74c',1,'entt::basic_scheduler::basic_scheduler(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a4c3323d871e3654e61afb80a4f05a3da',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other) noexcept'],['../classentt_1_1basic__scheduler.html#ab39ad210a5b331208057c7894510c2b0',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other, const allocator_type &allocator)']]], - ['basic_5fsigh_5fmixin_15',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a6374b697a080abbbc826161799dad699',1,'entt::basic_sigh_mixin::basic_sigh_mixin()'],['../classentt_1_1basic__sigh__mixin.html#a5e37835efeb7a49d40155e392722418a',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__sigh__mixin.html#a8d78fa2f9dd8a7489a7306b75366e6bf',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a8924ad4c2e88eb1fd15ab585ca7505a8',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__sigh__mixin.html#ab367b15994cddc48d7cd1e34c419beb4',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)']]], - ['basic_5fsnapshot_16',['basic_snapshot',['../classentt_1_1basic__snapshot.html#a04da73375c3f546f52852aa174a2ab06',1,'entt::basic_snapshot::basic_snapshot(const registry_type &source) noexcept'],['../classentt_1_1basic__snapshot.html#a66159be5a4f741e09369831ac59c771a',1,'entt::basic_snapshot::basic_snapshot(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#ae8d0d610dad9fc00c73c167dc46cba8f',1,'entt::basic_snapshot::basic_snapshot(basic_snapshot &&) noexcept=default']]], - ['basic_5fsnapshot_5floader_17',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a1a3aa9874823320812d8c75336942623',1,'entt::basic_snapshot_loader::basic_snapshot_loader(registry_type &source) noexcept'],['../classentt_1_1basic__snapshot__loader.html#aea03a64bc66d5cb98206c7d15f623f1c',1,'entt::basic_snapshot_loader::basic_snapshot_loader(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#a6f975e36c5ae7e84bedf315201e4e763',1,'entt::basic_snapshot_loader::basic_snapshot_loader(basic_snapshot_loader &&) noexcept=default']]], - ['basic_5fsparse_5fset_18',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html#afc504894fc2c20ea25b7fc2864bd22e3',1,'entt::basic_sparse_set::basic_sparse_set()'],['../classentt_1_1basic__sparse__set.html#a1b636566df9e6f3f36ff62d2bdde8d10',1,'entt::basic_sparse_set::basic_sparse_set(const allocator_type &allocator)'],['../classentt_1_1basic__sparse__set.html#a8e264ab5a7e2d97a204004d25b14238b',1,'entt::basic_sparse_set::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#af5d35aae661fb35e485ac733969c84d9',1,'entt::basic_sparse_set::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#acfbfbfe9f6967ff54f06c210d787f4ad',1,'entt::basic_sparse_set::basic_sparse_set(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#aaf4d881833f592ed21079e2a0fac8d2a',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__sparse__set.html#a9d6e25d1435a6216c60b42babd64085d',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)']]], - ['basic_5fstorage_19',['basic_storage',['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a029f21d7a8e7079d1ebf8fd4702250ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a4c8eca7aeb2d1d79980435e696cae6d2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0040a7517f4b2fb8c72421ddf39a9a01',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a1dbb2e1f40fa624895487a02e1d7ea48',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#af4f97281e841017fdc7dfc9af865e252',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ae1fe4f9b3f5321de7fa8edf19e94a5e3',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aad3d273e33e1c75d3ff90335c00052f2',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ad670050bddfa74b9c0a9e4ba2204268f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abe7bd428f703bfc2d315ef2452efc267',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a856e9e651a4dd6ae412ccdf45e8548d0',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)']]], - ['basic_5ftable_20',['basic_table',['../classentt_1_1basic__table.html#a6abef9631c552b00a7520bf7e9070f29',1,'entt::basic_table::basic_table()'],['../classentt_1_1basic__table.html#abc9122218646b7cd2a95fd0b342314e7',1,'entt::basic_table::basic_table(const Container &...container) noexcept'],['../classentt_1_1basic__table.html#ac0c37dff3d1ec2acbd012b66d1d562d5',1,'entt::basic_table::basic_table(Container &&...container) noexcept'],['../classentt_1_1basic__table.html#aa0f55f4fe0d47a9cbdea81d2b840cf26',1,'entt::basic_table::basic_table(const basic_table &)=delete'],['../classentt_1_1basic__table.html#ab985a1bccf6912a22b44175cbf3c0f6a',1,'entt::basic_table::basic_table(basic_table &&other) noexcept'],['../classentt_1_1basic__table.html#abea3cade520307e7f85409f56dac234a',1,'entt::basic_table::basic_table(const Allocator &allocator)'],['../classentt_1_1basic__table.html#a8b314b853f72c53c42ef59d5d5fe1022',1,'entt::basic_table::basic_table(const Container &...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a9ad461d2207abc89d152e67f3cc4b825',1,'entt::basic_table::basic_table(Container &&...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a3478658959fd02de4b503d42eec89467',1,'entt::basic_table::basic_table(basic_table &&other, const Allocator &allocator)']]], - ['basic_5fview_21',['basic_view',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a18e806e619209655ef00a44fb984dc91',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#af11033bff1be4277cd98aea2645cb90f',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(Get &...value, Exclude &...excl) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ae6e5af07e9553705cdb58386e4fa499d',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a69a56c8c2d74c132b295fd25c84926af',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0d6136f906cb8929021caeacf145651e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(Get &value) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a02bbf202f955da7b92a11b4a0c14b425',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept'],['../namespaceentt.html#a044bc9823cac51816fc5cbcd490478d1',1,'entt::basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >'],['../namespaceentt.html#a60bb84cde1e16efe42ffc9ec956b66b4',1,'entt::basic_view(std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >']]], - ['begin_22',['begin',['../classentt_1_1dense__map.html#a7c0e7de10687bc1e810d67ba6a91396d',1,'entt::dense_map::begin() const noexcept'],['../classentt_1_1dense__map.html#afb7f0ff4d0988673a027ac0e0348b216',1,'entt::dense_map::begin() noexcept'],['../classentt_1_1dense__map.html#a33900c670781f415f4eb0bfeb5be04a3',1,'entt::dense_map::begin(const size_type index) const'],['../classentt_1_1dense__map.html#a4b71476135fb7147c02ec7a801564c72',1,'entt::dense_map::begin(const size_type index)'],['../classentt_1_1dense__set.html#a2130895a2b9e794841b3afe3c6f793bb',1,'entt::dense_set::begin() const noexcept'],['../classentt_1_1dense__set.html#aff5d31abe96f4a71dd5d661e7f4feae1',1,'entt::dense_set::begin() noexcept'],['../classentt_1_1dense__set.html#af40a2a303dddc229bce36516d18921d5',1,'entt::dense_set::begin(const size_type index) const'],['../classentt_1_1dense__set.html#af5dfa9caba33563b1678e85d2774609c',1,'entt::dense_set::begin(const size_type index)'],['../classentt_1_1basic__table.html#a56aeeb950b6d041741eec8e9688afee7',1,'entt::basic_table::begin() const noexcept'],['../classentt_1_1basic__table.html#aaf620dac6a85efc2df8c6063e489e2b7',1,'entt::basic_table::begin() noexcept'],['../structentt_1_1iterable__adaptor.html#aff7b8ed093340f3d6726aeacd5c44ca7',1,'entt::iterable_adaptor::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a02df8d2cc8e492f0faa1b8218591f258',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3fd2db6528ee4a5e14f96dd6b0f38769',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__observer.html#a3f45d53397463edffae83b5dbda358ef',1,'entt::basic_observer::begin()'],['../classentt_1_1basic__runtime__view.html#a140fca2ae84d1dcb861f4b106cd75f29',1,'entt::basic_runtime_view::begin()'],['../classentt_1_1basic__sparse__set.html#a11b72852c0ae4f7f0dc5f27ba6001f42',1,'entt::basic_sparse_set::begin()'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage::begin() noexcept'],['../classentt_1_1basic__common__view.html#a51cd2d2c3725b7b4122b594dac974da6',1,'entt::basic_common_view::begin()'],['../classentt_1_1basic__storage__view.html#acd18a7a06f28e4e56b7f89d945404f9b',1,'entt::basic_storage_view::begin()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a28386fe73674349ccb626e287c6d4cc1',1,'entt::basic_meta_sequence_container_traits::begin()'],['../structentt_1_1basic__meta__associative__container__traits.html#a08ae7f3871f82ab98e4516dd34afbb7f',1,'entt::basic_meta_associative_container_traits::begin()'],['../classentt_1_1meta__sequence__container.html#ad4f618296f1ec7d7f5859713ecdf1695',1,'entt::meta_sequence_container::begin()'],['../classentt_1_1meta__associative__container.html#a86dcac50a81b30cd2720b3ac69318ada',1,'entt::meta_associative_container::begin()'],['../classentt_1_1resource__cache.html#ad6f22237738edb0cd44a5891b5e38543',1,'entt::resource_cache::begin() const noexcept'],['../classentt_1_1resource__cache.html#a14977ada6d28067be09d9deac2cd9129',1,'entt::resource_cache::begin() noexcept']]], - ['bind_23',['bind',['../classentt_1_1basic__sparse__set.html#a0e5a5e8d34afe0471d8c9d1c1fb6df2f',1,'entt::basic_sparse_set::bind(Type &&value) noexcept'],['../classentt_1_1basic__sparse__set.html#a11348154765ab6661b04dbac72be0272',1,'entt::basic_sparse_set::bind(Type &&value) noexcept'],['../classentt_1_1basic__flow.html#a81236828df07e39e44a200debdd98a78',1,'entt::basic_flow::bind()']]], - ['bind_5fany_24',['bind_any',['../classentt_1_1basic__sparse__set.html#a94662470540e38b7933b23b2ab2249f7',1,'entt::basic_sparse_set']]], - ['bucket_25',['bucket',['../classentt_1_1dense__map.html#a9a591d419dd5649e52907a3032f8c0b8',1,'entt::dense_map::bucket()'],['../classentt_1_1dense__set.html#a36a7137bfb36d2ca5026d986710cc05a',1,'entt::dense_set::bucket()']]], - ['bucket_5fcount_26',['bucket_count',['../classentt_1_1dense__map.html#aee246b41534137f279a11eb5e225a6e5',1,'entt::dense_map::bucket_count()'],['../classentt_1_1dense__set.html#a4ad74d3386c317d8aa2f9a2c88f410e4',1,'entt::dense_set::bucket_count()']]], - ['bucket_5fsize_27',['bucket_size',['../classentt_1_1dense__map.html#ae094f65cda09d80851306f6a4bba7b50',1,'entt::dense_map::bucket_size()'],['../classentt_1_1dense__set.html#a001d564dcf11933f59592f15709830d0',1,'entt::dense_set::bucket_size()']]], - ['bump_28',['bump',['../classentt_1_1basic__sparse__set.html#a777ecee811e5fa5567bc462dba476771',1,'entt::basic_sparse_set']]] + ['basic_5fpoly_9',['basic_poly',['../classentt_1_1basic__poly.html#af1ee3622b7b01d9934dd903f54846e44',1,'entt::basic_poly::basic_poly() noexcept=default'],['../classentt_1_1basic__poly.html#aed074839fc14e757f761d89606895062',1,'entt::basic_poly::basic_poly(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1basic__poly.html#aa587d96479005de4cd19047a7c76cf94',1,'entt::basic_poly::basic_poly(Type &&value) noexcept']]], + ['basic_5freactive_5fmixin_10',['basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a5f95e4f7cf9cfaf3a169db75dc0c147b',1,'entt::basic_reactive_mixin::basic_reactive_mixin()'],['../classentt_1_1basic__reactive__mixin.html#a24156d6ae47d5b777b6be8a9ba7aa99f',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__reactive__mixin.html#aca2d1ec327b157a1a7f41c7935a98832',1,'entt::basic_reactive_mixin::basic_reactive_mixin(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a3a0067a81152d2bfbec2723e0664461a',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#a8327edcef07c577a904fee0ef5f7a64e',1,'entt::basic_reactive_mixin::basic_reactive_mixin(basic_reactive_mixin &&other, const allocator_type &allocator)']]], + ['basic_5fregistry_11',['basic_registry',['../classentt_1_1basic__registry.html#afb2496f183300f9f9b7ae24617df0a3c',1,'entt::basic_registry::basic_registry()'],['../classentt_1_1basic__registry.html#ab66e63c6c5398d5a0c9fc40d2fe8201f',1,'entt::basic_registry::basic_registry(const allocator_type &allocator)'],['../classentt_1_1basic__registry.html#a1b6c762063ff48a0f4ca8efa063ebd53',1,'entt::basic_registry::basic_registry(const size_type count, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1basic__registry.html#af096d2149b6cc869875319aa22066e69',1,'entt::basic_registry::basic_registry(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#ac5cfdf43791119f4ab2d6976bec62644',1,'entt::basic_registry::basic_registry(basic_registry &&other) noexcept']]], + ['basic_5fruntime_5fview_12',['basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a14c8cb432c8ddbf865f79d2765f02400',1,'entt::basic_runtime_view::basic_runtime_view() noexcept'],['../classentt_1_1basic__runtime__view.html#a262d2b09f30d57e67a6e8028c016b637',1,'entt::basic_runtime_view::basic_runtime_view(const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#a0f89fdc9d23992e1c86c3306ad012292',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#ad96d2f1aaa57c82c9330e8f64f0e83fb',1,'entt::basic_runtime_view::basic_runtime_view(const basic_runtime_view &other, const allocator_type &allocator)'],['../classentt_1_1basic__runtime__view.html#afef04d25b27c5226bb2b0bbf073501cf',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__runtime__view.html#ae977102b64bd4eff2e1c903bddf58492',1,'entt::basic_runtime_view::basic_runtime_view(basic_runtime_view &&other, const allocator_type &allocator)']]], + ['basic_5fscheduler_13',['basic_scheduler',['../classentt_1_1basic__scheduler.html#a3c15133d781d3d2671ff64d4281d8d62',1,'entt::basic_scheduler::basic_scheduler()'],['../classentt_1_1basic__scheduler.html#a730077cba34cf06999080b542e940a2e',1,'entt::basic_scheduler::basic_scheduler(const allocator_type &allocator)'],['../classentt_1_1basic__scheduler.html#a0bebce4f1b2c70862171a2a0785ef74c',1,'entt::basic_scheduler::basic_scheduler(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a4c3323d871e3654e61afb80a4f05a3da',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other) noexcept'],['../classentt_1_1basic__scheduler.html#ab39ad210a5b331208057c7894510c2b0',1,'entt::basic_scheduler::basic_scheduler(basic_scheduler &&other, const allocator_type &allocator)']]], + ['basic_5fsigh_5fmixin_14',['basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a6374b697a080abbbc826161799dad699',1,'entt::basic_sigh_mixin::basic_sigh_mixin()'],['../classentt_1_1basic__sigh__mixin.html#a5e37835efeb7a49d40155e392722418a',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const allocator_type &allocator)'],['../classentt_1_1basic__sigh__mixin.html#a8d78fa2f9dd8a7489a7306b75366e6bf',1,'entt::basic_sigh_mixin::basic_sigh_mixin(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a8924ad4c2e88eb1fd15ab585ca7505a8',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__sigh__mixin.html#ab367b15994cddc48d7cd1e34c419beb4',1,'entt::basic_sigh_mixin::basic_sigh_mixin(basic_sigh_mixin &&other, const allocator_type &allocator)']]], + ['basic_5fsnapshot_15',['basic_snapshot',['../classentt_1_1basic__snapshot.html#a04da73375c3f546f52852aa174a2ab06',1,'entt::basic_snapshot::basic_snapshot(const registry_type &source) noexcept'],['../classentt_1_1basic__snapshot.html#a66159be5a4f741e09369831ac59c771a',1,'entt::basic_snapshot::basic_snapshot(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#ae8d0d610dad9fc00c73c167dc46cba8f',1,'entt::basic_snapshot::basic_snapshot(basic_snapshot &&) noexcept=default']]], + ['basic_5fsnapshot_5floader_16',['basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a1a3aa9874823320812d8c75336942623',1,'entt::basic_snapshot_loader::basic_snapshot_loader(registry_type &source) noexcept'],['../classentt_1_1basic__snapshot__loader.html#aea03a64bc66d5cb98206c7d15f623f1c',1,'entt::basic_snapshot_loader::basic_snapshot_loader(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#a6f975e36c5ae7e84bedf315201e4e763',1,'entt::basic_snapshot_loader::basic_snapshot_loader(basic_snapshot_loader &&) noexcept=default']]], + ['basic_5fsparse_5fset_17',['basic_sparse_set',['../classentt_1_1basic__sparse__set.html#afc504894fc2c20ea25b7fc2864bd22e3',1,'entt::basic_sparse_set::basic_sparse_set()'],['../classentt_1_1basic__sparse__set.html#a1b636566df9e6f3f36ff62d2bdde8d10',1,'entt::basic_sparse_set::basic_sparse_set(const allocator_type &allocator)'],['../classentt_1_1basic__sparse__set.html#a8e264ab5a7e2d97a204004d25b14238b',1,'entt::basic_sparse_set::basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#af5d35aae661fb35e485ac733969c84d9',1,'entt::basic_sparse_set::basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})'],['../classentt_1_1basic__sparse__set.html#acfbfbfe9f6967ff54f06c210d787f4ad',1,'entt::basic_sparse_set::basic_sparse_set(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#aaf4d881833f592ed21079e2a0fac8d2a',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__sparse__set.html#a9d6e25d1435a6216c60b42babd64085d',1,'entt::basic_sparse_set::basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)']]], + ['basic_5fstorage_18',['basic_storage',['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a607ddcf3b224f38e658d9be7dbf15da0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a7b7b06b2562f3f5cc9d177ca938db341',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a9afb1279977ec0872920dca913a42fec',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a994c6e55039c704227aaa08b504f5424',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a82b0f11b9a2e8f3a93cd5e3441d19cbc',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ae1fe4f9b3f5321de7fa8edf19e94a5e3',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aad3d273e33e1c75d3ff90335c00052f2',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ad670050bddfa74b9c0a9e4ba2204268f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abe7bd428f703bfc2d315ef2452efc267',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a856e9e651a4dd6ae412ccdf45e8548d0',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage< Entity, Entity, Allocator >::basic_storage(basic_storage &&other, const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#a0f133edb8ff29ccf88a53056cd00aec4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage()'],['../classentt_1_1basic__storage.html#ad520f17e1c3fa8a9c370ce86dd36e15f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const allocator_type &allocator)'],['../classentt_1_1basic__storage.html#aeef5fab52ef7e9fe4904959b38a85f42',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a3d01c331994076d8d4983b94165c20ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ae359b1aa54b4f09e86230caf89d84df4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::basic_storage(basic_storage &&other, const allocator_type &allocator)']]], + ['basic_5ftable_19',['basic_table',['../classentt_1_1basic__table.html#a6abef9631c552b00a7520bf7e9070f29',1,'entt::basic_table::basic_table()'],['../classentt_1_1basic__table.html#abc9122218646b7cd2a95fd0b342314e7',1,'entt::basic_table::basic_table(const Container &...container) noexcept'],['../classentt_1_1basic__table.html#ac0c37dff3d1ec2acbd012b66d1d562d5',1,'entt::basic_table::basic_table(Container &&...container) noexcept'],['../classentt_1_1basic__table.html#aa0f55f4fe0d47a9cbdea81d2b840cf26',1,'entt::basic_table::basic_table(const basic_table &)=delete'],['../classentt_1_1basic__table.html#ab985a1bccf6912a22b44175cbf3c0f6a',1,'entt::basic_table::basic_table(basic_table &&other) noexcept'],['../classentt_1_1basic__table.html#abea3cade520307e7f85409f56dac234a',1,'entt::basic_table::basic_table(const Allocator &allocator)'],['../classentt_1_1basic__table.html#a8b314b853f72c53c42ef59d5d5fe1022',1,'entt::basic_table::basic_table(const Container &...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a9ad461d2207abc89d152e67f3cc4b825',1,'entt::basic_table::basic_table(Container &&...container, const Allocator &allocator) noexcept'],['../classentt_1_1basic__table.html#a3478658959fd02de4b503d42eec89467',1,'entt::basic_table::basic_table(basic_table &&other, const Allocator &allocator)']]], + ['basic_5fview_20',['basic_view',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a18e806e619209655ef00a44fb984dc91',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#af11033bff1be4277cd98aea2645cb90f',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(Get &...value, Exclude &...excl) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ae6e5af07e9553705cdb58386e4fa499d',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a69a56c8c2d74c132b295fd25c84926af',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0d6136f906cb8929021caeacf145651e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(Get &value) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a02bbf202f955da7b92a11b4a0c14b425',1,'entt::basic_view< get_t< Get >, exclude_t<> >::basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept'],['../namespaceentt.html#a044bc9823cac51816fc5cbcd490478d1',1,'entt::basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >'],['../namespaceentt.html#a60bb84cde1e16efe42ffc9ec956b66b4',1,'entt::basic_view(std::tuple< Get &... >, std::tuple< Exclude &... >={}) -> basic_view< get_t< Get... >, exclude_t< Exclude... > >']]], + ['begin_21',['begin',['../classentt_1_1dense__map.html#a7c0e7de10687bc1e810d67ba6a91396d',1,'entt::dense_map::begin() const noexcept'],['../classentt_1_1dense__map.html#afb7f0ff4d0988673a027ac0e0348b216',1,'entt::dense_map::begin() noexcept'],['../classentt_1_1dense__map.html#a33900c670781f415f4eb0bfeb5be04a3',1,'entt::dense_map::begin(const size_type index) const'],['../classentt_1_1dense__map.html#a4b71476135fb7147c02ec7a801564c72',1,'entt::dense_map::begin(const size_type index)'],['../classentt_1_1dense__set.html#a2130895a2b9e794841b3afe3c6f793bb',1,'entt::dense_set::begin() const noexcept'],['../classentt_1_1dense__set.html#aff5d31abe96f4a71dd5d661e7f4feae1',1,'entt::dense_set::begin() noexcept'],['../classentt_1_1dense__set.html#af40a2a303dddc229bce36516d18921d5',1,'entt::dense_set::begin(const size_type index) const'],['../classentt_1_1dense__set.html#af5dfa9caba33563b1678e85d2774609c',1,'entt::dense_set::begin(const size_type index)'],['../classentt_1_1basic__table.html#a56aeeb950b6d041741eec8e9688afee7',1,'entt::basic_table::begin() const noexcept'],['../classentt_1_1basic__table.html#aaf620dac6a85efc2df8c6063e489e2b7',1,'entt::basic_table::begin() noexcept'],['../structentt_1_1iterable__adaptor.html#aff7b8ed093340f3d6726aeacd5c44ca7',1,'entt::iterable_adaptor::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a02df8d2cc8e492f0faa1b8218591f258',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a3fd2db6528ee4a5e14f96dd6b0f38769',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::begin()'],['../classentt_1_1basic__runtime__view.html#a140fca2ae84d1dcb861f4b106cd75f29',1,'entt::basic_runtime_view::begin()'],['../classentt_1_1basic__sparse__set.html#a11b72852c0ae4f7f0dc5f27ba6001f42',1,'entt::basic_sparse_set::begin()'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage::begin() noexcept'],['../classentt_1_1basic__common__view.html#a2007dc390b50ccc73a6d1ef6557d762b',1,'entt::basic_common_view::begin()'],['../classentt_1_1basic__storage__view.html#acd18a7a06f28e4e56b7f89d945404f9b',1,'entt::basic_storage_view::begin()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a28386fe73674349ccb626e287c6d4cc1',1,'entt::basic_meta_sequence_container_traits::begin()'],['../structentt_1_1basic__meta__associative__container__traits.html#a08ae7f3871f82ab98e4516dd34afbb7f',1,'entt::basic_meta_associative_container_traits::begin()'],['../classentt_1_1meta__sequence__container.html#ad4f618296f1ec7d7f5859713ecdf1695',1,'entt::meta_sequence_container::begin()'],['../classentt_1_1meta__associative__container.html#a86dcac50a81b30cd2720b3ac69318ada',1,'entt::meta_associative_container::begin()'],['../classentt_1_1resource__cache.html#ad6f22237738edb0cd44a5891b5e38543',1,'entt::resource_cache::begin() const noexcept'],['../classentt_1_1resource__cache.html#a14977ada6d28067be09d9deac2cd9129',1,'entt::resource_cache::begin() noexcept'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage< Entity, Entity, Allocator >::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage< Entity, Entity, Allocator >::begin() noexcept'],['../classentt_1_1basic__storage.html#a826c6603fc4f3ed07b2453ff477f1fee',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::begin() const noexcept'],['../classentt_1_1basic__storage.html#aef0e68f7f95a21629c8051aecc703ab0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::begin() noexcept']]], + ['bind_22',['bind',['../classentt_1_1basic__sparse__set.html#a67b8e3f7cb0144bf663bcd6b9c6e131f',1,'entt::basic_sparse_set::bind()'],['../classentt_1_1basic__flow.html#a81236828df07e39e44a200debdd98a78',1,'entt::basic_flow::bind()']]], + ['bind_5fany_23',['bind_any',['../classentt_1_1basic__sparse__set.html#a94662470540e38b7933b23b2ab2249f7',1,'entt::basic_sparse_set']]], + ['bucket_24',['bucket',['../classentt_1_1dense__map.html#a9a591d419dd5649e52907a3032f8c0b8',1,'entt::dense_map::bucket()'],['../classentt_1_1dense__set.html#a36a7137bfb36d2ca5026d986710cc05a',1,'entt::dense_set::bucket()']]], + ['bucket_5fcount_25',['bucket_count',['../classentt_1_1dense__map.html#aee246b41534137f279a11eb5e225a6e5',1,'entt::dense_map::bucket_count()'],['../classentt_1_1dense__set.html#a4ad74d3386c317d8aa2f9a2c88f410e4',1,'entt::dense_set::bucket_count()']]], + ['bucket_5fsize_26',['bucket_size',['../classentt_1_1dense__map.html#ae094f65cda09d80851306f6a4bba7b50',1,'entt::dense_map::bucket_size()'],['../classentt_1_1dense__set.html#a001d564dcf11933f59592f15709830d0',1,'entt::dense_set::bucket_size()']]], + ['bump_27',['bump',['../classentt_1_1basic__sparse__set.html#a777ecee811e5fa5567bc462dba476771',1,'entt::basic_sparse_set']]] ]; diff --git a/search/functions_10.js b/search/functions_10.js index 0f62767f4..f3ac9ff6d 100644 --- a/search/functions_10.js +++ b/search/functions_10.js @@ -3,19 +3,19 @@ var searchData= ['scoped_5fconnection_0',['scoped_connection',['../structentt_1_1scoped__connection.html#a5675cd808dd54a6d9546037d282d3c6c',1,'entt::scoped_connection::scoped_connection()=default'],['../structentt_1_1scoped__connection.html#ab3c50842fea4014f8bf2e51ce4cfbc8a',1,'entt::scoped_connection::scoped_connection(const connection &other)'],['../structentt_1_1scoped__connection.html#ad52da49cdabbfe1a4aada361f48fb9be',1,'entt::scoped_connection::scoped_connection(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#a8b11314888e7ccd81231f70891924817',1,'entt::scoped_connection::scoped_connection(scoped_connection &&other) noexcept']]], ['second_1',['second',['../classentt_1_1compressed__pair.html#a044cced5ce2cd85f4966814d991a54a7',1,'entt::compressed_pair::second() noexcept'],['../classentt_1_1compressed__pair.html#ab032dd50c65e0563ae079aec43250409',1,'entt::compressed_pair::second() const noexcept']]], ['set_2',['set',['../classentt_1_1basic__flow.html#aacd49b1f55957518b411e32cf77cf31b',1,'entt::basic_flow::set()'],['../classentt_1_1meta__any.html#aedf1f728b60246bd35911ea9ac5512c9',1,'entt::meta_any::set()'],['../structentt_1_1meta__data.html#a9cec301b83378b11ad316663e8ece835',1,'entt::meta_data::set()'],['../classentt_1_1meta__type.html#a708bdf89918c3fdf2b3539454201f1e9',1,'entt::meta_type::set()']]], - ['shrink_5fto_5ffit_3',['shrink_to_fit',['../classentt_1_1basic__table.html#a82621ec1f280c9208130a7337ed66c40',1,'entt::basic_table::shrink_to_fit()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab0dee7a4e6589ce4a1bdec06a38f3e59',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit()'],['../classentt_1_1basic__sparse__set.html#a7e10cc6ddc7ef9c733aabdec849c5b79',1,'entt::basic_sparse_set::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage::shrink_to_fit()']]], - ['sigh_4',['sigh',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a3565539a33a482bfbeb8d2ef5c5dd60d',1,'entt::sigh< Ret(Args...), Allocator >::sigh() noexcept(noexcept(allocator_type{}))'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a8fb195bd159c47a7eceb54efd019c7f2',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const allocator_type &allocator) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a3d281bf1e8e9aebc3b21f1b76412664f',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const sigh &other)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#adbcac376ce96c2750282754724f3d418',1,'entt::sigh< Ret(Args...), Allocator >::sigh(const sigh &other, const allocator_type &allocator)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a73eeeed8c7f6ab94b922142074efb4e2',1,'entt::sigh< Ret(Args...), Allocator >::sigh(sigh &&other) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a5c257082ad2bbbd6134012360a0c7373',1,'entt::sigh< Ret(Args...), Allocator >::sigh(sigh &&other, const allocator_type &allocator)']]], - ['sigh_5fhelper_5',['sigh_helper',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a4f25dc19d359844fead2611680294f93',1,'entt::sigh_helper< Registry >::sigh_helper()'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#aef132e2d47c4c2b652f24fe8155736c3',1,'entt::sigh_helper< Registry, Type >::sigh_helper()'],['../namespaceentt.html#ad0050077ac79b81ac00d1d3ab66b4f53',1,'entt::sigh_helper()']]], - ['sink_6',['sink',['../classentt_1_1basic__dispatcher.html#a2e76cd8379d9783423255c5d849dfd84',1,'entt::basic_dispatcher::sink()'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a1bd741165c67945b7bcb20c0ff3d7aca',1,'entt::sink< sigh< Ret(Args...), Allocator > >::sink()'],['../namespaceentt.html#aebd935c76f0b7bf40958ec43565ea157',1,'entt::sink()']]], - ['size_7',['size',['../classentt_1_1dense__map.html#a38b10511f585724b7eb6e5f9556dea21',1,'entt::dense_map::size()'],['../classentt_1_1dense__set.html#a51a05fcfc23785b7f38bd48b46ebf178',1,'entt::dense_set::size()'],['../classentt_1_1basic__table.html#a3a0b4df0c3a37a4a07b1cc8d1c69c7e2',1,'entt::basic_table::size()'],['../classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824',1,'entt::basic_hashed_string::size()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#afd8a5c5072abffebe052dd8f1eeb7411',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30cf23333313f4b6c636d64b8798bfd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__observer.html#ad4173fd7ce6c1f3b8904edde0ab64d45',1,'entt::basic_observer::size()'],['../classentt_1_1basic__sparse__set.html#a69ad0662838fd351985a51ee3017fb6c',1,'entt::basic_sparse_set::size()'],['../classentt_1_1basic__storage__view.html#a9ff0a4d5404e4559a8d1a0406f64ba02',1,'entt::basic_storage_view::size()'],['../classentt_1_1adjacency__matrix.html#a70f8706c96d4c000ceab51d88402ca74',1,'entt::adjacency_matrix::size()'],['../classentt_1_1basic__flow.html#a3cc2765c64e15d244a23b33bf45463e3',1,'entt::basic_flow::size()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a32190b7ee5cef442af74161cc671ede0',1,'entt::basic_meta_sequence_container_traits::size()'],['../structentt_1_1basic__meta__associative__container__traits.html#ac8eef423df02a2cea999257011b26d5e',1,'entt::basic_meta_associative_container_traits::size()'],['../classentt_1_1meta__sequence__container.html#acd6df88b81f558e1259067f15b62b4ea',1,'entt::meta_sequence_container::size()'],['../classentt_1_1meta__associative__container.html#a8b569c0d4a96dfaf1bfed1383f6d3e24',1,'entt::meta_associative_container::size()'],['../classentt_1_1basic__scheduler.html#a438e626f597bee890ab71d2d6d2c589f',1,'entt::basic_scheduler::size()'],['../classentt_1_1resource__cache.html#af471e799fb944db35363ed910512cde9',1,'entt::resource_cache::size()'],['../classentt_1_1basic__dispatcher.html#a8259e6ff1cd028e2f498a47e7d594543',1,'entt::basic_dispatcher::size(const id_type id=type_hash< Type >::value()) const noexcept'],['../classentt_1_1basic__dispatcher.html#a568be9cdf0161098e8c87c5d7d924aca',1,'entt::basic_dispatcher::size() const noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a534ccbead45c3edce6e34ba32e3bd238',1,'entt::sigh< Ret(Args...), Allocator >::size()']]], - ['size_5fhint_8',['size_hint',['../classentt_1_1basic__runtime__view.html#acc18bd1f09d3df3e0373e8024601e2b2',1,'entt::basic_runtime_view::size_hint()'],['../classentt_1_1basic__common__view.html#a34fdba8fb0d1d16714b473ac31b0f39d',1,'entt::basic_common_view::size_hint()'],['../classentt_1_1basic__storage__view.html#a8e5c6f2e7baad9ffb9b92bca19fc0e18',1,'entt::basic_storage_view::size_hint()']]], - ['size_5fof_9',['size_of',['../classentt_1_1meta__type.html#af81a79c939fa34a8a72a8c6db50e48d9',1,'entt::meta_type']]], - ['sort_10',['sort',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4f242692abecbf361c09117c14c73fe4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3be8735e76b3d7389c783a60ad80d624',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ab1b8ab19edaaf721ba3f5db9b6dcab55',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#afb19e07ca3440d9e7850aa888119cb63',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__registry.html#a9f8467476bc59f55a9297bd4e93f4914',1,'entt::basic_registry::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__registry.html#a4bf0e6bf722ed1eae4bd9f7777378ca6',1,'entt::basic_registry::sort()'],['../classentt_1_1basic__sparse__set.html#ae7ceed81905adc0d65291eb9f4072f08',1,'entt::basic_sparse_set::sort()']]], - ['sort_5fas_11',['sort_as',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a044bf4aef3d8b417e50e128dce5f78f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as()'],['../classentt_1_1basic__sparse__set.html#a9e5bf6f1953740446496b834099c3de1',1,'entt::basic_sparse_set::sort_as(It first, It last)']]], - ['sort_5fn_12',['sort_n',['../classentt_1_1basic__sparse__set.html#a43c1c0aa0fa525e12cee0791cd945915',1,'entt::basic_sparse_set']]], + ['shrink_5fto_5ffit_3',['shrink_to_fit',['../classentt_1_1basic__table.html#a82621ec1f280c9208130a7337ed66c40',1,'entt::basic_table::shrink_to_fit()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab0dee7a4e6589ce4a1bdec06a38f3e59',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::shrink_to_fit()'],['../classentt_1_1basic__sparse__set.html#a7e10cc6ddc7ef9c733aabdec849c5b79',1,'entt::basic_sparse_set::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage< Entity, Entity, Allocator >::shrink_to_fit()'],['../classentt_1_1basic__storage.html#ad569287dadaa314c700f0e904ef71409',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::shrink_to_fit()']]], + ['sigh_5fhelper_4',['sigh_helper',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a4f25dc19d359844fead2611680294f93',1,'entt::sigh_helper< Registry >::sigh_helper()'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#aef132e2d47c4c2b652f24fe8155736c3',1,'entt::sigh_helper< Registry, Type >::sigh_helper()'],['../namespaceentt.html#ad0050077ac79b81ac00d1d3ab66b4f53',1,'entt::sigh_helper()']]], + ['sink_5',['sink',['../classentt_1_1basic__dispatcher.html#a2e76cd8379d9783423255c5d849dfd84',1,'entt::basic_dispatcher::sink()'],['../namespaceentt.html#aebd935c76f0b7bf40958ec43565ea157',1,'entt::sink()']]], + ['size_6',['size',['../classentt_1_1dense__map.html#a38b10511f585724b7eb6e5f9556dea21',1,'entt::dense_map::size()'],['../classentt_1_1dense__set.html#a51a05fcfc23785b7f38bd48b46ebf178',1,'entt::dense_set::size()'],['../classentt_1_1basic__table.html#a3a0b4df0c3a37a4a07b1cc8d1c69c7e2',1,'entt::basic_table::size()'],['../classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824',1,'entt::basic_hashed_string::size()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#afd8a5c5072abffebe052dd8f1eeb7411',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30cf23333313f4b6c636d64b8798bfd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size()'],['../classentt_1_1basic__sparse__set.html#a69ad0662838fd351985a51ee3017fb6c',1,'entt::basic_sparse_set::size()'],['../classentt_1_1basic__storage__view.html#a9ff0a4d5404e4559a8d1a0406f64ba02',1,'entt::basic_storage_view::size()'],['../classentt_1_1adjacency__matrix.html#a70f8706c96d4c000ceab51d88402ca74',1,'entt::adjacency_matrix::size()'],['../classentt_1_1basic__flow.html#a3cc2765c64e15d244a23b33bf45463e3',1,'entt::basic_flow::size()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a32190b7ee5cef442af74161cc671ede0',1,'entt::basic_meta_sequence_container_traits::size()'],['../structentt_1_1basic__meta__associative__container__traits.html#ac8eef423df02a2cea999257011b26d5e',1,'entt::basic_meta_associative_container_traits::size()'],['../classentt_1_1meta__sequence__container.html#acd6df88b81f558e1259067f15b62b4ea',1,'entt::meta_sequence_container::size()'],['../classentt_1_1meta__associative__container.html#a8b569c0d4a96dfaf1bfed1383f6d3e24',1,'entt::meta_associative_container::size()'],['../classentt_1_1basic__scheduler.html#a438e626f597bee890ab71d2d6d2c589f',1,'entt::basic_scheduler::size()'],['../classentt_1_1resource__cache.html#af471e799fb944db35363ed910512cde9',1,'entt::resource_cache::size()'],['../classentt_1_1basic__dispatcher.html#a8259e6ff1cd028e2f498a47e7d594543',1,'entt::basic_dispatcher::size(const id_type id=type_hash< Type >::value()) const noexcept'],['../classentt_1_1basic__dispatcher.html#a568be9cdf0161098e8c87c5d7d924aca',1,'entt::basic_dispatcher::size() const noexcept']]], + ['size_5fhint_7',['size_hint',['../classentt_1_1basic__runtime__view.html#acc18bd1f09d3df3e0373e8024601e2b2',1,'entt::basic_runtime_view::size_hint()'],['../classentt_1_1basic__common__view.html#a4f4d649b5d2a9d823f93125450d38fc8',1,'entt::basic_common_view::size_hint()'],['../classentt_1_1basic__storage__view.html#a8e5c6f2e7baad9ffb9b92bca19fc0e18',1,'entt::basic_storage_view::size_hint()']]], + ['size_5fof_8',['size_of',['../classentt_1_1meta__type.html#af81a79c939fa34a8a72a8c6db50e48d9',1,'entt::meta_type']]], + ['sort_9',['sort',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4f242692abecbf361c09117c14c73fe4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3be8735e76b3d7389c783a60ad80d624',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ab1b8ab19edaaf721ba3f5db9b6dcab55',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#afb19e07ca3440d9e7850aa888119cb63',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::sort(Compare compare, Sort algo=Sort{}, Args &&...args) const'],['../classentt_1_1basic__registry.html#a9f8467476bc59f55a9297bd4e93f4914',1,'entt::basic_registry::sort(Compare compare, Sort algo=Sort{}, Args &&...args)'],['../classentt_1_1basic__registry.html#a4bf0e6bf722ed1eae4bd9f7777378ca6',1,'entt::basic_registry::sort()'],['../classentt_1_1basic__sparse__set.html#ae7ceed81905adc0d65291eb9f4072f08',1,'entt::basic_sparse_set::sort()']]], + ['sort_5fas_10',['sort_as',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a044bf4aef3d8b417e50e128dce5f78f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::sort_as()'],['../classentt_1_1basic__sparse__set.html#a9e5bf6f1953740446496b834099c3de1',1,'entt::basic_sparse_set::sort_as(It first, It last)']]], + ['sort_5fn_11',['sort_n',['../classentt_1_1basic__sparse__set.html#a43c1c0aa0fa525e12cee0791cd945915',1,'entt::basic_sparse_set']]], + ['start_5ffrom_12',['start_from',['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aee4cce31c9c3fa962ce5e8a805840c15',1,'entt::basic_storage< Entity, Entity, Allocator >']]], ['storage_13',['storage',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a18edc7d92e7c5a336405c686fd102d9b',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a544a600146d8e1a23d7233ef0447198f',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::storage() const noexcept'],['../classentt_1_1basic__handle.html#a3b0be24c0073eeb03362ea094b7420eb',1,'entt::basic_handle::storage()'],['../classentt_1_1basic__registry.html#a3ffe409b0f7201456b1c1d32c0850474',1,'entt::basic_registry::storage() noexcept'],['../classentt_1_1basic__registry.html#ace5a18c1fe5b72dbdbf53cb981c00879',1,'entt::basic_registry::storage() const noexcept'],['../classentt_1_1basic__registry.html#a901e410db646d5318aa6ac7cabfe6218',1,'entt::basic_registry::storage(const id_type id)'],['../classentt_1_1basic__registry.html#a2bdc9d44e99459d93d2f43bdd1ca5df4',1,'entt::basic_registry::storage(const id_type id) const'],['../classentt_1_1basic__registry.html#abb07bad50fa0f5bad0aabffe8ce24414',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__registry.html#ae414ee7b5315313e9987525727f6320b',1,'entt::basic_registry::storage(const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afa5d580bf040d966091f63d2dcc8e771',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2f653721035d75ee1353e2e9ee553bcb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a3195ed2211e4013883ab9dad6306c9da',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::storage(Type &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a5b27ce8e68f2df8c008a3baccc84bd4a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae33d4eaa3b835a8a3e3e627248efb265',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0ef6bf301ccb7108321289aca51ee420',1,'entt::basic_view< get_t< Get >, exclude_t<> >::storage(Get &elem) noexcept']]], ['succeed_14',['succeed',['../classentt_1_1process.html#a4380dab12dc4c7559ada2182468aa1db',1,'entt::process']]], - ['swap_15',['swap',['../classentt_1_1dense__map.html#a832dc73529e19f662f63c583a5fbd340',1,'entt::dense_map::swap()'],['../classentt_1_1dense__set.html#ab1199b43ef81b1fab9d52a0c1275dd56',1,'entt::dense_set::swap()'],['../classentt_1_1basic__table.html#a56a22abcc5cad03257e146e55eceb31a',1,'entt::basic_table::swap()'],['../classentt_1_1compressed__pair.html#a0cfa66a668acfe78ec3a60e62c73babd',1,'entt::compressed_pair::swap()'],['../classentt_1_1basic__sigh__mixin.html#a41f34b4216ba01ab99fd4c85f57d363a',1,'entt::basic_sigh_mixin::swap()'],['../classentt_1_1basic__reactive__mixin.html#a4e6193683678145c8de9a176d464c744',1,'entt::basic_reactive_mixin::swap()'],['../classentt_1_1basic__registry.html#a394e38341a21d75194555e9ed57fe5ae',1,'entt::basic_registry::swap()'],['../classentt_1_1basic__runtime__view.html#adfcdaca31934517a51d1993f0a4f6cfd',1,'entt::basic_runtime_view::swap()'],['../classentt_1_1basic__sparse__set.html#a85505b5556cc61ab5557cd311442ad42',1,'entt::basic_sparse_set::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage::swap()'],['../classentt_1_1adjacency__matrix.html#a5ee4c669461f74485c4263ece0c05f2f',1,'entt::adjacency_matrix::swap()'],['../classentt_1_1basic__flow.html#adc54472d1ab42909e262b854d0920c3d',1,'entt::basic_flow::swap()'],['../classentt_1_1basic__scheduler.html#ac2d27cb8fda69dac03d011c66276daa7',1,'entt::basic_scheduler::swap()'],['../classentt_1_1resource.html#a9e96e84b8f36937266087163cfe09aaf',1,'entt::resource::swap()'],['../classentt_1_1basic__dispatcher.html#a1bede4933d9946b4cbb27d409102bf1f',1,'entt::basic_dispatcher::swap()'],['../classentt_1_1emitter.html#ab5a2f96dfb9dfb780d2b4c4e328174d1',1,'entt::emitter::swap()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a4cfb9278301a9c0fd9cd46a2dd21aa38',1,'entt::sigh< Ret(Args...), Allocator >::swap()'],['../namespaceentt.html#a85aff290a542f0f053b993b507410b21',1,'entt::swap()']]], + ['swap_15',['swap',['../classentt_1_1dense__map.html#a832dc73529e19f662f63c583a5fbd340',1,'entt::dense_map::swap()'],['../classentt_1_1dense__set.html#ab1199b43ef81b1fab9d52a0c1275dd56',1,'entt::dense_set::swap()'],['../classentt_1_1basic__table.html#a56a22abcc5cad03257e146e55eceb31a',1,'entt::basic_table::swap()'],['../classentt_1_1compressed__pair.html#a0cfa66a668acfe78ec3a60e62c73babd',1,'entt::compressed_pair::swap()'],['../classentt_1_1basic__sigh__mixin.html#a41f34b4216ba01ab99fd4c85f57d363a',1,'entt::basic_sigh_mixin::swap()'],['../classentt_1_1basic__registry.html#a394e38341a21d75194555e9ed57fe5ae',1,'entt::basic_registry::swap()'],['../classentt_1_1basic__runtime__view.html#adfcdaca31934517a51d1993f0a4f6cfd',1,'entt::basic_runtime_view::swap()'],['../classentt_1_1basic__sparse__set.html#a85505b5556cc61ab5557cd311442ad42',1,'entt::basic_sparse_set::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage::swap()'],['../classentt_1_1adjacency__matrix.html#a5ee4c669461f74485c4263ece0c05f2f',1,'entt::adjacency_matrix::swap()'],['../classentt_1_1basic__flow.html#adc54472d1ab42909e262b854d0920c3d',1,'entt::basic_flow::swap()'],['../classentt_1_1basic__scheduler.html#ac2d27cb8fda69dac03d011c66276daa7',1,'entt::basic_scheduler::swap()'],['../classentt_1_1resource.html#a9e96e84b8f36937266087163cfe09aaf',1,'entt::resource::swap()'],['../classentt_1_1basic__dispatcher.html#a1bede4933d9946b4cbb27d409102bf1f',1,'entt::basic_dispatcher::swap()'],['../classentt_1_1emitter.html#ab5a2f96dfb9dfb780d2b4c4e328174d1',1,'entt::emitter::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage< Entity, Entity, Allocator >::swap()'],['../classentt_1_1basic__storage.html#a630a15d8b585a288e2b37af3af9ebdfe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::swap()'],['../namespaceentt.html#a2e05563b8d3e3b61cf9b06e9e0904cc7',1,'entt::swap()']]], ['swap_5fand_5fpop_16',['swap_and_pop',['../classentt_1_1basic__sparse__set.html#a2b95c0acd8af718e712362d1177dbc1e',1,'entt::basic_sparse_set']]], ['swap_5felements_17',['swap_elements',['../classentt_1_1basic__sparse__set.html#a2b82af720eca37261f3230c654d7fe1f',1,'entt::basic_sparse_set']]], ['swap_5fonly_18',['swap_only',['../classentt_1_1basic__sparse__set.html#abde0af92d2d8eade7b5acf5ab02f8038',1,'entt::basic_sparse_set']]], diff --git a/search/functions_11.js b/search/functions_11.js index 12a0d1c05..864b42afa 100644 --- a/search/functions_11.js +++ b/search/functions_11.js @@ -1,22 +1,21 @@ var searchData= [ - ['target_0',['target',['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ad2c0669b2eeaa2e0fce72b16e3510d95',1,'entt::delegate< Ret(Args...)>']]], - ['template_5farg_1',['template_arg',['../classentt_1_1meta__type.html#a48a18fc15883bff5b1a264a3b4f38b81',1,'entt::meta_type']]], - ['template_5farity_2',['template_arity',['../classentt_1_1meta__type.html#ae1ee3f6d02bd985ef20866881760ab9d',1,'entt::meta_type']]], - ['template_5ftype_3',['template_type',['../classentt_1_1meta__type.html#ad2fbca68ac466e8b6e4c4df8d6685b37',1,'entt::meta_type']]], - ['then_4',['then',['../classentt_1_1basic__scheduler.html#a97b6902501430cb4cce602d848d46b7e',1,'entt::basic_scheduler::then(Args &&...args)'],['../classentt_1_1basic__scheduler.html#a4edd1d1540d7d2a5307a646c1c0d880b',1,'entt::basic_scheduler::then(Func &&func)']]], - ['tick_5',['tick',['../classentt_1_1process.html#aacc7fe0ef3265113079c70ff8cd9478d',1,'entt::process']]], - ['to_5faddress_6',['to_address',['../namespaceentt.html#af0ecb90b45a53e3272d761c237a0d850',1,'entt']]], - ['to_5fentity_7',['to_entity',['../classentt_1_1basic__entt__traits.html#a8c02bc8db33817ec509b7d32773fa463',1,'entt::basic_entt_traits::to_entity()'],['../namespaceentt.html#a1202b4027d32db124efffdf1f2f8c5a2',1,'entt::to_entity(const Entity value) noexcept'],['../namespaceentt.html#ae213e35d5f2e82e6c2227720e4d0857c',1,'entt::to_entity(const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)']]], - ['to_5fintegral_8',['to_integral',['../classentt_1_1basic__entt__traits.html#a4eb435084cf47d4fbc840654f2e8c9e0',1,'entt::basic_entt_traits::to_integral()'],['../namespaceentt.html#ad2e252dbd8c8ebd486a3d84fbf8c2602',1,'entt::to_integral()']]], - ['to_5fversion_9',['to_version',['../classentt_1_1basic__entt__traits.html#af1e3c418f09660a761fab21078df6700',1,'entt::basic_entt_traits::to_version()'],['../namespaceentt.html#a4b7d8995ec3448ce5151309ef2281d33',1,'entt::to_version()']]], - ['top_5flevel_10',['top_level',['../structentt_1_1basic__organizer_1_1vertex.html#af724e542a6237fb30cca554463c452c6',1,'entt::basic_organizer::vertex']]], - ['traits_11',['traits',['../classentt_1_1meta__factory.html#af3669484fc34a1978e3cb06aaf7dd443',1,'entt::meta_factory::traits()'],['../structentt_1_1meta__data.html#af438ace0d6f9a93f8c07657d3b621cdd',1,'entt::meta_data::traits()'],['../structentt_1_1meta__func.html#a78372e6ee35cdefc14c635d414392c75',1,'entt::meta_func::traits()'],['../classentt_1_1meta__type.html#abb570b19b8898376d9cc6806256f6253',1,'entt::meta_type::traits()']]], - ['trigger_12',['trigger',['../classentt_1_1basic__dispatcher.html#a106d465a66d82cfa2e664f0e14b498e3',1,'entt::basic_dispatcher::trigger(Type &&value={})'],['../classentt_1_1basic__dispatcher.html#a960ab280a72087de8077351ca8a3dbc8',1,'entt::basic_dispatcher::trigger(const id_type id, Type &&value={})']]], - ['try_5fcast_13',['try_cast',['../classentt_1_1meta__any.html#a36163818889d714deea373c268526b54',1,'entt::meta_any::try_cast() const'],['../classentt_1_1meta__any.html#a4b275ec91a940ffc2c67b4e0a065c693',1,'entt::meta_any::try_cast()']]], - ['try_5femplace_14',['try_emplace',['../classentt_1_1dense__map.html#a53111b5614ea1d29d8396279ebfd7d3e',1,'entt::dense_map::try_emplace(const key_type &key, Args &&...args)'],['../classentt_1_1dense__map.html#ab2b0e98c01ad728022e5388535333fb1',1,'entt::dense_map::try_emplace(key_type &&key, Args &&...args)'],['../classentt_1_1basic__sparse__set.html#a1c62d9615acde55f57fcca92e44c747c',1,'entt::basic_sparse_set::try_emplace()'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage::try_emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a70ee247f23204a7cd323968a19adf91e',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace()']]], - ['try_5fget_15',['try_get',['../classentt_1_1basic__handle.html#a8c9b0405cd213ff5ca7b935a6a55e636',1,'entt::basic_handle::try_get()'],['../classentt_1_1basic__registry.html#a2e423a67d88072b7e8126412d3ce41e5',1,'entt::basic_registry::try_get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a88615f35264fae0e05f25766eab624fb',1,'entt::basic_registry::try_get(const entity_type entt)']]], - ['type_16',['type',['../classentt_1_1basic__any.html#a63c48ddb1677383ba12752ffa387139b',1,'entt::basic_any::type()'],['../classentt_1_1basic__sparse__set.html#ae37830b84f2801670927b8ae881d72b7',1,'entt::basic_sparse_set::type()'],['../classentt_1_1meta__factory.html#ae5837930f3fdc731ae2216c012342d42',1,'entt::meta_factory::type()'],['../classentt_1_1meta__any.html#a2097e0bc8ec091807a1213052bc761c7',1,'entt::meta_any::type()'],['../structentt_1_1meta__data.html#aa81980c2d202f511ec8afcb8b324afb4',1,'entt::meta_data::type()'],['../classentt_1_1basic__poly.html#a0341f0451d35dbe7a70634e4cf5037db',1,'entt::basic_poly::type()']]], - ['type_5fid_17',['type_id',['../namespaceentt.html#adb9682d476edbbe4434680363f9c0eb3',1,'entt::type_id() noexcept'],['../namespaceentt.html#a17387091b8374f89bfd73b2630768b53',1,'entt::type_id(Type &&) noexcept']]], - ['type_5finfo_18',['type_info',['../structentt_1_1type__info.html#aae30ac668182e952046a3e4f74a6d728',1,'entt::type_info']]] + ['template_5farg_0',['template_arg',['../classentt_1_1meta__type.html#a48a18fc15883bff5b1a264a3b4f38b81',1,'entt::meta_type']]], + ['template_5farity_1',['template_arity',['../classentt_1_1meta__type.html#ae1ee3f6d02bd985ef20866881760ab9d',1,'entt::meta_type']]], + ['template_5ftype_2',['template_type',['../classentt_1_1meta__type.html#ad2fbca68ac466e8b6e4c4df8d6685b37',1,'entt::meta_type']]], + ['then_3',['then',['../classentt_1_1basic__scheduler.html#a97b6902501430cb4cce602d848d46b7e',1,'entt::basic_scheduler::then(Args &&...args)'],['../classentt_1_1basic__scheduler.html#a4edd1d1540d7d2a5307a646c1c0d880b',1,'entt::basic_scheduler::then(Func &&func)']]], + ['tick_4',['tick',['../classentt_1_1process.html#aacc7fe0ef3265113079c70ff8cd9478d',1,'entt::process']]], + ['to_5faddress_5',['to_address',['../namespaceentt.html#af0ecb90b45a53e3272d761c237a0d850',1,'entt']]], + ['to_5fentity_6',['to_entity',['../classentt_1_1basic__entt__traits.html#a8c02bc8db33817ec509b7d32773fa463',1,'entt::basic_entt_traits::to_entity()'],['../namespaceentt.html#a1202b4027d32db124efffdf1f2f8c5a2',1,'entt::to_entity(const Entity value) noexcept'],['../namespaceentt.html#ae213e35d5f2e82e6c2227720e4d0857c',1,'entt::to_entity(const basic_storage< Args... > &storage, const typename basic_storage< Args... >::value_type &instance)']]], + ['to_5fintegral_7',['to_integral',['../classentt_1_1basic__entt__traits.html#a4eb435084cf47d4fbc840654f2e8c9e0',1,'entt::basic_entt_traits::to_integral()'],['../namespaceentt.html#ad2e252dbd8c8ebd486a3d84fbf8c2602',1,'entt::to_integral()']]], + ['to_5fversion_8',['to_version',['../classentt_1_1basic__entt__traits.html#af1e3c418f09660a761fab21078df6700',1,'entt::basic_entt_traits::to_version()'],['../namespaceentt.html#a4b7d8995ec3448ce5151309ef2281d33',1,'entt::to_version()']]], + ['top_5flevel_9',['top_level',['../structentt_1_1basic__organizer_1_1vertex.html#af724e542a6237fb30cca554463c452c6',1,'entt::basic_organizer::vertex']]], + ['traits_10',['traits',['../classentt_1_1meta__factory.html#af3669484fc34a1978e3cb06aaf7dd443',1,'entt::meta_factory::traits()'],['../structentt_1_1meta__data.html#af438ace0d6f9a93f8c07657d3b621cdd',1,'entt::meta_data::traits()'],['../structentt_1_1meta__func.html#a78372e6ee35cdefc14c635d414392c75',1,'entt::meta_func::traits()'],['../classentt_1_1meta__type.html#abb570b19b8898376d9cc6806256f6253',1,'entt::meta_type::traits()']]], + ['trigger_11',['trigger',['../classentt_1_1basic__dispatcher.html#a106d465a66d82cfa2e664f0e14b498e3',1,'entt::basic_dispatcher::trigger(Type &&value={})'],['../classentt_1_1basic__dispatcher.html#a960ab280a72087de8077351ca8a3dbc8',1,'entt::basic_dispatcher::trigger(const id_type id, Type &&value={})']]], + ['try_5fcast_12',['try_cast',['../classentt_1_1meta__any.html#a36163818889d714deea373c268526b54',1,'entt::meta_any::try_cast() const'],['../classentt_1_1meta__any.html#a4b275ec91a940ffc2c67b4e0a065c693',1,'entt::meta_any::try_cast()']]], + ['try_5femplace_13',['try_emplace',['../classentt_1_1dense__map.html#a53111b5614ea1d29d8396279ebfd7d3e',1,'entt::dense_map::try_emplace(const key_type &key, Args &&...args)'],['../classentt_1_1dense__map.html#ab2b0e98c01ad728022e5388535333fb1',1,'entt::dense_map::try_emplace(key_type &&key, Args &&...args)'],['../classentt_1_1basic__sparse__set.html#a1c62d9615acde55f57fcca92e44c747c',1,'entt::basic_sparse_set::try_emplace()'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage::try_emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a70ee247f23204a7cd323968a19adf91e',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace(const Entity hint, const bool, const void *) override'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage< Entity, Entity, Allocator >::try_emplace(const Entity entt, const bool force_back, const void *value) override'],['../classentt_1_1basic__storage.html#a96a10490c949af09275a303e7d352f9a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::try_emplace()']]], + ['try_5fget_14',['try_get',['../classentt_1_1basic__handle.html#a8c9b0405cd213ff5ca7b935a6a55e636',1,'entt::basic_handle::try_get()'],['../classentt_1_1basic__registry.html#a2e423a67d88072b7e8126412d3ce41e5',1,'entt::basic_registry::try_get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a88615f35264fae0e05f25766eab624fb',1,'entt::basic_registry::try_get(const entity_type entt)']]], + ['type_15',['type',['../classentt_1_1basic__any.html#a63c48ddb1677383ba12752ffa387139b',1,'entt::basic_any::type()'],['../classentt_1_1basic__sparse__set.html#ae37830b84f2801670927b8ae881d72b7',1,'entt::basic_sparse_set::type()'],['../classentt_1_1meta__factory.html#ae5837930f3fdc731ae2216c012342d42',1,'entt::meta_factory::type()'],['../classentt_1_1meta__any.html#a2097e0bc8ec091807a1213052bc761c7',1,'entt::meta_any::type()'],['../structentt_1_1meta__data.html#aa81980c2d202f511ec8afcb8b324afb4',1,'entt::meta_data::type()'],['../classentt_1_1basic__poly.html#a0341f0451d35dbe7a70634e4cf5037db',1,'entt::basic_poly::type()']]], + ['type_5fid_16',['type_id',['../namespaceentt.html#adb9682d476edbbe4434680363f9c0eb3',1,'entt::type_id() noexcept'],['../namespaceentt.html#a17387091b8374f89bfd73b2630768b53',1,'entt::type_id(Type &&) noexcept']]], + ['type_5finfo_17',['type_info',['../structentt_1_1type__info.html#aae30ac668182e952046a3e4f74a6d728',1,'entt::type_info']]] ]; diff --git a/search/functions_12.js b/search/functions_12.js index d16700df3..61219d9c2 100644 --- a/search/functions_12.js +++ b/search/functions_12.js @@ -3,7 +3,7 @@ var searchData= ['uninitialized_5fconstruct_5fusing_5fallocator_0',['uninitialized_construct_using_allocator',['../namespaceentt.html#a81f946567d220e7c8814636333d0cbe0',1,'entt']]], ['unpause_1',['unpause',['../classentt_1_1process.html#a5b024d8b110a8ab631132acc6abfb9e1',1,'entt::process']]], ['unwrap_5ftuple_2',['unwrap_tuple',['../namespaceentt.html#abf2665e41871f7493f674c8dbba0a593',1,'entt']]], - ['update_3',['update',['../structentt_1_1basic__collector_3_4.html#a13ce2f2ee1d5e8c852fa055cb693a210',1,'entt::basic_collector<>::update()'],['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#a57c1366ef7a47ff4e859deddaa8e8f64',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::update()'],['../structentt_1_1process__adaptor.html#a7514fabbbda491742872bc0e52dde5c2',1,'entt::process_adaptor::update()'],['../classentt_1_1basic__scheduler.html#aac8d0d131f7e1214c4191048762ccd09',1,'entt::basic_scheduler::update()'],['../classentt_1_1basic__dispatcher.html#a7d0b2fc6d403b187f112798823c870dc',1,'entt::basic_dispatcher::update(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a34b8c43b1d00707b09e9ea8cd53ff3fd',1,'entt::basic_dispatcher::update() const']]], + ['update_3',['update',['../structentt_1_1process__adaptor.html#a7514fabbbda491742872bc0e52dde5c2',1,'entt::process_adaptor::update()'],['../classentt_1_1basic__scheduler.html#aac8d0d131f7e1214c4191048762ccd09',1,'entt::basic_scheduler::update()'],['../classentt_1_1basic__dispatcher.html#a7d0b2fc6d403b187f112798823c870dc',1,'entt::basic_dispatcher::update(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a34b8c43b1d00707b09e9ea8cd53ff3fd',1,'entt::basic_dispatcher::update() const']]], ['use_4',['use',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad9ef674ebaedbf8c8d2db1bd885a71d5',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::use() noexcept']]], ['uses_5fallocator_5fconstruction_5fargs_5',['uses_allocator_construction_args',['../namespaceentt.html#ac447ddab9d528647a79fd9aca429faed',1,'entt']]] ]; diff --git a/search/functions_13.js b/search/functions_13.js index 7f188f6cf..735f54fec 100644 --- a/search/functions_13.js +++ b/search/functions_13.js @@ -1,7 +1,7 @@ var searchData= [ ['valid_0',['valid',['../classentt_1_1basic__handle.html#ad95bbdd34812aef5f4d492d40c1b7815',1,'entt::basic_handle::valid()'],['../classentt_1_1basic__registry.html#a40d41cd623d5bf7ad95d75aef5e70a65',1,'entt::basic_registry::valid()']]], - ['value_1',['value',['../classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e',1,'entt::basic_hashed_string::value(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0',1,'entt::basic_hashed_string::value(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb',1,'entt::basic_hashed_string::value(const_wrapper wrapper) noexcept'],['../classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c',1,'entt::basic_hashed_string::value() const noexcept'],['../structentt_1_1type__index.html#ac1a87730c605024e3fb6426fc633380e',1,'entt::type_index::value()'],['../structentt_1_1type__hash.html#a925c3666663e463a28897f04a7e2c314',1,'entt::type_hash::value()'],['../structentt_1_1type__name.html#a25bf087449089be106e33b64430bcbd4',1,'entt::type_name::value()'],['../classentt_1_1basic__sparse__set.html#ab3725f4fb86b9bb73f5f397884ff1680',1,'entt::basic_sparse_set::value(const entity_type entt) const noexcept'],['../classentt_1_1basic__sparse__set.html#a319f3827fb68d33cddbdb5519723ea6f',1,'entt::basic_sparse_set::value(const entity_type entt) noexcept'],['../classentt_1_1locator.html#a5f2beb12925d1cfac5c55d5aca65e47e',1,'entt::locator::value()'],['../structentt_1_1meta__prop.html#a82a1d1796e873be7ba0c9fb539ec22ef',1,'entt::meta_prop::value() const'],['../structentt_1_1meta__prop.html#a459bfd17717f66a925062e992fcd9013',1,'entt::meta_prop::value()']]], + ['value_1',['value',['../classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e',1,'entt::basic_hashed_string::value(const value_type *str, const size_type len) noexcept'],['../classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0',1,'entt::basic_hashed_string::value(const value_type(&str)[N]) noexcept'],['../classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb',1,'entt::basic_hashed_string::value(const_wrapper wrapper) noexcept'],['../classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c',1,'entt::basic_hashed_string::value() const noexcept'],['../structentt_1_1type__index.html#ac1a87730c605024e3fb6426fc633380e',1,'entt::type_index::value()'],['../structentt_1_1type__hash.html#a925c3666663e463a28897f04a7e2c314',1,'entt::type_hash::value()'],['../structentt_1_1type__name.html#a25bf087449089be106e33b64430bcbd4',1,'entt::type_name::value()'],['../classentt_1_1basic__sparse__set.html#ab3725f4fb86b9bb73f5f397884ff1680',1,'entt::basic_sparse_set::value(const entity_type entt) const noexcept'],['../classentt_1_1basic__sparse__set.html#a319f3827fb68d33cddbdb5519723ea6f',1,'entt::basic_sparse_set::value(const entity_type entt) noexcept'],['../classentt_1_1locator.html#a5f2beb12925d1cfac5c55d5aca65e47e',1,'entt::locator::value() noexcept']]], ['value_5for_2',['value_or',['../classentt_1_1locator.html#ad7a9c3555e6ff2b67f9ad3af7f99a728',1,'entt::locator']]], ['value_5ftype_3',['value_type',['../classentt_1_1meta__sequence__container.html#a34fb8652e550e2af8702298ca4c3fc92',1,'entt::meta_sequence_container::value_type()'],['../classentt_1_1meta__associative__container.html#ac41d995020762bcfa1cf0c7536d2eb9a',1,'entt::meta_associative_container::value_type()']]], ['vertex_4',['vertex',['../structentt_1_1basic__organizer_1_1vertex.html#ae0c95bb3a80934bfefc52620324f57dd',1,'entt::basic_organizer::vertex']]], diff --git a/search/functions_14.js b/search/functions_14.js index b81ceb70d..317c33ed9 100644 --- a/search/functions_14.js +++ b/search/functions_14.js @@ -1,5 +1,4 @@ var searchData= [ - ['where_0',['where',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#add41fb03c0e129a63e616501cc2e1ea4',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >']]], - ['with_1',['with',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a88c9f698912fac86d317762b2384aaf4',1,'entt::sigh_helper< Registry >']]] + ['with_0',['with',['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a88c9f698912fac86d317762b2384aaf4',1,'entt::sigh_helper< Registry >']]] ]; diff --git a/search/functions_16.js b/search/functions_16.js index 156661eac..a83b48b23 100644 --- a/search/functions_16.js +++ b/search/functions_16.js @@ -5,27 +5,25 @@ var searchData= ['_7ebasic_5fcontinuous_5floader_2',['~basic_continuous_loader',['../classentt_1_1basic__continuous__loader.html#a34d2417a1dc1fe8804ff6bbe184e16a1',1,'entt::basic_continuous_loader']]], ['_7ebasic_5fdispatcher_3',['~basic_dispatcher',['../classentt_1_1basic__dispatcher.html#aa696c543875d16b4b94ce7966f919844',1,'entt::basic_dispatcher']]], ['_7ebasic_5fflow_4',['~basic_flow',['../classentt_1_1basic__flow.html#a5c3eb8689a39e6c8ce6d33b1ed21dd50',1,'entt::basic_flow']]], - ['_7ebasic_5fobserver_5',['~basic_observer',['../classentt_1_1basic__observer.html#a87fca2a49acd1ca6c6b4253eaf3f2d4c',1,'entt::basic_observer']]], - ['_7ebasic_5freactive_5fmixin_6',['~basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a6bafc1c76baa384839156e2d672bcc43',1,'entt::basic_reactive_mixin']]], - ['_7ebasic_5fregistry_7',['~basic_registry',['../classentt_1_1basic__registry.html#ad1a40bc7886d5e9382fc2d74d5c4574e',1,'entt::basic_registry']]], - ['_7ebasic_5fruntime_5fview_8',['~basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a8f374ce6d3122f0ddf71db2f8f8083a8',1,'entt::basic_runtime_view']]], - ['_7ebasic_5fscheduler_9',['~basic_scheduler',['../classentt_1_1basic__scheduler.html#a7a5de33957c30564f3f7e42c15b7305f',1,'entt::basic_scheduler']]], - ['_7ebasic_5fsigh_5fmixin_10',['~basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a8d4ca0355d2eb28044c0ba055f75d85b',1,'entt::basic_sigh_mixin']]], - ['_7ebasic_5fsnapshot_11',['~basic_snapshot',['../classentt_1_1basic__snapshot.html#a909db76e0eb7d320d1c65dafe490aa39',1,'entt::basic_snapshot']]], - ['_7ebasic_5fsnapshot_5floader_12',['~basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a5e4bdf75e5da11941472f3e389f0427b',1,'entt::basic_snapshot_loader']]], - ['_7ebasic_5fsparse_5fset_13',['~basic_sparse_set',['../classentt_1_1basic__sparse__set.html#ac56f048f614c38f14b19ba9cb27faa94',1,'entt::basic_sparse_set']]], - ['_7ebasic_5fstorage_14',['~basic_storage',['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage::~basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a4ac338f44a25f8b0fc8506beaa5c25ae',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::~basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a63a788bded60499df62a260d69ca3265',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage()']]], - ['_7ebasic_5ftable_15',['~basic_table',['../classentt_1_1basic__table.html#a609f8c87518ded045430421f53b4cdf7',1,'entt::basic_table']]], - ['_7ecompressed_5fpair_16',['~compressed_pair',['../classentt_1_1compressed__pair.html#a9831ac9ef2ffaebd79da3b1f40c36f23',1,'entt::compressed_pair']]], - ['_7edense_5fmap_17',['~dense_map',['../classentt_1_1dense__map.html#af2d0aa858937c74139ff7f48be924268',1,'entt::dense_map']]], - ['_7edense_5fset_18',['~dense_set',['../classentt_1_1dense__set.html#a878bf99193783308b365997219a34cbf',1,'entt::dense_set']]], - ['_7eemitter_19',['~emitter',['../classentt_1_1emitter.html#ae5dd15e29f22f081b59718866e481aba',1,'entt::emitter']]], - ['_7elocator_20',['~locator',['../classentt_1_1locator.html#a9f224d476bcb081004089f419a1ddde5',1,'entt::locator']]], - ['_7emeta_5fany_21',['~meta_any',['../classentt_1_1meta__any.html#a816dae3d4ed3e41fcb376ec5ec9c38c1',1,'entt::meta_any']]], - ['_7emeta_5fhandle_22',['~meta_handle',['../structentt_1_1meta__handle.html#a426657a6fd8aaffab9146c3e225bcd2d',1,'entt::meta_handle']]], - ['_7eprocess_23',['~process',['../classentt_1_1process.html#a2baf1b6aef37c1420a77cd3f8eadcf79',1,'entt::process']]], - ['_7eresource_24',['~resource',['../classentt_1_1resource.html#ace158e095d852c0159d66cc8d1548a76',1,'entt::resource']]], - ['_7eresource_5fcache_25',['~resource_cache',['../classentt_1_1resource__cache.html#aed5d19e621551b3c3a3b868757122aad',1,'entt::resource_cache']]], - ['_7escoped_5fconnection_26',['~scoped_connection',['../structentt_1_1scoped__connection.html#a8bc8b8630e2ad076216b6aca416ce32c',1,'entt::scoped_connection']]], - ['_7esigh_27',['~sigh',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a4082f9bf79371005dfb42069eb96a436',1,'entt::sigh< Ret(Args...), Allocator >']]] + ['_7ebasic_5freactive_5fmixin_5',['~basic_reactive_mixin',['../classentt_1_1basic__reactive__mixin.html#a6bafc1c76baa384839156e2d672bcc43',1,'entt::basic_reactive_mixin']]], + ['_7ebasic_5fregistry_6',['~basic_registry',['../classentt_1_1basic__registry.html#ad1a40bc7886d5e9382fc2d74d5c4574e',1,'entt::basic_registry']]], + ['_7ebasic_5fruntime_5fview_7',['~basic_runtime_view',['../classentt_1_1basic__runtime__view.html#a8f374ce6d3122f0ddf71db2f8f8083a8',1,'entt::basic_runtime_view']]], + ['_7ebasic_5fscheduler_8',['~basic_scheduler',['../classentt_1_1basic__scheduler.html#a7a5de33957c30564f3f7e42c15b7305f',1,'entt::basic_scheduler']]], + ['_7ebasic_5fsigh_5fmixin_9',['~basic_sigh_mixin',['../classentt_1_1basic__sigh__mixin.html#a8d4ca0355d2eb28044c0ba055f75d85b',1,'entt::basic_sigh_mixin']]], + ['_7ebasic_5fsnapshot_10',['~basic_snapshot',['../classentt_1_1basic__snapshot.html#a909db76e0eb7d320d1c65dafe490aa39',1,'entt::basic_snapshot']]], + ['_7ebasic_5fsnapshot_5floader_11',['~basic_snapshot_loader',['../classentt_1_1basic__snapshot__loader.html#a5e4bdf75e5da11941472f3e389f0427b',1,'entt::basic_snapshot_loader']]], + ['_7ebasic_5fsparse_5fset_12',['~basic_sparse_set',['../classentt_1_1basic__sparse__set.html#ac56f048f614c38f14b19ba9cb27faa94',1,'entt::basic_sparse_set']]], + ['_7ebasic_5fstorage_13',['~basic_storage',['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage::~basic_storage()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a01a5accb1f6fe2c530a0623623d373e3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::~basic_storage()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a63a788bded60499df62a260d69ca3265',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage() override=default'],['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage< Entity, Entity, Allocator >::~basic_storage() override'],['../classentt_1_1basic__storage.html#a0e445caa667814ee1132fe312d650ce8',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::~basic_storage()']]], + ['_7ebasic_5ftable_14',['~basic_table',['../classentt_1_1basic__table.html#a609f8c87518ded045430421f53b4cdf7',1,'entt::basic_table']]], + ['_7ecompressed_5fpair_15',['~compressed_pair',['../classentt_1_1compressed__pair.html#a9831ac9ef2ffaebd79da3b1f40c36f23',1,'entt::compressed_pair']]], + ['_7edense_5fmap_16',['~dense_map',['../classentt_1_1dense__map.html#af2d0aa858937c74139ff7f48be924268',1,'entt::dense_map']]], + ['_7edense_5fset_17',['~dense_set',['../classentt_1_1dense__set.html#a878bf99193783308b365997219a34cbf',1,'entt::dense_set']]], + ['_7eemitter_18',['~emitter',['../classentt_1_1emitter.html#ae5dd15e29f22f081b59718866e481aba',1,'entt::emitter']]], + ['_7elocator_19',['~locator',['../classentt_1_1locator.html#a9f224d476bcb081004089f419a1ddde5',1,'entt::locator']]], + ['_7emeta_5fany_20',['~meta_any',['../classentt_1_1meta__any.html#a816dae3d4ed3e41fcb376ec5ec9c38c1',1,'entt::meta_any']]], + ['_7emeta_5fhandle_21',['~meta_handle',['../structentt_1_1meta__handle.html#a426657a6fd8aaffab9146c3e225bcd2d',1,'entt::meta_handle']]], + ['_7eprocess_22',['~process',['../classentt_1_1process.html#a2baf1b6aef37c1420a77cd3f8eadcf79',1,'entt::process']]], + ['_7eresource_23',['~resource',['../classentt_1_1resource.html#ace158e095d852c0159d66cc8d1548a76',1,'entt::resource']]], + ['_7eresource_5fcache_24',['~resource_cache',['../classentt_1_1resource__cache.html#aed5d19e621551b3c3a3b868757122aad',1,'entt::resource_cache']]], + ['_7escoped_5fconnection_25',['~scoped_connection',['../structentt_1_1scoped__connection.html#a8bc8b8630e2ad076216b6aca416ce32c',1,'entt::scoped_connection']]] ]; diff --git a/search/functions_2.js b/search/functions_2.js index ca8704193..53ff2646d 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -3,29 +3,27 @@ var searchData= ['callback_0',['callback',['../structentt_1_1basic__organizer_1_1vertex.html#a3d604d4dd97f0fe1113b85bbb37a8ff8',1,'entt::basic_organizer::vertex']]], ['can_5fcast_1',['can_cast',['../classentt_1_1meta__type.html#aae74bf7329f5e8a65b1b3ead750b71c9',1,'entt::meta_type']]], ['can_5fconvert_2',['can_convert',['../classentt_1_1meta__type.html#a9bf733b0f229dc8803db6fac2fde94d7',1,'entt::meta_type']]], - ['capacity_3',['capacity',['../classentt_1_1basic__table.html#a270b12a0f324ba7bf8e20d5748ff7a20',1,'entt::basic_table::capacity()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#aaec4bf1c339ee706c1e382f81e995116',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::capacity()'],['../classentt_1_1basic__sparse__set.html#a17b25baaceb061cd93da56f1ec24ee98',1,'entt::basic_sparse_set::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage::capacity()']]], + ['capacity_3',['capacity',['../classentt_1_1basic__table.html#a270b12a0f324ba7bf8e20d5748ff7a20',1,'entt::basic_table::capacity()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#aaec4bf1c339ee706c1e382f81e995116',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::capacity()'],['../classentt_1_1basic__sparse__set.html#a17b25baaceb061cd93da56f1ec24ee98',1,'entt::basic_sparse_set::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage< Entity, Entity, Allocator >::capacity()'],['../classentt_1_1basic__storage.html#a45d9ea8409804572c0ec705c2bc8c293',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::capacity()']]], ['cast_4',['cast',['../classentt_1_1meta__any.html#a33fefbf899923477ca1f803dd43f9921',1,'entt::meta_any::cast() const'],['../classentt_1_1meta__any.html#a2806db144d87feccbb5cdc1aaafd5af1',1,'entt::meta_any::cast()']]], - ['cbegin_5',['cbegin',['../classentt_1_1dense__map.html#a2cef5e32d1e4575669c9afcf6bcbedc5',1,'entt::dense_map::cbegin() const noexcept'],['../classentt_1_1dense__map.html#a9e9beebb937e95a40246455194c86c84',1,'entt::dense_map::cbegin(const size_type index) const'],['../classentt_1_1dense__set.html#a72d096d037d026cde4c1cae27dc326ba',1,'entt::dense_set::cbegin() const noexcept'],['../classentt_1_1dense__set.html#af66d225983e161e2f5b6bcd839dd295e',1,'entt::dense_set::cbegin(const size_type index) const'],['../classentt_1_1basic__table.html#ac94038f80b1af67d5c8123c939177e23',1,'entt::basic_table::cbegin()'],['../structentt_1_1iterable__adaptor.html#a9be3932fdbeb96b09de8254ccae0487e',1,'entt::iterable_adaptor::cbegin()'],['../classentt_1_1basic__sparse__set.html#a1934fc85ed01c3528c45ab9a76712fa7',1,'entt::basic_sparse_set::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage::cbegin()'],['../classentt_1_1resource__cache.html#a86e17d7b431149fcbb559963d4e2a0ab',1,'entt::resource_cache::cbegin()']]], - ['cend_6',['cend',['../classentt_1_1dense__map.html#a5123c811e7090df1a793e9bc1821d2e5',1,'entt::dense_map::cend() const noexcept'],['../classentt_1_1dense__map.html#a8125ea2706a6208565a4d67f0e6efbed',1,'entt::dense_map::cend(const size_type index) const'],['../classentt_1_1dense__set.html#a29506e74715ef7fa560eb4726cff34ee',1,'entt::dense_set::cend() const noexcept'],['../classentt_1_1dense__set.html#a8b88d43b273bf11855fe1df801f3a27c',1,'entt::dense_set::cend(const size_type index) const'],['../classentt_1_1basic__table.html#aebb5d0af9329cd7de5ec9c5be1d04c77',1,'entt::basic_table::cend()'],['../structentt_1_1iterable__adaptor.html#a1fac851b1471910446279bbda676f936',1,'entt::iterable_adaptor::cend()'],['../classentt_1_1basic__sparse__set.html#a9f0cc6e746fd49b0c7a0b8e5d8504fef',1,'entt::basic_sparse_set::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage::cend()'],['../classentt_1_1resource__cache.html#a3fc738c52e0da81c600dcbf66793358d',1,'entt::resource_cache::cend()']]], - ['children_7',['children',['../structentt_1_1basic__organizer_1_1vertex.html#a788f84a65b3147d1b1851035396f0065',1,'entt::basic_organizer::vertex']]], - ['clear_8',['clear',['../classentt_1_1dense__map.html#a096c30be0af8e15902f5585c8d1208b7',1,'entt::dense_map::clear()'],['../classentt_1_1dense__set.html#a00f6e4f5dd97cbf86554ec14799d2865',1,'entt::dense_set::clear()'],['../classentt_1_1basic__table.html#a9823766a45bf78902f7c884f43cfef25',1,'entt::basic_table::clear()'],['../classentt_1_1basic__observer.html#a3b5f3a90bc4fb1683bb9953a3f7fbaa3',1,'entt::basic_observer::clear()'],['../classentt_1_1basic__organizer.html#a755aaa8b355f58aff645bd54d5674317',1,'entt::basic_organizer::clear()'],['../classentt_1_1basic__registry.html#a65ae6a29493a09a3c19e83748bae6a7e',1,'entt::basic_registry::clear()'],['../classentt_1_1basic__runtime__view.html#aba28ae42bd739ad6ffe2951f9213c7cd',1,'entt::basic_runtime_view::clear()'],['../classentt_1_1basic__sparse__set.html#a6560773b887906122d50a413aea1faad',1,'entt::basic_sparse_set::clear()'],['../classentt_1_1adjacency__matrix.html#a81931cd90488b3e5269217f7d6064c93',1,'entt::adjacency_matrix::clear()'],['../classentt_1_1basic__flow.html#a07719c4e2fa4e79f7381a7a3d30d75f2',1,'entt::basic_flow::clear()'],['../structentt_1_1basic__meta__sequence__container__traits.html#affb4a17eac2bdc76e5cb67a6c40695a7',1,'entt::basic_meta_sequence_container_traits::clear()'],['../structentt_1_1basic__meta__associative__container__traits.html#adf9bc27ae40de083f96c62fcc7bf5aa3',1,'entt::basic_meta_associative_container_traits::clear()'],['../classentt_1_1meta__sequence__container.html#afd684301f43565b7fc23b32b8b92bb6e',1,'entt::meta_sequence_container::clear()'],['../classentt_1_1meta__associative__container.html#af8d886eee95047430e1272ae419be3e4',1,'entt::meta_associative_container::clear()'],['../classentt_1_1basic__scheduler.html#ae92f6e2916a21e4225bb93cc747a90af',1,'entt::basic_scheduler::clear()'],['../classentt_1_1resource__cache.html#afc93c548b1c96d974a24e105ee6afd54',1,'entt::resource_cache::clear()'],['../classentt_1_1basic__dispatcher.html#a02c856afb5d117366cc81543bece0cc8',1,'entt::basic_dispatcher::clear(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a1d149a28b16f00d36400022d5eb5546a',1,'entt::basic_dispatcher::clear() noexcept'],['../classentt_1_1emitter.html#a5222e50d997a70afcdfc678a26d59ca4',1,'entt::emitter::clear()']]], - ['collect_9',['collect',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#af48a9fae33221a696db874e00516a7e1',1,'entt::sigh< Ret(Args...), Allocator >']]], - ['combine_10',['combine',['../classentt_1_1basic__entt__traits.html#ad00358aea03a19c59efae2f8c005ae9b',1,'entt::basic_entt_traits']]], - ['compact_11',['compact',['../classentt_1_1basic__registry.html#ac9008dbd303d18cccf1ef7f279637347',1,'entt::basic_registry::compact()'],['../classentt_1_1basic__sparse__set.html#af4979ce48546cfcc705c4d23654faef2',1,'entt::basic_sparse_set::compact()']]], - ['compressed_5fpair_12',['compressed_pair',['../classentt_1_1compressed__pair.html#a7aa6f4b0acb48a7303db63282e6a7ef0',1,'entt::compressed_pair::compressed_pair() noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)'],['../classentt_1_1compressed__pair.html#a2a25fcd5670e614428cbb8b929f02fca',1,'entt::compressed_pair::compressed_pair(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#a194a2b3c03cae823e6c98717ecbada50',1,'entt::compressed_pair::compressed_pair(compressed_pair &&other) noexcept=default'],['../classentt_1_1compressed__pair.html#a422c707156810ef9670a6d571165ffcb',1,'entt::compressed_pair::compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)'],['../classentt_1_1compressed__pair.html#a6d41221d79b9040ba42a3d80fc5eb376',1,'entt::compressed_pair::compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)'],['../namespaceentt.html#afd93ac21ff904a1ba357caf8ea40cd7f',1,'entt::compressed_pair()']]], - ['connect_13',['connect',['../classentt_1_1basic__observer.html#a55539384374b885ab505db2ce22f75a1',1,'entt::basic_observer::connect()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a97b4139915fc1c5528427b1a8685b134',1,'entt::delegate< Ret(Args...)>::connect() noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a541b15248c0722840117695e92e1317f',1,'entt::delegate< Ret(Args...)>::connect(Type &value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a96de957fc6a89a4d017930e084637717',1,'entt::delegate< Ret(Args...)>::connect(Type *value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#aca254b9fab39adc886b0a2266b39f88f',1,'entt::delegate< Ret(Args...)>::connect(function_type *function, const void *payload=nullptr) noexcept'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#acd54a96e6ac82ba8556879b7705322d9',1,'entt::sink< sigh< Ret(Args...), Allocator > >::connect()']]], - ['connect_5farg_5ft_14',['connect_arg_t',['../structentt_1_1connect__arg__t.html#a12a73ad585b91a695c130d132b8692cb',1,'entt::connect_arg_t']]], - ['connection_15',['connection',['../classentt_1_1connection.html#a6cee78e145a8b503654cb0d564848749',1,'entt::connection']]], - ['construct_16',['construct',['../classentt_1_1basic__entt__traits.html#a3d3c3e8fd538fb4394ea505dd0415ec5',1,'entt::basic_entt_traits::construct()'],['../classentt_1_1meta__type.html#acd24936afdaa36484a6e508d52f49663',1,'entt::meta_type::construct(meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a429d2a56a3aab671a76f87828e7f10f6',1,'entt::meta_type::construct(Args &&...args) const']]], - ['contains_17',['contains',['../classentt_1_1dense__map.html#a4d884a2b7164b3df97d93dd2804222b0',1,'entt::dense_map::contains(const key_type &key) const'],['../classentt_1_1dense__map.html#a20be7fc1cde4a3ae47f22333e3220200',1,'entt::dense_map::contains(const Other &key) const'],['../classentt_1_1dense__set.html#afd77a2703fb72d17f382f5cb1aeb24b2',1,'entt::dense_set::contains(const value_type &value) const'],['../classentt_1_1dense__set.html#a2f15a3c269ae641901904a3806ee128a',1,'entt::dense_set::contains(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38f5f9228661385295bc7a576fb187fe',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a7c8602aabac11b094162e687a7a07668',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__runtime__view.html#a8ff8f51d9d329fd39633960e1f79994f',1,'entt::basic_runtime_view::contains()'],['../classentt_1_1basic__continuous__loader.html#ab682c079d9ddf61f04e121d6fab421d7',1,'entt::basic_continuous_loader::contains()'],['../classentt_1_1basic__sparse__set.html#a97b47cbaea3fc30442fa3e6366766c86',1,'entt::basic_sparse_set::contains()'],['../classentt_1_1basic__common__view.html#a5123427d3555f05d61b996fe518b78de',1,'entt::basic_common_view::contains()'],['../classentt_1_1basic__storage__view.html#a32339020ae42bc9153a7f283c2e2939b',1,'entt::basic_storage_view::contains()'],['../classentt_1_1adjacency__matrix.html#a783833a34672bcbd0afab063ab417a97',1,'entt::adjacency_matrix::contains()'],['../classentt_1_1resource__cache.html#aff744458b981ee509a7381ffdf544522',1,'entt::resource_cache::contains()'],['../classentt_1_1emitter.html#a6bced239a3a07f86dc759ebc1a71813a',1,'entt::emitter::contains()']]], - ['contiguous_18',['contiguous',['../classentt_1_1basic__sparse__set.html#a736ba15d734ea65f18e3c1fd5d748e5e',1,'entt::basic_sparse_set']]], - ['conv_19',['conv',['../classentt_1_1meta__factory.html#a3d01a8256999f198fe5ec829d7b0a5eb',1,'entt::meta_factory::conv() noexcept'],['../classentt_1_1meta__factory.html#a96a4260b25bd05c0d6e8a7c405f669c0',1,'entt::meta_factory::conv() noexcept']]], - ['count_20',['count',['../classentt_1_1dense__map.html#a4b5f56217b3b8eae9ad34334df1a931d',1,'entt::dense_map::count(const key_type &key) const'],['../classentt_1_1dense__map.html#a3858017ba66ff9989fe2427065dd6d97',1,'entt::dense_map::count(const Other &key) const'],['../classentt_1_1dense__set.html#a8d3596e86387eb57317a565f23b3d7b9',1,'entt::dense_set::count(const value_type &key) const'],['../classentt_1_1dense__set.html#ae07fa72742e52a2a2823252487af5263',1,'entt::dense_set::count(const Other &key) const']]], - ['crbegin_21',['crbegin',['../classentt_1_1dense__set.html#a0ecb4af728c919ff111a03cf79bc4dd3',1,'entt::dense_set::crbegin()'],['../classentt_1_1basic__table.html#aa16ac55ee8d1274ad1e118d0d91102d0',1,'entt::basic_table::crbegin()'],['../classentt_1_1basic__sparse__set.html#ad57b82c12d92837a14d8904e82eb49a9',1,'entt::basic_sparse_set::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage::crbegin()']]], - ['create_22',['create',['../classentt_1_1basic__registry.html#a4ab0e3ed31fb0c455c07d0541941108a',1,'entt::basic_registry::create()'],['../classentt_1_1basic__registry.html#a6366705dc2f7db448434ce17e1403884',1,'entt::basic_registry::create(const entity_type hint)'],['../classentt_1_1basic__registry.html#a5dee7d7c5329e5fd29bcfbe4a5a4842a',1,'entt::basic_registry::create(It first, It last)']]], - ['crend_23',['crend',['../classentt_1_1dense__set.html#ade757a21f4fc8d6db7bc594ad8157a59',1,'entt::dense_set::crend()'],['../classentt_1_1basic__table.html#a663ceb2e3cf385ba2bd34c98a8d8e13e',1,'entt::basic_table::crend()'],['../classentt_1_1basic__sparse__set.html#ab28f2f1c7bbf2861f4a3e7602a317b96',1,'entt::basic_sparse_set::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage::crend()']]], - ['ctor_24',['ctor',['../classentt_1_1meta__factory.html#a547609767a2953357ce85fc9f0997f72',1,'entt::meta_factory::ctor() noexcept'],['../classentt_1_1meta__factory.html#a1ecd9216d714d1564e9ad7298274e80f',1,'entt::meta_factory::ctor() noexcept']]], - ['ctx_25',['ctx',['../classentt_1_1basic__registry.html#a063e7f4879b50fcd332702bc8cc0fa61',1,'entt::basic_registry::ctx() noexcept'],['../classentt_1_1basic__registry.html#a4ad88b333d9c2ac606b322532a921e40',1,'entt::basic_registry::ctx() const noexcept']]], - ['current_26',['current',['../classentt_1_1basic__registry.html#ad953b537b28f0f8d590e77b81faa1941',1,'entt::basic_registry::current()'],['../classentt_1_1basic__sparse__set.html#a96cf0ed9f37ededbd40f6a8c38c1940b',1,'entt::basic_sparse_set::current()']]], - ['custom_27',['custom',['../classentt_1_1meta__factory.html#a08a6448ec41cf5e1c7b3e084a91a0ef3',1,'entt::meta_factory::custom()'],['../structentt_1_1meta__data.html#aa7116efed3b5ed7c707d21e6cf55bbfd',1,'entt::meta_data::custom()'],['../structentt_1_1meta__func.html#aa5b5bee63f5eb18605f8335a28ec6d01',1,'entt::meta_func::custom()'],['../classentt_1_1meta__type.html#a22e8791761629cd5e027ccfa4bd4fa69',1,'entt::meta_type::custom()']]] + ['cbegin_5',['cbegin',['../classentt_1_1dense__map.html#a2cef5e32d1e4575669c9afcf6bcbedc5',1,'entt::dense_map::cbegin() const noexcept'],['../classentt_1_1dense__map.html#a9e9beebb937e95a40246455194c86c84',1,'entt::dense_map::cbegin(const size_type index) const'],['../classentt_1_1dense__set.html#a72d096d037d026cde4c1cae27dc326ba',1,'entt::dense_set::cbegin() const noexcept'],['../classentt_1_1dense__set.html#af66d225983e161e2f5b6bcd839dd295e',1,'entt::dense_set::cbegin(const size_type index) const'],['../classentt_1_1basic__table.html#ac94038f80b1af67d5c8123c939177e23',1,'entt::basic_table::cbegin()'],['../structentt_1_1iterable__adaptor.html#a9be3932fdbeb96b09de8254ccae0487e',1,'entt::iterable_adaptor::cbegin()'],['../classentt_1_1basic__sparse__set.html#a1934fc85ed01c3528c45ab9a76712fa7',1,'entt::basic_sparse_set::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage::cbegin()'],['../classentt_1_1resource__cache.html#a86e17d7b431149fcbb559963d4e2a0ab',1,'entt::resource_cache::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage< Entity, Entity, Allocator >::cbegin()'],['../classentt_1_1basic__storage.html#a9ab3e6177006330420d5590d280a3f33',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::cbegin()']]], + ['cend_6',['cend',['../classentt_1_1dense__map.html#a5123c811e7090df1a793e9bc1821d2e5',1,'entt::dense_map::cend() const noexcept'],['../classentt_1_1dense__map.html#a8125ea2706a6208565a4d67f0e6efbed',1,'entt::dense_map::cend(const size_type index) const'],['../classentt_1_1dense__set.html#a29506e74715ef7fa560eb4726cff34ee',1,'entt::dense_set::cend() const noexcept'],['../classentt_1_1dense__set.html#a8b88d43b273bf11855fe1df801f3a27c',1,'entt::dense_set::cend(const size_type index) const'],['../classentt_1_1basic__table.html#aebb5d0af9329cd7de5ec9c5be1d04c77',1,'entt::basic_table::cend()'],['../structentt_1_1iterable__adaptor.html#a1fac851b1471910446279bbda676f936',1,'entt::iterable_adaptor::cend()'],['../classentt_1_1basic__sparse__set.html#a9f0cc6e746fd49b0c7a0b8e5d8504fef',1,'entt::basic_sparse_set::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage::cend()'],['../classentt_1_1resource__cache.html#a3fc738c52e0da81c600dcbf66793358d',1,'entt::resource_cache::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage< Entity, Entity, Allocator >::cend()'],['../classentt_1_1basic__storage.html#a4429fb49d4f32d6d553150b44951a406',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::cend()']]], + ['clear_7',['clear',['../classentt_1_1dense__map.html#a096c30be0af8e15902f5585c8d1208b7',1,'entt::dense_map::clear()'],['../classentt_1_1dense__set.html#a00f6e4f5dd97cbf86554ec14799d2865',1,'entt::dense_set::clear()'],['../classentt_1_1basic__table.html#a9823766a45bf78902f7c884f43cfef25',1,'entt::basic_table::clear()'],['../classentt_1_1basic__organizer.html#a755aaa8b355f58aff645bd54d5674317',1,'entt::basic_organizer::clear()'],['../classentt_1_1basic__registry.html#a65ae6a29493a09a3c19e83748bae6a7e',1,'entt::basic_registry::clear()'],['../classentt_1_1basic__runtime__view.html#aba28ae42bd739ad6ffe2951f9213c7cd',1,'entt::basic_runtime_view::clear()'],['../classentt_1_1basic__sparse__set.html#a6560773b887906122d50a413aea1faad',1,'entt::basic_sparse_set::clear()'],['../classentt_1_1adjacency__matrix.html#a81931cd90488b3e5269217f7d6064c93',1,'entt::adjacency_matrix::clear()'],['../classentt_1_1basic__flow.html#a07719c4e2fa4e79f7381a7a3d30d75f2',1,'entt::basic_flow::clear()'],['../structentt_1_1basic__meta__sequence__container__traits.html#affb4a17eac2bdc76e5cb67a6c40695a7',1,'entt::basic_meta_sequence_container_traits::clear()'],['../structentt_1_1basic__meta__associative__container__traits.html#adf9bc27ae40de083f96c62fcc7bf5aa3',1,'entt::basic_meta_associative_container_traits::clear()'],['../classentt_1_1meta__sequence__container.html#afd684301f43565b7fc23b32b8b92bb6e',1,'entt::meta_sequence_container::clear()'],['../classentt_1_1meta__associative__container.html#af8d886eee95047430e1272ae419be3e4',1,'entt::meta_associative_container::clear()'],['../classentt_1_1basic__scheduler.html#ae92f6e2916a21e4225bb93cc747a90af',1,'entt::basic_scheduler::clear()'],['../classentt_1_1resource__cache.html#afc93c548b1c96d974a24e105ee6afd54',1,'entt::resource_cache::clear()'],['../classentt_1_1basic__dispatcher.html#a02c856afb5d117366cc81543bece0cc8',1,'entt::basic_dispatcher::clear(const id_type id=type_hash< Type >::value())'],['../classentt_1_1basic__dispatcher.html#a1d149a28b16f00d36400022d5eb5546a',1,'entt::basic_dispatcher::clear() noexcept'],['../classentt_1_1emitter.html#a5222e50d997a70afcdfc678a26d59ca4',1,'entt::emitter::clear()']]], + ['combine_8',['combine',['../classentt_1_1basic__entt__traits.html#ad00358aea03a19c59efae2f8c005ae9b',1,'entt::basic_entt_traits']]], + ['compact_9',['compact',['../classentt_1_1basic__registry.html#ac9008dbd303d18cccf1ef7f279637347',1,'entt::basic_registry::compact()'],['../classentt_1_1basic__sparse__set.html#af4979ce48546cfcc705c4d23654faef2',1,'entt::basic_sparse_set::compact()']]], + ['compressed_5fpair_10',['compressed_pair',['../classentt_1_1compressed__pair.html#a7aa6f4b0acb48a7303db63282e6a7ef0',1,'entt::compressed_pair::compressed_pair() noexcept(std::is_nothrow_default_constructible_v< first_base > &&std::is_nothrow_default_constructible_v< second_base >)'],['../classentt_1_1compressed__pair.html#a2a25fcd5670e614428cbb8b929f02fca',1,'entt::compressed_pair::compressed_pair(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#a194a2b3c03cae823e6c98717ecbada50',1,'entt::compressed_pair::compressed_pair(compressed_pair &&other) noexcept=default'],['../classentt_1_1compressed__pair.html#a422c707156810ef9670a6d571165ffcb',1,'entt::compressed_pair::compressed_pair(Arg &&arg, Other &&other) noexcept(std::is_nothrow_constructible_v< first_base, Arg > &&std::is_nothrow_constructible_v< second_base, Other >)'],['../classentt_1_1compressed__pair.html#a6d41221d79b9040ba42a3d80fc5eb376',1,'entt::compressed_pair::compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other) noexcept(std::is_nothrow_constructible_v< first_base, Args... > &&std::is_nothrow_constructible_v< second_base, Other... >)'],['../namespaceentt.html#afd93ac21ff904a1ba357caf8ea40cd7f',1,'entt::compressed_pair()']]], + ['connect_5farg_5ft_11',['connect_arg_t',['../structentt_1_1connect__arg__t.html#a12a73ad585b91a695c130d132b8692cb',1,'entt::connect_arg_t']]], + ['connection_12',['connection',['../classentt_1_1connection.html#a6cee78e145a8b503654cb0d564848749',1,'entt::connection']]], + ['construct_13',['construct',['../classentt_1_1basic__entt__traits.html#a3d3c3e8fd538fb4394ea505dd0415ec5',1,'entt::basic_entt_traits::construct()'],['../classentt_1_1meta__type.html#acd24936afdaa36484a6e508d52f49663',1,'entt::meta_type::construct(meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a429d2a56a3aab671a76f87828e7f10f6',1,'entt::meta_type::construct(Args &&...args) const']]], + ['contains_14',['contains',['../classentt_1_1dense__map.html#a4d884a2b7164b3df97d93dd2804222b0',1,'entt::dense_map::contains(const key_type &key) const'],['../classentt_1_1dense__map.html#a20be7fc1cde4a3ae47f22333e3220200',1,'entt::dense_map::contains(const Other &key) const'],['../classentt_1_1dense__set.html#afd77a2703fb72d17f382f5cb1aeb24b2',1,'entt::dense_set::contains(const value_type &value) const'],['../classentt_1_1dense__set.html#a2f15a3c269ae641901904a3806ee128a',1,'entt::dense_set::contains(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38f5f9228661385295bc7a576fb187fe',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a7c8602aabac11b094162e687a7a07668',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::contains()'],['../classentt_1_1basic__runtime__view.html#a8ff8f51d9d329fd39633960e1f79994f',1,'entt::basic_runtime_view::contains()'],['../classentt_1_1basic__continuous__loader.html#ab682c079d9ddf61f04e121d6fab421d7',1,'entt::basic_continuous_loader::contains()'],['../classentt_1_1basic__sparse__set.html#a97b47cbaea3fc30442fa3e6366766c86',1,'entt::basic_sparse_set::contains()'],['../classentt_1_1basic__common__view.html#a5639cffd5495c9dd1a94cc2a4839fe9f',1,'entt::basic_common_view::contains()'],['../classentt_1_1basic__storage__view.html#a32339020ae42bc9153a7f283c2e2939b',1,'entt::basic_storage_view::contains()'],['../classentt_1_1adjacency__matrix.html#a783833a34672bcbd0afab063ab417a97',1,'entt::adjacency_matrix::contains()'],['../classentt_1_1resource__cache.html#aff744458b981ee509a7381ffdf544522',1,'entt::resource_cache::contains()'],['../classentt_1_1emitter.html#a6bced239a3a07f86dc759ebc1a71813a',1,'entt::emitter::contains()']]], + ['context_15',['context',['../classentt_1_1meta__any.html#af9f2d87f697d3e78b5bf2100e4cf8cae',1,'entt::meta_any']]], + ['contiguous_16',['contiguous',['../classentt_1_1basic__sparse__set.html#a736ba15d734ea65f18e3c1fd5d748e5e',1,'entt::basic_sparse_set']]], + ['conv_17',['conv',['../classentt_1_1meta__factory.html#a3d01a8256999f198fe5ec829d7b0a5eb',1,'entt::meta_factory::conv() noexcept'],['../classentt_1_1meta__factory.html#a96a4260b25bd05c0d6e8a7c405f669c0',1,'entt::meta_factory::conv() noexcept']]], + ['count_18',['count',['../classentt_1_1dense__map.html#a4b5f56217b3b8eae9ad34334df1a931d',1,'entt::dense_map::count(const key_type &key) const'],['../classentt_1_1dense__map.html#a3858017ba66ff9989fe2427065dd6d97',1,'entt::dense_map::count(const Other &key) const'],['../classentt_1_1dense__set.html#a8d3596e86387eb57317a565f23b3d7b9',1,'entt::dense_set::count(const value_type &key) const'],['../classentt_1_1dense__set.html#ae07fa72742e52a2a2823252487af5263',1,'entt::dense_set::count(const Other &key) const']]], + ['crbegin_19',['crbegin',['../classentt_1_1dense__set.html#a0ecb4af728c919ff111a03cf79bc4dd3',1,'entt::dense_set::crbegin()'],['../classentt_1_1basic__table.html#aa16ac55ee8d1274ad1e118d0d91102d0',1,'entt::basic_table::crbegin()'],['../classentt_1_1basic__sparse__set.html#ad57b82c12d92837a14d8904e82eb49a9',1,'entt::basic_sparse_set::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage< Entity, Entity, Allocator >::crbegin()'],['../classentt_1_1basic__storage.html#ada8f048f0df07217eb94bd61f2cec729',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::crbegin()']]], + ['create_20',['create',['../classentt_1_1basic__registry.html#a4ab0e3ed31fb0c455c07d0541941108a',1,'entt::basic_registry::create()'],['../classentt_1_1basic__registry.html#a6366705dc2f7db448434ce17e1403884',1,'entt::basic_registry::create(const entity_type hint)'],['../classentt_1_1basic__registry.html#a5dee7d7c5329e5fd29bcfbe4a5a4842a',1,'entt::basic_registry::create(It first, It last)']]], + ['crend_21',['crend',['../classentt_1_1dense__set.html#ade757a21f4fc8d6db7bc594ad8157a59',1,'entt::dense_set::crend()'],['../classentt_1_1basic__table.html#a663ceb2e3cf385ba2bd34c98a8d8e13e',1,'entt::basic_table::crend()'],['../classentt_1_1basic__sparse__set.html#ab28f2f1c7bbf2861f4a3e7602a317b96',1,'entt::basic_sparse_set::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage< Entity, Entity, Allocator >::crend()'],['../classentt_1_1basic__storage.html#accad70b92b1e1667be5ce183928a3d02',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::crend()']]], + ['ctor_22',['ctor',['../classentt_1_1meta__factory.html#a547609767a2953357ce85fc9f0997f72',1,'entt::meta_factory::ctor() noexcept'],['../classentt_1_1meta__factory.html#a1ecd9216d714d1564e9ad7298274e80f',1,'entt::meta_factory::ctor() noexcept']]], + ['ctx_23',['ctx',['../classentt_1_1basic__registry.html#a063e7f4879b50fcd332702bc8cc0fa61',1,'entt::basic_registry::ctx() noexcept'],['../classentt_1_1basic__registry.html#a4ad88b333d9c2ac606b322532a921e40',1,'entt::basic_registry::ctx() const noexcept']]], + ['current_24',['current',['../classentt_1_1basic__registry.html#ad953b537b28f0f8d590e77b81faa1941',1,'entt::basic_registry::current()'],['../classentt_1_1basic__sparse__set.html#a96cf0ed9f37ededbd40f6a8c38c1940b',1,'entt::basic_sparse_set::current()']]], + ['custom_25',['custom',['../classentt_1_1meta__factory.html#a08a6448ec41cf5e1c7b3e084a91a0ef3',1,'entt::meta_factory::custom()'],['../structentt_1_1meta__data.html#aa7116efed3b5ed7c707d21e6cf55bbfd',1,'entt::meta_data::custom()'],['../structentt_1_1meta__func.html#aa5b5bee63f5eb18605f8335a28ec6d01',1,'entt::meta_func::custom()'],['../classentt_1_1meta__type.html#a22e8791761629cd5e027ccfa4bd4fa69',1,'entt::meta_type::custom()']]] ]; diff --git a/search/functions_3.js b/search/functions_3.js index 2ebe79ef2..e0c1f174c 100644 --- a/search/functions_3.js +++ b/search/functions_3.js @@ -1,13 +1,13 @@ var searchData= [ - ['data_0',['data',['../classentt_1_1basic__any.html#a43d097fa91670846621ec23995bc80f3',1,'entt::basic_any::data() const noexcept'],['../classentt_1_1basic__any.html#afce19133c0447cf4abfb1eea3f812959',1,'entt::basic_any::data(const type_info &req) const noexcept'],['../classentt_1_1basic__any.html#af8f31671bcdb27166a7614a795680ef6',1,'entt::basic_any::data() noexcept'],['../classentt_1_1basic__any.html#ab90a391cc904cb9b68be91b36dd2155e',1,'entt::basic_any::data(const type_info &req) noexcept'],['../classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc',1,'entt::basic_hashed_string::data()'],['../classentt_1_1basic__observer.html#aad7d57a9b49d70b14b198369f2513a6e',1,'entt::basic_observer::data()'],['../structentt_1_1basic__organizer_1_1vertex.html#aca731d5248cacb0ac3e2fb4896feeb9c',1,'entt::basic_organizer::vertex::data()'],['../classentt_1_1basic__sparse__set.html#a4c540ff32bca204b1adbd9e4f4a0240b',1,'entt::basic_sparse_set::data()'],['../classentt_1_1meta__factory.html#a7d1f1ca89f91ee0f320a0253deadfb82',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__any.html#aebfabbc6c792a1aa66c9997435a21c66',1,'entt::meta_any::data() const noexcept'],['../classentt_1_1meta__any.html#a31f23326f36faa933ea4a1652d540a89',1,'entt::meta_any::data() noexcept'],['../classentt_1_1meta__type.html#a89e19eb9f844e4e730781db7613a7947',1,'entt::meta_type::data() const noexcept'],['../classentt_1_1meta__type.html#a68a81b038954d1727a6bb051ed1e810c',1,'entt::meta_type::data(const id_type id) const'],['../classentt_1_1basic__poly.html#aee4305d651f7b2f5248eba2cbfea4f17',1,'entt::basic_poly::data() const noexcept'],['../classentt_1_1basic__poly.html#a37aafd6c5ebf21b0eb66c3934abcbc06',1,'entt::basic_poly::data() noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a9d2053438aeeb385f81b4cf99367c796',1,'entt::delegate< Ret(Args...)>::data() const noexcept']]], - ['delegate_1',['delegate',['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ac815fb1339c39d2413bfd5c884aad8af',1,'entt::delegate< Ret(Args...)>::delegate() noexcept=default'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a6621de8a9d4986619a8e133e179710fb',1,'entt::delegate< Ret(Args...)>::delegate(connect_arg_t< Candidate >, Type &&...value_or_instance) noexcept'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a40c5ed7b7a18636722a6c692845414e3',1,'entt::delegate< Ret(Args...)>::delegate(function_type *function, const void *payload=nullptr) noexcept'],['../namespaceentt.html#acaa5569564e913ef41b15b06e3dca0f4',1,'entt::delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >'],['../namespaceentt.html#af883efa5bf613137f825c322df3ae801',1,'entt::delegate(connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >'],['../namespaceentt.html#aaba06006a862fa5dc613e8561ac4e92c',1,'entt::delegate(Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>']]], + ['data_0',['data',['../classentt_1_1basic__any.html#a43d097fa91670846621ec23995bc80f3',1,'entt::basic_any::data() const noexcept'],['../classentt_1_1basic__any.html#afce19133c0447cf4abfb1eea3f812959',1,'entt::basic_any::data(const type_info &req) const noexcept'],['../classentt_1_1basic__any.html#af8f31671bcdb27166a7614a795680ef6',1,'entt::basic_any::data() noexcept'],['../classentt_1_1basic__any.html#ab90a391cc904cb9b68be91b36dd2155e',1,'entt::basic_any::data(const type_info &req) noexcept'],['../classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc',1,'entt::basic_hashed_string::data()'],['../structentt_1_1basic__organizer_1_1vertex.html#aca731d5248cacb0ac3e2fb4896feeb9c',1,'entt::basic_organizer::vertex::data()'],['../classentt_1_1basic__sparse__set.html#a4c540ff32bca204b1adbd9e4f4a0240b',1,'entt::basic_sparse_set::data()'],['../classentt_1_1meta__factory.html#a7d1f1ca89f91ee0f320a0253deadfb82',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__factory.html#abdfc7c88ae9a5dcc8f81e72950b0c8cd',1,'entt::meta_factory::data(const id_type id) noexcept'],['../classentt_1_1meta__any.html#aebfabbc6c792a1aa66c9997435a21c66',1,'entt::meta_any::data() const noexcept'],['../classentt_1_1meta__any.html#a31f23326f36faa933ea4a1652d540a89',1,'entt::meta_any::data() noexcept'],['../classentt_1_1meta__type.html#a89e19eb9f844e4e730781db7613a7947',1,'entt::meta_type::data() const noexcept'],['../classentt_1_1meta__type.html#a68a81b038954d1727a6bb051ed1e810c',1,'entt::meta_type::data(const id_type id) const'],['../classentt_1_1basic__poly.html#aee4305d651f7b2f5248eba2cbfea4f17',1,'entt::basic_poly::data() const noexcept'],['../classentt_1_1basic__poly.html#a37aafd6c5ebf21b0eb66c3934abcbc06',1,'entt::basic_poly::data() noexcept']]], + ['delegate_1',['delegate',['../namespaceentt.html#acaa5569564e913ef41b15b06e3dca0f4',1,'entt::delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >'],['../namespaceentt.html#af883efa5bf613137f825c322df3ae801',1,'entt::delegate(connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type > > >'],['../namespaceentt.html#aaba06006a862fa5dc613e8561ac4e92c',1,'entt::delegate(Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>']]], ['dense_5fmap_2',['dense_map',['../classentt_1_1dense__map.html#af163bec2cf56f3571000a5fc0145832f',1,'entt::dense_map::dense_map()'],['../classentt_1_1dense__map.html#a096357c0bdb6342d7d304716e41fcea5',1,'entt::dense_map::dense_map(const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a524c65b19c282b4a2bce0434facca4c5',1,'entt::dense_map::dense_map(const size_type cnt, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#acb47beb8b4689e0e09e7527bd537f69b',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#a07183a6c046d3a3b2e7201bd63aa8efe',1,'entt::dense_map::dense_map(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1dense__map.html#aaa72d92d87e8020e0ca5f035cd665d8b',1,'entt::dense_map::dense_map(const dense_map &)=default'],['../classentt_1_1dense__map.html#a8924f4faaa1879a84734ec58f11e6662',1,'entt::dense_map::dense_map(const dense_map &other, const allocator_type &allocator)'],['../classentt_1_1dense__map.html#ad43ca6e61d09cd9f55c684c659dd74cc',1,'entt::dense_map::dense_map(dense_map &&) noexcept=default'],['../classentt_1_1dense__map.html#a352da8efacf3d89715b5892e65b82f66',1,'entt::dense_map::dense_map(dense_map &&other, const allocator_type &allocator)']]], ['dense_5fset_3',['dense_set',['../classentt_1_1dense__set.html#acb2185a8bef7bb0e248a61605c3b0bca',1,'entt::dense_set::dense_set()'],['../classentt_1_1dense__set.html#ac6e88655aa8ad10f1abec3f096c64161',1,'entt::dense_set::dense_set(const allocator_type &allocator)'],['../classentt_1_1dense__set.html#a7f5c5416bd4134d1709a13073f3682bc',1,'entt::dense_set::dense_set(const size_type cnt, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#a6b6ebde571ce025b298aa580b2b77e5b',1,'entt::dense_set::dense_set(const size_type cnt, const hasher &hash, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#ad29198f1dc4accffa9fc9859af956df3',1,'entt::dense_set::dense_set(const size_type cnt, const hasher &hash=hasher{}, const key_equal &equal=key_equal{}, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1dense__set.html#aa84caa4b8ea63cc40d7c96158a35760f',1,'entt::dense_set::dense_set(const dense_set &)=default'],['../classentt_1_1dense__set.html#a68b3b28b433da48bece9ff3abf1d476e',1,'entt::dense_set::dense_set(const dense_set &other, const allocator_type &allocator)'],['../classentt_1_1dense__set.html#ab2a4eef9bb92ac32b118c155e643795e',1,'entt::dense_set::dense_set(dense_set &&) noexcept=default'],['../classentt_1_1dense__set.html#ada9ee844d6f84e1670da4088f0e38361',1,'entt::dense_set::dense_set(dense_set &&other, const allocator_type &allocator)']]], ['dereference_4',['dereference',['../structentt_1_1adl__meta__pointer__like.html#afa27f416e32b351d85ab1a061c4597bd',1,'entt::adl_meta_pointer_like']]], ['dereference_5fmeta_5fpointer_5flike_5',['dereference_meta_pointer_like',['../namespaceentt.html#a2ab7b51802157a98106f238335fa7503',1,'entt']]], ['destroy_6',['destroy',['../classentt_1_1basic__handle.html#a010d60402134ca3ecc2b1665b338c99b',1,'entt::basic_handle::destroy()'],['../classentt_1_1basic__handle.html#a776a7e37785c0cf6e30885e3153375ba',1,'entt::basic_handle::destroy(const version_type version)'],['../classentt_1_1basic__registry.html#a4849d0fe9d6008431239c93c57551d10',1,'entt::basic_registry::destroy(const entity_type entt)'],['../classentt_1_1basic__registry.html#a4e957182d72fd24e436afda55ec25e33',1,'entt::basic_registry::destroy(const entity_type entt, const version_type version)'],['../classentt_1_1basic__registry.html#a90f87bda5906f0a26d118a4d058f376d',1,'entt::basic_registry::destroy(It first, It last)']]], - ['disconnect_7',['disconnect',['../classentt_1_1basic__observer.html#a65e696dc55d13d729decb03c148d715e',1,'entt::basic_observer::disconnect()'],['../classentt_1_1basic__dispatcher.html#a6d3929fa7b3de337091f4305a564ba75',1,'entt::basic_dispatcher::disconnect(Type &value_or_instance)'],['../classentt_1_1basic__dispatcher.html#adb5bc2c8ef847a296fe66c230f84569b',1,'entt::basic_dispatcher::disconnect(Type *value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#ae6c4e0a2616ecc906f7b02a280cb6110',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect(Type &&...value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a0011e7774b6c725b2ab3745c31833bb1',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect(const void *value_or_instance)'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a43ac539a332574445dc674332bd0726d',1,'entt::sink< sigh< Ret(Args...), Allocator > >::disconnect()']]], + ['disconnect_7',['disconnect',['../classentt_1_1basic__dispatcher.html#a6d3929fa7b3de337091f4305a564ba75',1,'entt::basic_dispatcher::disconnect(Type &value_or_instance)'],['../classentt_1_1basic__dispatcher.html#adb5bc2c8ef847a296fe66c230f84569b',1,'entt::basic_dispatcher::disconnect(Type *value_or_instance)']]], ['dot_8',['dot',['../namespaceentt.html#a8eb14d05375b98c803a4f335b9db15e4',1,'entt::dot(std::ostream &out, const Graph &graph, Writer writer)'],['../namespaceentt.html#a725644b580d804e01ac6f65a927469fd',1,'entt::dot(std::ostream &out, const Graph &graph)']]], ['dtor_9',['dtor',['../classentt_1_1meta__factory.html#a7938e982cfa68d82a45d085459b0f8cc',1,'entt::meta_factory']]] ]; diff --git a/search/functions_4.js b/search/functions_4.js index eaf993073..c4dd8d879 100644 --- a/search/functions_4.js +++ b/search/functions_4.js @@ -1,12 +1,12 @@ var searchData= [ - ['each_0',['each',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a7a9e949db960db1c091f7042b6829026',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#adc11363d541605654bf66ed62f5359eb',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02d082ed4b5d573c6b79644383f5f838',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30df55e12ed00f3e90ec23bd25595e2',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__observer.html#a9295584ca9f399bdc9bd0934ed66ae00',1,'entt::basic_observer::each(Func func) const'],['../classentt_1_1basic__observer.html#a7e153e66abae9eab2af3c3775127bab9',1,'entt::basic_observer::each(Func func)'],['../classentt_1_1basic__runtime__view.html#a9477a9767c87dee34b144b687dfa66ae',1,'entt::basic_runtime_view::each()'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage::each() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aba8303422ccc2123c75307b09490a1a7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a73a6df7204aaf27ea1af95627113d671',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac8d3d18104e55f52c6250474bd1d81d5',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aa648c85086af5e1698e35ec0aae4728e',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a201c77165fbb557c7f82023fb6cdeb30',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a9638fe48b3b3dd15d69eccd8ac88c7e1',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#abb851243b85eccc5c978064a2196a29a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aca8aa93c28dfd02fb09310735e4e4925',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each() const noexcept']]], + ['each_0',['each',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a7a9e949db960db1c091f7042b6829026',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#adc11363d541605654bf66ed62f5359eb',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02d082ed4b5d573c6b79644383f5f838',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each(Func func) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa30df55e12ed00f3e90ec23bd25595e2',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::each() const noexcept'],['../classentt_1_1basic__runtime__view.html#a9477a9767c87dee34b144b687dfa66ae',1,'entt::basic_runtime_view::each()'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage::each() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae8d22ce8b2036a87f02e8235c2fafd1e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad6177f1e9699daf501afb1dbaa9f00be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac8d3d18104e55f52c6250474bd1d81d5',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aa648c85086af5e1698e35ec0aae4728e',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a201c77165fbb557c7f82023fb6cdeb30',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a9638fe48b3b3dd15d69eccd8ac88c7e1',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::each() const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#abb851243b85eccc5c978064a2196a29a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each(Func func) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aca8aa93c28dfd02fb09310735e4e4925',1,'entt::basic_view< get_t< Get >, exclude_t<> >::each() const noexcept'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage< Entity, Entity, Allocator >::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage< Entity, Entity, Allocator >::each() const noexcept'],['../classentt_1_1basic__storage.html#acfe669358e8c68240dcc617c9d624d4c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() noexcept'],['../classentt_1_1basic__storage.html#a5e021893afba0e3b7e7d515bec3dd85b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::each() const noexcept']]], ['edges_1',['edges',['../classentt_1_1adjacency__matrix.html#ab6638e821360bafa2d7ce2e12ef0825a',1,'entt::adjacency_matrix']]], ['emitter_2',['emitter',['../classentt_1_1emitter.html#a685882e0f6b442759dd109f88e5b18a9',1,'entt::emitter::emitter()'],['../classentt_1_1emitter.html#a3e03b43a4239091637f18f63645c23a3',1,'entt::emitter::emitter(const allocator_type &allocator)'],['../classentt_1_1emitter.html#aadc449fbe689da0e4b0042de805a4a11',1,'entt::emitter::emitter(const emitter &)=delete'],['../classentt_1_1emitter.html#a351058758b1fc6840c467a10fd2912c4',1,'entt::emitter::emitter(emitter &&other) noexcept'],['../classentt_1_1emitter.html#ad6eb001ae6ca77ecc0e78db86b9b5aa8',1,'entt::emitter::emitter(emitter &&other, const allocator_type &allocator)']]], - ['emplace_3',['emplace',['../classentt_1_1dense__map.html#ab0dfc292981ab6694cd4609879a80dbc',1,'entt::dense_map::emplace()'],['../classentt_1_1dense__set.html#a47d3197d0c31a680cb7d9379f8a3c3d3',1,'entt::dense_set::emplace()'],['../classentt_1_1basic__table.html#af2f360081ff38e4132134872caf20070',1,'entt::basic_table::emplace()'],['../classentt_1_1basic__any.html#a612abee6a4ebf016df27929668839fc0',1,'entt::basic_any::emplace()'],['../classentt_1_1basic__handle.html#a5850a2de85b4977302811d60d4365b03',1,'entt::basic_handle::emplace()'],['../classentt_1_1basic__sigh__mixin.html#a2a7f98c08e026d4e3ca9d0df87b33371',1,'entt::basic_sigh_mixin::emplace()'],['../classentt_1_1basic__sigh__mixin.html#af59de7be0d5844f9bde35a2a5de1d82c',1,'entt::basic_sigh_mixin::emplace(const entity_type hint, Args &&...args)'],['../classentt_1_1basic__organizer.html#a813786d2c24e14f9f14d4a9c8799d868',1,'entt::basic_organizer::emplace(const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ac40558158f729efc26c7787cdc451e11',1,'entt::basic_organizer::emplace(Type &value_or_instance, const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ab902bd0bc4dd15f0ac1e02ac5517a8e8',1,'entt::basic_organizer::emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)'],['../classentt_1_1basic__registry.html#aa3cd5a28e32c30e5c69965c52781bf98',1,'entt::basic_registry::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage::emplace()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0804b16811a3d42cde346e1f2ae69143',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac3f17aef4b12de38be4e9e9e94b6e8e2',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a5828c772e2c92ed556cba475cb858c4a',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace(const entity_type hint)'],['../classentt_1_1locator.html#afb27544514506214a6adaf563ca7862b',1,'entt::locator::emplace(Args &&...args)'],['../classentt_1_1locator.html#a3695e31fe7e6ae073ac6a3555a43b425',1,'entt::locator::emplace(std::allocator_arg_t, Allocator alloc, Args &&...args)'],['../classentt_1_1meta__any.html#a3bb2e8e8a5eeb1cfaf1710b43382fef4',1,'entt::meta_any::emplace()'],['../classentt_1_1basic__poly.html#a6aaa4ef03f6f2a599abcf633412d6a8d',1,'entt::basic_poly::emplace()']]], + ['emplace_3',['emplace',['../classentt_1_1dense__map.html#ab0dfc292981ab6694cd4609879a80dbc',1,'entt::dense_map::emplace()'],['../classentt_1_1dense__set.html#a47d3197d0c31a680cb7d9379f8a3c3d3',1,'entt::dense_set::emplace()'],['../classentt_1_1basic__table.html#af2f360081ff38e4132134872caf20070',1,'entt::basic_table::emplace()'],['../classentt_1_1basic__any.html#a612abee6a4ebf016df27929668839fc0',1,'entt::basic_any::emplace()'],['../classentt_1_1basic__handle.html#a5850a2de85b4977302811d60d4365b03',1,'entt::basic_handle::emplace()'],['../classentt_1_1basic__sigh__mixin.html#a78517b70c5f6dbf8cb1cdd94ea1b5890',1,'entt::basic_sigh_mixin::emplace()'],['../classentt_1_1basic__organizer.html#a813786d2c24e14f9f14d4a9c8799d868',1,'entt::basic_organizer::emplace(const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ac40558158f729efc26c7787cdc451e11',1,'entt::basic_organizer::emplace(Type &value_or_instance, const char *name=nullptr)'],['../classentt_1_1basic__organizer.html#ab902bd0bc4dd15f0ac1e02ac5517a8e8',1,'entt::basic_organizer::emplace(function_type *func, const void *payload=nullptr, const char *name=nullptr)'],['../classentt_1_1basic__registry.html#aa3cd5a28e32c30e5c69965c52781bf98',1,'entt::basic_registry::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage::emplace()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae4d9684a7b6ba44ab3a28c63a13282a6',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ac3f17aef4b12de38be4e9e9e94b6e8e2',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a5828c772e2c92ed556cba475cb858c4a',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace(const entity_type hint)'],['../classentt_1_1locator.html#afb27544514506214a6adaf563ca7862b',1,'entt::locator::emplace(Args &&...args)'],['../classentt_1_1locator.html#a3695e31fe7e6ae073ac6a3555a43b425',1,'entt::locator::emplace(std::allocator_arg_t, Allocator alloc, Args &&...args)'],['../classentt_1_1meta__any.html#a3bb2e8e8a5eeb1cfaf1710b43382fef4',1,'entt::meta_any::emplace()'],['../classentt_1_1basic__poly.html#a6aaa4ef03f6f2a599abcf633412d6a8d',1,'entt::basic_poly::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage< Entity, Entity, Allocator >::emplace()'],['../classentt_1_1basic__storage.html#ad53a7224b938b57f633b34af6d6c4621',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::emplace()']]], ['emplace_5for_5freplace_4',['emplace_or_replace',['../classentt_1_1basic__handle.html#a798fb3d599ec98c2667c004ae4dbdb04',1,'entt::basic_handle::emplace_or_replace()'],['../classentt_1_1basic__registry.html#a3ebfbe0d897e77cf0f24bc994a796b15',1,'entt::basic_registry::emplace_or_replace()']]], - ['empty_5',['empty',['../classentt_1_1dense__map.html#ad6f1227e06bf48744b46b3fe251d72f2',1,'entt::dense_map::empty()'],['../classentt_1_1dense__set.html#a6a6ca36a20f2ad2af73161eb71c5aba2',1,'entt::dense_set::empty()'],['../classentt_1_1basic__table.html#a6abcb24d672594848ac4e29b8b79d850',1,'entt::basic_table::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a64e489bb00e091fd7203d91b5d1aaf5a',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4ac68edd780bdec355ef654fd9bd1fd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__observer.html#a0cf971c812b07c963b637950525102a6',1,'entt::basic_observer::empty()'],['../classentt_1_1basic__sparse__set.html#ad8936d80c3656449118a7a7a08be6258',1,'entt::basic_sparse_set::empty()'],['../classentt_1_1basic__storage__view.html#a1009b1f37493279e5f16aa9e516791ab',1,'entt::basic_storage_view::empty()'],['../classentt_1_1adjacency__matrix.html#a4d262116700a6aeda88d3bd0d0f2e3c2',1,'entt::adjacency_matrix::empty()'],['../classentt_1_1basic__flow.html#ae34f6cde54ad1b268a41a822adabdf84',1,'entt::basic_flow::empty()'],['../classentt_1_1basic__scheduler.html#a0148252d629fa78ebfe688519013c9c4',1,'entt::basic_scheduler::empty()'],['../classentt_1_1resource__cache.html#ab56988b1f8e221956bafb499ef409401',1,'entt::resource_cache::empty()'],['../classentt_1_1emitter.html#ac9fe97c008e4923e4e784faddc9f4eca',1,'entt::emitter::empty()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ab595707dcd32d5e7b7fda51a5209b68b',1,'entt::sigh< Ret(Args...), Allocator >::empty()'],['../classentt_1_1sink_3_01sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4_01_4.html#a32be15111a76ca5856cdbcf1c6ab73d0',1,'entt::sink< sigh< Ret(Args...), Allocator > >::empty()']]], - ['end_6',['end',['../classentt_1_1dense__map.html#afa80b6dff4ba1f455fabec3ff197e8c5',1,'entt::dense_map::end() const noexcept'],['../classentt_1_1dense__map.html#afd4ff12e8b032e6ca5519557d07d1178',1,'entt::dense_map::end() noexcept'],['../classentt_1_1dense__map.html#a3c36baa7b9aa7df7d3a07ca090319328',1,'entt::dense_map::end(const size_type index) const'],['../classentt_1_1dense__map.html#ab971fb709972a0e26b95e4fdb89aa64e',1,'entt::dense_map::end(const size_type index)'],['../classentt_1_1dense__set.html#acba121addd4d2f1d273ed6c1d9ce711d',1,'entt::dense_set::end() const noexcept'],['../classentt_1_1dense__set.html#a9969d69b8cd34bffe4fc0f0be83d16fa',1,'entt::dense_set::end() noexcept'],['../classentt_1_1dense__set.html#ab5fa4899ccdf38b575c7467da213ffa4',1,'entt::dense_set::end(const size_type index) const'],['../classentt_1_1dense__set.html#a64228ede854cfd6b98665e98ba724542',1,'entt::dense_set::end(const size_type index)'],['../classentt_1_1basic__table.html#a4c4b2c75b3766f2c5236eedb9c4bcb77',1,'entt::basic_table::end() const noexcept'],['../classentt_1_1basic__table.html#a4dbeb89ba617c6ef65f4917d4b97f33f',1,'entt::basic_table::end() noexcept'],['../structentt_1_1iterable__adaptor.html#ab163b4aefd1325876286497924b0da29',1,'entt::iterable_adaptor::end()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac94857c70d27826612b584af4c70f200',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a99c4a0d307973232a293a83e85d578f5',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__observer.html#a97c58c5a50dcb836bcb037a23522ec61',1,'entt::basic_observer::end()'],['../classentt_1_1basic__runtime__view.html#abd8f3fcaf66b7ee4cb033aa9ba13b807',1,'entt::basic_runtime_view::end()'],['../classentt_1_1basic__sparse__set.html#a3187a76bdb963346a715e0ebd833bfd7',1,'entt::basic_sparse_set::end()'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage::end() noexcept'],['../classentt_1_1basic__common__view.html#aac1aa2564ab77156936955392053c61d',1,'entt::basic_common_view::end()'],['../classentt_1_1basic__storage__view.html#a5b513d5daf9a12092903dfe022e02d9d',1,'entt::basic_storage_view::end()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a4505157dd3ad54f5c0b87a9b7393b4aa',1,'entt::basic_meta_sequence_container_traits::end()'],['../structentt_1_1basic__meta__associative__container__traits.html#a17a453ea97824664906c5d2296b63543',1,'entt::basic_meta_associative_container_traits::end()'],['../classentt_1_1meta__sequence__container.html#a4135860b75cc96aca7fa1212d5b17743',1,'entt::meta_sequence_container::end()'],['../classentt_1_1meta__associative__container.html#a33088db7e4cf2bc52ec2d47fa62d4705',1,'entt::meta_associative_container::end()'],['../classentt_1_1resource__cache.html#af97b2505c1819418d81c3dd91bffb880',1,'entt::resource_cache::end() const noexcept'],['../classentt_1_1resource__cache.html#ae8d60475b4bbc2f4675ab801514bd082',1,'entt::resource_cache::end() noexcept']]], + ['empty_5',['empty',['../classentt_1_1dense__map.html#ad6f1227e06bf48744b46b3fe251d72f2',1,'entt::dense_map::empty()'],['../classentt_1_1dense__set.html#a6a6ca36a20f2ad2af73161eb71c5aba2',1,'entt::dense_set::empty()'],['../classentt_1_1basic__table.html#a6abcb24d672594848ac4e29b8b79d850',1,'entt::basic_table::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a64e489bb00e091fd7203d91b5d1aaf5a',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4ac68edd780bdec355ef654fd9bd1fd',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::empty()'],['../classentt_1_1basic__sparse__set.html#ad8936d80c3656449118a7a7a08be6258',1,'entt::basic_sparse_set::empty()'],['../classentt_1_1basic__storage__view.html#a1009b1f37493279e5f16aa9e516791ab',1,'entt::basic_storage_view::empty()'],['../classentt_1_1adjacency__matrix.html#a4d262116700a6aeda88d3bd0d0f2e3c2',1,'entt::adjacency_matrix::empty()'],['../classentt_1_1basic__flow.html#ae34f6cde54ad1b268a41a822adabdf84',1,'entt::basic_flow::empty()'],['../classentt_1_1basic__scheduler.html#a0148252d629fa78ebfe688519013c9c4',1,'entt::basic_scheduler::empty()'],['../classentt_1_1resource__cache.html#ab56988b1f8e221956bafb499ef409401',1,'entt::resource_cache::empty()'],['../classentt_1_1emitter.html#ac9fe97c008e4923e4e784faddc9f4eca',1,'entt::emitter::empty()']]], + ['end_6',['end',['../classentt_1_1dense__map.html#afa80b6dff4ba1f455fabec3ff197e8c5',1,'entt::dense_map::end() const noexcept'],['../classentt_1_1dense__map.html#afd4ff12e8b032e6ca5519557d07d1178',1,'entt::dense_map::end() noexcept'],['../classentt_1_1dense__map.html#a3c36baa7b9aa7df7d3a07ca090319328',1,'entt::dense_map::end(const size_type index) const'],['../classentt_1_1dense__map.html#ab971fb709972a0e26b95e4fdb89aa64e',1,'entt::dense_map::end(const size_type index)'],['../classentt_1_1dense__set.html#acba121addd4d2f1d273ed6c1d9ce711d',1,'entt::dense_set::end() const noexcept'],['../classentt_1_1dense__set.html#a9969d69b8cd34bffe4fc0f0be83d16fa',1,'entt::dense_set::end() noexcept'],['../classentt_1_1dense__set.html#ab5fa4899ccdf38b575c7467da213ffa4',1,'entt::dense_set::end(const size_type index) const'],['../classentt_1_1dense__set.html#a64228ede854cfd6b98665e98ba724542',1,'entt::dense_set::end(const size_type index)'],['../classentt_1_1basic__table.html#a4c4b2c75b3766f2c5236eedb9c4bcb77',1,'entt::basic_table::end() const noexcept'],['../classentt_1_1basic__table.html#a4dbeb89ba617c6ef65f4917d4b97f33f',1,'entt::basic_table::end() noexcept'],['../structentt_1_1iterable__adaptor.html#ab163b4aefd1325876286497924b0da29',1,'entt::iterable_adaptor::end()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac94857c70d27826612b584af4c70f200',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a99c4a0d307973232a293a83e85d578f5',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::end()'],['../classentt_1_1basic__runtime__view.html#abd8f3fcaf66b7ee4cb033aa9ba13b807',1,'entt::basic_runtime_view::end()'],['../classentt_1_1basic__sparse__set.html#a3187a76bdb963346a715e0ebd833bfd7',1,'entt::basic_sparse_set::end()'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage::end() noexcept'],['../classentt_1_1basic__common__view.html#acf2805f088e1f44931e00a4548782dce',1,'entt::basic_common_view::end()'],['../classentt_1_1basic__storage__view.html#a5b513d5daf9a12092903dfe022e02d9d',1,'entt::basic_storage_view::end()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a4505157dd3ad54f5c0b87a9b7393b4aa',1,'entt::basic_meta_sequence_container_traits::end()'],['../structentt_1_1basic__meta__associative__container__traits.html#a17a453ea97824664906c5d2296b63543',1,'entt::basic_meta_associative_container_traits::end()'],['../classentt_1_1meta__sequence__container.html#a4135860b75cc96aca7fa1212d5b17743',1,'entt::meta_sequence_container::end()'],['../classentt_1_1meta__associative__container.html#a33088db7e4cf2bc52ec2d47fa62d4705',1,'entt::meta_associative_container::end()'],['../classentt_1_1resource__cache.html#af97b2505c1819418d81c3dd91bffb880',1,'entt::resource_cache::end() const noexcept'],['../classentt_1_1resource__cache.html#ae8d60475b4bbc2f4675ab801514bd082',1,'entt::resource_cache::end() noexcept'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage< Entity, Entity, Allocator >::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage< Entity, Entity, Allocator >::end() noexcept'],['../classentt_1_1basic__storage.html#a28c6c2fb6e1c840a014656568249efc1',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::end() const noexcept'],['../classentt_1_1basic__storage.html#a0087fa4285dd7f5c0ae3bf930a3447e5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::end() noexcept']]], ['enqueue_7',['enqueue',['../classentt_1_1basic__dispatcher.html#aefeb6cfbb14cf16ad7bee0148a324867',1,'entt::basic_dispatcher::enqueue(Args &&...args)'],['../classentt_1_1basic__dispatcher.html#a3c13ef83ea854d2b974b9a6029064294',1,'entt::basic_dispatcher::enqueue(Type &&value)']]], ['enqueue_5fhint_8',['enqueue_hint',['../classentt_1_1basic__dispatcher.html#a3da25e303527faa6f57616a077333681',1,'entt::basic_dispatcher::enqueue_hint(const id_type id, Args &&...args)'],['../classentt_1_1basic__dispatcher.html#a223faf63a62726619ff0140d659037ee',1,'entt::basic_dispatcher::enqueue_hint(const id_type id, Type &&value)']]], ['entity_9',['entity',['../classentt_1_1basic__handle.html#adfe5f3adcfed0c66e72919b6ba1c98a7',1,'entt::basic_handle']]], diff --git a/search/functions_5.js b/search/functions_5.js index 3289b34fa..0d46fbfb3 100644 --- a/search/functions_5.js +++ b/search/functions_5.js @@ -2,7 +2,7 @@ var searchData= [ ['fail_0',['fail',['../classentt_1_1process.html#aac7438533f769e1d24836ca04f86ec7c',1,'entt::process']]], ['fast_5fmod_1',['fast_mod',['../namespaceentt.html#a1ae98eeee0b0cb3e94d97d08a74a06f0',1,'entt']]], - ['find_2',['find',['../classentt_1_1dense__map.html#a77aa062268245a84c4c27dcc01839814',1,'entt::dense_map::find(const key_type &key)'],['../classentt_1_1dense__map.html#a5b47e5c447352298fca87921774c4a3d',1,'entt::dense_map::find(const key_type &key) const'],['../classentt_1_1dense__map.html#abf771ba10ee17109769cecd68f0991c5',1,'entt::dense_map::find(const Other &key)'],['../classentt_1_1dense__map.html#a4c611a71d59737c941b1aaf29e64c9b7',1,'entt::dense_map::find(const Other &key) const'],['../classentt_1_1dense__set.html#a3cb64f1ed07507fc9ecbc6f94e582e44',1,'entt::dense_set::find(const value_type &value)'],['../classentt_1_1dense__set.html#a6e8732dc86fd8f04f585deebb0b39ad5',1,'entt::dense_set::find(const value_type &value) const'],['../classentt_1_1dense__set.html#ad75a164225ececfa173b230e587b46c6',1,'entt::dense_set::find(const Other &value)'],['../classentt_1_1dense__set.html#a9ef9e51dc8219cfd2427a7594ff4bf65',1,'entt::dense_set::find(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac63cc46269cc44038dee7f51a3663342',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a656bae2e26463cc4600b1767b54bb369',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__sparse__set.html#a8b9656b9f037aede492f66e87e57a6ca',1,'entt::basic_sparse_set::find()'],['../classentt_1_1basic__common__view.html#abb964d3db8d2476860c91314e6f353b0',1,'entt::basic_common_view::find()'],['../classentt_1_1basic__storage__view.html#afc36aa8a8900f919ba7246aefffb7cda',1,'entt::basic_storage_view::find()'],['../structentt_1_1basic__meta__associative__container__traits.html#a10b86dc92a1d115c794d171472288428',1,'entt::basic_meta_associative_container_traits::find()'],['../classentt_1_1meta__associative__container.html#a2886d0a5df87b31cb7c8804ab097b585',1,'entt::meta_associative_container::find()']]], + ['find_2',['find',['../classentt_1_1dense__map.html#a77aa062268245a84c4c27dcc01839814',1,'entt::dense_map::find(const key_type &key)'],['../classentt_1_1dense__map.html#a5b47e5c447352298fca87921774c4a3d',1,'entt::dense_map::find(const key_type &key) const'],['../classentt_1_1dense__map.html#abf771ba10ee17109769cecd68f0991c5',1,'entt::dense_map::find(const Other &key)'],['../classentt_1_1dense__map.html#a4c611a71d59737c941b1aaf29e64c9b7',1,'entt::dense_map::find(const Other &key) const'],['../classentt_1_1dense__set.html#a3cb64f1ed07507fc9ecbc6f94e582e44',1,'entt::dense_set::find(const value_type &value)'],['../classentt_1_1dense__set.html#a6e8732dc86fd8f04f585deebb0b39ad5',1,'entt::dense_set::find(const value_type &value) const'],['../classentt_1_1dense__set.html#ad75a164225ececfa173b230e587b46c6',1,'entt::dense_set::find(const Other &value)'],['../classentt_1_1dense__set.html#a9ef9e51dc8219cfd2427a7594ff4bf65',1,'entt::dense_set::find(const Other &value) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac63cc46269cc44038dee7f51a3663342',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a656bae2e26463cc4600b1767b54bb369',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::find()'],['../classentt_1_1basic__sparse__set.html#a8b9656b9f037aede492f66e87e57a6ca',1,'entt::basic_sparse_set::find()'],['../classentt_1_1basic__common__view.html#a206be195c1f69d1a06894af690b3f768',1,'entt::basic_common_view::find()'],['../classentt_1_1basic__storage__view.html#afc36aa8a8900f919ba7246aefffb7cda',1,'entt::basic_storage_view::find()'],['../structentt_1_1basic__meta__associative__container__traits.html#a10b86dc92a1d115c794d171472288428',1,'entt::basic_meta_associative_container_traits::find()'],['../classentt_1_1meta__associative__container.html#a2886d0a5df87b31cb7c8804ab097b585',1,'entt::meta_associative_container::find()']]], ['finished_3',['finished',['../classentt_1_1process.html#a0385aa714f8fe603a7d89c960b22751e',1,'entt::process']]], ['first_4',['first',['../classentt_1_1compressed__pair.html#a6551d4795fa99d140d5c8eb8e55d9d38',1,'entt::compressed_pair::first() noexcept'],['../classentt_1_1compressed__pair.html#a1523a89c4f1e0fd5f1122d6322b7ce1a',1,'entt::compressed_pair::first() const noexcept']]], ['force_5fload_5',['force_load',['../classentt_1_1resource__cache.html#aa8de6dd8616990992422d669debcb88c',1,'entt::resource_cache']]], @@ -10,7 +10,7 @@ var searchData= ['forward_5fas_5fany_7',['forward_as_any',['../namespaceentt.html#af02fa96c663a6706416e47a3a6658328',1,'entt']]], ['forward_5fas_5fmeta_8',['forward_as_meta',['../namespaceentt.html#abf59d78f99cd7f20904c2129088bfd7e',1,'entt::forward_as_meta(const meta_ctx &ctx, Type &&value)'],['../namespaceentt.html#a77c7a5a8ac08bc879abdaa00f920a996',1,'entt::forward_as_meta(Type &&value)']]], ['free_5flist_9',['free_list',['../classentt_1_1basic__sparse__set.html#abc26c3d5467a929c2b88d7ad915c1fa9',1,'entt::basic_sparse_set::free_list() const noexcept'],['../classentt_1_1basic__sparse__set.html#acd0d917af2718dcc8f3dc71d3086e013',1,'entt::basic_sparse_set::free_list(const size_type value) noexcept']]], - ['from_5fvoid_10',['from_void',['../classentt_1_1meta__type.html#a775629305e7928a84ded060951f5a5da',1,'entt::meta_type::from_void(void *elem) const'],['../classentt_1_1meta__type.html#a7b6e4c538811516d5eeffa4a118836e0',1,'entt::meta_type::from_void(const void *elem) const']]], - ['front_11',['front',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab5ba983fbaee1dce61af5edeb3872ecd',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a824f21536b1352d744fdfcee94d79c8c',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__common__view.html#a7d5614b020a387078f807a58cea0cd90',1,'entt::basic_common_view::front()'],['../classentt_1_1basic__storage__view.html#a05395820519fbf8866d7f94ba9c2c0a7',1,'entt::basic_storage_view::front()']]], + ['from_5fvoid_10',['from_void',['../classentt_1_1meta__type.html#a2569a34e9e39c158a10412eff1065004',1,'entt::meta_type::from_void(void *elem, bool transfer_ownership=false) const'],['../classentt_1_1meta__type.html#a7b6e4c538811516d5eeffa4a118836e0',1,'entt::meta_type::from_void(const void *elem) const']]], + ['front_11',['front',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ab5ba983fbaee1dce61af5edeb3872ecd',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a824f21536b1352d744fdfcee94d79c8c',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::front()'],['../classentt_1_1basic__common__view.html#a94855cfbd9b0c88fdfb2161b0c5753bc',1,'entt::basic_common_view::front()'],['../classentt_1_1basic__storage__view.html#a05395820519fbf8866d7f94ba9c2c0a7',1,'entt::basic_storage_view::front()']]], ['func_12',['func',['../classentt_1_1meta__factory.html#ae1e568d14719075a21064b0b72aac446',1,'entt::meta_factory::func()'],['../classentt_1_1meta__type.html#a1210d053a37080ba86c3b8fef0fd63fa',1,'entt::meta_type::func() const noexcept'],['../classentt_1_1meta__type.html#a3e345e527b4f36c2146254e1ed9b6649',1,'entt::meta_type::func(const id_type id) const']]] ]; diff --git a/search/functions_6.js b/search/functions_6.js index 06ae8e337..b1cedad9a 100644 --- a/search/functions_6.js +++ b/search/functions_6.js @@ -1,12 +1,13 @@ var searchData= [ - ['get_0',['get',['../classentt_1_1compressed__pair.html#a4b39321fd471de2bcf190e3ef21b6836',1,'entt::compressed_pair::get() noexcept'],['../classentt_1_1compressed__pair.html#a496b3daad5244a40644fd8de519ef448',1,'entt::compressed_pair::get() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a507bcb4508ac957e96be3b4691633aa9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a8a9d3d57c43e454d991d1c7c85752cd9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a0cc40a8d9473eace55d248be609671a7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ad3fe15acceec2e1d20c222919ec30441',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__handle.html#a1991e05e46cc0426d2556c3c3dab4b0f',1,'entt::basic_handle::get()'],['../classentt_1_1basic__registry.html#abe347a879e04298df37c19b757f6ab08',1,'entt::basic_registry::get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a96d520486439b2017faef0c7c399ea11',1,'entt::basic_registry::get(const entity_type entt)'],['../classentt_1_1basic__snapshot.html#a6d49e430bdc8a0558c5eca20be7ad382',1,'entt::basic_snapshot::get(Archive &archive, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot.html#ae4c96723bedd73f8db3789389f933b94',1,'entt::basic_snapshot::get(Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot__loader.html#a395cd08d4fe6dca759ae400d5584ef88',1,'entt::basic_snapshot_loader::get()'],['../classentt_1_1basic__continuous__loader.html#ad4962b919dc91a9f6dfc223bcf983376',1,'entt::basic_continuous_loader::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a183863f3241e5c21589e08cedd9cca17',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a2c4bcec746cdc4fe6378614090a8a1dc',1,'entt::basic_storage< Entity, Entity, Allocator >::get()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#aab5ab7ecb196e9ed26312af6b284d5af',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2774600071b22c8b8507f425ab346df3',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1meta__any.html#af4248edb9b372270a6c0d2e914a17c7d',1,'entt::meta_any::get(id_type id) const'],['../classentt_1_1meta__any.html#a7cf7b8163435bd7ca9e9d5cf8c7d910d',1,'entt::meta_any::get(id_type id)'],['../structentt_1_1meta__data.html#a754da41b4c8057f7c9a3ff4738935d04',1,'entt::meta_data::get()'],['../classentt_1_1meta__type.html#ab702cf8050c2625eaf9e4c82c8381117',1,'entt::meta_type::get()']]], - ['get_5fallocator_1',['get_allocator',['../classentt_1_1dense__map.html#a9cd5632c26bf5281cfbbd7fbd9f85bf5',1,'entt::dense_map::get_allocator()'],['../classentt_1_1dense__set.html#ae130fd3c8ef0c3899ac2ba45fb6a1965',1,'entt::dense_set::get_allocator()'],['../classentt_1_1basic__registry.html#aa0db3b1ef8738ee88b164f0f9530961b',1,'entt::basic_registry::get_allocator()'],['../classentt_1_1basic__runtime__view.html#a7461d8fe5d56fa8d1c5ec997f2b086c6',1,'entt::basic_runtime_view::get_allocator()'],['../classentt_1_1basic__sparse__set.html#ab292b60dd8782739701906aec8f381ab',1,'entt::basic_sparse_set::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage::get_allocator()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a172622381f03e8710c0836e7ad11b8cf',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_allocator()'],['../classentt_1_1adjacency__matrix.html#aea59b70885fd22df3f80f59cf6e9e58b',1,'entt::adjacency_matrix::get_allocator()'],['../classentt_1_1basic__flow.html#a49e335a9671725195bfe923e6e39a413',1,'entt::basic_flow::get_allocator()'],['../classentt_1_1basic__scheduler.html#abc471579324ff48d2c55a520024449d3',1,'entt::basic_scheduler::get_allocator()'],['../classentt_1_1resource__cache.html#aebe73d139285eec2ea6284112609af8a',1,'entt::resource_cache::get_allocator()'],['../classentt_1_1basic__dispatcher.html#ad2491b6dfbb3fc48624e0765cfac8cc1',1,'entt::basic_dispatcher::get_allocator()'],['../classentt_1_1emitter.html#ae7a4a02a33a8b4c0fb6014f32a793dd9',1,'entt::emitter::get_allocator()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a824b29db11cab30390cff4d87da199eb',1,'entt::sigh< Ret(Args...), Allocator >::get_allocator()']]], - ['get_5fas_5ftuple_2',['get_as_tuple',['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aafadc116ef4610e4c95cfdf198bee3c7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_as_tuple()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#afd19d01b5c34b4173416ef1836997f75',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple()']]], - ['get_5for_5femplace_3',['get_or_emplace',['../classentt_1_1basic__handle.html#aa6226287fd3b506b4a095cc38ceb7792',1,'entt::basic_handle::get_or_emplace()'],['../classentt_1_1basic__registry.html#a13eee32008020e19e15ccc87f4025a2e',1,'entt::basic_registry::get_or_emplace()']]], - ['get_5ft_4',['get_t',['../structentt_1_1get__t.html#a068783ad48f1d473bb0bf9b5ca1f134f',1,'entt::get_t']]], - ['graph_5',['graph',['../classentt_1_1basic__organizer.html#a540973737740605acac4c35d1176abde',1,'entt::basic_organizer::graph()'],['../classentt_1_1basic__flow.html#a5077f0aef10e4e9b898b6b7df36ccb39',1,'entt::basic_flow::graph()']]], - ['group_6',['group',['../structentt_1_1basic__collector_3_4.html#a718ff87ec2db7fa4332b2b3d47a7998f',1,'entt::basic_collector<>::group()'],['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#a84a5b944f463c1b1e1907a2906793b54',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::group()'],['../classentt_1_1basic__registry.html#ade9bff8409333c2e85c33411b09998f1',1,'entt::basic_registry::group()']]], - ['group_5fid_7',['group_id',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1087af5249eb3f2049610ae8d0b07bd7',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::group_id()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae1cc1b088c5625d4fc991a35d959995d',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::group_id()']]], - ['group_5fif_5fexists_8',['group_if_exists',['../classentt_1_1basic__registry.html#a7e1bde3245d81f921be211cef7df5c7f',1,'entt::basic_registry']]] + ['generate_0',['generate',['../classentt_1_1basic__sigh__mixin.html#aecb243e7869599f48e8acf9b21a380ca',1,'entt::basic_sigh_mixin::generate()'],['../classentt_1_1basic__sigh__mixin.html#a3c5c054e7644149a58e88025aa607cce',1,'entt::basic_sigh_mixin::generate(const entity_type hint)'],['../classentt_1_1basic__sigh__mixin.html#a18f129c8b510408c7e697e5210dbcb6f',1,'entt::basic_sigh_mixin::generate(It first, It last)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f3765fe1e8898905a8ba0f0876fbb4c',1,'entt::basic_storage< Entity, Entity, Allocator >::generate()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a34d010a5cc9170002b6518b99c9cfc00',1,'entt::basic_storage< Entity, Entity, Allocator >::generate(const entity_type hint)'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#aaf15a615fb26f5f95b27f211681cd554',1,'entt::basic_storage< Entity, Entity, Allocator >::generate(It first, It last)']]], + ['get_1',['get',['../classentt_1_1compressed__pair.html#a4b39321fd471de2bcf190e3ef21b6836',1,'entt::compressed_pair::get() noexcept'],['../classentt_1_1compressed__pair.html#a496b3daad5244a40644fd8de519ef448',1,'entt::compressed_pair::get() const noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a507bcb4508ac957e96be3b4691633aa9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a8a9d3d57c43e454d991d1c7c85752cd9',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a0cc40a8d9473eace55d248be609671a7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ad3fe15acceec2e1d20c222919ec30441',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::get(const entity_type entt) const'],['../classentt_1_1basic__handle.html#a1991e05e46cc0426d2556c3c3dab4b0f',1,'entt::basic_handle::get()'],['../classentt_1_1basic__registry.html#abe347a879e04298df37c19b757f6ab08',1,'entt::basic_registry::get(const entity_type entt) const'],['../classentt_1_1basic__registry.html#a96d520486439b2017faef0c7c399ea11',1,'entt::basic_registry::get(const entity_type entt)'],['../classentt_1_1basic__snapshot.html#a6d49e430bdc8a0558c5eca20be7ad382',1,'entt::basic_snapshot::get(Archive &archive, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot.html#ae4c96723bedd73f8db3789389f933b94',1,'entt::basic_snapshot::get(Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const'],['../classentt_1_1basic__snapshot__loader.html#a395cd08d4fe6dca759ae400d5584ef88',1,'entt::basic_snapshot_loader::get()'],['../classentt_1_1basic__continuous__loader.html#ad4962b919dc91a9f6dfc223bcf983376',1,'entt::basic_continuous_loader::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ab9cafbd4986dbf0111d3826bc4a33a52',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a2c4bcec746cdc4fe6378614090a8a1dc',1,'entt::basic_storage< Entity, Entity, Allocator >::get()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#aab5ab7ecb196e9ed26312af6b284d5af',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a2774600071b22c8b8507f425ab346df3',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aff66d06e6368e7b22b116e422d038562',1,'entt::basic_view< get_t< Get >, exclude_t<> >::get(const entity_type entt) const'],['../classentt_1_1meta__any.html#af4248edb9b372270a6c0d2e914a17c7d',1,'entt::meta_any::get(id_type id) const'],['../classentt_1_1meta__any.html#a7cf7b8163435bd7ca9e9d5cf8c7d910d',1,'entt::meta_any::get(id_type id)'],['../structentt_1_1meta__data.html#a754da41b4c8057f7c9a3ff4738935d04',1,'entt::meta_data::get()'],['../classentt_1_1meta__type.html#ab702cf8050c2625eaf9e4c82c8381117',1,'entt::meta_type::get()'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage< Entity, Entity, Allocator >::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage< Entity, Entity, Allocator >::get(const entity_type entt) noexcept'],['../classentt_1_1basic__storage.html#a3d5a1009a9e86a3bb051eaaf01864574',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac6f638341f2c99608bb5c6ddbf47f6eb',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get(const entity_type entt) noexcept']]], + ['get_5fallocator_2',['get_allocator',['../classentt_1_1dense__map.html#a9cd5632c26bf5281cfbbd7fbd9f85bf5',1,'entt::dense_map::get_allocator()'],['../classentt_1_1dense__set.html#ae130fd3c8ef0c3899ac2ba45fb6a1965',1,'entt::dense_set::get_allocator()'],['../classentt_1_1basic__registry.html#aa0db3b1ef8738ee88b164f0f9530961b',1,'entt::basic_registry::get_allocator()'],['../classentt_1_1basic__runtime__view.html#a7461d8fe5d56fa8d1c5ec997f2b086c6',1,'entt::basic_runtime_view::get_allocator()'],['../classentt_1_1basic__sparse__set.html#ab292b60dd8782739701906aec8f381ab',1,'entt::basic_sparse_set::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage::get_allocator()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a2860b57d969a24f6cf9f84bd8f6fe3a2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_allocator()'],['../classentt_1_1adjacency__matrix.html#aea59b70885fd22df3f80f59cf6e9e58b',1,'entt::adjacency_matrix::get_allocator()'],['../classentt_1_1basic__flow.html#a49e335a9671725195bfe923e6e39a413',1,'entt::basic_flow::get_allocator()'],['../classentt_1_1basic__scheduler.html#abc471579324ff48d2c55a520024449d3',1,'entt::basic_scheduler::get_allocator()'],['../classentt_1_1resource__cache.html#aebe73d139285eec2ea6284112609af8a',1,'entt::resource_cache::get_allocator()'],['../classentt_1_1basic__dispatcher.html#ad2491b6dfbb3fc48624e0765cfac8cc1',1,'entt::basic_dispatcher::get_allocator()'],['../classentt_1_1emitter.html#ae7a4a02a33a8b4c0fb6014f32a793dd9',1,'entt::emitter::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage< Entity, Entity, Allocator >::get_allocator()'],['../classentt_1_1basic__storage.html#a52b98ea4450fcc9ab83d33cfd43ce45c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_allocator()']]], + ['get_5fas_5ftuple_3',['get_as_tuple',['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a597c72c7242e354b36b23862d4d85c95',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#afd19d01b5c34b4173416ef1836997f75',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage< Entity, Entity, Allocator >::get_as_tuple(const entity_type entt) noexcept'],['../classentt_1_1basic__storage.html#ad54c710b9ee32ecf963e30760bb06976',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple(const entity_type entt) const noexcept'],['../classentt_1_1basic__storage.html#ac5557c54e1634c2e796b0a8e5ffe3ab3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::get_as_tuple(const entity_type entt) noexcept']]], + ['get_5for_5femplace_4',['get_or_emplace',['../classentt_1_1basic__handle.html#aa6226287fd3b506b4a095cc38ceb7792',1,'entt::basic_handle::get_or_emplace()'],['../classentt_1_1basic__registry.html#a13eee32008020e19e15ccc87f4025a2e',1,'entt::basic_registry::get_or_emplace()']]], + ['get_5ft_5',['get_t',['../structentt_1_1get__t.html#a068783ad48f1d473bb0bf9b5ca1f134f',1,'entt::get_t']]], + ['graph_6',['graph',['../classentt_1_1basic__organizer.html#a540973737740605acac4c35d1176abde',1,'entt::basic_organizer::graph()'],['../classentt_1_1basic__flow.html#a5077f0aef10e4e9b898b6b7df36ccb39',1,'entt::basic_flow::graph()']]], + ['group_7',['group',['../classentt_1_1basic__registry.html#ade9bff8409333c2e85c33411b09998f1',1,'entt::basic_registry']]], + ['group_5fid_8',['group_id',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1087af5249eb3f2049610ae8d0b07bd7',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::group_id()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae1cc1b088c5625d4fc991a35d959995d',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::group_id()']]], + ['group_5fif_5fexists_9',['group_if_exists',['../classentt_1_1basic__registry.html#a7e1bde3245d81f921be211cef7df5c7f',1,'entt::basic_registry']]] ]; diff --git a/search/functions_7.js b/search/functions_7.js index 5183e9bc3..dffcd216c 100644 --- a/search/functions_7.js +++ b/search/functions_7.js @@ -1,6 +1,6 @@ var searchData= [ - ['handle_0',['handle',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4d5bfe2db9bebc127208c2d19e4731f6',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02195bbadcbe2f41854c7dc0a0a178e1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__common__view.html#a4d4caecc5dfcf100b0132198fdfe43b3',1,'entt::basic_common_view::handle()'],['../classentt_1_1basic__storage__view.html#af229ede8e401c470bc1912752d004132',1,'entt::basic_storage_view::handle()'],['../classentt_1_1locator.html#a09b8c4659e08c600c113ce9e5b8fa7d3',1,'entt::locator::handle()'],['../classentt_1_1resource.html#a54b9a81a75cae1cba84c940e653a9f19',1,'entt::resource::handle()']]], + ['handle_0',['handle',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a4d5bfe2db9bebc127208c2d19e4731f6',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a02195bbadcbe2f41854c7dc0a0a178e1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::handle()'],['../classentt_1_1basic__common__view.html#a2aff92b331b0ca09fc2dc6006261fa2f',1,'entt::basic_common_view::handle()'],['../classentt_1_1basic__storage__view.html#af229ede8e401c470bc1912752d004132',1,'entt::basic_storage_view::handle()'],['../classentt_1_1locator.html#a09b8c4659e08c600c113ce9e5b8fa7d3',1,'entt::locator::handle()'],['../classentt_1_1resource.html#a54b9a81a75cae1cba84c940e653a9f19',1,'entt::resource::handle()']]], ['has_5fsingle_5fbit_1',['has_single_bit',['../namespaceentt.html#a1c0d94baafb4291b7dc5a49ba6f1b0e5',1,'entt']]], ['has_5fvalue_2',['has_value',['../classentt_1_1locator.html#a7b01ea26c3def3465fb0223034a8fc72',1,'entt::locator']]], ['hash_3',['hash',['../structentt_1_1type__info.html#a7bbf926cc62b6441c5b64837cb5a52a3',1,'entt::type_info']]], diff --git a/search/functions_8.js b/search/functions_8.js index 223f855c4..a0c19b951 100644 --- a/search/functions_8.js +++ b/search/functions_8.js @@ -6,7 +6,7 @@ var searchData= ['index_3',['index',['../structentt_1_1type__info.html#a3335aa54e69d9a63d5ccbcef8e994d3b',1,'entt::type_info::index()'],['../classentt_1_1basic__sparse__set.html#ad8a8fc74771c26b36fce8234f5e1d1fa',1,'entt::basic_sparse_set::index()']]], ['info_4',['info',['../structentt_1_1basic__organizer_1_1vertex.html#a1c373d102d50fc634f732f7c1e23e4c5',1,'entt::basic_organizer::vertex::info()'],['../classentt_1_1meta__type.html#ad743b3cf68435895e2ae35d685874793',1,'entt::meta_type::info()']]], ['input_5fiterator_5fpointer_5',['input_iterator_pointer',['../structentt_1_1input__iterator__pointer.html#a1805365ee66a86c99a5297932da42392',1,'entt::input_iterator_pointer']]], - ['insert_6',['insert',['../classentt_1_1dense__map.html#ada4ac1f5a3295d80d8bb4fa6387023db',1,'entt::dense_map::insert(const value_type &value)'],['../classentt_1_1dense__map.html#a71e1a562a523572405bbf0a53bb8535d',1,'entt::dense_map::insert(value_type &&value)'],['../classentt_1_1dense__map.html#a92eced5574b8354b8357f79faf16fc23',1,'entt::dense_map::insert(Arg &&value)'],['../classentt_1_1dense__map.html#a3c94e139b8d65ac65df36161183a8a49',1,'entt::dense_map::insert(It first, It last)'],['../classentt_1_1dense__set.html#a818d80686b709f02cec08f5fc082e279',1,'entt::dense_set::insert(const value_type &value)'],['../classentt_1_1dense__set.html#ac1c11ba7070fd958ada9dab7b9106ec6',1,'entt::dense_set::insert(value_type &&value)'],['../classentt_1_1dense__set.html#ae52c7f8b38e6bfc15e421fcc8021ba15',1,'entt::dense_set::insert(It first, It last)'],['../classentt_1_1basic__sigh__mixin.html#aa53fc080eb084535f639efd1e67f3e3c',1,'entt::basic_sigh_mixin::insert()'],['../classentt_1_1basic__registry.html#ae299b32827f0667903d8564e10ca6774',1,'entt::basic_registry::insert(It first, It last, const Type &value={})'],['../classentt_1_1basic__registry.html#ae4630a45e531d05669da84aa4a5e9778',1,'entt::basic_registry::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#acd7d5ee354baa947b8e7e3a8ee72ed04',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::insert()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a376d14e745c1cc4f02cbebf70cab4753',1,'entt::basic_storage< Entity, Entity, Allocator >::insert()'],['../classentt_1_1adjacency__matrix.html#a16d422fbdac17535196b27001b4bfd63',1,'entt::adjacency_matrix::insert()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a7caf932772ff942247e61673d8c3df61',1,'entt::basic_meta_sequence_container_traits::insert()'],['../structentt_1_1basic__meta__associative__container__traits.html#ae403d257c39ca55b238e86689e890b19',1,'entt::basic_meta_associative_container_traits::insert()'],['../classentt_1_1meta__sequence__container.html#a16ff101b059da6a38e3fe9f025db110c',1,'entt::meta_sequence_container::insert()'],['../classentt_1_1meta__associative__container.html#a292d90c2d8cbee3d6c2c32a899a9cb5e',1,'entt::meta_associative_container::insert()']]], + ['insert_6',['insert',['../classentt_1_1dense__map.html#ada4ac1f5a3295d80d8bb4fa6387023db',1,'entt::dense_map::insert(const value_type &value)'],['../classentt_1_1dense__map.html#a71e1a562a523572405bbf0a53bb8535d',1,'entt::dense_map::insert(value_type &&value)'],['../classentt_1_1dense__map.html#a92eced5574b8354b8357f79faf16fc23',1,'entt::dense_map::insert(Arg &&value)'],['../classentt_1_1dense__map.html#a3c94e139b8d65ac65df36161183a8a49',1,'entt::dense_map::insert(It first, It last)'],['../classentt_1_1dense__set.html#a818d80686b709f02cec08f5fc082e279',1,'entt::dense_set::insert(const value_type &value)'],['../classentt_1_1dense__set.html#ac1c11ba7070fd958ada9dab7b9106ec6',1,'entt::dense_set::insert(value_type &&value)'],['../classentt_1_1dense__set.html#ae52c7f8b38e6bfc15e421fcc8021ba15',1,'entt::dense_set::insert(It first, It last)'],['../classentt_1_1basic__sigh__mixin.html#aa53fc080eb084535f639efd1e67f3e3c',1,'entt::basic_sigh_mixin::insert()'],['../classentt_1_1basic__registry.html#ae299b32827f0667903d8564e10ca6774',1,'entt::basic_registry::insert(It first, It last, const Type &value={})'],['../classentt_1_1basic__registry.html#ae4630a45e531d05669da84aa4a5e9778',1,'entt::basic_registry::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a0b7d950f65304e97a723497e7555d584',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a376d14e745c1cc4f02cbebf70cab4753',1,'entt::basic_storage< Entity, Entity, Allocator >::insert()'],['../classentt_1_1adjacency__matrix.html#a16d422fbdac17535196b27001b4bfd63',1,'entt::adjacency_matrix::insert()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a7caf932772ff942247e61673d8c3df61',1,'entt::basic_meta_sequence_container_traits::insert()'],['../structentt_1_1basic__meta__associative__container__traits.html#ae403d257c39ca55b238e86689e890b19',1,'entt::basic_meta_associative_container_traits::insert()'],['../classentt_1_1meta__sequence__container.html#a16ff101b059da6a38e3fe9f025db110c',1,'entt::meta_sequence_container::insert()'],['../classentt_1_1meta__associative__container.html#a292d90c2d8cbee3d6c2c32a899a9cb5e',1,'entt::meta_associative_container::insert()'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage< Entity, Entity, Allocator >::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage< Entity, Entity, Allocator >::insert(EIt first, EIt last, CIt from)'],['../classentt_1_1basic__storage.html#aafe2e98bca923f7069fc231f8250e4ee',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert(It first, It last, const value_type &value={})'],['../classentt_1_1basic__storage.html#a226b7e547c4b4f24580c041a6b9bc163',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::insert(EIt first, EIt last, CIt from)']]], ['insert_5for_5fassign_7',['insert_or_assign',['../classentt_1_1dense__map.html#aafff57a203cd3fc561320bad6eeea0c3',1,'entt::dense_map::insert_or_assign(const key_type &key, Arg &&value)'],['../classentt_1_1dense__map.html#a9a9522dcd518bd3d73769d80d35606db',1,'entt::dense_map::insert_or_assign(key_type &&key, Arg &&value)']]], ['instance_8',['instance',['../classentt_1_1poly__vtable.html#a2b8979ab014f71105f54cb3c94aa983d',1,'entt::poly_vtable']]], ['invoke_9',['invoke',['../classentt_1_1meta__any.html#a27324d1a7a5ba142831623e43aed263d',1,'entt::meta_any::invoke(id_type id, Args &&...args) const'],['../classentt_1_1meta__any.html#a6f42174cc6ddf8eb76089ee5ac552308',1,'entt::meta_any::invoke(id_type id, Args &&...args)'],['../structentt_1_1meta__func.html#a83fb3576c1a3873de1e1e041f759180b',1,'entt::meta_func::invoke(meta_handle instance, meta_any *const args, const size_type sz) const'],['../structentt_1_1meta__func.html#aa10b325b5da2a1c04259f2d6dc1f6746',1,'entt::meta_func::invoke(meta_handle instance, Args &&...args) const'],['../classentt_1_1meta__type.html#ad846c918ce1e2f496b7464cc6a6d6d5e',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const'],['../classentt_1_1meta__type.html#a99a835b500d3aa1f4f25090d8bef3802',1,'entt::meta_type::invoke(const id_type id, meta_handle instance, Args &&...args) const'],['../structentt_1_1poly__inspector.html#a8539b30952dd5a66aa24f334ae4976de',1,'entt::poly_inspector::invoke(Args &&...args) const'],['../structentt_1_1poly__inspector.html#ac829c393c3d78f306edd0307f71139cb',1,'entt::poly_inspector::invoke(Args &&...args)'],['../structentt_1_1poly__base.html#a814fd041b02ddfe60577b23d174e7182',1,'entt::poly_base::invoke(const poly_base &self, Args &&...args) const'],['../structentt_1_1poly__base.html#a8e782d45ce62d6bd620ad22a0ee913e2',1,'entt::poly_base::invoke(poly_base &self, Args &&...args)'],['../namespaceentt.html#ac25eea8903b4a5d58408cc2e9ecb1a2e',1,'entt::invoke()']]], diff --git a/search/functions_b.js b/search/functions_b.js index 1acc80a4e..b28b21229 100644 --- a/search/functions_b.js +++ b/search/functions_b.js @@ -8,20 +8,19 @@ var searchData= ['max_5fload_5ffactor_5',['max_load_factor',['../classentt_1_1dense__map.html#a54a2dd65d401a992fd91fb8a91faea86',1,'entt::dense_map::max_load_factor() const'],['../classentt_1_1dense__map.html#a608539db499acbc3a7548421ea5d8709',1,'entt::dense_map::max_load_factor(const float value)'],['../classentt_1_1dense__set.html#aeb02fd08b390059b8c1cffc39a6f40f1',1,'entt::dense_set::max_load_factor() const'],['../classentt_1_1dense__set.html#ab740b6ce89b700657c796b7388563569',1,'entt::dense_set::max_load_factor(const float value)']]], ['max_5fsize_6',['max_size',['../classentt_1_1dense__map.html#a45843ecba66cc9692ae4facac5461e4d',1,'entt::dense_map::max_size()'],['../classentt_1_1dense__set.html#a4c6b94ce7998769b18635a11a7c044de',1,'entt::dense_set::max_size()']]], ['meta_7',['meta',['../namespaceentt.html#a2d7c05b6ee08bf9582e2a119dd6cbd8d',1,'entt::meta(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a78885d25ace657bedd664e3044152f03',1,'entt::meta() noexcept']]], - ['meta_5fany_8',['meta_any',['../classentt_1_1meta__any.html#a2669cb479aa2c88729630efc277ef186',1,'entt::meta_any::meta_any()=default'],['../classentt_1_1meta__any.html#a72a627b0d0bd6d469dc372e435076b75',1,'entt::meta_any::meta_any(meta_ctx_arg_t, const meta_ctx &area)'],['../classentt_1_1meta__any.html#a327704bdb52c21b9ea8f221cdac11b20',1,'entt::meta_any::meta_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a612396f0d0c0acf9499d13450a8b2dde',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a7e1dba79e26c96a353743a327d1c7b8e',1,'entt::meta_any::meta_any(Type &&value)'],['../classentt_1_1meta__any.html#a59650d3b6cd69d36c65830cd0a4e987a',1,'entt::meta_any::meta_any(const meta_ctx &area, Type &&value)'],['../classentt_1_1meta__any.html#a25a7090663c345aa7a6d6fc3259ac404',1,'entt::meta_any::meta_any(const meta_ctx &area, const meta_any &other)'],['../classentt_1_1meta__any.html#a4446871c0d4bbd77ca4fb3baa8b89820',1,'entt::meta_any::meta_any(const meta_ctx &area, meta_any &&other)'],['../classentt_1_1meta__any.html#a51936bb6212a3bfc87b71afb2d6085c3',1,'entt::meta_any::meta_any(const meta_any &other)=default'],['../classentt_1_1meta__any.html#a30f860927336ca054fa561a7ae61a00b',1,'entt::meta_any::meta_any(meta_any &&other) noexcept']]], - ['meta_5fassociative_5fcontainer_9',['meta_associative_container',['../classentt_1_1meta__associative__container.html#a088ac917d0505b0dd55a0378cc725225',1,'entt::meta_associative_container::meta_associative_container()=default'],['../classentt_1_1meta__associative__container.html#a12bd958e5b524f5192310c3497b3dbd1',1,'entt::meta_associative_container::meta_associative_container(const meta_ctx &area) noexcept']]], + ['meta_5fany_8',['meta_any',['../classentt_1_1meta__any.html#a2669cb479aa2c88729630efc277ef186',1,'entt::meta_any::meta_any()=default'],['../classentt_1_1meta__any.html#a72a627b0d0bd6d469dc372e435076b75',1,'entt::meta_any::meta_any(meta_ctx_arg_t, const meta_ctx &area)'],['../classentt_1_1meta__any.html#a327704bdb52c21b9ea8f221cdac11b20',1,'entt::meta_any::meta_any(std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a612396f0d0c0acf9499d13450a8b2dde',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_type_t< Type >, Args &&...args)'],['../classentt_1_1meta__any.html#a3fefd5ab2953a3ecffa34aae3cbd8f9f',1,'entt::meta_any::meta_any(std::in_place_t, Type *value)'],['../classentt_1_1meta__any.html#ad5a513235b06a51acde930b3e6f06b07',1,'entt::meta_any::meta_any(const meta_ctx &area, std::in_place_t, Type *value)'],['../classentt_1_1meta__any.html#a7e1dba79e26c96a353743a327d1c7b8e',1,'entt::meta_any::meta_any(Type &&value)'],['../classentt_1_1meta__any.html#a59650d3b6cd69d36c65830cd0a4e987a',1,'entt::meta_any::meta_any(const meta_ctx &area, Type &&value)'],['../classentt_1_1meta__any.html#a25a7090663c345aa7a6d6fc3259ac404',1,'entt::meta_any::meta_any(const meta_ctx &area, const meta_any &other)'],['../classentt_1_1meta__any.html#a4446871c0d4bbd77ca4fb3baa8b89820',1,'entt::meta_any::meta_any(const meta_ctx &area, meta_any &&other)'],['../classentt_1_1meta__any.html#a51936bb6212a3bfc87b71afb2d6085c3',1,'entt::meta_any::meta_any(const meta_any &other)=default'],['../classentt_1_1meta__any.html#a30f860927336ca054fa561a7ae61a00b',1,'entt::meta_any::meta_any(meta_any &&other) noexcept']]], + ['meta_5fassociative_5fcontainer_9',['meta_associative_container',['../classentt_1_1meta__associative__container.html#a088ac917d0505b0dd55a0378cc725225',1,'entt::meta_associative_container::meta_associative_container()=default'],['../classentt_1_1meta__associative__container.html#a79e0a60500cf5cb568ae41281a0aabf2',1,'entt::meta_associative_container::meta_associative_container(const meta_ctx &area, Type &instance) noexcept']]], ['meta_5fconstruct_10',['meta_construct',['../namespaceentt.html#a571cc8688ebf018c16e2a15f6c45764a',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a3b0d075524517183181aa512417358a0',1,'entt::meta_construct(meta_any *const args)'],['../namespaceentt.html#a21d052556804c409d65dcf2985dc44e2',1,'entt::meta_construct(const meta_ctx &ctx, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7ba2afbd0762cd23f85df6d65d6a8413',1,'entt::meta_construct(Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a7f1ee2282bd9da8ef9a8b1f2c49c431b',1,'entt::meta_construct(const meta_ctx &ctx, meta_any *const args)'],['../namespaceentt.html#a5fbe3810e19337b32c66c6bab769338a',1,'entt::meta_construct(meta_any *const args)']]], ['meta_5fcustom_11',['meta_custom',['../structentt_1_1meta__custom.html#ab75c19be61cb66f02a4e9d8e652d1261',1,'entt::meta_custom::meta_custom() noexcept=default'],['../structentt_1_1meta__custom.html#ab46973553b3953a293f2eb1d1aabea21',1,'entt::meta_custom::meta_custom(internal::meta_custom_node curr) noexcept']]], - ['meta_5fdata_12',['meta_data',['../structentt_1_1meta__data.html#ad6c58a93321a1201867f5d9934439326',1,'entt::meta_data::meta_data() noexcept=default'],['../structentt_1_1meta__data.html#ae20aa5d5f917f006c5b717858c2f8943',1,'entt::meta_data::meta_data(const meta_ctx &area, const internal::meta_data_node &curr) noexcept']]], + ['meta_5fdata_12',['meta_data',['../structentt_1_1meta__data.html#ad6c58a93321a1201867f5d9934439326',1,'entt::meta_data::meta_data() noexcept=default'],['../structentt_1_1meta__data.html#ac771dc050a78143f1672bfe32bf81ad6',1,'entt::meta_data::meta_data(const meta_ctx &area, internal::meta_data_node curr) noexcept']]], ['meta_5fdispatch_13',['meta_dispatch',['../namespaceentt.html#a8f82832c0a318d045d51e4cdc3f90c7e',1,'entt::meta_dispatch(const meta_ctx &ctx, Type &&value)'],['../namespaceentt.html#aefa0d4c01cb554a8c4ff29154fba457a',1,'entt::meta_dispatch(Type &&value)']]], ['meta_5ffactory_14',['meta_factory',['../classentt_1_1meta__factory.html#a59030405fb067442bd8ee6cde0b0dd3f',1,'entt::meta_factory::meta_factory() noexcept'],['../classentt_1_1meta__factory.html#a806bf70fb4f0097f3f2e4bf3923a72ac',1,'entt::meta_factory::meta_factory(meta_ctx &area) noexcept']]], - ['meta_5ffunc_15',['meta_func',['../structentt_1_1meta__func.html#a4d90c32da75cd41f8b4692431b6a07ae',1,'entt::meta_func::meta_func() noexcept=default'],['../structentt_1_1meta__func.html#a6892346c41d49382502cc00fce777219',1,'entt::meta_func::meta_func(const meta_ctx &area, const internal::meta_func_node &curr) noexcept']]], - ['meta_5fgetter_16',['meta_getter',['../namespaceentt.html#aa754d1db973d40e40f7b1aa6aebb7ab3',1,'entt::meta_getter(const meta_ctx &ctx, meta_handle instance)'],['../namespaceentt.html#a492632c2f27d1e0c745d73398ac534d3',1,'entt::meta_getter(meta_handle instance)']]], + ['meta_5ffunc_15',['meta_func',['../structentt_1_1meta__func.html#a4d90c32da75cd41f8b4692431b6a07ae',1,'entt::meta_func::meta_func() noexcept=default'],['../structentt_1_1meta__func.html#a9885a8438083912faa40038c45ee7a53',1,'entt::meta_func::meta_func(const meta_ctx &area, internal::meta_func_node curr) noexcept']]], + ['meta_5fgetter_16',['meta_getter',['../namespaceentt.html#a492632c2f27d1e0c745d73398ac534d3',1,'entt::meta_getter(meta_handle instance)'],['../namespaceentt.html#aa754d1db973d40e40f7b1aa6aebb7ab3',1,'entt::meta_getter(const meta_ctx &ctx, meta_handle instance)']]], ['meta_5fhandle_17',['meta_handle',['../structentt_1_1meta__handle.html#a8d02bbf3a8088aa698db4491374dbf4c',1,'entt::meta_handle::meta_handle()=default'],['../structentt_1_1meta__handle.html#ae49bd4f8600e9b2ca010d1957174af1c',1,'entt::meta_handle::meta_handle(meta_ctx_arg_t, const meta_ctx &area)'],['../structentt_1_1meta__handle.html#ae76ed97e67730f4b901e9d27313ddadb',1,'entt::meta_handle::meta_handle(meta_any &value)'],['../structentt_1_1meta__handle.html#a14f204ee9172d932389f84b9e1f18714',1,'entt::meta_handle::meta_handle(const meta_any &value)'],['../structentt_1_1meta__handle.html#a379cb22588ec1a71e313e3df5380cd32',1,'entt::meta_handle::meta_handle(const meta_ctx &ctx, Type &value)'],['../structentt_1_1meta__handle.html#aed6a735b7dd561d9231334e54fe6fe55',1,'entt::meta_handle::meta_handle(Type &value)'],['../structentt_1_1meta__handle.html#a947d0bfa9519665cd6d7d6aec5ab6500',1,'entt::meta_handle::meta_handle(const meta_ctx &area, const meta_handle &other)'],['../structentt_1_1meta__handle.html#ac25571687a6a744a99841b9277cd9986',1,'entt::meta_handle::meta_handle(const meta_ctx &area, meta_handle &&other)'],['../structentt_1_1meta__handle.html#acaaa33d743703cf1af62691de0b86f50',1,'entt::meta_handle::meta_handle(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aa988b1809a9687be4d25f21722075da5',1,'entt::meta_handle::meta_handle(meta_handle &&)=default']]], - ['meta_5finvoke_18',['meta_invoke',['../namespaceentt.html#a1f4a6163636762f35f9e984f1278905f',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a8befe85c5ee65562cff4dadac3dc00ef',1,'entt::meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#ac23a3b88b27196cb423e5d45eada1348',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args)'],['../namespaceentt.html#aef1b2e11225caa53d5880e81915e9316',1,'entt::meta_invoke(meta_handle instance, meta_any *const args)']]], - ['meta_5fprop_19',['meta_prop',['../structentt_1_1meta__prop.html#a97351ae0500c7b63ec1b0e5144171250',1,'entt::meta_prop::meta_prop() noexcept=default'],['../structentt_1_1meta__prop.html#a02fae19146cfec483a367f62028eb74d',1,'entt::meta_prop::meta_prop(const meta_ctx &area, internal::meta_prop_node curr) noexcept']]], - ['meta_5freset_20',['meta_reset',['../namespaceentt.html#aa4a4a3ee0126a16959fcdfe6229fd057',1,'entt::meta_reset(meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#af9e4b586c541f816d71ff5c23b1d2a65',1,'entt::meta_reset(const id_type id) noexcept'],['../namespaceentt.html#a3d262b7705ff50f3fb58d2c90b2d6b61',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#abe9a45bd7c93035354ec03dc7f196482',1,'entt::meta_reset() noexcept'],['../namespaceentt.html#a4671352f38341177295442a0d956c9d8',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a4a0484b50821691e6aacea122481c1e6',1,'entt::meta_reset() noexcept']]], - ['meta_5fsequence_5fcontainer_21',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html#a392df26352c3267384c89e71cd9b2b0b',1,'entt::meta_sequence_container::meta_sequence_container()=default'],['../classentt_1_1meta__sequence__container.html#aabcc278e0621444ac043cdc79257d162',1,'entt::meta_sequence_container::meta_sequence_container(const meta_ctx &area) noexcept']]], - ['meta_5fsetter_22',['meta_setter',['../namespaceentt.html#ac14f35fbe2a40c6a94108b95507517fb',1,'entt']]], - ['meta_5ftype_23',['meta_type',['../classentt_1_1meta__type.html#aaf8c5816b1f47af7f7d1c3ca3af2c9eb',1,'entt::meta_type::meta_type() noexcept=default'],['../classentt_1_1meta__type.html#a7cde7474cc0892fe3b5928dc6fdd43a8',1,'entt::meta_type::meta_type(const meta_ctx &area, internal::meta_type_node curr) noexcept'],['../classentt_1_1meta__type.html#ad538c90f0dda2b2a5bf1b71392d124cd',1,'entt::meta_type::meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept']]] + ['meta_5finvoke_18',['meta_invoke',['../namespaceentt.html#a8befe85c5ee65562cff4dadac3dc00ef',1,'entt::meta_invoke(meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#a1f4a6163636762f35f9e984f1278905f',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, Candidate &&candidate, meta_any *const args)'],['../namespaceentt.html#aef1b2e11225caa53d5880e81915e9316',1,'entt::meta_invoke(meta_handle instance, meta_any *const args)'],['../namespaceentt.html#ac23a3b88b27196cb423e5d45eada1348',1,'entt::meta_invoke(const meta_ctx &ctx, meta_handle instance, meta_any *const args)']]], + ['meta_5freset_19',['meta_reset',['../namespaceentt.html#aa4a4a3ee0126a16959fcdfe6229fd057',1,'entt::meta_reset(meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#af9e4b586c541f816d71ff5c23b1d2a65',1,'entt::meta_reset(const id_type id) noexcept'],['../namespaceentt.html#a3d262b7705ff50f3fb58d2c90b2d6b61',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#abe9a45bd7c93035354ec03dc7f196482',1,'entt::meta_reset() noexcept'],['../namespaceentt.html#a4671352f38341177295442a0d956c9d8',1,'entt::meta_reset(meta_ctx &ctx) noexcept'],['../namespaceentt.html#a4a0484b50821691e6aacea122481c1e6',1,'entt::meta_reset() noexcept']]], + ['meta_5fsequence_5fcontainer_20',['meta_sequence_container',['../classentt_1_1meta__sequence__container.html#a392df26352c3267384c89e71cd9b2b0b',1,'entt::meta_sequence_container::meta_sequence_container()=default'],['../classentt_1_1meta__sequence__container.html#a756be999106059134841601ad358e4e1',1,'entt::meta_sequence_container::meta_sequence_container(const meta_ctx &area, Type &instance) noexcept']]], + ['meta_5fsetter_21',['meta_setter',['../namespaceentt.html#ac14f35fbe2a40c6a94108b95507517fb',1,'entt']]], + ['meta_5ftype_22',['meta_type',['../classentt_1_1meta__type.html#aaf8c5816b1f47af7f7d1c3ca3af2c9eb',1,'entt::meta_type::meta_type() noexcept=default'],['../classentt_1_1meta__type.html#a7cde7474cc0892fe3b5928dc6fdd43a8',1,'entt::meta_type::meta_type(const meta_ctx &area, internal::meta_type_node curr) noexcept'],['../classentt_1_1meta__type.html#ad538c90f0dda2b2a5bf1b71392d124cd',1,'entt::meta_type::meta_type(const meta_ctx &area, const internal::meta_base_node &curr) noexcept']]] ]; diff --git a/search/functions_d.js b/search/functions_d.js index e920c6afc..a34173ace 100644 --- a/search/functions_d.js +++ b/search/functions_d.js @@ -7,7 +7,7 @@ var searchData= ['operator_20basic_5fgroup_3c_20owned_2c_20get_2c_20exclude_20_3e_4',['operator basic_group< Owned, Get, Exclude >',['../classentt_1_1as__group.html#ab252f9fcd1a370a52dd8abfd7f32cec8',1,'entt::as_group']]], ['operator_20basic_5fhandle_3c_20other_2c_20args_2e_2e_2e_20_3e_5',['operator basic_handle< Other, Args... >',['../classentt_1_1basic__handle.html#ac1c8add27af60e420f5f0d1d2fd078db',1,'entt::basic_handle']]], ['operator_20basic_5fview_3c_20get_2c_20exclude_20_3e_6',['operator basic_view< Get, Exclude >',['../classentt_1_1as__view.html#afd2048bc06e3758fa9fb811e7dd10c5f',1,'entt::as_view']]], - ['operator_20bool_7',['operator bool',['../classentt_1_1basic__any.html#a0a4e687230c96ff901b41d16b7fd41f6',1,'entt::basic_any::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a5032823e971e2da23bacae135c78fbd2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ac4a67ec8ec5c496f331e10a01acf7ef8',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__handle.html#a9d6c1f30cb7e6eed039de66b6ed05163',1,'entt::basic_handle::operator bool()'],['../classentt_1_1basic__sigh__mixin.html#a1dc138f96dbb5d5ccb6668b812f80231',1,'entt::basic_sigh_mixin::operator bool()'],['../classentt_1_1basic__reactive__mixin.html#a07f2a09ede7efaff93491e720d0ea081',1,'entt::basic_reactive_mixin::operator bool()'],['../classentt_1_1basic__runtime__view.html#ae60420edc7a111866fd4164d060cc513',1,'entt::basic_runtime_view::operator bool()'],['../classentt_1_1basic__common__view.html#afd888f9d6b8141c3f1b4c1b1334720ac',1,'entt::basic_common_view::operator bool()'],['../classentt_1_1basic__storage__view.html#a1a64743073c0809b1dda953492865db6',1,'entt::basic_storage_view::operator bool()'],['../classentt_1_1meta__sequence__container.html#a92441a5f3cb720a1fff0f5f4e7451341',1,'entt::meta_sequence_container::operator bool()'],['../classentt_1_1meta__associative__container.html#a3fb7890a5a5e93ed3b76c7206b71a901',1,'entt::meta_associative_container::operator bool()'],['../classentt_1_1meta__any.html#a0aec8274019fc0727cf96c91866707e5',1,'entt::meta_any::operator bool()'],['../structentt_1_1meta__handle.html#a581c82651e531f669d95fbe2a673b1c6',1,'entt::meta_handle::operator bool()'],['../structentt_1_1meta__prop.html#a97affd0004b41d0fedc5287157f701c6',1,'entt::meta_prop::operator bool()'],['../structentt_1_1meta__data.html#a1127923d5d2f1c59af5e739c95f4798a',1,'entt::meta_data::operator bool()'],['../structentt_1_1meta__func.html#a9727c67eadcaea8a0dc66b7d4b7637e0',1,'entt::meta_func::operator bool()'],['../classentt_1_1meta__type.html#aa982605bfed3124bca1cbd492683d5a5',1,'entt::meta_type::operator bool()'],['../classentt_1_1basic__poly.html#a9bd854e20fcb28a1c8bd9e616cce21a7',1,'entt::basic_poly::operator bool()'],['../classentt_1_1resource.html#a45e0fc4a3de1153c781729a79a7d5314',1,'entt::resource::operator bool()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ae6135edc6c6155d19f86b7f27038a1f6',1,'entt::delegate< Ret(Args...)>::operator bool()'],['../classentt_1_1connection.html#a408ef4df083d255a92f708219c7dffc6',1,'entt::connection::operator bool()'],['../structentt_1_1scoped__connection.html#a33c6351e2adea868ca13888e9f228259',1,'entt::scoped_connection::operator bool()']]], + ['operator_20bool_7',['operator bool',['../classentt_1_1basic__any.html#a0a4e687230c96ff901b41d16b7fd41f6',1,'entt::basic_any::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a5032823e971e2da23bacae135c78fbd2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ac4a67ec8ec5c496f331e10a01acf7ef8',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator bool()'],['../classentt_1_1basic__handle.html#a9d6c1f30cb7e6eed039de66b6ed05163',1,'entt::basic_handle::operator bool()'],['../classentt_1_1basic__sigh__mixin.html#a1dc138f96dbb5d5ccb6668b812f80231',1,'entt::basic_sigh_mixin::operator bool()'],['../classentt_1_1basic__reactive__mixin.html#a07f2a09ede7efaff93491e720d0ea081',1,'entt::basic_reactive_mixin::operator bool()'],['../classentt_1_1basic__runtime__view.html#ae60420edc7a111866fd4164d060cc513',1,'entt::basic_runtime_view::operator bool()'],['../classentt_1_1basic__common__view.html#ae300d448aaf4ef7330fb7b635e5877a4',1,'entt::basic_common_view::operator bool()'],['../classentt_1_1basic__storage__view.html#a1a64743073c0809b1dda953492865db6',1,'entt::basic_storage_view::operator bool()'],['../classentt_1_1meta__sequence__container.html#a92441a5f3cb720a1fff0f5f4e7451341',1,'entt::meta_sequence_container::operator bool()'],['../classentt_1_1meta__associative__container.html#a3fb7890a5a5e93ed3b76c7206b71a901',1,'entt::meta_associative_container::operator bool()'],['../classentt_1_1meta__any.html#a0aec8274019fc0727cf96c91866707e5',1,'entt::meta_any::operator bool()'],['../structentt_1_1meta__handle.html#a581c82651e531f669d95fbe2a673b1c6',1,'entt::meta_handle::operator bool()'],['../structentt_1_1meta__data.html#a1127923d5d2f1c59af5e739c95f4798a',1,'entt::meta_data::operator bool()'],['../structentt_1_1meta__func.html#a9727c67eadcaea8a0dc66b7d4b7637e0',1,'entt::meta_func::operator bool()'],['../classentt_1_1meta__type.html#aa982605bfed3124bca1cbd492683d5a5',1,'entt::meta_type::operator bool()'],['../classentt_1_1basic__poly.html#a9bd854e20fcb28a1c8bd9e616cce21a7',1,'entt::basic_poly::operator bool()'],['../classentt_1_1resource.html#a45e0fc4a3de1153c781729a79a7d5314',1,'entt::resource::operator bool()'],['../classentt_1_1connection.html#a408ef4df083d255a92f708219c7dffc6',1,'entt::connection::operator bool()'],['../structentt_1_1scoped__connection.html#a33c6351e2adea868ca13888e9f228259',1,'entt::scoped_connection::operator bool()']]], ['operator_20const_20value_5ftype_20_2a_8',['operator const value_type *',['../classentt_1_1basic__hashed__string.html#aea866875a9b05e5c01c9642766a5857f',1,'entt::basic_hashed_string']]], ['operator_20element_5ftype_20_26_9',['operator element_type &',['../classentt_1_1resource.html#ab4ab5d954d3603d3080e5434691f81b9',1,'entt::resource']]], ['operator_20entity_10',['operator Entity',['../structentt_1_1null__t.html#a645f6d96cbb99f7b245058a05bf0e28b',1,'entt::null_t::operator Entity()'],['../structentt_1_1tombstone__t.html#a7ac55427538dd1b5e39ec064a4ffdd14',1,'entt::tombstone_t::operator Entity()']]], @@ -19,27 +19,28 @@ var searchData= ['operator_20type_20_26_16',['operator Type &',['../structentt_1_1meta__custom.html#ac33462d129dd8a34b665a6a28fa75e32',1,'entt::meta_custom']]], ['operator_20type_20_26_26_17',['operator Type &&',['../structentt_1_1poly__inspector.html#a5b44cbea11e79b2ff918165b7bf100eb',1,'entt::poly_inspector']]], ['operator_20type_20_2a_18',['operator Type *',['../structentt_1_1meta__custom.html#ac2b8276f7ecc30a497bfef7643f6a004',1,'entt::meta_custom']]], - ['operator_21_3d_19',['operator!=',['../classentt_1_1basic__any.html#a749a2855eff737c3ce0882f30bf7ad9a',1,'entt::basic_any::operator!=()'],['../structentt_1_1null__t.html#a6736a78ac5ffa158b229fdf4fefcdc34',1,'entt::null_t::operator!=(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a2c8a4bdade66b7f7520d10b4bb4fc858',1,'entt::null_t::operator!=(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#ac4d838cb66da20f90041cf6e57775512',1,'entt::tombstone_t::operator!=(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#ac66ba66ee149c57866a9a97ac1188eba',1,'entt::tombstone_t::operator!=(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#aec29c7df7a409e920594e0d34f3f71e0',1,'entt::meta_any::operator!=()'],['../structentt_1_1meta__handle.html#a11b6e0b55c075f6fff13a7f5ebae586e',1,'entt::meta_handle::operator!=()'],['../namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf',1,'entt::operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a883ee8e2a3f32a371b44e579ef0d0f25',1,'entt::operator!=(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#afe4410448e22ae52de3bcbf262be9030',1,'entt::operator!=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9abdd7e1b2d1e98662354d5b8f691e91',1,'entt::operator!=(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a5010897ed603a4eb066ea9d151a5f6cc',1,'entt::operator!=(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a7c7a84015d46560a44cf751eed96cfeb',1,'entt::operator!=(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a9c9eee8c572008fa0c43ef8e246de840',1,'entt::operator!=(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#aae197610a7827612780de43b269557c9',1,'entt::operator!=(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a4683753e1e9aa6d3fa003a9643998363',1,'entt::operator!=(const meta_prop &lhs, const meta_prop &rhs) noexcept'],['../namespaceentt.html#a0ed9c972bb7bad7649ee35ec290d3456',1,'entt::operator!=(const meta_data &lhs, const meta_data &rhs) noexcept'],['../namespaceentt.html#a89afa571a2a098039702fea19dcc6882',1,'entt::operator!=(const meta_func &lhs, const meta_func &rhs) noexcept'],['../namespaceentt.html#a85b862c2db6e5771fb95d7a7930e9b18',1,'entt::operator!=(const meta_type &lhs, const meta_type &rhs) noexcept'],['../namespaceentt.html#a73315d70b75d683d36c09fce559fd6d6',1,'entt::operator!=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept'],['../namespaceentt.html#ae663976796b773780f6136606c1a3f31',1,'entt::operator!=(const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept']]], + ['operator_21_3d_19',['operator!=',['../classentt_1_1basic__any.html#a749a2855eff737c3ce0882f30bf7ad9a',1,'entt::basic_any::operator!=()'],['../structentt_1_1null__t.html#a6736a78ac5ffa158b229fdf4fefcdc34',1,'entt::null_t::operator!=(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a2c8a4bdade66b7f7520d10b4bb4fc858',1,'entt::null_t::operator!=(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#ac4d838cb66da20f90041cf6e57775512',1,'entt::tombstone_t::operator!=(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#ac66ba66ee149c57866a9a97ac1188eba',1,'entt::tombstone_t::operator!=(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#aec29c7df7a409e920594e0d34f3f71e0',1,'entt::meta_any::operator!=()'],['../structentt_1_1meta__handle.html#a11b6e0b55c075f6fff13a7f5ebae586e',1,'entt::meta_handle::operator!=()'],['../namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf',1,'entt::operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a883ee8e2a3f32a371b44e579ef0d0f25',1,'entt::operator!=(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#afe4410448e22ae52de3bcbf262be9030',1,'entt::operator!=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9abdd7e1b2d1e98662354d5b8f691e91',1,'entt::operator!=(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a5010897ed603a4eb066ea9d151a5f6cc',1,'entt::operator!=(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a7c7a84015d46560a44cf751eed96cfeb',1,'entt::operator!=(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a9c9eee8c572008fa0c43ef8e246de840',1,'entt::operator!=(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#aae197610a7827612780de43b269557c9',1,'entt::operator!=(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a0ed9c972bb7bad7649ee35ec290d3456',1,'entt::operator!=(const meta_data &lhs, const meta_data &rhs) noexcept'],['../namespaceentt.html#a89afa571a2a098039702fea19dcc6882',1,'entt::operator!=(const meta_func &lhs, const meta_func &rhs) noexcept'],['../namespaceentt.html#a85b862c2db6e5771fb95d7a7930e9b18',1,'entt::operator!=(const meta_type &lhs, const meta_type &rhs) noexcept'],['../namespaceentt.html#a73315d70b75d683d36c09fce559fd6d6',1,'entt::operator!=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept'],['../namespaceentt.html#ae663976796b773780f6136606c1a3f31',1,'entt::operator!=(const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept']]], ['operator_22_22_5fhs_20',['operator""_hs',['../namespaceentt.html#a6d5ebc5e9d0e87c18a22a72d2261bdf5',1,'entt::literals']]], ['operator_22_22_5fhws_21',['operator""_hws',['../namespaceentt.html#a6fa5b29e7184fb8fe184417411792290',1,'entt::literals']]], - ['operator_28_29_22',['operator()',['../structentt_1_1std__sort.html#a8895e4acd1677a60e07d7e28748fe667',1,'entt::std_sort::operator()()'],['../structentt_1_1insertion__sort.html#a73a5644fe5b683f9b9376c89ac47f2b8',1,'entt::insertion_sort::operator()()'],['../structentt_1_1radix__sort.html#a1989f6fbe18d3d82fdea9745d6b9ee96',1,'entt::radix_sort::operator()()'],['../structentt_1_1allocation__deleter.html#aaeea55e9539671ec5d6b1660f25e57d3',1,'entt::allocation_deleter::operator()()'],['../structentt_1_1forward__apply.html#a151fa7f389efe40a8b4c09c1bd055ec2',1,'entt::forward_apply::operator()(Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))'],['../structentt_1_1forward__apply.html#afc1bb10152536953a716529e1772a418',1,'entt::forward_apply::operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args)))'],['../structentt_1_1identity.html#a01974d2754961c63e5c9b9c2a9051dbd',1,'entt::identity::operator()()'],['../structentt_1_1y__combinator.html#a60dcd896c4b8724ed4886c63977943fa',1,'entt::y_combinator::operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)'],['../structentt_1_1y__combinator.html#a1811863af3a07ef59aa25b9bff2a1e1d',1,'entt::y_combinator::operator()(Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)'],['../structentt_1_1resource__loader.html#a675f609c3081613b042167bd44050e70',1,'entt::resource_loader::operator()()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a0e53caedb53810bc96aa71bce199c990',1,'entt::delegate< Ret(Args...)>::operator()()']]], + ['operator_28_29_22',['operator()',['../structentt_1_1std__sort.html#a8895e4acd1677a60e07d7e28748fe667',1,'entt::std_sort::operator()()'],['../structentt_1_1insertion__sort.html#a73a5644fe5b683f9b9376c89ac47f2b8',1,'entt::insertion_sort::operator()()'],['../structentt_1_1radix__sort.html#a1989f6fbe18d3d82fdea9745d6b9ee96',1,'entt::radix_sort::operator()()'],['../structentt_1_1allocation__deleter.html#aaeea55e9539671ec5d6b1660f25e57d3',1,'entt::allocation_deleter::operator()()'],['../structentt_1_1forward__apply.html#a151fa7f389efe40a8b4c09c1bd055ec2',1,'entt::forward_apply::operator()(Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))'],['../structentt_1_1forward__apply.html#afc1bb10152536953a716529e1772a418',1,'entt::forward_apply::operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args)))'],['../structentt_1_1identity.html#a01974d2754961c63e5c9b9c2a9051dbd',1,'entt::identity::operator()()'],['../structentt_1_1y__combinator.html#a60dcd896c4b8724ed4886c63977943fa',1,'entt::y_combinator::operator()(Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)'],['../structentt_1_1y__combinator.html#a1811863af3a07ef59aa25b9bff2a1e1d',1,'entt::y_combinator::operator()(Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)'],['../structentt_1_1resource__loader.html#a675f609c3081613b042167bd44050e70',1,'entt::resource_loader::operator()()']]], ['operator_2a_23',['operator*',['../structentt_1_1input__iterator__pointer.html#acd0737a761dfcece982e92e34ed531e4',1,'entt::input_iterator_pointer::operator*()'],['../classentt_1_1iota__iterator.html#a6bfaf493a4c0f62e2f80efbcddb38b00',1,'entt::iota_iterator::operator*()'],['../classentt_1_1meta__any.html#a51f864d385388b5c9144a10bb4215424',1,'entt::meta_any::operator*()'],['../classentt_1_1resource.html#a3e7db8eefa9359ac9988d834b3962207',1,'entt::resource::operator*()']]], ['operator_2b_24',['operator+',['../namespaceentt.html#ab36ceb26049f62c07817a385e35395f6',1,'entt::operator+(type_list< Type... >, type_list< Other... >)'],['../namespaceentt.html#a722a64074f983c827563bdd5cf7d5dde',1,'entt::operator+(value_list< Value... >, value_list< Other... >)']]], ['operator_2b_2b_25',['operator++',['../classentt_1_1iota__iterator.html#ab19a713e192ed574e22011a409c053c8',1,'entt::iota_iterator::operator++() noexcept'],['../classentt_1_1iota__iterator.html#a1e2be9d5b3c2726542524b3275a1617d',1,'entt::iota_iterator::operator++(int) noexcept']]], ['operator_2d_3e_26',['operator->',['../structentt_1_1input__iterator__pointer.html#a82563e07f0b715f1c587bd2d0e270fbc',1,'entt::input_iterator_pointer::operator->()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0fdbe80b1384bd2eb8d1e41cfb7c3d9f',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator->()'],['../structentt_1_1meta__handle.html#af23a9a171e4e55cb8cd75888dab84b8b',1,'entt::meta_handle::operator->()'],['../structentt_1_1meta__handle.html#ac9ff12a3e7d7abc0ed9fd8a90a402b7c',1,'entt::meta_handle::operator->() const'],['../classentt_1_1basic__poly.html#a490333415cfcb0c59b12a11f8ccd36c7',1,'entt::basic_poly::operator->() noexcept'],['../classentt_1_1basic__poly.html#aa4453091b5b53c536ae2f6a1b1fce189',1,'entt::basic_poly::operator->() const noexcept'],['../classentt_1_1resource.html#a7b38d4c222cb67f5576872dcb8fe1d13',1,'entt::resource::operator->()']]], ['operator_3c_27',['operator<',['../namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f',1,'entt::operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a5f6216409945594d3a50e9b8d3ad72f7',1,'entt::operator<(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a514ed3fdf758d9d0cb616424d570e68d',1,'entt::operator<(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], ['operator_3c_3d_28',['operator<=',['../namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0',1,'entt::operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#acce5a8a6786a787daa1a656f221158cf',1,'entt::operator<=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a687a34a8c4a32c0e4018b38dd2041417',1,'entt::operator<=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], - ['operator_3d_29',['operator=',['../classentt_1_1dense__map.html#a6ee333a078e7bc2b1035a911aff3b7ed',1,'entt::dense_map::operator=(const dense_map &)=default'],['../classentt_1_1dense__map.html#a3decbf479ab29fe63161d66299ef20af',1,'entt::dense_map::operator=(dense_map &&) noexcept=default'],['../classentt_1_1dense__set.html#ad26d7ce37fefc322767d3df9a2c83da6',1,'entt::dense_set::operator=(const dense_set &)=default'],['../classentt_1_1dense__set.html#a49d41accce8880851a66504317b2690c',1,'entt::dense_set::operator=(dense_set &&) noexcept=default'],['../classentt_1_1basic__table.html#a3beaa90d9c3d99609c228c57edbdaf8f',1,'entt::basic_table::operator=(const basic_table &)=delete'],['../classentt_1_1basic__table.html#a91b0f7e8ac65129da41bbfe5aec7029b',1,'entt::basic_table::operator=(basic_table &&other) noexcept'],['../classentt_1_1basic__any.html#ab3f60cd57d55ff657927371cf06c2325',1,'entt::basic_any::operator=(const basic_any &other)'],['../classentt_1_1basic__any.html#ace596f46c6bb613430b9f7ee5e4b3d01',1,'entt::basic_any::operator=(basic_any &&other) noexcept'],['../classentt_1_1basic__any.html#ac54b5130a6ceee1cc396290e7701a7c3',1,'entt::basic_any::operator=(Type &&value)'],['../classentt_1_1compressed__pair.html#a7c76e9284458d874cf928a2145cdc86f',1,'entt::compressed_pair::operator=(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#aee1613d2651cefe502ee86a759ce9d41',1,'entt::compressed_pair::operator=(compressed_pair &&other) noexcept=default'],['../structentt_1_1monostate.html#a00071b958f5e4ede520390a10c3e0f1e',1,'entt::monostate::operator=()'],['../classentt_1_1basic__sigh__mixin.html#af44458bdfcc2084eed576af724383fdd',1,'entt::basic_sigh_mixin::operator=(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a4c00f12e254af5e6b3ccd6ab89d79737',1,'entt::basic_sigh_mixin::operator=(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#ae24f79e5531d76a1518efa34aa3a6e94',1,'entt::basic_reactive_mixin::operator=(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a04cc8d9b1069319225e47cfd8feb8375',1,'entt::basic_reactive_mixin::operator=(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__observer.html#a9ff68c4fcb08832a12235b8556b4c427',1,'entt::basic_observer::operator=(const basic_observer &)=delete'],['../classentt_1_1basic__observer.html#a67ef87b4649db8258a79daa58b154199',1,'entt::basic_observer::operator=(basic_observer &&)=delete'],['../classentt_1_1basic__registry.html#aaf838797891c1fe058679f96bd88f473',1,'entt::basic_registry::operator=(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#a825a977af35627faca20c0ea388d10fa',1,'entt::basic_registry::operator=(basic_registry &&other) noexcept'],['../classentt_1_1basic__runtime__view.html#a554579a85e4c40fd1506949c01706c27',1,'entt::basic_runtime_view::operator=(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#abf9d409908a25e0eb7123a52f803c43b',1,'entt::basic_runtime_view::operator=(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__snapshot.html#aa5883b6e7876173f6e2fb25d50e6f021',1,'entt::basic_snapshot::operator=(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#a149c419863771ff599abd2103647ec6b',1,'entt::basic_snapshot::operator=(basic_snapshot &&) noexcept=default'],['../classentt_1_1basic__snapshot__loader.html#ab856775274932d343039740b17b6957e',1,'entt::basic_snapshot_loader::operator=(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#ac7653702c1ae5d81510d3ea338fb5c4a',1,'entt::basic_snapshot_loader::operator=(basic_snapshot_loader &&) noexcept=default'],['../classentt_1_1basic__continuous__loader.html#a55ad0d865e74ea3d53cd67812fe2c4e1',1,'entt::basic_continuous_loader::operator=(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#ade392e168f1b045c70608544283ff7cc',1,'entt::basic_continuous_loader::operator=(basic_continuous_loader &&) noexcept=default'],['../classentt_1_1basic__sparse__set.html#a71e7865957db2ed2243c77eac979c8ee',1,'entt::basic_sparse_set::operator=(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#a53f8aad7f89c040a3ef0e79ad9e814fb',1,'entt::basic_sparse_set::operator=(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a5f887a113631ee4bddfcfaf863b96ab7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#acc79299daa427277fc5367baad15029d',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator=(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#af605f563b7a0be4036fa8dba278d57fb',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a723daaf0eab065ab697d1d6d1be56452',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1adjacency__matrix.html#ab26e50bcbe59bf835f6a34a21a622095',1,'entt::adjacency_matrix::operator=(const adjacency_matrix &)=default'],['../classentt_1_1adjacency__matrix.html#a760b57bbb50f8e98a9f6bf8c6c6a19c5',1,'entt::adjacency_matrix::operator=(adjacency_matrix &&) noexcept=default'],['../classentt_1_1basic__flow.html#aede173e1874fb7302bf87dc42ec3dfc8',1,'entt::basic_flow::operator=(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#abc4820f568a811f5c7f0557dc08d1233',1,'entt::basic_flow::operator=(basic_flow &&) noexcept=default'],['../classentt_1_1locator.html#a0a8dc9e782cce49d16fe39cfbd94f70b',1,'entt::locator::operator=()'],['../classentt_1_1meta__any.html#a0a9a19e8d19c2f86d53fb159d591364a',1,'entt::meta_any::operator=(const meta_any &other)'],['../classentt_1_1meta__any.html#af9a77fb222630d6e75d20a560a534d86',1,'entt::meta_any::operator=(meta_any &&other) noexcept'],['../classentt_1_1meta__any.html#a9b068349a86008147c24a9811ae8f8aa',1,'entt::meta_any::operator=(Type &&value)'],['../structentt_1_1meta__handle.html#a2d301c4614d689edbeab106a27fc8e46',1,'entt::meta_handle::operator=(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aed732316016fd9d0da3b2bd51b3ac229',1,'entt::meta_handle::operator=(meta_handle &&)=default'],['../classentt_1_1process.html#a72788a7962cf5001746c4714659f4630',1,'entt::process::operator=(const process &)=default'],['../classentt_1_1process.html#aa0bf8ba1041e6fccd9062dc113ede77e',1,'entt::process::operator=(process &&) noexcept=default'],['../classentt_1_1basic__scheduler.html#a466f28758a275cd736b5cbab7b6b1fbb',1,'entt::basic_scheduler::operator=(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a7cc74ea04a1e79e23cb8b007cf89b6d6',1,'entt::basic_scheduler::operator=(basic_scheduler &&other) noexcept'],['../classentt_1_1resource__cache.html#ad007cb4884a7dfa45d5c6937cd2d6943',1,'entt::resource_cache::operator=(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a0f6b476fa530f7175aa628739e3f4f93',1,'entt::resource_cache::operator=(resource_cache &&) noexcept=default'],['../classentt_1_1resource.html#a712fbb5bb404c4510999ef9383651f5d',1,'entt::resource::operator=(const resource &) noexcept=default'],['../classentt_1_1resource.html#a8b209d227259b38f2a8a90f59b93894c',1,'entt::resource::operator=(resource &&) noexcept=default'],['../classentt_1_1resource.html#a4f265832bcfbe190b85cacd9c3f439b2',1,'entt::resource::operator=(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#a3d5ead24b83945b4fbed0aaca5a9c7e8',1,'entt::resource::operator=(resource< Other > &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a9f55a869d2cd940755cec8e6aefa96e9',1,'entt::basic_dispatcher::operator=(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#ae743b9211b995d86eec1fba117fc9799',1,'entt::basic_dispatcher::operator=(basic_dispatcher &&other) noexcept'],['../classentt_1_1emitter.html#a0677221836c6d2625c982d381cc4702f',1,'entt::emitter::operator=(const emitter &)=delete'],['../classentt_1_1emitter.html#a3cf6cad201e76ebbc43d426518928501',1,'entt::emitter::operator=(emitter &&other) noexcept'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ad92f4541d506af1081b0506a7c02192f',1,'entt::sigh< Ret(Args...), Allocator >::operator=(const sigh &other)'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a43953819af6fc464c71b7cea5cf4657e',1,'entt::sigh< Ret(Args...), Allocator >::operator=(sigh &&other) noexcept'],['../structentt_1_1scoped__connection.html#a964913528a3c74d950eee17f6d7705ac',1,'entt::scoped_connection::operator=(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#ae44d8083b66e134ba920dfbe3b928d48',1,'entt::scoped_connection::operator=(scoped_connection &&other) noexcept'],['../structentt_1_1scoped__connection.html#ae1f1dbc4b9c8d3e94a8566c6bbc4e351',1,'entt::scoped_connection::operator=(connection other)']]], - ['operator_3d_3d_30',['operator==',['../classentt_1_1basic__any.html#ae7b91c6ef21a43af18d8f1657e458461',1,'entt::basic_any::operator==()'],['../structentt_1_1null__t.html#aed9c63b072bec4c7c6c15dc110620a93',1,'entt::null_t::operator==(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a1b143232fe50fc52fee376f4f8e23a76',1,'entt::null_t::operator==(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#af95e989594791f7eb458b22269b0a3b5',1,'entt::tombstone_t::operator==(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#a872e744dc422954ddcdfbbb191d8ec34',1,'entt::tombstone_t::operator==(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#ae2fc0c5e7414152fa8d0cf821005dc5c',1,'entt::meta_any::operator==()'],['../structentt_1_1meta__handle.html#aa50eb4ecc61428fae6cdced618d75608',1,'entt::meta_handle::operator==()'],['../structentt_1_1meta__prop.html#ac7c7cc8175382311c5d63a5f636a442a',1,'entt::meta_prop::operator==()'],['../structentt_1_1meta__data.html#a9316b0562ce25724c72a271344d856ca',1,'entt::meta_data::operator==()'],['../structentt_1_1meta__func.html#a671bac8b8f15d534c5fa6c80cac22270',1,'entt::meta_func::operator==()'],['../classentt_1_1meta__type.html#ab0d6c416d233c2ff0199f2c6c01d17b0',1,'entt::meta_type::operator==()'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a02045624d6c4c1e2d0f25f24b5fa6349',1,'entt::delegate< Ret(Args...)>::operator==()'],['../namespaceentt.html#af7c61951b721a1e3612cf536bd707501',1,'entt::operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a4423ccae6f6edef721acf6624b8cec41',1,'entt::operator==(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#a2dcf4803e990dfe0867025bf76de501c',1,'entt::operator==(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a60d2331ec59eb76f0304e675cfd645db',1,'entt::operator==(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a9332718aa52e1ebd2c22c825eec7075c',1,'entt::operator==(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a3bf3030e5e15a6249460c9665395be79',1,'entt::operator==(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a4dbbdfb66ed6652c8fc9e50fa0e17fcf',1,'entt::operator==(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a83884fa568c12d936d2980ff22032469',1,'entt::operator==(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a59c12ec665a2bdc1a99e6a6298772adf',1,'entt::operator==(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], + ['operator_3d_29',['operator=',['../classentt_1_1dense__map.html#a6ee333a078e7bc2b1035a911aff3b7ed',1,'entt::dense_map::operator=(const dense_map &)=default'],['../classentt_1_1dense__map.html#a3decbf479ab29fe63161d66299ef20af',1,'entt::dense_map::operator=(dense_map &&) noexcept=default'],['../classentt_1_1dense__set.html#ad26d7ce37fefc322767d3df9a2c83da6',1,'entt::dense_set::operator=(const dense_set &)=default'],['../classentt_1_1dense__set.html#a49d41accce8880851a66504317b2690c',1,'entt::dense_set::operator=(dense_set &&) noexcept=default'],['../classentt_1_1basic__table.html#a3beaa90d9c3d99609c228c57edbdaf8f',1,'entt::basic_table::operator=(const basic_table &)=delete'],['../classentt_1_1basic__table.html#a91b0f7e8ac65129da41bbfe5aec7029b',1,'entt::basic_table::operator=(basic_table &&other) noexcept'],['../classentt_1_1basic__any.html#ab3f60cd57d55ff657927371cf06c2325',1,'entt::basic_any::operator=(const basic_any &other)'],['../classentt_1_1basic__any.html#ace596f46c6bb613430b9f7ee5e4b3d01',1,'entt::basic_any::operator=(basic_any &&other) noexcept'],['../classentt_1_1basic__any.html#ac54b5130a6ceee1cc396290e7701a7c3',1,'entt::basic_any::operator=(Type &&value)'],['../classentt_1_1compressed__pair.html#a7c76e9284458d874cf928a2145cdc86f',1,'entt::compressed_pair::operator=(const compressed_pair &other)=default'],['../classentt_1_1compressed__pair.html#aee1613d2651cefe502ee86a759ce9d41',1,'entt::compressed_pair::operator=(compressed_pair &&other) noexcept=default'],['../structentt_1_1monostate.html#a00071b958f5e4ede520390a10c3e0f1e',1,'entt::monostate::operator=()'],['../classentt_1_1basic__sigh__mixin.html#af44458bdfcc2084eed576af724383fdd',1,'entt::basic_sigh_mixin::operator=(const basic_sigh_mixin &)=delete'],['../classentt_1_1basic__sigh__mixin.html#a4c00f12e254af5e6b3ccd6ab89d79737',1,'entt::basic_sigh_mixin::operator=(basic_sigh_mixin &&other) noexcept'],['../classentt_1_1basic__reactive__mixin.html#ae24f79e5531d76a1518efa34aa3a6e94',1,'entt::basic_reactive_mixin::operator=(const basic_reactive_mixin &)=delete'],['../classentt_1_1basic__reactive__mixin.html#a04cc8d9b1069319225e47cfd8feb8375',1,'entt::basic_reactive_mixin::operator=(basic_reactive_mixin &&other) noexcept'],['../classentt_1_1basic__registry.html#aaf838797891c1fe058679f96bd88f473',1,'entt::basic_registry::operator=(const basic_registry &)=delete'],['../classentt_1_1basic__registry.html#a825a977af35627faca20c0ea388d10fa',1,'entt::basic_registry::operator=(basic_registry &&other) noexcept'],['../classentt_1_1basic__runtime__view.html#a554579a85e4c40fd1506949c01706c27',1,'entt::basic_runtime_view::operator=(const basic_runtime_view &)=default'],['../classentt_1_1basic__runtime__view.html#abf9d409908a25e0eb7123a52f803c43b',1,'entt::basic_runtime_view::operator=(basic_runtime_view &&) noexcept=default'],['../classentt_1_1basic__snapshot.html#aa5883b6e7876173f6e2fb25d50e6f021',1,'entt::basic_snapshot::operator=(const basic_snapshot &)=delete'],['../classentt_1_1basic__snapshot.html#a149c419863771ff599abd2103647ec6b',1,'entt::basic_snapshot::operator=(basic_snapshot &&) noexcept=default'],['../classentt_1_1basic__snapshot__loader.html#ab856775274932d343039740b17b6957e',1,'entt::basic_snapshot_loader::operator=(const basic_snapshot_loader &)=delete'],['../classentt_1_1basic__snapshot__loader.html#ac7653702c1ae5d81510d3ea338fb5c4a',1,'entt::basic_snapshot_loader::operator=(basic_snapshot_loader &&) noexcept=default'],['../classentt_1_1basic__continuous__loader.html#a55ad0d865e74ea3d53cd67812fe2c4e1',1,'entt::basic_continuous_loader::operator=(const basic_continuous_loader &)=delete'],['../classentt_1_1basic__continuous__loader.html#ade392e168f1b045c70608544283ff7cc',1,'entt::basic_continuous_loader::operator=(basic_continuous_loader &&) noexcept=default'],['../classentt_1_1basic__sparse__set.html#a71e7865957db2ed2243c77eac979c8ee',1,'entt::basic_sparse_set::operator=(const basic_sparse_set &)=delete'],['../classentt_1_1basic__sparse__set.html#a53f8aad7f89c040a3ef0e79ad9e814fb',1,'entt::basic_sparse_set::operator=(basic_sparse_set &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a1615c58d643c86da7b901acedc6af5e9',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#adc2b36e7668fccf8c46f4ef70db1fc34',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(basic_storage &&other) noexcept=default'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#af605f563b7a0be4036fa8dba278d57fb',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a723daaf0eab065ab697d1d6d1be56452',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1adjacency__matrix.html#ab26e50bcbe59bf835f6a34a21a622095',1,'entt::adjacency_matrix::operator=(const adjacency_matrix &)=default'],['../classentt_1_1adjacency__matrix.html#a760b57bbb50f8e98a9f6bf8c6c6a19c5',1,'entt::adjacency_matrix::operator=(adjacency_matrix &&) noexcept=default'],['../classentt_1_1basic__flow.html#aede173e1874fb7302bf87dc42ec3dfc8',1,'entt::basic_flow::operator=(const basic_flow &)=default'],['../classentt_1_1basic__flow.html#abc4820f568a811f5c7f0557dc08d1233',1,'entt::basic_flow::operator=(basic_flow &&) noexcept=default'],['../classentt_1_1locator.html#a0a8dc9e782cce49d16fe39cfbd94f70b',1,'entt::locator::operator=()'],['../classentt_1_1meta__any.html#a0a9a19e8d19c2f86d53fb159d591364a',1,'entt::meta_any::operator=(const meta_any &other)'],['../classentt_1_1meta__any.html#af9a77fb222630d6e75d20a560a534d86',1,'entt::meta_any::operator=(meta_any &&other) noexcept'],['../classentt_1_1meta__any.html#a9b068349a86008147c24a9811ae8f8aa',1,'entt::meta_any::operator=(Type &&value)'],['../structentt_1_1meta__handle.html#a2d301c4614d689edbeab106a27fc8e46',1,'entt::meta_handle::operator=(const meta_handle &)=delete'],['../structentt_1_1meta__handle.html#aed732316016fd9d0da3b2bd51b3ac229',1,'entt::meta_handle::operator=(meta_handle &&)=default'],['../classentt_1_1process.html#a72788a7962cf5001746c4714659f4630',1,'entt::process::operator=(const process &)=default'],['../classentt_1_1process.html#aa0bf8ba1041e6fccd9062dc113ede77e',1,'entt::process::operator=(process &&) noexcept=default'],['../classentt_1_1basic__scheduler.html#a466f28758a275cd736b5cbab7b6b1fbb',1,'entt::basic_scheduler::operator=(const basic_scheduler &)=delete'],['../classentt_1_1basic__scheduler.html#a7cc74ea04a1e79e23cb8b007cf89b6d6',1,'entt::basic_scheduler::operator=(basic_scheduler &&other) noexcept'],['../classentt_1_1resource__cache.html#ad007cb4884a7dfa45d5c6937cd2d6943',1,'entt::resource_cache::operator=(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a0f6b476fa530f7175aa628739e3f4f93',1,'entt::resource_cache::operator=(resource_cache &&) noexcept=default'],['../classentt_1_1resource.html#a712fbb5bb404c4510999ef9383651f5d',1,'entt::resource::operator=(const resource &) noexcept=default'],['../classentt_1_1resource.html#a8b209d227259b38f2a8a90f59b93894c',1,'entt::resource::operator=(resource &&) noexcept=default'],['../classentt_1_1resource.html#a4f265832bcfbe190b85cacd9c3f439b2',1,'entt::resource::operator=(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#a3d5ead24b83945b4fbed0aaca5a9c7e8',1,'entt::resource::operator=(resource< Other > &&other) noexcept'],['../classentt_1_1basic__dispatcher.html#a9f55a869d2cd940755cec8e6aefa96e9',1,'entt::basic_dispatcher::operator=(const basic_dispatcher &)=delete'],['../classentt_1_1basic__dispatcher.html#ae743b9211b995d86eec1fba117fc9799',1,'entt::basic_dispatcher::operator=(basic_dispatcher &&other) noexcept'],['../classentt_1_1emitter.html#a0677221836c6d2625c982d381cc4702f',1,'entt::emitter::operator=(const emitter &)=delete'],['../classentt_1_1emitter.html#a3cf6cad201e76ebbc43d426518928501',1,'entt::emitter::operator=(emitter &&other) noexcept'],['../structentt_1_1scoped__connection.html#a964913528a3c74d950eee17f6d7705ac',1,'entt::scoped_connection::operator=(const scoped_connection &)=delete'],['../structentt_1_1scoped__connection.html#ae44d8083b66e134ba920dfbe3b928d48',1,'entt::scoped_connection::operator=(scoped_connection &&other) noexcept'],['../structentt_1_1scoped__connection.html#ae1f1dbc4b9c8d3e94a8566c6bbc4e351',1,'entt::scoped_connection::operator=(connection other)'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage< Entity, Entity, Allocator >::operator=(basic_storage &&other) noexcept'],['../classentt_1_1basic__storage.html#ad3797487dadd407f1542d4405f49d81b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(const basic_storage &)=delete'],['../classentt_1_1basic__storage.html#a8507e607a4f0e571f0d85637030a86c5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::operator=(basic_storage &&other) noexcept']]], + ['operator_3d_3d_30',['operator==',['../classentt_1_1basic__any.html#ae7b91c6ef21a43af18d8f1657e458461',1,'entt::basic_any::operator==()'],['../structentt_1_1null__t.html#aed9c63b072bec4c7c6c15dc110620a93',1,'entt::null_t::operator==(const null_t other) const noexcept'],['../structentt_1_1null__t.html#a1b143232fe50fc52fee376f4f8e23a76',1,'entt::null_t::operator==(const Entity entity) const noexcept'],['../structentt_1_1tombstone__t.html#af95e989594791f7eb458b22269b0a3b5',1,'entt::tombstone_t::operator==(const tombstone_t other) const noexcept'],['../structentt_1_1tombstone__t.html#a872e744dc422954ddcdfbbb191d8ec34',1,'entt::tombstone_t::operator==(const Entity entity) const noexcept'],['../classentt_1_1meta__any.html#ae2fc0c5e7414152fa8d0cf821005dc5c',1,'entt::meta_any::operator==()'],['../structentt_1_1meta__handle.html#aa50eb4ecc61428fae6cdced618d75608',1,'entt::meta_handle::operator==()'],['../structentt_1_1meta__data.html#a9316b0562ce25724c72a271344d856ca',1,'entt::meta_data::operator==()'],['../structentt_1_1meta__func.html#a671bac8b8f15d534c5fa6c80cac22270',1,'entt::meta_func::operator==()'],['../classentt_1_1meta__type.html#ab0d6c416d233c2ff0199f2c6c01d17b0',1,'entt::meta_type::operator==()'],['../namespaceentt.html#af7c61951b721a1e3612cf536bd707501',1,'entt::operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a4423ccae6f6edef721acf6624b8cec41',1,'entt::operator==(const iota_iterator< Type > &lhs, const iota_iterator< Type > &rhs) noexcept'],['../namespaceentt.html#a2dcf4803e990dfe0867025bf76de501c',1,'entt::operator==(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a60d2331ec59eb76f0304e675cfd645db',1,'entt::operator==(const Entity lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a9332718aa52e1ebd2c22c825eec7075c',1,'entt::operator==(const Entity lhs, const tombstone_t rhs) noexcept'],['../namespaceentt.html#a3bf3030e5e15a6249460c9665395be79',1,'entt::operator==(const basic_handle< Args... > &lhs, const basic_handle< Other... > &rhs) noexcept'],['../namespaceentt.html#a4dbbdfb66ed6652c8fc9e50fa0e17fcf',1,'entt::operator==(const basic_handle< Args... > &lhs, const null_t rhs) noexcept'],['../namespaceentt.html#a83884fa568c12d936d2980ff22032469',1,'entt::operator==(const null_t lhs, const basic_handle< Args... > &rhs) noexcept'],['../namespaceentt.html#a59c12ec665a2bdc1a99e6a6298772adf',1,'entt::operator==(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], ['operator_3e_31',['operator>',['../namespaceentt.html#aec8131af000055ceab85646c14f234ad',1,'entt::operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#abad8ef328173f0b43d96f8d042d7f444',1,'entt::operator>(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a9cbf699fc7665abc206832e0d70d812a',1,'entt::operator>(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], ['operator_3e_3d_32',['operator>=',['../namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4',1,'entt::operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept'],['../namespaceentt.html#a502743d6a5b36ceff050779d93b444ca',1,'entt::operator>=(const type_info &lhs, const type_info &rhs) noexcept'],['../namespaceentt.html#a55ce0b2a8f91b438dba5febd8d79f61c',1,'entt::operator>=(const resource< Lhs > &lhs, const resource< Rhs > &rhs) noexcept']]], ['operator_5b_5d_33',['operator[]',['../classentt_1_1dense__map.html#a9b5784ca7ce9ab1ea46b303598f9987d',1,'entt::dense_map::operator[](const key_type &key)'],['../classentt_1_1dense__map.html#a19e0c8cdb0eef57582ce061a631b0a56',1,'entt::dense_map::operator[](key_type &&key)'],['../classentt_1_1basic__table.html#a45844694a4a21b1ce5440924d47688c4',1,'entt::basic_table::operator[](const size_type pos) const'],['../classentt_1_1basic__table.html#ad1a66ffd9035e3cb8cb313747ae88263',1,'entt::basic_table::operator[](const size_type pos)'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a38ee47145fc3fcb63ab0a80250f43a55',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9c8624960249235714926777c1b4423e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::operator[]()'],['../classentt_1_1basic__sparse__set.html#aba848e5d30f1f8fadce544d7bba7296a',1,'entt::basic_sparse_set::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ab0ba88c753f7b489eaa6a01ada6a35c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator[]()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aee1e863b2ec94b44a87697b9969ff30e',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator[]()'],['../classentt_1_1basic__flow.html#a12d419b34b81caf99d8e15e7fcb07316',1,'entt::basic_flow::operator[]()'],['../classentt_1_1meta__sequence__container.html#a379aff72294a9e5ae13e476ca6386966',1,'entt::meta_sequence_container::operator[]()'],['../classentt_1_1resource__cache.html#a9b251c4193a8a6b7e5e3856e5ea95078',1,'entt::resource_cache::operator[](const id_type id) const'],['../classentt_1_1resource__cache.html#a3586708bffde50076bb16e8cda6222d5',1,'entt::resource_cache::operator[](const id_type id)']]], - ['operator_7c_34',['operator|',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a461907e002f095b23398cff58bc88f03',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|()'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a06b95c774a25f1329bde53d85035765a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|()']]], + ['operator_7c_34',['operator|',['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a3db3419fce2bcc22d9f0e87e5dc8931b',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|(OGet &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a461907e002f095b23398cff58bc88f03',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#aaf7ab4d560858ba63a244723b2221ca8',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|(OGet &other) const noexcept'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a06b95c774a25f1329bde53d85035765a',1,'entt::basic_view< get_t< Get >, exclude_t<> >::operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept']]], ['orphan_35',['orphan',['../classentt_1_1basic__handle.html#a7ed6c2bcefa06c826c90013abf9c15f2',1,'entt::basic_handle::orphan()'],['../classentt_1_1basic__registry.html#a1b36843b380e02019ad88c455d6e6d17',1,'entt::basic_registry::orphan()']]], ['orphans_36',['orphans',['../classentt_1_1basic__snapshot__loader.html#ad37932c98a812596d40456bd4610e535',1,'entt::basic_snapshot_loader::orphans()'],['../classentt_1_1basic__continuous__loader.html#ae497e30cd8fa96978a067bb0f4dee5cd',1,'entt::basic_continuous_loader::orphans()']]], ['out_5fedges_37',['out_edges',['../structentt_1_1basic__organizer_1_1vertex.html#a5c72c137063f8006fcfadeddd35621a0',1,'entt::basic_organizer::vertex::out_edges()'],['../classentt_1_1adjacency__matrix.html#a4e28de523aa924aea9c8c78b5981a9df',1,'entt::adjacency_matrix::out_edges()']]], ['overload_38',['overload',['../namespaceentt.html#ac5131df9ce458a6884c43595f501f916',1,'entt::overload(Type Class::*member) noexcept'],['../namespaceentt.html#a267f6d6d3ea49bd36f7e8d2f002ec1d1',1,'entt::overload(Func *func) noexcept']]], ['overloaded_39',['overloaded',['../namespaceentt.html#a26eb67ac302229374c5fb623d529f5eb',1,'entt']]], ['owned_40',['owned',['../classentt_1_1basic__registry.html#a0da9b805673a9753a4c9f6f1609e0d87',1,'entt::basic_registry']]], - ['owned_5ft_41',['owned_t',['../structentt_1_1owned__t.html#a77389f65faa2cd82b68b61f9c15ea9f8',1,'entt::owned_t']]] + ['owned_5ft_41',['owned_t',['../structentt_1_1owned__t.html#a77389f65faa2cd82b68b61f9c15ea9f8',1,'entt::owned_t']]], + ['owner_42',['owner',['../classentt_1_1basic__any.html#a4f36479ca4ac3ad94a80fc3ac3eb1a24',1,'entt::basic_any']]] ]; diff --git a/search/functions_e.js b/search/functions_e.js index 67a9b7bac..43093bfac 100644 --- a/search/functions_e.js +++ b/search/functions_e.js @@ -1,20 +1,19 @@ var searchData= [ - ['patch_0',['patch',['../classentt_1_1basic__handle.html#a464d4084991529843c7c5a88d56e12cd',1,'entt::basic_handle::patch()'],['../classentt_1_1basic__sigh__mixin.html#a1825979313096feb7d59d09f2e821d77',1,'entt::basic_sigh_mixin::patch()'],['../classentt_1_1basic__registry.html#a77c108caf74d8fcce9f3fb94906cd4db',1,'entt::basic_registry::patch()'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage::patch()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a95f0f91666cc79c7b8ac8d340c574571',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::patch()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#adbcee0a91f31c48bb5fd6b3186585d78',1,'entt::basic_storage< Entity, Entity, Allocator >::patch()']]], + ['patch_0',['patch',['../classentt_1_1basic__handle.html#a464d4084991529843c7c5a88d56e12cd',1,'entt::basic_handle::patch()'],['../classentt_1_1basic__sigh__mixin.html#a1825979313096feb7d59d09f2e821d77',1,'entt::basic_sigh_mixin::patch()'],['../classentt_1_1basic__registry.html#a77c108caf74d8fcce9f3fb94906cd4db',1,'entt::basic_registry::patch()'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage::patch()'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a5a781be8ab6936be9128829159918048',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::patch()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#adbcee0a91f31c48bb5fd6b3186585d78',1,'entt::basic_storage< Entity, Entity, Allocator >::patch(const entity_type entt, Func &&...func)'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage< Entity, Entity, Allocator >::patch(const entity_type entt, Func &&...func)'],['../classentt_1_1basic__storage.html#aac5dc88bd5698b4fbf9aa873bdbd0d42',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::patch()']]], ['pause_1',['pause',['../classentt_1_1process.html#a2bcdfd9f2ec24b591ba1fbf38f563023',1,'entt::process']]], ['paused_2',['paused',['../classentt_1_1process.html#ac7738f4e908293a072a89981a004669a',1,'entt::process']]], - ['policy_3',['policy',['../classentt_1_1basic__any.html#aa596e3cbca62ec101627dcdd82f216b7',1,'entt::basic_any::policy()'],['../classentt_1_1basic__sparse__set.html#a91f80e4333c16c6c3786b041c8a7e8a2',1,'entt::basic_sparse_set::policy()'],['../classentt_1_1meta__any.html#a51934b60872f554b279c7f790fe2ee7c',1,'entt::meta_any::policy()']]], + ['policy_3',['policy',['../classentt_1_1basic__any.html#aa596e3cbca62ec101627dcdd82f216b7',1,'entt::basic_any::policy()'],['../classentt_1_1basic__sparse__set.html#a91f80e4333c16c6c3786b041c8a7e8a2',1,'entt::basic_sparse_set::policy()'],['../classentt_1_1meta__any.html#a042c1518c41a31a282941cac1d40fa46',1,'entt::meta_any::policy()']]], ['poly_5fcall_4',['poly_call',['../namespaceentt.html#a8b4f2adf317a555138ef5c1cf45b034a',1,'entt']]], - ['pop_5',['pop',['../classentt_1_1basic__sparse__set.html#a8f66cbcaa360286d296dcb7a33c7e1ce',1,'entt::basic_sparse_set::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage::pop()']]], - ['pop_5fall_6',['pop_all',['../classentt_1_1basic__sparse__set.html#a1e8e00e8bfa75311482f2fa071e244e6',1,'entt::basic_sparse_set::pop_all()'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage::pop_all()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a4703e670597bf8dfebe036f8a378ca12',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all()']]], + ['pop_5',['pop',['../classentt_1_1basic__sparse__set.html#a8f66cbcaa360286d296dcb7a33c7e1ce',1,'entt::basic_sparse_set::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage< Entity, Entity, Allocator >::pop()'],['../classentt_1_1basic__storage.html#ab2d0f02c4c0a88d6fe42b95e9c2b8226',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pop()']]], + ['pop_5fall_6',['pop_all',['../classentt_1_1basic__sparse__set.html#a1e8e00e8bfa75311482f2fa071e244e6',1,'entt::basic_sparse_set::pop_all()'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage::pop_all()'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a4703e670597bf8dfebe036f8a378ca12',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all() override'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage< Entity, Entity, Allocator >::pop_all() override'],['../classentt_1_1basic__storage.html#a343212f5eacd1e124fb85be1a6841b60',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pop_all()']]], ['popcount_7',['popcount',['../namespaceentt.html#afab136c473d8c862b183cec9d4a13915',1,'entt']]], ['prepare_8',['prepare',['../structentt_1_1basic__organizer_1_1vertex.html#a7af8e230d84a2a6210185126cbc23180',1,'entt::basic_organizer::vertex']]], ['process_9',['process',['../classentt_1_1process.html#a4a5cf6bbe22a8b5b60b8b6c7221bc3b9',1,'entt::process::process()=default'],['../classentt_1_1process.html#a23a46de31f2f5e8eeefcc07739b28038',1,'entt::process::process(const process &)=default'],['../classentt_1_1process.html#a5bd3a2e2889ad05c3314367652bf3223',1,'entt::process::process(process &&) noexcept=default']]], ['process_5fadaptor_10',['process_adaptor',['../structentt_1_1process__adaptor.html#af065d57ac7c645279e4a5033f326abd8',1,'entt::process_adaptor']]], - ['prop_11',['prop',['../classentt_1_1meta__factory.html#a461250b92c9bb91f165780b35ba7ba9a',1,'entt::meta_factory::prop()'],['../structentt_1_1meta__data.html#a8dc86b923a3a2c46e0077d0222529696',1,'entt::meta_data::prop() const noexcept'],['../structentt_1_1meta__data.html#a66cf4f9de4950b6cccada44832c77c35',1,'entt::meta_data::prop(const id_type key) const'],['../structentt_1_1meta__func.html#a7107251c7e73ac57c8a31827f509163d',1,'entt::meta_func::prop() const noexcept'],['../structentt_1_1meta__func.html#a6933a7fb0b246800be22d4e0bc79142c',1,'entt::meta_func::prop(const id_type key) const'],['../classentt_1_1meta__type.html#a566ae00244b74151c228a7b19b83901f',1,'entt::meta_type::prop() const noexcept'],['../classentt_1_1meta__type.html#a93f0e9e80f1a2db90a5c33f8f4dfccc9',1,'entt::meta_type::prop(const id_type key) const']]], - ['propagate_5fon_5fcontainer_5fcopy_5fassignment_12',['propagate_on_container_copy_assignment',['../namespaceentt.html#ae934980252d1f2ce8f2473c8d74347df',1,'entt']]], - ['propagate_5fon_5fcontainer_5fmove_5fassignment_13',['propagate_on_container_move_assignment',['../namespaceentt.html#a46cd263b358a2d495d4f4ee27d4537d7',1,'entt']]], - ['propagate_5fon_5fcontainer_5fswap_14',['propagate_on_container_swap',['../namespaceentt.html#a0dd7ed3d3f11933cd542d8f4646cd695',1,'entt']]], - ['publish_15',['publish',['../classentt_1_1emitter.html#a7d8d8141c67248b448f47f5a123fd8e9',1,'entt::emitter::publish()'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a0893ef46dac20781070826fb93c50fb4',1,'entt::sigh< Ret(Args...), Allocator >::publish()']]], - ['push_16',['push',['../classentt_1_1basic__sparse__set.html#a8cf01b2a8d20329ec1c1d5d3b5708969',1,'entt::basic_sparse_set::push(const entity_type entt, const void *elem=nullptr)'],['../classentt_1_1basic__sparse__set.html#a43205b128298f90d1255cf4ce768297c',1,'entt::basic_sparse_set::push(It first, It last)']]] + ['propagate_5fon_5fcontainer_5fcopy_5fassignment_11',['propagate_on_container_copy_assignment',['../namespaceentt.html#ae934980252d1f2ce8f2473c8d74347df',1,'entt']]], + ['propagate_5fon_5fcontainer_5fmove_5fassignment_12',['propagate_on_container_move_assignment',['../namespaceentt.html#a46cd263b358a2d495d4f4ee27d4537d7',1,'entt']]], + ['propagate_5fon_5fcontainer_5fswap_13',['propagate_on_container_swap',['../namespaceentt.html#a0dd7ed3d3f11933cd542d8f4646cd695',1,'entt']]], + ['publish_14',['publish',['../classentt_1_1emitter.html#af8d32b1f07b24db8b1b1fbb20dda89c2',1,'entt::emitter']]], + ['push_15',['push',['../classentt_1_1basic__sparse__set.html#a8cf01b2a8d20329ec1c1d5d3b5708969',1,'entt::basic_sparse_set::push(const entity_type entt, const void *elem=nullptr)'],['../classentt_1_1basic__sparse__set.html#a43205b128298f90d1255cf4ce768297c',1,'entt::basic_sparse_set::push(It first, It last)']]] ]; diff --git a/search/functions_f.js b/search/functions_f.js index 5006f0624..ef5ee5581 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -1,29 +1,28 @@ var searchData= [ - ['raw_0',['raw',['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage::raw() noexcept']]], - ['rbegin_1',['rbegin',['../classentt_1_1dense__set.html#ac979c28743c3adbda7405b8603116631',1,'entt::dense_set::rbegin() const noexcept'],['../classentt_1_1dense__set.html#a38daeb37b2315869173227374e16ca0d',1,'entt::dense_set::rbegin() noexcept'],['../classentt_1_1basic__table.html#a914c93d238b7da25b682e9244597189b',1,'entt::basic_table::rbegin() const noexcept'],['../classentt_1_1basic__table.html#a5da3dcc1a985a823781fc6dca5aedf1e',1,'entt::basic_table::rbegin() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3c52657f3305d9076c8859df5e2792f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#adbfcd5c0d456b00a2265ad54bf7855aa',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__sparse__set.html#aba067d644dcb69d8d11f6d5dc48b9c9b',1,'entt::basic_sparse_set::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage::rbegin() noexcept'],['../classentt_1_1basic__storage__view.html#a97a7fddfa36bb8ed8d602e76d35466ce',1,'entt::basic_storage_view::rbegin()']]], - ['reach_2',['reach',['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a0c992b167732cf71844d4619491d80d1',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#af9fd55c5ddfb8c88000ff87b8d88a460',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f925d711a62f92eca32f875c88f17f8',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a014cfafc47bb929421ece1c5cc97836e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept']]], - ['rebind_3',['rebind',['../classentt_1_1meta__sequence__container.html#a712205221e74e2758a570e7eb8e12907',1,'entt::meta_sequence_container::rebind()'],['../classentt_1_1meta__associative__container.html#acf4c13a55767914e500ffb460c009306',1,'entt::meta_associative_container::rebind()']]], - ['refresh_4',['refresh',['../classentt_1_1basic__common__view.html#a4572fafa94a210f91cea5a97d5dda3b4',1,'entt::basic_common_view']]], - ['registry_5',['registry',['../classentt_1_1basic__handle.html#ae22e78cbaa51a4eb7070761ad4af4830',1,'entt::basic_handle::registry()'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a798580968dc076c501f84f939ef1badc',1,'entt::sigh_helper< Registry >::registry()'],['../classentt_1_1basic__sigh__mixin.html#a15bac16d552602c9d3b8069dc2c5421a',1,'entt::basic_sigh_mixin::registry() const noexcept'],['../classentt_1_1basic__sigh__mixin.html#a77dc805c82973744114f33417337bb97',1,'entt::basic_sigh_mixin::registry() noexcept'],['../classentt_1_1basic__reactive__mixin.html#a2dcb5310a91c138c64ef59865642f10f',1,'entt::basic_reactive_mixin::registry() const noexcept'],['../classentt_1_1basic__reactive__mixin.html#ada350d4506f51f1d7ef3e29493fcda61',1,'entt::basic_reactive_mixin::registry() noexcept']]], - ['rehash_6',['rehash',['../classentt_1_1dense__map.html#a7cea2e02e86eec9421ddaab64f15db6b',1,'entt::dense_map::rehash()'],['../classentt_1_1dense__set.html#ade485155ec5ec107a0c3582aa848e376',1,'entt::dense_set::rehash()']]], - ['rejected_7',['rejected',['../classentt_1_1process.html#a6c716b08baea91192512aeb14f26328b',1,'entt::process']]], - ['release_8',['release',['../classentt_1_1connection.html#ae564477ab623301169916c1992c970a8',1,'entt::connection::release()'],['../structentt_1_1scoped__connection.html#a7bd2be785ba586664d8e8d039dc73ead',1,'entt::scoped_connection::release()']]], - ['remove_9',['remove',['../classentt_1_1basic__handle.html#a927411244a87196f3db80d7514217011',1,'entt::basic_handle::remove()'],['../classentt_1_1basic__registry.html#a7eb97ddee1a5ee98a722329fe39417ce',1,'entt::basic_registry::remove(const entity_type entt)'],['../classentt_1_1basic__registry.html#a5f458b3df51b800632c350961947a2bb',1,'entt::basic_registry::remove(It first, It last)'],['../classentt_1_1basic__sparse__set.html#af02e5833d5edb2450303bd1c029213b8',1,'entt::basic_sparse_set::remove(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#ab2b4ee6c81e845f332c35c89acb8f436',1,'entt::basic_sparse_set::remove(It first, It last)']]], - ['remove_5fpointer_10',['remove_pointer',['../classentt_1_1meta__type.html#a409ff9848597c588b3efec5d75fc9a60',1,'entt::meta_type']]], - ['rend_11',['rend',['../classentt_1_1dense__set.html#a77c4ca141381ddc6c09fd1ef2b594509',1,'entt::dense_set::rend() const noexcept'],['../classentt_1_1dense__set.html#ae8c26808f90a31003009127bce24f346',1,'entt::dense_set::rend() noexcept'],['../classentt_1_1basic__table.html#a214d2963b9610d4b5dd6774cf6fa5d13',1,'entt::basic_table::rend() const noexcept'],['../classentt_1_1basic__table.html#a506f340a1cb2ea41a3aa23c37a99a051',1,'entt::basic_table::rend() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#abfbf1ce09751a74c56743688c7769f99',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa7d0eecd17174df1ae26f59939023c7e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__sparse__set.html#a408ae201025279196f63ef32cf58da9a',1,'entt::basic_sparse_set::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage::rend() noexcept'],['../classentt_1_1basic__storage__view.html#a369e34fa91dc47872f5c08672505fa93',1,'entt::basic_storage_view::rend()']]], - ['replace_12',['replace',['../classentt_1_1basic__handle.html#a16534840f1d298cbd6eef5fa813173a3',1,'entt::basic_handle::replace()'],['../classentt_1_1basic__registry.html#a1b4f1cccd495d17c550711fdc9606d4f',1,'entt::basic_registry::replace()']]], - ['reserve_13',['reserve',['../classentt_1_1dense__map.html#a47084f57549451518ef81a0f7cbdae0e',1,'entt::dense_map::reserve()'],['../classentt_1_1dense__set.html#a899d206bbac4c0fe88f16a4ce2215b4a',1,'entt::dense_set::reserve()'],['../classentt_1_1basic__table.html#aa96762c66bb8e2e046464b6af7b745c8',1,'entt::basic_table::reserve()'],['../classentt_1_1basic__sparse__set.html#a58d49df52ee3133a1347dc01131a4f1a',1,'entt::basic_sparse_set::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage::reserve()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a842bc739039a15323bbe223b3d1eadd5',1,'entt::basic_meta_sequence_container_traits::reserve()'],['../structentt_1_1basic__meta__associative__container__traits.html#a263fa80500498c321763405824267b5a',1,'entt::basic_meta_associative_container_traits::reserve()'],['../classentt_1_1meta__sequence__container.html#a071eb6d7e2cceba59b58a0884b281ca3',1,'entt::meta_sequence_container::reserve()'],['../classentt_1_1meta__associative__container.html#a53fc4476baf67e704987009774b9687b',1,'entt::meta_associative_container::reserve()']]], - ['reset_14',['reset',['../classentt_1_1basic__any.html#a0f267d3bbc148e7e240b902b1819c9a6',1,'entt::basic_any::reset()'],['../classentt_1_1basic__registry.html#a6f2548bae0c7a80e4adf8b8ad4e4cc11',1,'entt::basic_registry::reset()'],['../classentt_1_1locator.html#a51c0f72339094183a1779da8bf01ee22',1,'entt::locator::reset(const node_type &other={}) noexcept'],['../classentt_1_1locator.html#a319183a62597f0c5f58470e98eb2a2a3',1,'entt::locator::reset(Type *elem, Deleter deleter={})'],['../classentt_1_1meta__any.html#a92cb99988bdeb9453f2470b02c5249fb',1,'entt::meta_any::reset()'],['../classentt_1_1basic__poly.html#a43ab35169a0fdb31f7f5db5e5ad0e17d',1,'entt::basic_poly::reset()'],['../classentt_1_1resource.html#a883d62138c381c76896b516ddc5b5391',1,'entt::resource::reset()'],['../classentt_1_1resource.html#a80722fe49df8f2e2d4ede7437797500b',1,'entt::resource::reset(handle_type other)'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a10eeabec435f0b704fb5937c766b12db',1,'entt::delegate< Ret(Args...)>::reset()']]], - ['resize_15',['resize',['../classentt_1_1adjacency__matrix.html#ad45c4c6b938ed028d7c99b1d1a678b9e',1,'entt::adjacency_matrix::resize()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a8340365cc11eecb9f52f4740f1da5cd8',1,'entt::basic_meta_sequence_container_traits::resize()'],['../classentt_1_1meta__sequence__container.html#ab2635ff444fe73af564995b75571aba5',1,'entt::meta_sequence_container::resize()']]], - ['resolve_16',['resolve',['../namespaceentt.html#ad86fb3538f9ba64b4695cf45c020458e',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a9dc2ece8ba5dafc463abdceb1f55eaea',1,'entt::resolve() noexcept'],['../namespaceentt.html#a894939ee94a38b6843a8d29ab770f36a',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a1a1cf09707283197b9914fa8520e7592',1,'entt::resolve() noexcept'],['../namespaceentt.html#a669729b83f4e0e2433cbf2a881745e22',1,'entt::resolve(const meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#a4493a8ed8dc4bc71b11058973c0fd9aa',1,'entt::resolve(const id_type id) noexcept'],['../namespaceentt.html#a7072f59c8738e44792806ab65c693032',1,'entt::resolve(const meta_ctx &ctx, const type_info &info) noexcept'],['../namespaceentt.html#a28dcce4d98f6a27c4c61e814466900b2',1,'entt::resolve(const type_info &info) noexcept']]], - ['resource_17',['resource',['../classentt_1_1resource.html#ac4972d8dc6b7bda2b1568bfe2166a4b9',1,'entt::resource::resource() noexcept'],['../classentt_1_1resource.html#a936d0b259b7a6c280f87b64332bb50a5',1,'entt::resource::resource(handle_type res) noexcept'],['../classentt_1_1resource.html#a2dc2eaa16ff968418e62f882f672ec69',1,'entt::resource::resource(const resource &) noexcept=default'],['../classentt_1_1resource.html#afcea4e846c96c313bfcbab0935d5e8db',1,'entt::resource::resource(resource &&) noexcept=default'],['../classentt_1_1resource.html#a884bb0ae510b8811579b7f0b7120799e',1,'entt::resource::resource(const resource< Other > &other, element_type &res) noexcept'],['../classentt_1_1resource.html#a1650c75857ed7d9682ff43d1578ac73b',1,'entt::resource::resource(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#afb2ba4422ecf3564ef14a03fa77d65f8',1,'entt::resource::resource(resource< Other > &&other) noexcept']]], - ['resource_5fcache_18',['resource_cache',['../classentt_1_1resource__cache.html#a06ba856c4484f52a91a8ee140a223bd5',1,'entt::resource_cache::resource_cache()'],['../classentt_1_1resource__cache.html#a85024663deca781eb063b03254a3f825',1,'entt::resource_cache::resource_cache(const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a87b5fdd8fd001e8444d1b51de6fd9189',1,'entt::resource_cache::resource_cache(const loader_type &callable, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1resource__cache.html#ab35522f4f96e42e7ac246ce69abd2ee1',1,'entt::resource_cache::resource_cache(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a1a91e3e3d19167b6c65e826e5419e273',1,'entt::resource_cache::resource_cache(const resource_cache &other, const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a1132e7c77e407252254e164e72aad994',1,'entt::resource_cache::resource_cache(resource_cache &&) noexcept=default'],['../classentt_1_1resource__cache.html#a8419d3c2c6e142ca851e2a31d6813c63',1,'entt::resource_cache::resource_cache(resource_cache &&other, const allocator_type &allocator)']]], - ['ret_19',['ret',['../structentt_1_1meta__func.html#a63fd4cf3b926de060c847f7b60c2c28a',1,'entt::meta_func']]], - ['ro_20',['ro',['../classentt_1_1basic__flow.html#a6dc864b3c520bd35b1ac981994e9fed6',1,'entt::basic_flow::ro(const id_type res)'],['../classentt_1_1basic__flow.html#ae99ad5bb02e38f1aa5f9ffcda69ec64c',1,'entt::basic_flow::ro(It first, It last)']]], - ['ro_5fcount_21',['ro_count',['../structentt_1_1basic__organizer_1_1vertex.html#a054127fbaefa93d8739fe8824b60b13c',1,'entt::basic_organizer::vertex']]], - ['ro_5fdependency_22',['ro_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a04140fb94ba75c56fbbbf7db86ee4476',1,'entt::basic_organizer::vertex']]], - ['rw_23',['rw',['../classentt_1_1basic__flow.html#a44a03612c6cc4437314c14bdda0fa5dd',1,'entt::basic_flow::rw(const id_type res)'],['../classentt_1_1basic__flow.html#a48ba1ecbcfbbd8c8eb97ed2a426fedfe',1,'entt::basic_flow::rw(It first, It last)']]], - ['rw_5fcount_24',['rw_count',['../structentt_1_1basic__organizer_1_1vertex.html#ae2b4b3f69e4fa2012e53678165af5966',1,'entt::basic_organizer::vertex']]], - ['rw_5fdependency_25',['rw_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a8be845a0c46219101624ee8b115bf9ed',1,'entt::basic_organizer::vertex']]] + ['raw_0',['raw',['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage::raw() noexcept'],['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage< Entity, Entity, Allocator >::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage< Entity, Entity, Allocator >::raw() noexcept'],['../classentt_1_1basic__storage.html#a2f4c9502dc518929c71b55f38906d382',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::raw() const noexcept'],['../classentt_1_1basic__storage.html#ac5408c2657df1787649494bff983db37',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::raw() noexcept']]], + ['rbegin_1',['rbegin',['../classentt_1_1dense__set.html#ac979c28743c3adbda7405b8603116631',1,'entt::dense_set::rbegin() const noexcept'],['../classentt_1_1dense__set.html#a38daeb37b2315869173227374e16ca0d',1,'entt::dense_set::rbegin() noexcept'],['../classentt_1_1basic__table.html#a914c93d238b7da25b682e9244597189b',1,'entt::basic_table::rbegin() const noexcept'],['../classentt_1_1basic__table.html#a5da3dcc1a985a823781fc6dca5aedf1e',1,'entt::basic_table::rbegin() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a3c52657f3305d9076c8859df5e2792f2',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#adbfcd5c0d456b00a2265ad54bf7855aa',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rbegin()'],['../classentt_1_1basic__sparse__set.html#aba067d644dcb69d8d11f6d5dc48b9c9b',1,'entt::basic_sparse_set::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage::rbegin() noexcept'],['../classentt_1_1basic__storage__view.html#a97a7fddfa36bb8ed8d602e76d35466ce',1,'entt::basic_storage_view::rbegin()'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage< Entity, Entity, Allocator >::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage< Entity, Entity, Allocator >::rbegin() noexcept'],['../classentt_1_1basic__storage.html#a24ef007aa48f17ac553a93caae35b748',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rbegin() const noexcept'],['../classentt_1_1basic__storage.html#a6afc921b176288925f31cc7c72878cf4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rbegin() noexcept']]], + ['reach_2',['reach',['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a5bf632552b2eea6c190e87afc92fdbaa',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad7e7662c420576476cbb0be50d1294be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() const noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a7f925d711a62f92eca32f875c88f17f8',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a014cfafc47bb929421ece1c5cc97836e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept'],['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage< Entity, Entity, Allocator >::reach() const noexcept'],['../classentt_1_1basic__storage.html#abaf0ee2aa0eedc73f2783f25a0d0ff73',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() noexcept'],['../classentt_1_1basic__storage.html#ace65bb1e5bd8c99b5ed37c810667872e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reach() const noexcept']]], + ['refresh_3',['refresh',['../classentt_1_1basic__common__view.html#a6455db81193b2e9ce830e2ed95ae0795',1,'entt::basic_common_view']]], + ['registry_4',['registry',['../classentt_1_1basic__handle.html#ae22e78cbaa51a4eb7070761ad4af4830',1,'entt::basic_handle::registry()'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a798580968dc076c501f84f939ef1badc',1,'entt::sigh_helper< Registry >::registry()'],['../classentt_1_1basic__sigh__mixin.html#a15bac16d552602c9d3b8069dc2c5421a',1,'entt::basic_sigh_mixin::registry() const noexcept'],['../classentt_1_1basic__sigh__mixin.html#a77dc805c82973744114f33417337bb97',1,'entt::basic_sigh_mixin::registry() noexcept'],['../classentt_1_1basic__reactive__mixin.html#a2dcb5310a91c138c64ef59865642f10f',1,'entt::basic_reactive_mixin::registry() const noexcept'],['../classentt_1_1basic__reactive__mixin.html#ada350d4506f51f1d7ef3e29493fcda61',1,'entt::basic_reactive_mixin::registry() noexcept']]], + ['rehash_5',['rehash',['../classentt_1_1dense__map.html#a7cea2e02e86eec9421ddaab64f15db6b',1,'entt::dense_map::rehash()'],['../classentt_1_1dense__set.html#ade485155ec5ec107a0c3582aa848e376',1,'entt::dense_set::rehash()']]], + ['rejected_6',['rejected',['../classentt_1_1process.html#a6c716b08baea91192512aeb14f26328b',1,'entt::process']]], + ['release_7',['release',['../classentt_1_1connection.html#ae564477ab623301169916c1992c970a8',1,'entt::connection::release()'],['../structentt_1_1scoped__connection.html#a7bd2be785ba586664d8e8d039dc73ead',1,'entt::scoped_connection::release()']]], + ['remove_8',['remove',['../classentt_1_1basic__handle.html#a927411244a87196f3db80d7514217011',1,'entt::basic_handle::remove()'],['../classentt_1_1basic__registry.html#a7eb97ddee1a5ee98a722329fe39417ce',1,'entt::basic_registry::remove(const entity_type entt)'],['../classentt_1_1basic__registry.html#a5f458b3df51b800632c350961947a2bb',1,'entt::basic_registry::remove(It first, It last)'],['../classentt_1_1basic__sparse__set.html#af02e5833d5edb2450303bd1c029213b8',1,'entt::basic_sparse_set::remove(const entity_type entt)'],['../classentt_1_1basic__sparse__set.html#ab2b4ee6c81e845f332c35c89acb8f436',1,'entt::basic_sparse_set::remove(It first, It last)']]], + ['remove_5fpointer_9',['remove_pointer',['../classentt_1_1meta__type.html#a409ff9848597c588b3efec5d75fc9a60',1,'entt::meta_type']]], + ['rend_10',['rend',['../classentt_1_1dense__set.html#a77c4ca141381ddc6c09fd1ef2b594509',1,'entt::dense_set::rend() const noexcept'],['../classentt_1_1dense__set.html#ae8c26808f90a31003009127bce24f346',1,'entt::dense_set::rend() noexcept'],['../classentt_1_1basic__table.html#a214d2963b9610d4b5dd6774cf6fa5d13',1,'entt::basic_table::rend() const noexcept'],['../classentt_1_1basic__table.html#a506f340a1cb2ea41a3aa23c37a99a051',1,'entt::basic_table::rend() noexcept'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#abfbf1ce09751a74c56743688c7769f99',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#aa7d0eecd17174df1ae26f59939023c7e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::rend()'],['../classentt_1_1basic__sparse__set.html#a408ae201025279196f63ef32cf58da9a',1,'entt::basic_sparse_set::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage::rend() noexcept'],['../classentt_1_1basic__storage__view.html#a369e34fa91dc47872f5c08672505fa93',1,'entt::basic_storage_view::rend()'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage< Entity, Entity, Allocator >::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage< Entity, Entity, Allocator >::rend() noexcept'],['../classentt_1_1basic__storage.html#a8cdc33df100e1ffed0daff4b590a7537',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rend() const noexcept'],['../classentt_1_1basic__storage.html#a83ea309d2fb6b6fdebea70fa2ca1e0d7',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::rend() noexcept']]], + ['replace_11',['replace',['../classentt_1_1basic__handle.html#a16534840f1d298cbd6eef5fa813173a3',1,'entt::basic_handle::replace()'],['../classentt_1_1basic__registry.html#a1b4f1cccd495d17c550711fdc9606d4f',1,'entt::basic_registry::replace()']]], + ['reserve_12',['reserve',['../classentt_1_1dense__map.html#a47084f57549451518ef81a0f7cbdae0e',1,'entt::dense_map::reserve()'],['../classentt_1_1dense__set.html#a899d206bbac4c0fe88f16a4ce2215b4a',1,'entt::dense_set::reserve()'],['../classentt_1_1basic__table.html#aa96762c66bb8e2e046464b6af7b745c8',1,'entt::basic_table::reserve()'],['../classentt_1_1basic__sparse__set.html#a58d49df52ee3133a1347dc01131a4f1a',1,'entt::basic_sparse_set::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage::reserve()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a842bc739039a15323bbe223b3d1eadd5',1,'entt::basic_meta_sequence_container_traits::reserve()'],['../structentt_1_1basic__meta__associative__container__traits.html#a263fa80500498c321763405824267b5a',1,'entt::basic_meta_associative_container_traits::reserve()'],['../classentt_1_1meta__sequence__container.html#a071eb6d7e2cceba59b58a0884b281ca3',1,'entt::meta_sequence_container::reserve()'],['../classentt_1_1meta__associative__container.html#a53fc4476baf67e704987009774b9687b',1,'entt::meta_associative_container::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage< Entity, Entity, Allocator >::reserve()'],['../classentt_1_1basic__storage.html#ad51850043e05582865e5c93fa06421be',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reserve()']]], + ['reset_13',['reset',['../classentt_1_1basic__any.html#a0f267d3bbc148e7e240b902b1819c9a6',1,'entt::basic_any::reset()'],['../classentt_1_1basic__reactive__mixin.html#a13ecbd5a8b7b87e5bbead511c161fe66',1,'entt::basic_reactive_mixin::reset()'],['../classentt_1_1basic__registry.html#a6f2548bae0c7a80e4adf8b8ad4e4cc11',1,'entt::basic_registry::reset()'],['../classentt_1_1locator.html#a51c0f72339094183a1779da8bf01ee22',1,'entt::locator::reset(const node_type &other={}) noexcept'],['../classentt_1_1locator.html#a319183a62597f0c5f58470e98eb2a2a3',1,'entt::locator::reset(Type *elem, Deleter deleter={})'],['../classentt_1_1meta__any.html#a92cb99988bdeb9453f2470b02c5249fb',1,'entt::meta_any::reset()'],['../classentt_1_1basic__poly.html#a43ab35169a0fdb31f7f5db5e5ad0e17d',1,'entt::basic_poly::reset()'],['../classentt_1_1resource.html#a883d62138c381c76896b516ddc5b5391',1,'entt::resource::reset()'],['../classentt_1_1resource.html#a80722fe49df8f2e2d4ede7437797500b',1,'entt::resource::reset(handle_type other)']]], + ['resize_14',['resize',['../classentt_1_1adjacency__matrix.html#ad45c4c6b938ed028d7c99b1d1a678b9e',1,'entt::adjacency_matrix::resize()'],['../structentt_1_1basic__meta__sequence__container__traits.html#a8340365cc11eecb9f52f4740f1da5cd8',1,'entt::basic_meta_sequence_container_traits::resize()'],['../classentt_1_1meta__sequence__container.html#ab2635ff444fe73af564995b75571aba5',1,'entt::meta_sequence_container::resize()']]], + ['resolve_15',['resolve',['../namespaceentt.html#ad86fb3538f9ba64b4695cf45c020458e',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a9dc2ece8ba5dafc463abdceb1f55eaea',1,'entt::resolve() noexcept'],['../namespaceentt.html#a894939ee94a38b6843a8d29ab770f36a',1,'entt::resolve(const meta_ctx &ctx) noexcept'],['../namespaceentt.html#a1a1cf09707283197b9914fa8520e7592',1,'entt::resolve() noexcept'],['../namespaceentt.html#a669729b83f4e0e2433cbf2a881745e22',1,'entt::resolve(const meta_ctx &ctx, const id_type id) noexcept'],['../namespaceentt.html#a4493a8ed8dc4bc71b11058973c0fd9aa',1,'entt::resolve(const id_type id) noexcept'],['../namespaceentt.html#a7072f59c8738e44792806ab65c693032',1,'entt::resolve(const meta_ctx &ctx, const type_info &info) noexcept'],['../namespaceentt.html#a28dcce4d98f6a27c4c61e814466900b2',1,'entt::resolve(const type_info &info) noexcept']]], + ['resource_16',['resource',['../classentt_1_1resource.html#ac4972d8dc6b7bda2b1568bfe2166a4b9',1,'entt::resource::resource() noexcept'],['../classentt_1_1resource.html#a936d0b259b7a6c280f87b64332bb50a5',1,'entt::resource::resource(handle_type res) noexcept'],['../classentt_1_1resource.html#a2dc2eaa16ff968418e62f882f672ec69',1,'entt::resource::resource(const resource &) noexcept=default'],['../classentt_1_1resource.html#afcea4e846c96c313bfcbab0935d5e8db',1,'entt::resource::resource(resource &&) noexcept=default'],['../classentt_1_1resource.html#a884bb0ae510b8811579b7f0b7120799e',1,'entt::resource::resource(const resource< Other > &other, element_type &res) noexcept'],['../classentt_1_1resource.html#a1650c75857ed7d9682ff43d1578ac73b',1,'entt::resource::resource(const resource< Other > &other) noexcept'],['../classentt_1_1resource.html#afb2ba4422ecf3564ef14a03fa77d65f8',1,'entt::resource::resource(resource< Other > &&other) noexcept']]], + ['resource_5fcache_17',['resource_cache',['../classentt_1_1resource__cache.html#a06ba856c4484f52a91a8ee140a223bd5',1,'entt::resource_cache::resource_cache()'],['../classentt_1_1resource__cache.html#a85024663deca781eb063b03254a3f825',1,'entt::resource_cache::resource_cache(const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a87b5fdd8fd001e8444d1b51de6fd9189',1,'entt::resource_cache::resource_cache(const loader_type &callable, const allocator_type &allocator=allocator_type{})'],['../classentt_1_1resource__cache.html#ab35522f4f96e42e7ac246ce69abd2ee1',1,'entt::resource_cache::resource_cache(const resource_cache &)=default'],['../classentt_1_1resource__cache.html#a1a91e3e3d19167b6c65e826e5419e273',1,'entt::resource_cache::resource_cache(const resource_cache &other, const allocator_type &allocator)'],['../classentt_1_1resource__cache.html#a1132e7c77e407252254e164e72aad994',1,'entt::resource_cache::resource_cache(resource_cache &&) noexcept=default'],['../classentt_1_1resource__cache.html#a8419d3c2c6e142ca851e2a31d6813c63',1,'entt::resource_cache::resource_cache(resource_cache &&other, const allocator_type &allocator)']]], + ['ret_18',['ret',['../structentt_1_1meta__func.html#a63fd4cf3b926de060c847f7b60c2c28a',1,'entt::meta_func']]], + ['ro_19',['ro',['../classentt_1_1basic__flow.html#a6dc864b3c520bd35b1ac981994e9fed6',1,'entt::basic_flow::ro(const id_type res)'],['../classentt_1_1basic__flow.html#ae99ad5bb02e38f1aa5f9ffcda69ec64c',1,'entt::basic_flow::ro(It first, It last)']]], + ['ro_5fcount_20',['ro_count',['../structentt_1_1basic__organizer_1_1vertex.html#a054127fbaefa93d8739fe8824b60b13c',1,'entt::basic_organizer::vertex']]], + ['ro_5fdependency_21',['ro_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a04140fb94ba75c56fbbbf7db86ee4476',1,'entt::basic_organizer::vertex']]], + ['rw_22',['rw',['../classentt_1_1basic__flow.html#a44a03612c6cc4437314c14bdda0fa5dd',1,'entt::basic_flow::rw(const id_type res)'],['../classentt_1_1basic__flow.html#a48ba1ecbcfbbd8c8eb97ed2a426fedfe',1,'entt::basic_flow::rw(It first, It last)']]], + ['rw_5fcount_23',['rw_count',['../structentt_1_1basic__organizer_1_1vertex.html#ae2b4b3f69e4fa2012e53678165af5966',1,'entt::basic_organizer::vertex']]], + ['rw_5fdependency_24',['rw_dependency',['../structentt_1_1basic__organizer_1_1vertex.html#a8be845a0c46219101624ee8b115bf9ed',1,'entt::basic_organizer::vertex']]] ]; diff --git a/search/search.css b/search/search.css index d7b0f90b7..19f76f9d5 100644 --- a/search/search.css +++ b/search/search.css @@ -25,9 +25,9 @@ dark-mode-toggle { #MSearchBox { display: inline-block; white-space : nowrap; - background: white; + background: var(--search-background-color); border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; + box-shadow: var(--search-box-shadow); z-index: 102; } @@ -42,7 +42,7 @@ dark-mode-toggle { vertical-align: middle; width: 20px; height: 19px; - background-image: url('mag_sel.svg'); + background-image: var(--search-magnification-select-image); margin: 0 0 0 0.3em; padding: 0; } @@ -52,7 +52,7 @@ dark-mode-toggle { vertical-align: middle; width: 10px; height: 19px; - background-image: url('mag.svg'); + background-image: var(--search-magnification-image); margin: 0 0 0 0.5em; padding: 0; } @@ -67,9 +67,9 @@ dark-mode-toggle { padding: 0; line-height: 1em; border:none; - color: #909090; + color: var(--search-foreground-color); outline: none; - font-family: Arial,Verdana,sans-serif; + font-family: var(--font-family-search); -webkit-border-radius: 0px; border-radius: 0px; background: none; @@ -106,7 +106,7 @@ dark-mode-toggle { } .MSearchBoxActive #MSearchField { - color: black; + color: var(--search-active-color); } @@ -117,8 +117,8 @@ dark-mode-toggle { display: none; position: absolute; left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); z-index: 10001; padding-top: 4px; padding-bottom: 4px; @@ -131,7 +131,7 @@ dark-mode-toggle { } .SelectItem { - font: 8pt Arial,Verdana,sans-serif; + font: 8pt var(--font-family-search); padding-left: 2px; padding-right: 12px; border: 0px; @@ -139,7 +139,7 @@ dark-mode-toggle { span.SelectionMark { margin-right: 4px; - font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-family: var(--font-family-monospace); outline-style: none; text-decoration: none; } @@ -147,7 +147,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: black; + color: var(--search-filter-foreground-color); text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -155,14 +155,14 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: black; + color: var(--search-filter-foreground-color); outline-style: none; text-decoration: none; } a.SelectItem:hover { - color: white; - background-color: #3D578C; + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); outline-style: none; text-decoration: none; cursor: pointer; @@ -180,8 +180,8 @@ iframe#MSearchResults { display: none; position: absolute; left: 0; top: 0; - border: 1px solid black; - background-color: #EEF1F7; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); z-index:10000; width: 300px; height: 400px; @@ -207,7 +207,7 @@ iframe#MSearchResults { div.SRPage { margin: 5px 2px; - background-color: #EEF1F7; + background-color: var(--search-results-background-color); } .SRChildren { @@ -220,16 +220,16 @@ div.SRPage { .SRSymbol { font-weight: bold; - color: #425E97; - font-family: Arial,Verdana,sans-serif; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); text-decoration: none; outline: none; } a.SRScope { display: block; - color: #425E97; - font-family: Arial,Verdana,sans-serif; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); font-size: 8pt; text-decoration: none; outline: none; @@ -242,14 +242,14 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; - font-family: Arial,Verdana,sans-serif; + font-family: var(--font-family-search); } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; - font-family: Arial,Verdana,sans-serif; + font-family: var(--font-family-search); } .SRResult { @@ -266,7 +266,7 @@ div.searchresults { .pages b { color: white; padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); + background-image: var(--nav-gradient-active-image-parent); background-repeat: repeat-x; text-shadow: 0 1px 1px #000000; } diff --git a/search/searchdata.js b/search/searchdata.js index 33ec54ecc..812fa4881 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -7,7 +7,7 @@ var indexSectionsWithContent = 4: "acefgiklmnopstuv", 5: "abcdefghiklmnoprstuv", 6: "ade", - 7: "ciors", + 7: "cdeirsu", 8: "abcefgilmpqrsu" }; diff --git a/search/typedefs_0.js b/search/typedefs_0.js index 8610b84bf..db0a3e3e1 100644 --- a/search/typedefs_0.js +++ b/search/typedefs_0.js @@ -1,6 +1,6 @@ var searchData= [ - ['allocator_5ftype_0',['allocator_type',['../classentt_1_1dense__map.html#adc7feba2153b3764cc7789f31b926d78',1,'entt::dense_map::allocator_type'],['../classentt_1_1dense__set.html#a8c83fbdb7d106f60f98d3ae3f395abc2',1,'entt::dense_set::allocator_type'],['../structentt_1_1allocation__deleter.html#abce9d9de78a31b79e98745f4e029c863',1,'entt::allocation_deleter::allocator_type'],['../classentt_1_1basic__sigh__mixin.html#a3bfbe6206629d98c0e15d15798865c84',1,'entt::basic_sigh_mixin::allocator_type'],['../classentt_1_1basic__reactive__mixin.html#a838cdfaecf9e58c0786bea956453a05c',1,'entt::basic_reactive_mixin::allocator_type'],['../classentt_1_1basic__observer.html#afdf0a672324b06f59cbf9621e0a1ca82',1,'entt::basic_observer::allocator_type'],['../classentt_1_1basic__registry.html#a9ce6e0e7aa3c23f3819290c41e78c023',1,'entt::basic_registry::allocator_type'],['../classentt_1_1basic__runtime__view.html#ab1a56d98d4a7c875fe7a6fa8d12dec1f',1,'entt::basic_runtime_view::allocator_type'],['../classentt_1_1basic__sparse__set.html#af6faaccfb0c465afb6173b0fb8a37069',1,'entt::basic_sparse_set::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage::allocator_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a78505c577bcd00f839098b46f7fb6b06',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::allocator_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab6f44783390bee502fd79fbb85f9b646',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1adjacency__matrix.html#a740021db9b7bad492ebe3d074769d8b8',1,'entt::adjacency_matrix::allocator_type'],['../classentt_1_1basic__flow.html#a37b19d1bb36d762cea9163ad7bb8bfc2',1,'entt::basic_flow::allocator_type'],['../classentt_1_1basic__scheduler.html#a232bb21739cbd8084ec723bcc17d44e9',1,'entt::basic_scheduler::allocator_type'],['../classentt_1_1resource__cache.html#ab1e2dc3aeffbbbce6d48e0c46d908cfd',1,'entt::resource_cache::allocator_type'],['../classentt_1_1basic__dispatcher.html#a25129aec45c14bb934e9e9db3ed28015',1,'entt::basic_dispatcher::allocator_type'],['../classentt_1_1emitter.html#a0d22ffe04a17ac2cdd0a216dd17e3b5d',1,'entt::emitter::allocator_type'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a21c7a7c56b0975495827e8b4c16103ba',1,'entt::sigh< Ret(Args...), Allocator >::allocator_type']]], + ['allocator_5ftype_0',['allocator_type',['../classentt_1_1dense__map.html#adc7feba2153b3764cc7789f31b926d78',1,'entt::dense_map::allocator_type'],['../classentt_1_1dense__set.html#a8c83fbdb7d106f60f98d3ae3f395abc2',1,'entt::dense_set::allocator_type'],['../structentt_1_1allocation__deleter.html#abce9d9de78a31b79e98745f4e029c863',1,'entt::allocation_deleter::allocator_type'],['../classentt_1_1basic__sigh__mixin.html#a3bfbe6206629d98c0e15d15798865c84',1,'entt::basic_sigh_mixin::allocator_type'],['../classentt_1_1basic__reactive__mixin.html#a838cdfaecf9e58c0786bea956453a05c',1,'entt::basic_reactive_mixin::allocator_type'],['../classentt_1_1basic__registry.html#a9ce6e0e7aa3c23f3819290c41e78c023',1,'entt::basic_registry::allocator_type'],['../classentt_1_1basic__runtime__view.html#ab1a56d98d4a7c875fe7a6fa8d12dec1f',1,'entt::basic_runtime_view::allocator_type'],['../classentt_1_1basic__sparse__set.html#af6faaccfb0c465afb6173b0fb8a37069',1,'entt::basic_sparse_set::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage::allocator_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae00607f1ec02d981d3755920008f4b08',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::allocator_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab6f44783390bee502fd79fbb85f9b646',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1adjacency__matrix.html#a740021db9b7bad492ebe3d074769d8b8',1,'entt::adjacency_matrix::allocator_type'],['../classentt_1_1basic__flow.html#a37b19d1bb36d762cea9163ad7bb8bfc2',1,'entt::basic_flow::allocator_type'],['../classentt_1_1basic__scheduler.html#a232bb21739cbd8084ec723bcc17d44e9',1,'entt::basic_scheduler::allocator_type'],['../classentt_1_1resource__cache.html#ab1e2dc3aeffbbbce6d48e0c46d908cfd',1,'entt::resource_cache::allocator_type'],['../classentt_1_1basic__dispatcher.html#a25129aec45c14bb934e9e9db3ed28015',1,'entt::basic_dispatcher::allocator_type'],['../classentt_1_1emitter.html#a0d22ffe04a17ac2cdd0a216dd17e3b5d',1,'entt::emitter::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage< Entity, Entity, Allocator >::allocator_type'],['../classentt_1_1basic__storage.html#afa672dd3b672b653d7b85603b6579cbe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::allocator_type']]], ['any_1',['any',['../namespaceentt.html#a74619fe0ddf5ff5ea9cf98812a3d70ce',1,'entt']]], ['args_5ftype_2',['args_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a9d0bdf951c08413401de8a4cb8f00541',1,'entt::meta_template_traits< Clazz< Args... > >::args_type'],['../structentt_1_1meta__function__descriptor__traits.html#a6dbea410eac186bc399b0542448209ff',1,'entt::meta_function_descriptor_traits::args_type']]] ]; diff --git a/search/typedefs_1.js b/search/typedefs_1.js index 99cedae7e..cba55d29d 100644 --- a/search/typedefs_1.js +++ b/search/typedefs_1.js @@ -1,5 +1,5 @@ var searchData= [ - ['base_5ftype_0',['base_type',['../structentt_1_1entt__traits.html#a8012c0ec9d8d57ef5622a5619f03c342',1,'entt::entt_traits::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage::base_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aee8f889b027657243c03e1fccba85c82',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::base_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abd80d68052978c2814bd14c9e97e6fa6',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type']]], + ['base_5ftype_0',['base_type',['../structentt_1_1entt__traits.html#a8012c0ec9d8d57ef5622a5619f03c342',1,'entt::entt_traits::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage::base_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a3a5d39878419cd2c516bdd105b608504',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::base_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abd80d68052978c2814bd14c9e97e6fa6',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage< Entity, Entity, Allocator >::base_type'],['../classentt_1_1basic__storage.html#a828dbbb03ff1e390dfdac396a0abc59f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::base_type']]], ['basic_5fiterator_1',['basic_iterator',['../classentt_1_1basic__sparse__set.html#ac56bb654b47a648d64a754d85c70b40a',1,'entt::basic_sparse_set']]] ]; diff --git a/search/typedefs_10.js b/search/typedefs_10.js index 005c13c3e..f8b1259a3 100644 --- a/search/typedefs_10.js +++ b/search/typedefs_10.js @@ -4,13 +4,12 @@ var searchData= ['second_5ftype_1',['second_type',['../classentt_1_1compressed__pair.html#aeadab3815d52ed579a96cde92f15eeb6',1,'entt::compressed_pair']]], ['sentinel_2',['sentinel',['../structentt_1_1iterable__adaptor.html#a86150bc99361dabcbb7f574d84691e42',1,'entt::iterable_adaptor']]], ['sigh_5fmixin_3',['sigh_mixin',['../namespaceentt.html#ae235426965a236ddde9fa92979f73d5d',1,'entt']]], - ['sink_5ftype_4',['sink_type',['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#a368bdb14996f2e4497990f400d2aab35',1,'entt::sigh< Ret(Args...), Allocator >']]], - ['size_5ftype_5',['size_type',['../classentt_1_1dense__map.html#a38ef651a1992486e3d2151e7829777f1',1,'entt::dense_map::size_type'],['../classentt_1_1dense__set.html#a3355912feda8db49d87b75247f824ce0',1,'entt::dense_set::size_type'],['../classentt_1_1basic__table.html#a0ed34cf727b8936c5f01470ac8f8dca3',1,'entt::basic_table::size_type'],['../classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015',1,'entt::basic_hashed_string::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a9097b3db0054d341d6dbb31a8531b6f4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a4e34173909e85aa6ce57d1e21359ca60',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__handle.html#a67737d2e73b110e61cf881671fc6aca5',1,'entt::basic_handle::size_type'],['../classentt_1_1basic__observer.html#ac9562e2ac15362056e582fe515126df2',1,'entt::basic_observer::size_type'],['../classentt_1_1basic__organizer.html#af6daba0d6d0fd3e253ae6969a07a1e48',1,'entt::basic_organizer::size_type'],['../classentt_1_1basic__registry.html#abfa63598b862f2cb713db6f9779656c7',1,'entt::basic_registry::size_type'],['../classentt_1_1basic__runtime__view.html#af1b166605a31e752ec85b4a5ddf29e64',1,'entt::basic_runtime_view::size_type'],['../classentt_1_1basic__sparse__set.html#a2ec9530d8aa9ac94d421b27eb6998edb',1,'entt::basic_sparse_set::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage::size_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a3f67a2405b5a315b397d90000577651f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::size_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a08f4727790342ff0bdd5d7e4097b4926',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__common__view.html#aa9ae1627c27d445f21b8ddf3db3fe78f',1,'entt::basic_common_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afc8e7c18025093c344df42af5aff77aa',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type'],['../classentt_1_1basic__storage__view.html#aa0dae829f9535d9c7d256d6cfa8efe6c',1,'entt::basic_storage_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae8943f475dd11109d4c2470e6dbffdb4',1,'entt::basic_view< get_t< Get >, exclude_t<> >::size_type'],['../classentt_1_1adjacency__matrix.html#a72507bd210570d5712a5c40b0d345b6c',1,'entt::adjacency_matrix::size_type'],['../classentt_1_1basic__flow.html#a42c0ae982887ab754f6119467ecbd543',1,'entt::basic_flow::size_type'],['../structentt_1_1basic__meta__sequence__container__traits.html#a0405a3e8a5f7ac240afefc1a8da7428a',1,'entt::basic_meta_sequence_container_traits::size_type'],['../structentt_1_1basic__meta__associative__container__traits.html#ad307302808908d988ec7f8d6f7988e29',1,'entt::basic_meta_associative_container_traits::size_type'],['../classentt_1_1meta__sequence__container.html#aa24e9df149bccfada6257266e5d829b1',1,'entt::meta_sequence_container::size_type'],['../classentt_1_1meta__associative__container.html#a9ef078a3364ff3d53cec2bda15f4782f',1,'entt::meta_associative_container::size_type'],['../structentt_1_1meta__data.html#a312216483707bb667c8bf833eee0dff9',1,'entt::meta_data::size_type'],['../structentt_1_1meta__func.html#a422ec572c7c56d3cb46d09704be64f65',1,'entt::meta_func::size_type'],['../classentt_1_1meta__type.html#a7362687fc89444507cded22f57be3ff0',1,'entt::meta_type::size_type'],['../classentt_1_1basic__scheduler.html#a65ce482b6daa9eb3117075b7d4eaecc7',1,'entt::basic_scheduler::size_type'],['../classentt_1_1resource__cache.html#af96dd3b16bdd0f1151b75786bdc0a2cb',1,'entt::resource_cache::size_type'],['../classentt_1_1basic__dispatcher.html#a5be4fb80f4bb0055ffaf3b573a4681a6',1,'entt::basic_dispatcher::size_type'],['../classentt_1_1emitter.html#aa72c6b30d4d14c1b954f7ebed3a4f123',1,'entt::emitter::size_type'],['../classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Allocator_01_4.html#ac4da86f239ecc0eddc6c5d99350fbe91',1,'entt::sigh< Ret(Args...), Allocator >::size_type']]], - ['snapshot_6',['snapshot',['../namespaceentt.html#ae81f1e05f8be1263f14284164387c180',1,'entt']]], - ['snapshot_5floader_7',['snapshot_loader',['../namespaceentt.html#affcc892243a02aafd27f353bd810fca6',1,'entt']]], - ['sparse_5fset_8',['sparse_set',['../namespaceentt.html#af720baaca44bb4f3e4d7297777e53a2f',1,'entt']]], - ['storage_9',['storage',['../namespaceentt.html#aff8fd99fc1ff2432dcb0f6b017a9c60e',1,'entt']]], - ['storage_5ffor_5ft_10',['storage_for_t',['../namespaceentt.html#ab7e07285e81bdf526b09a38a9618eb13',1,'entt']]], - ['storage_5ffor_5ftype_11',['storage_for_type',['../classentt_1_1basic__registry.html#a99e000856991d365d5a8a9e619b5fd03',1,'entt::basic_registry']]], - ['storage_5ftype_5ft_12',['storage_type_t',['../namespaceentt.html#a12841fb02f9eaa12097dbb36251b84dd',1,'entt']]] + ['size_5ftype_4',['size_type',['../classentt_1_1dense__map.html#a38ef651a1992486e3d2151e7829777f1',1,'entt::dense_map::size_type'],['../classentt_1_1dense__set.html#a3355912feda8db49d87b75247f824ce0',1,'entt::dense_set::size_type'],['../classentt_1_1basic__table.html#a0ed34cf727b8936c5f01470ac8f8dca3',1,'entt::basic_table::size_type'],['../classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015',1,'entt::basic_hashed_string::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a9097b3db0054d341d6dbb31a8531b6f4',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a4e34173909e85aa6ce57d1e21359ca60',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::size_type'],['../classentt_1_1basic__handle.html#a67737d2e73b110e61cf881671fc6aca5',1,'entt::basic_handle::size_type'],['../classentt_1_1basic__organizer.html#af6daba0d6d0fd3e253ae6969a07a1e48',1,'entt::basic_organizer::size_type'],['../classentt_1_1basic__registry.html#abfa63598b862f2cb713db6f9779656c7',1,'entt::basic_registry::size_type'],['../classentt_1_1basic__runtime__view.html#af1b166605a31e752ec85b4a5ddf29e64',1,'entt::basic_runtime_view::size_type'],['../classentt_1_1basic__sparse__set.html#a2ec9530d8aa9ac94d421b27eb6998edb',1,'entt::basic_sparse_set::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage::size_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#abb0d8286f1ca301d8a34142e3ca13675',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::size_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a08f4727790342ff0bdd5d7e4097b4926',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__common__view.html#af8a47cbe23041f655e46986cd82f7e39',1,'entt::basic_common_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#afc8e7c18025093c344df42af5aff77aa',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::size_type'],['../classentt_1_1basic__storage__view.html#aa0dae829f9535d9c7d256d6cfa8efe6c',1,'entt::basic_storage_view::size_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#ae8943f475dd11109d4c2470e6dbffdb4',1,'entt::basic_view< get_t< Get >, exclude_t<> >::size_type'],['../classentt_1_1adjacency__matrix.html#a72507bd210570d5712a5c40b0d345b6c',1,'entt::adjacency_matrix::size_type'],['../classentt_1_1basic__flow.html#a42c0ae982887ab754f6119467ecbd543',1,'entt::basic_flow::size_type'],['../structentt_1_1basic__meta__sequence__container__traits.html#a0405a3e8a5f7ac240afefc1a8da7428a',1,'entt::basic_meta_sequence_container_traits::size_type'],['../structentt_1_1basic__meta__associative__container__traits.html#ad307302808908d988ec7f8d6f7988e29',1,'entt::basic_meta_associative_container_traits::size_type'],['../classentt_1_1meta__sequence__container.html#aa24e9df149bccfada6257266e5d829b1',1,'entt::meta_sequence_container::size_type'],['../classentt_1_1meta__associative__container.html#a9ef078a3364ff3d53cec2bda15f4782f',1,'entt::meta_associative_container::size_type'],['../structentt_1_1meta__data.html#a312216483707bb667c8bf833eee0dff9',1,'entt::meta_data::size_type'],['../structentt_1_1meta__func.html#a422ec572c7c56d3cb46d09704be64f65',1,'entt::meta_func::size_type'],['../classentt_1_1meta__type.html#a7362687fc89444507cded22f57be3ff0',1,'entt::meta_type::size_type'],['../classentt_1_1basic__scheduler.html#a65ce482b6daa9eb3117075b7d4eaecc7',1,'entt::basic_scheduler::size_type'],['../classentt_1_1resource__cache.html#af96dd3b16bdd0f1151b75786bdc0a2cb',1,'entt::resource_cache::size_type'],['../classentt_1_1basic__dispatcher.html#a5be4fb80f4bb0055ffaf3b573a4681a6',1,'entt::basic_dispatcher::size_type'],['../classentt_1_1emitter.html#aa72c6b30d4d14c1b954f7ebed3a4f123',1,'entt::emitter::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage< Entity, Entity, Allocator >::size_type'],['../classentt_1_1basic__storage.html#aaef5c215ade183d00b9f568d249c86d9',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::size_type']]], + ['snapshot_5',['snapshot',['../namespaceentt.html#ae81f1e05f8be1263f14284164387c180',1,'entt']]], + ['snapshot_5floader_6',['snapshot_loader',['../namespaceentt.html#affcc892243a02aafd27f353bd810fca6',1,'entt']]], + ['sparse_5fset_7',['sparse_set',['../namespaceentt.html#af720baaca44bb4f3e4d7297777e53a2f',1,'entt']]], + ['storage_8',['storage',['../namespaceentt.html#aff8fd99fc1ff2432dcb0f6b017a9c60e',1,'entt']]], + ['storage_5ffor_5ft_9',['storage_for_t',['../namespaceentt.html#ab7e07285e81bdf526b09a38a9618eb13',1,'entt']]], + ['storage_5ffor_5ftype_10',['storage_for_type',['../classentt_1_1basic__registry.html#a99e000856991d365d5a8a9e619b5fd03',1,'entt::basic_registry']]], + ['storage_5ftype_5ft_11',['storage_type_t',['../namespaceentt.html#a12841fb02f9eaa12097dbb36251b84dd',1,'entt']]] ]; diff --git a/search/typedefs_11.js b/search/typedefs_11.js index 10d096b9e..120ec929b 100644 --- a/search/typedefs_11.js +++ b/search/typedefs_11.js @@ -2,7 +2,7 @@ var searchData= [ ['table_0',['table',['../namespaceentt.html#abdba4f06564fb96e8dfb38c272656d0a',1,'entt']]], ['tag_1',['tag',['../namespaceentt.html#ae20502ac2073901175466d05be8a3c20',1,'entt']]], - ['type_2',['type',['../structentt_1_1type__identity.html#ae47a6cef2041ad7d82c8ecd6b97a8524',1,'entt::type_identity::type'],['../structentt_1_1type__list.html#ad39ae8961200964418fef5090f44cd00',1,'entt::type_list::type'],['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#adaf6966048b2b6365a1e3bd1671f04ff',1,'entt::type_list_element< 0u, type_list< First, Other... > >::type'],['../structentt_1_1type__list__cat_3_4.html#a957e88d5bc4c1cbf4a13fbddbe2e176f',1,'entt::type_list_cat<>::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#ae17db475954ad06eba24fd1eedba5f8b',1,'entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html#a0c40287fad9d80f0532d80bf48f219ed',1,'entt::type_list_cat< type_list< Type... > >::type'],['../structentt_1_1type__list__unique.html#abe63c8abbca0076b703080fc84abe771',1,'entt::type_list_unique::type'],['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html#a2cb768d238516cc6a005c221ce9a7f5b',1,'entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type'],['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html#aab11952e985a6d11f707028d19110e15',1,'entt::type_list_transform< type_list< Type... >, Op >::type'],['../structentt_1_1value__list.html#ae89d3f18fec9ab261e040bb4581001af',1,'entt::value_list::type'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a31110a2b765fe05f64090de77073d671',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::type'],['../structentt_1_1value__list__cat_3_4.html#a7c88fc51906ef0549415cbb6b82190b4',1,'entt::value_list_cat<>::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#aeb78d396ce7f928fbd9c06803a1ce327',1,'entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html#ad729ba83ae022614fa97930ae427b4ad',1,'entt::value_list_cat< value_list< Value... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#ae0f12069907fb82ce9c1d86c68cc22f0',1,'entt::value_list_unique< value_list< Value, Other... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html#a78a4d60f7decb9b70404c33db0739270',1,'entt::value_list_unique< value_list<> >::type'],['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html#a73fa937a39aef666c2445a2b47726f9d',1,'entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as::type'],['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html#a641888a9aabbd346cc075ca3247752ad',1,'entt::constness_as< To, const From >::type'],['../classentt_1_1member__class.html#aa512dd4465bfab2dc09f759ae882a08a',1,'entt::member_class::type'],['../classentt_1_1nth__argument.html#a6a6643c48274ccfff5d576de756b32a2',1,'entt::nth_argument::type'],['../structentt_1_1component__traits.html#ad27a54129d408c38d21365a1bab4c93f',1,'entt::component_traits::type'],['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a000a5be755d2c05ccc855fb6eeef2b76',1,'entt::type_list_transform< get_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#af74896fcec10258a516f10f21a141408',1,'entt::type_list_transform< exclude_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a2e5c51f87c36b1e0cab652007f02c8b9',1,'entt::type_list_transform< owned_t< Type... >, Op >::type'],['../structentt_1_1storage__type.html#ad9c2cacb377d24a658f4cb214affb975',1,'entt::storage_type::type'],['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html#a277206323bb4139ea34f54a24de170f5',1,'entt::storage_type< reactive, Entity, Allocator >::type'],['../structentt_1_1storage__for.html#a4b8e6fd2b3cfe7fb1fa80b6698e3c64a',1,'entt::storage_for::type'],['../classentt_1_1locator.html#aa1b4b856f4d36f39bbbecfd79cb380ee',1,'entt::locator::type'],['../classentt_1_1meta__function__helper.html#a74ea1aa3fe0edfad96898520cbf6eeae',1,'entt::meta_function_helper::type'],['../classentt_1_1poly__vtable.html#a1114a981955e596da36603282cee2e4d',1,'entt::poly_vtable::type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#ada5b094a0d859325dbe1241f3d956c02',1,'entt::delegate< Ret(Args...)>::type']]], + ['type_2',['type',['../structentt_1_1type__identity.html#ae47a6cef2041ad7d82c8ecd6b97a8524',1,'entt::type_identity::type'],['../structentt_1_1type__list.html#ad39ae8961200964418fef5090f44cd00',1,'entt::type_list::type'],['../structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#adaf6966048b2b6365a1e3bd1671f04ff',1,'entt::type_list_element< 0u, type_list< First, Other... > >::type'],['../structentt_1_1type__list__cat_3_4.html#a957e88d5bc4c1cbf4a13fbddbe2e176f',1,'entt::type_list_cat<>::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#ae17db475954ad06eba24fd1eedba5f8b',1,'entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type'],['../structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html#a0c40287fad9d80f0532d80bf48f219ed',1,'entt::type_list_cat< type_list< Type... > >::type'],['../structentt_1_1type__list__unique.html#abe63c8abbca0076b703080fc84abe771',1,'entt::type_list_unique::type'],['../structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html#a2cb768d238516cc6a005c221ce9a7f5b',1,'entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type'],['../structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html#aab11952e985a6d11f707028d19110e15',1,'entt::type_list_transform< type_list< Type... >, Op >::type'],['../structentt_1_1value__list.html#ae89d3f18fec9ab261e040bb4581001af',1,'entt::value_list::type'],['../structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#a31110a2b765fe05f64090de77073d671',1,'entt::value_list_element< 0u, value_list< Value, Other... > >::type'],['../structentt_1_1value__list__cat_3_4.html#a7c88fc51906ef0549415cbb6b82190b4',1,'entt::value_list_cat<>::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html#aeb78d396ce7f928fbd9c06803a1ce327',1,'entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type'],['../structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html#ad729ba83ae022614fa97930ae427b4ad',1,'entt::value_list_cat< value_list< Value... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#ae0f12069907fb82ce9c1d86c68cc22f0',1,'entt::value_list_unique< value_list< Value, Other... > >::type'],['../structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html#a78a4d60f7decb9b70404c33db0739270',1,'entt::value_list_unique< value_list<> >::type'],['../structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html#a73fa937a39aef666c2445a2b47726f9d',1,'entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as::type'],['../structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html#a641888a9aabbd346cc075ca3247752ad',1,'entt::constness_as< To, const From >::type'],['../classentt_1_1member__class.html#aa512dd4465bfab2dc09f759ae882a08a',1,'entt::member_class::type'],['../classentt_1_1nth__argument.html#a6a6643c48274ccfff5d576de756b32a2',1,'entt::nth_argument::type'],['../structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a000a5be755d2c05ccc855fb6eeef2b76',1,'entt::type_list_transform< get_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#af74896fcec10258a516f10f21a141408',1,'entt::type_list_transform< exclude_t< Type... >, Op >::type'],['../structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html#a2e5c51f87c36b1e0cab652007f02c8b9',1,'entt::type_list_transform< owned_t< Type... >, Op >::type'],['../structentt_1_1storage__type.html#a32909b75d88f8d3d12b3781bd079c750',1,'entt::storage_type::type'],['../structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html#ae4d8893728459c2d06974fccfaab6b4d',1,'entt::storage_type< reactive, Entity, Allocator >::type'],['../structentt_1_1storage__for.html#a4b8e6fd2b3cfe7fb1fa80b6698e3c64a',1,'entt::storage_for::type'],['../classentt_1_1locator.html#aa1b4b856f4d36f39bbbecfd79cb380ee',1,'entt::locator::type'],['../classentt_1_1meta__function__helper.html#a74ea1aa3fe0edfad96898520cbf6eeae',1,'entt::meta_function_helper::type'],['../classentt_1_1poly__vtable.html#a8969ca93b53151ab8e922995f937afa1',1,'entt::poly_vtable::type'],['../structentt_1_1constness__as.html#aa6f690652abf564093112ca29f55af2e',1,'entt::constness_as< To, const From >::type'],['../structentt_1_1storage__type.html#a32909b75d88f8d3d12b3781bd079c750',1,'entt::storage_type< reactive, Entity, Allocator >::type']]], ['type_5fidentity_5ft_3',['type_identity_t',['../namespaceentt.html#a674c50d8037ae08ac4f860e65cbfb137',1,'entt']]], ['type_5flist_5fcat_5ft_4',['type_list_cat_t',['../namespaceentt.html#a23f80f743d8761c2ff8c6f25c8cafece',1,'entt']]], ['type_5flist_5fdiff_5ft_5',['type_list_diff_t',['../namespaceentt.html#a4ef0f9bd24a7cefac7835cce5744a6cd',1,'entt']]], diff --git a/search/typedefs_13.js b/search/typedefs_13.js index b3293566d..c2cfd4867 100644 --- a/search/typedefs_13.js +++ b/search/typedefs_13.js @@ -4,7 +4,7 @@ var searchData= ['value_5flist_5fdiff_5ft_1',['value_list_diff_t',['../namespaceentt.html#abb1704c849f4643f1063e7ac036117f8',1,'entt']]], ['value_5flist_5felement_5ft_2',['value_list_element_t',['../namespaceentt.html#ab468f1f4331cb1b664ee21fe4a22acab',1,'entt']]], ['value_5flist_5funique_5ft_3',['value_list_unique_t',['../namespaceentt.html#a2aac9e0d197ae6d01eb31645245a0773',1,'entt']]], - ['value_5ftype_4',['value_type',['../classentt_1_1dense__map.html#aa53501af8bfd66b6bf45e8cfa844e180',1,'entt::dense_map::value_type'],['../classentt_1_1dense__set.html#a42092d77add471a91a60b0aebd515829',1,'entt::dense_set::value_type'],['../classentt_1_1family.html#a0e6bdab229f41f21267f4d7975f305cc',1,'entt::family::value_type'],['../classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0',1,'entt::basic_hashed_string::value_type'],['../classentt_1_1ident.html#ab876c8a72b42402e640b1438eed506c7',1,'entt::ident::value_type'],['../structentt_1_1input__iterator__pointer.html#ac0bf1d35284f47fc0eaca4936c14e6fd',1,'entt::input_iterator_pointer::value_type'],['../classentt_1_1iota__iterator.html#ae77062c710cf05c7d9a29f130cddc074',1,'entt::iota_iterator::value_type'],['../structentt_1_1iterable__adaptor.html#adbde706b5ce0286d8e3fd6e71be12720',1,'entt::iterable_adaptor::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a020f20e0b33a44e8553c27c8b8467737',1,'entt::type_list_index< Type, type_list< First, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a70ed8029fca2779886d54717d1fc0f12',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a721c9925a30d577d7ffea978ca02db50',1,'entt::type_list_index< Type, type_list<> >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a9c71ca857f7733bc5d65eff9c53cb9fb',1,'entt::value_list_index< Value, value_list< First, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#afdc75781c76ec5001f7691de1f18af6d',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#a620f31bb51fea7cf0227c463da75f6bb',1,'entt::value_list_index< Value, value_list<> >::value_type'],['../classentt_1_1basic__entt__traits.html#a8d3ccdc302fc7dc567541fa12eca6b4e',1,'entt::basic_entt_traits::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage::value_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#aa9d41e9aa6dfe02706e057b57c923209',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::value_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a30bbcaceb9ee7f7708d978f082afabc8',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1resource__cache.html#a7405d91504b5793f260a93695f6cdee4',1,'entt::resource_cache::value_type']]], + ['value_5ftype_4',['value_type',['../classentt_1_1dense__map.html#aa53501af8bfd66b6bf45e8cfa844e180',1,'entt::dense_map::value_type'],['../classentt_1_1dense__set.html#a42092d77add471a91a60b0aebd515829',1,'entt::dense_set::value_type'],['../classentt_1_1family.html#a0e6bdab229f41f21267f4d7975f305cc',1,'entt::family::value_type'],['../classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0',1,'entt::basic_hashed_string::value_type'],['../classentt_1_1ident.html#ab876c8a72b42402e640b1438eed506c7',1,'entt::ident::value_type'],['../structentt_1_1input__iterator__pointer.html#ac0bf1d35284f47fc0eaca4936c14e6fd',1,'entt::input_iterator_pointer::value_type'],['../classentt_1_1iota__iterator.html#ae77062c710cf05c7d9a29f130cddc074',1,'entt::iota_iterator::value_type'],['../structentt_1_1iterable__adaptor.html#adbde706b5ce0286d8e3fd6e71be12720',1,'entt::iterable_adaptor::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a020f20e0b33a44e8553c27c8b8467737',1,'entt::type_list_index< Type, type_list< First, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html#a70ed8029fca2779886d54717d1fc0f12',1,'entt::type_list_index< Type, type_list< Type, Other... > >::value_type'],['../structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html#a721c9925a30d577d7ffea978ca02db50',1,'entt::type_list_index< Type, type_list<> >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html#a9c71ca857f7733bc5d65eff9c53cb9fb',1,'entt::value_list_index< Value, value_list< First, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html#afdc75781c76ec5001f7691de1f18af6d',1,'entt::value_list_index< Value, value_list< Value, Other... > >::value_type'],['../structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html#a620f31bb51fea7cf0227c463da75f6bb',1,'entt::value_list_index< Value, value_list<> >::value_type'],['../classentt_1_1basic__entt__traits.html#a8d3ccdc302fc7dc567541fa12eca6b4e',1,'entt::basic_entt_traits::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage::value_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a129141410fa4a0c90ff83bceab7d0266',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::value_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a30bbcaceb9ee7f7708d978f082afabc8',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1resource__cache.html#a7405d91504b5793f260a93695f6cdee4',1,'entt::resource_cache::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage< Entity, Entity, Allocator >::value_type'],['../classentt_1_1basic__storage.html#a68bc63580895ff61c806941c2ccb620b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::value_type']]], ['version_5ftype_5',['version_type',['../classentt_1_1basic__entt__traits.html#aa3fe33d19b228d07c5560b907f910c10',1,'entt::basic_entt_traits::version_type'],['../classentt_1_1basic__handle.html#a968c2d7f87b40d6fa6ae700be481f20c',1,'entt::basic_handle::version_type'],['../classentt_1_1basic__registry.html#a49c533b43c29fad4b52bc10e4f390107',1,'entt::basic_registry::version_type'],['../classentt_1_1basic__sparse__set.html#a14e627591924feaaad4f04d13c4f4b2d',1,'entt::basic_sparse_set::version_type']]], ['vertex_5fiterator_6',['vertex_iterator',['../classentt_1_1adjacency__matrix.html#a2a5cd6977bd31867ed853b737f3a2ff1',1,'entt::adjacency_matrix']]], ['vertex_5ftype_7',['vertex_type',['../classentt_1_1adjacency__matrix.html#ad59306803ff05b7d2d3244f7e59ef9d9',1,'entt::adjacency_matrix']]], diff --git a/search/typedefs_2.js b/search/typedefs_2.js index 693a519de..b5736225f 100644 --- a/search/typedefs_2.js +++ b/search/typedefs_2.js @@ -1,19 +1,18 @@ var searchData= [ ['class_5ftype_0',['class_type',['../structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html#a4223977fdb0b34434781d3dccee131c0',1,'entt::meta_template_traits< Clazz< Args... > >']]], - ['common_5ftype_1',['common_type',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ae404710a7c3d6d5ca6b2066d0bffea07',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a51f55ba9c65468ef4f615fae26b881d7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__registry.html#a4d204691f73d602c9f46f3127caf8c81',1,'entt::basic_registry::common_type'],['../classentt_1_1basic__runtime__view.html#acc80c6c7de3e3020edeb51296050eb43',1,'entt::basic_runtime_view::common_type'],['../classentt_1_1basic__common__view.html#a49d50a6ed08c233e75b59bc3aed62e46',1,'entt::basic_common_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a0ff2cde1a50fddc6d0ea89f3afe9a1cb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type'],['../classentt_1_1basic__storage__view.html#af3a7a5c31f0b29e30fc86119e7f76135',1,'entt::basic_storage_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a353a69f58fbb7c660c140ca284d9d137',1,'entt::basic_view< get_t< Get >, exclude_t<> >::common_type']]], + ['common_5ftype_1',['common_type',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ae404710a7c3d6d5ca6b2066d0bffea07',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a51f55ba9c65468ef4f615fae26b881d7',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::common_type'],['../classentt_1_1basic__registry.html#a4d204691f73d602c9f46f3127caf8c81',1,'entt::basic_registry::common_type'],['../classentt_1_1basic__runtime__view.html#acc80c6c7de3e3020edeb51296050eb43',1,'entt::basic_runtime_view::common_type'],['../classentt_1_1basic__common__view.html#ad2a9d4a491583d833ffc421a3913f982',1,'entt::basic_common_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a0ff2cde1a50fddc6d0ea89f3afe9a1cb',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::common_type'],['../classentt_1_1basic__storage__view.html#af3a7a5c31f0b29e30fc86119e7f76135',1,'entt::basic_storage_view::common_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a353a69f58fbb7c660c140ca284d9d137',1,'entt::basic_view< get_t< Get >, exclude_t<> >::common_type']]], ['concept_5ftype_2',['concept_type',['../classentt_1_1basic__poly.html#a71786016b64718d72167ff763f4793cf',1,'entt::basic_poly']]], ['const_5fhandle_3',['const_handle',['../namespaceentt.html#aed8389b9073df462feead9ce84ceeddb',1,'entt']]], ['const_5fhandle_5fview_4',['const_handle_view',['../namespaceentt.html#a06c301e0976746f3f72b960f1c9c4675',1,'entt']]], - ['const_5fiterable_5',['const_iterable',['../classentt_1_1basic__registry.html#af28295b4eed2182fe6c7fd6287e98d8e',1,'entt::basic_registry::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage::const_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#ac3f3eb22dbf3436d5df0ba4034c7aacd',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a364dc9bf92cab24cc7a941fb126b80b0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable']]], - ['const_5fiterator_6',['const_iterator',['../classentt_1_1dense__map.html#a5c236223418b9ef327397424e2df24f8',1,'entt::dense_map::const_iterator'],['../classentt_1_1dense__set.html#a271e1e1f94361e8156c6de5a81746943',1,'entt::dense_set::const_iterator'],['../classentt_1_1basic__table.html#ae1496cee0ba4c70880f412270c8d92b1',1,'entt::basic_table::const_iterator'],['../classentt_1_1basic__sparse__set.html#a3688979d568f2450725d69aa89571f4f',1,'entt::basic_sparse_set::const_iterator'],['../classentt_1_1basic__storage.html#a0afc17d52410f06e0f166d3d8aa89a9d',1,'entt::basic_storage::const_iterator'],['../classentt_1_1resource__cache.html#a8eb72ec2d185a953cba0ac2f6e87d693',1,'entt::resource_cache::const_iterator']]], + ['const_5fiterable_5',['const_iterable',['../classentt_1_1basic__registry.html#af28295b4eed2182fe6c7fd6287e98d8e',1,'entt::basic_registry::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage::const_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a9ad105c8d5105ab086e364d575f16208',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a364dc9bf92cab24cc7a941fb126b80b0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterable'],['../classentt_1_1basic__storage.html#ae9a7c7e35258d679ba9f2f1f49e8eef4',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterable']]], + ['const_5fiterator_6',['const_iterator',['../classentt_1_1dense__map.html#a5c236223418b9ef327397424e2df24f8',1,'entt::dense_map::const_iterator'],['../classentt_1_1dense__set.html#a271e1e1f94361e8156c6de5a81746943',1,'entt::dense_set::const_iterator'],['../classentt_1_1basic__table.html#ae1496cee0ba4c70880f412270c8d92b1',1,'entt::basic_table::const_iterator'],['../classentt_1_1basic__sparse__set.html#a3688979d568f2450725d69aa89571f4f',1,'entt::basic_sparse_set::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage::const_iterator'],['../classentt_1_1resource__cache.html#a8eb72ec2d185a953cba0ac2f6e87d693',1,'entt::resource_cache::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage< Entity, Entity, Allocator >::const_iterator'],['../classentt_1_1basic__storage.html#adfe52c9d60299fe8735adc1ebccd1c22',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_iterator']]], ['const_5flocal_5fiterator_7',['const_local_iterator',['../classentt_1_1dense__map.html#ad699469dc43bfd00d9ea86c686afb394',1,'entt::dense_map::const_local_iterator'],['../classentt_1_1dense__set.html#a0be70471e45867b1d18aa9ee57376496',1,'entt::dense_set::const_local_iterator']]], - ['const_5fpointer_8',['const_pointer',['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage']]], - ['const_5freverse_5fiterable_9',['const_reverse_iterable',['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a8273404c552f27174ff8dc2aae0fb8af',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab9e678bee9335c265e4c65cc26ca6ea8',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable']]], - ['const_5freverse_5fiterator_10',['const_reverse_iterator',['../classentt_1_1dense__set.html#a5a9f859755987f8844be29ad84cc37b6',1,'entt::dense_set::const_reverse_iterator'],['../classentt_1_1basic__table.html#afbb42c3edb4e02b4db223ef02c4868d7',1,'entt::basic_table::const_reverse_iterator'],['../classentt_1_1basic__sparse__set.html#a27d66fda0fba1587a5f61e9c16f742f7',1,'entt::basic_sparse_set::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage::const_reverse_iterator']]], + ['const_5fpointer_8',['const_pointer',['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage::const_pointer'],['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage< Entity, Entity, Allocator >::const_pointer'],['../classentt_1_1basic__storage.html#a5d8cb6743d7ffa4c83631ec13786b4fe',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_pointer']]], + ['const_5freverse_5fiterable_9',['const_reverse_iterable',['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#adc7b919c1b1a3d7eb47923a05b2399f3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#ab9e678bee9335c265e4c65cc26ca6ea8',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable'],['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterable'],['../classentt_1_1basic__storage.html#a4ef56d090bf30c5722e9c83350c8f4c0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterable']]], + ['const_5freverse_5fiterator_10',['const_reverse_iterator',['../classentt_1_1dense__set.html#a5a9f859755987f8844be29ad84cc37b6',1,'entt::dense_set::const_reverse_iterator'],['../classentt_1_1basic__table.html#afbb42c3edb4e02b4db223ef02c4868d7',1,'entt::basic_table::const_reverse_iterator'],['../classentt_1_1basic__sparse__set.html#a27d66fda0fba1587a5f61e9c16f742f7',1,'entt::basic_sparse_set::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage< Entity, Entity, Allocator >::const_reverse_iterator'],['../classentt_1_1basic__storage.html#a9d153dbdd4f79879d7a8e48ad5aa5484',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::const_reverse_iterator']]], ['const_5fruntime_5fview_11',['const_runtime_view',['../namespaceentt.html#ac3ffdaf3a0c8ebdbb2665f9ec1d63f83',1,'entt']]], ['constness_5fas_5ft_12',['constness_as_t',['../namespaceentt.html#a13168ef82af733bfe584f34f29472d20',1,'entt']]], ['context_13',['context',['../classentt_1_1basic__registry.html#af26a23d71ff7ba51457dc54021b41be7',1,'entt::basic_registry']]], - ['continuous_5floader_14',['continuous_loader',['../namespaceentt.html#ae827dd63b5553f701ae049a1cf95ef0c',1,'entt']]], - ['current_5ftype_15',['current_type',['../structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html#ac7c32cf26795aa4fc08d21597c68bc3d',1,'entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >']]] + ['continuous_5floader_14',['continuous_loader',['../namespaceentt.html#ae827dd63b5553f701ae049a1cf95ef0c',1,'entt']]] ]; diff --git a/search/typedefs_3.js b/search/typedefs_3.js index b8979b321..25e3c6fb5 100644 --- a/search/typedefs_3.js +++ b/search/typedefs_3.js @@ -1,6 +1,6 @@ var searchData= [ ['delta_5ftype_0',['delta_type',['../classentt_1_1process.html#a625b574ea6d83e3a4933acc3d0279295',1,'entt::process::delta_type'],['../classentt_1_1basic__scheduler.html#aee11899e97bc57ebc9216a1f0f24e329',1,'entt::basic_scheduler::delta_type']]], - ['difference_5ftype_1',['difference_type',['../classentt_1_1iota__iterator.html#a18384d6f3528a0bf0cd952668deb0eeb',1,'entt::iota_iterator']]], + ['difference_5ftype_1',['difference_type',['../classentt_1_1dense__map.html#afe9ae8d1427ee98d662e7a7d635a6eff',1,'entt::dense_map::difference_type'],['../classentt_1_1dense__set.html#a12f11ca5f036cb6f606952e2e506179c',1,'entt::dense_set::difference_type'],['../classentt_1_1basic__table.html#a20f12f47432d750f97991ca1732ca836',1,'entt::basic_table::difference_type'],['../classentt_1_1iota__iterator.html#a18384d6f3528a0bf0cd952668deb0eeb',1,'entt::iota_iterator::difference_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a66cfc4cf7cc6ded38267f92436256904',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::difference_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ace5500fb779bdb6d757061b1abb8c144',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::difference_type'],['../classentt_1_1basic__sparse__set.html#a4e4e7bb8e12a2d1b35aa91c92bc573c3',1,'entt::basic_sparse_set::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage::difference_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ad5e9634e59995e6a6debeba735e1cb3c',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::difference_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a86a28d9e0caa759283ac84ff8fa28d08',1,'entt::basic_storage< Entity, Entity, Allocator >::difference_type'],['../classentt_1_1basic__common__view.html#a665b5a34eee656129ba04d718a98c05a',1,'entt::basic_common_view::difference_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a7eb05a1abede44b13203a2fe4f7a91d6',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::difference_type'],['../classentt_1_1basic__storage__view.html#a29e595d99538b8cf4fafb7fec24e5019',1,'entt::basic_storage_view::difference_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a0e36c5565d5d800033981bd3efe5c1b1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage< Entity, Entity, Allocator >::difference_type'],['../classentt_1_1basic__storage.html#ac5c79e1a8d9f8f898e2d102c1906a2f2',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::difference_type']]], ['dispatcher_2',['dispatcher',['../namespaceentt.html#a0a861217be8dba074e93e11eaf9bfe0c',1,'entt']]] ]; diff --git a/search/typedefs_4.js b/search/typedefs_4.js index 6c4cfc025..44770e82f 100644 --- a/search/typedefs_4.js +++ b/search/typedefs_4.js @@ -2,6 +2,6 @@ var searchData= [ ['edge_5fiterator_0',['edge_iterator',['../classentt_1_1adjacency__matrix.html#a4e2e74717c42df138ed98b1a33b6ffd8',1,'entt::adjacency_matrix']]], ['edge_5ftype_1',['edge_type',['../classentt_1_1adjacency__matrix.html#aa2ac50f08d437489d4f761b418c48eda',1,'entt::adjacency_matrix']]], - ['element_5ftype_2',['element_type',['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage::element_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a49e83e3a6c6e27d96a14c50a0fdd5c83',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::element_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a9b9274928f9059decb038a2c9effb80e',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1resource.html#a26674fadd2d6b8be621375d4b3195836',1,'entt::resource::element_type']]], - ['entity_5ftype_3',['entity_type',['../classentt_1_1basic__entt__traits.html#a066f3db5d13496df1e1fbc8659197793',1,'entt::basic_entt_traits::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac52f9ee1f7aab92da230399fba664480',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#abb8a3829dcd9e0699bb39e52ba42c9c1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__handle.html#ae3da8f3f4ea998e26fce6a7d9497486d',1,'entt::basic_handle::entity_type'],['../classentt_1_1as__view.html#a9ae57dc533e1c2e1279849c8101d07ed',1,'entt::as_view::entity_type'],['../classentt_1_1as__group.html#a01a68f9e8552b14f9bc2e1a48c665c70',1,'entt::as_group::entity_type'],['../classentt_1_1basic__sigh__mixin.html#a0af7926221dcae3edc768c1b710de79f',1,'entt::basic_sigh_mixin::entity_type'],['../classentt_1_1basic__reactive__mixin.html#aa2878e10703e6ba6456c7c45f35bfa55',1,'entt::basic_reactive_mixin::entity_type'],['../classentt_1_1basic__observer.html#a492baa27b5e13ea8759badc5b5681853',1,'entt::basic_observer::entity_type'],['../classentt_1_1basic__organizer.html#adca9a9f4e7676507c10ecd0c46fb7757',1,'entt::basic_organizer::entity_type'],['../classentt_1_1basic__registry.html#abdeb17d13b9834969282c5e8a930656d',1,'entt::basic_registry::entity_type'],['../classentt_1_1basic__runtime__view.html#abb7738cda0849f733d0eab14831b7809',1,'entt::basic_runtime_view::entity_type'],['../classentt_1_1basic__snapshot.html#a052964a4a99d37ab39219bda2372c17b',1,'entt::basic_snapshot::entity_type'],['../classentt_1_1basic__snapshot__loader.html#a21dff5a44dc7ee611a39d9517c8af96e',1,'entt::basic_snapshot_loader::entity_type'],['../classentt_1_1basic__continuous__loader.html#a8ec9043a725da1ddb4f16ce6cb635011',1,'entt::basic_continuous_loader::entity_type'],['../classentt_1_1basic__sparse__set.html#ae90adeddf9bab1f9c8b4b1fff95980f0',1,'entt::basic_sparse_set::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage::entity_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a6facab035e077cf52ecc6319346b8ab0',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::entity_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a39bda60ad772dafde668f5a0ac1fd505',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__common__view.html#adab226b6dd6c5fa0959afe67f17a9c75',1,'entt::basic_common_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a05ec937d47504bda347069c6330000c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type'],['../classentt_1_1basic__storage__view.html#ab15a8b7dcf21202d2bb9040b18358de6',1,'entt::basic_storage_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a032956125db6be519c82e860b76beff1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::entity_type']]] + ['element_5ftype_2',['element_type',['../structentt_1_1component__traits.html#ad991611996fcdc1dcaae38c6035199f9',1,'entt::component_traits::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage::element_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a452a52b0b503ef989532d64cd409d170',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::element_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a9b9274928f9059decb038a2c9effb80e',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1resource.html#a26674fadd2d6b8be621375d4b3195836',1,'entt::resource::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage< Entity, Entity, Allocator >::element_type'],['../classentt_1_1basic__storage.html#ad4d0afe56ddfbed03d8ca62a766b176b',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::element_type']]], + ['entity_5ftype_3',['entity_type',['../structentt_1_1component__traits.html#ae234a374ad21f25c234a88230eb5b928',1,'entt::component_traits::entity_type'],['../classentt_1_1basic__entt__traits.html#a066f3db5d13496df1e1fbc8659197793',1,'entt::basic_entt_traits::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#ac52f9ee1f7aab92da230399fba664480',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#abb8a3829dcd9e0699bb39e52ba42c9c1',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::entity_type'],['../classentt_1_1basic__handle.html#ae3da8f3f4ea998e26fce6a7d9497486d',1,'entt::basic_handle::entity_type'],['../classentt_1_1as__view.html#a9ae57dc533e1c2e1279849c8101d07ed',1,'entt::as_view::entity_type'],['../classentt_1_1as__group.html#a01a68f9e8552b14f9bc2e1a48c665c70',1,'entt::as_group::entity_type'],['../classentt_1_1basic__sigh__mixin.html#a0af7926221dcae3edc768c1b710de79f',1,'entt::basic_sigh_mixin::entity_type'],['../classentt_1_1basic__reactive__mixin.html#aa2878e10703e6ba6456c7c45f35bfa55',1,'entt::basic_reactive_mixin::entity_type'],['../classentt_1_1basic__organizer.html#adca9a9f4e7676507c10ecd0c46fb7757',1,'entt::basic_organizer::entity_type'],['../classentt_1_1basic__registry.html#abdeb17d13b9834969282c5e8a930656d',1,'entt::basic_registry::entity_type'],['../classentt_1_1basic__runtime__view.html#abb7738cda0849f733d0eab14831b7809',1,'entt::basic_runtime_view::entity_type'],['../classentt_1_1basic__snapshot.html#a052964a4a99d37ab39219bda2372c17b',1,'entt::basic_snapshot::entity_type'],['../classentt_1_1basic__snapshot__loader.html#a21dff5a44dc7ee611a39d9517c8af96e',1,'entt::basic_snapshot_loader::entity_type'],['../classentt_1_1basic__continuous__loader.html#a8ec9043a725da1ddb4f16ce6cb635011',1,'entt::basic_continuous_loader::entity_type'],['../classentt_1_1basic__sparse__set.html#ae90adeddf9bab1f9c8b4b1fff95980f0',1,'entt::basic_sparse_set::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage::entity_type'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#ae97a505018e245739a3c1a17c48bc57f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::entity_type'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a39bda60ad772dafde668f5a0ac1fd505',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__common__view.html#a2a004edc23118d54d2074fe8a1a1cdd7',1,'entt::basic_common_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a05ec937d47504bda347069c6330000c2',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::entity_type'],['../classentt_1_1basic__storage__view.html#ab15a8b7dcf21202d2bb9040b18358de6',1,'entt::basic_storage_view::entity_type'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a032956125db6be519c82e860b76beff1',1,'entt::basic_view< get_t< Get >, exclude_t<> >::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage< Entity, Entity, Allocator >::entity_type'],['../classentt_1_1basic__storage.html#a8cadeb05e41d85a0e3286a3cb92f61e3',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::entity_type']]] ]; diff --git a/search/typedefs_5.js b/search/typedefs_5.js index bf01ce192..374b72506 100644 --- a/search/typedefs_5.js +++ b/search/typedefs_5.js @@ -2,5 +2,5 @@ var searchData= [ ['first_5ftype_0',['first_type',['../classentt_1_1compressed__pair.html#a6db727eef0bb9927d0d299f6a620005a',1,'entt::compressed_pair']]], ['flow_1',['flow',['../namespaceentt.html#a74a376b45d5e5ea92f89da92f531975b',1,'entt']]], - ['function_5ftype_2',['function_type',['../classentt_1_1basic__organizer.html#ab4111ab706d0160d4bbf3a9223583d94',1,'entt::basic_organizer::function_type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a1a5ceebde7cebde69a1b2022f539a656',1,'entt::delegate< Ret(Args...)>::function_type']]] + ['function_5ftype_2',['function_type',['../classentt_1_1basic__organizer.html#ab4111ab706d0160d4bbf3a9223583d94',1,'entt::basic_organizer']]] ]; diff --git a/search/typedefs_8.js b/search/typedefs_8.js index ae442d926..d33abdaef 100644 --- a/search/typedefs_8.js +++ b/search/typedefs_8.js @@ -1,10 +1,10 @@ var searchData= [ - ['id_5ftype_0',['id_type',['../namespaceentt.html#a7f3ac95ffe482bbd1a70b624ef8bb641',1,'entt']]], + ['id_5ftype_0',['id_type',['../namespaceentt.html#a620d583c0e6d64acf3d394524bb72303',1,'entt']]], ['in_5fedge_5fiterator_1',['in_edge_iterator',['../classentt_1_1adjacency__matrix.html#ad1eb3bad19846f57d9a6a44bed6f360d',1,'entt::adjacency_matrix']]], ['integral_5fconstant_2',['integral_constant',['../namespaceentt.html#a0e653af66fcdc9e4abc2a81f362b8963',1,'entt']]], ['is_5ftransparent_3',['is_transparent',['../structentt_1_1identity.html#a4781035b1edd550804a131d80852e258',1,'entt::identity']]], - ['iterable_4',['iterable',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a41dc2207369df205d0776db3e78be604',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4e52d1b38e4284b76bc51a72cb0b8c3',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__handle.html#a5ba0413c2b98df4629eace236ef6f765',1,'entt::basic_handle::iterable'],['../classentt_1_1basic__registry.html#a3b46298ebd98b1f89b3b8910838ea0eb',1,'entt::basic_registry::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage::iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#ae05d4d6b3e57fa075caea89001f12418',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abca6514000d50e1a758c6528dbbd1969',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad2bf640daad08eec4206cd7fd0442f9a',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#afcea8ad4fe6ebb1ac142528f85f96b1b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterable'],['../classentt_1_1basic__flow.html#a40ae2917753dbe694ccbd8a0b9d030e4',1,'entt::basic_flow::iterable']]], - ['iterator_5',['iterator',['../classentt_1_1dense__map.html#acc07b299f15a57db885089cc1a31322d',1,'entt::dense_map::iterator'],['../classentt_1_1dense__set.html#a44f127ff9c4a0fa1c8284f7d072bd5c3',1,'entt::dense_set::iterator'],['../classentt_1_1basic__table.html#a5d47acc4b3df21d03434bf8caa34b8c3',1,'entt::basic_table::iterator'],['../structentt_1_1iterable__adaptor.html#a5f7920bf5cba9b4aa765affe21490a2d',1,'entt::iterable_adaptor::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#acd96ed39873cbcb38100928945e5781f',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a611925e5ae41497d06519a40aaabdc64',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__observer.html#a263f1e60f3662e09f5e3c734c1e9c86e',1,'entt::basic_observer::iterator'],['../classentt_1_1basic__runtime__view.html#a46936cbc64be35947bf709b67cef5f3f',1,'entt::basic_runtime_view::iterator'],['../classentt_1_1basic__sparse__set.html#a6cea231ae7386a12487164d918f632b0',1,'entt::basic_sparse_set::iterator'],['../classentt_1_1basic__storage.html#af35a4def9687b5404ecc33a30665e54b',1,'entt::basic_storage::iterator'],['../classentt_1_1basic__common__view.html#acca0fa3e8c6ca7fb4e3cebb1964ab146',1,'entt::basic_common_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a572ec90eb0a60a1de9f801d3b9c3a448',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator'],['../classentt_1_1basic__storage__view.html#a7e768d8d546580a784a6ce6ce03bbcd8',1,'entt::basic_storage_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a596bf9b9e3c27f5e02fa5dd13cf9780b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterator'],['../structentt_1_1basic__meta__sequence__container__traits.html#a04287f0c1dc224c4625090a4040691f0',1,'entt::basic_meta_sequence_container_traits::iterator'],['../structentt_1_1basic__meta__associative__container__traits.html#a40e3448c9cd000ed80e672847be3c684',1,'entt::basic_meta_associative_container_traits::iterator'],['../classentt_1_1meta__sequence__container.html#a878e2f710e88a6ae42449cb7a93c3928',1,'entt::meta_sequence_container::iterator'],['../classentt_1_1meta__associative__container.html#aafbaf281035562432a4e8e55443e9584',1,'entt::meta_associative_container::iterator'],['../classentt_1_1resource__cache.html#aad6a23cc2ea4a9367ebdb9b186308353',1,'entt::resource_cache::iterator']]], + ['iterable_4',['iterable',['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a41dc2207369df205d0776db3e78be604',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#ae4e52d1b38e4284b76bc51a72cb0b8c3',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterable'],['../classentt_1_1basic__handle.html#a5ba0413c2b98df4629eace236ef6f765',1,'entt::basic_handle::iterable'],['../classentt_1_1basic__registry.html#a3b46298ebd98b1f89b3b8910838ea0eb',1,'entt::basic_registry::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage::iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a91bed3dea6aa83ced50d6c66e3a5a451',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#abca6514000d50e1a758c6528dbbd1969',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#ad2bf640daad08eec4206cd7fd0442f9a',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterable'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#afcea8ad4fe6ebb1ac142528f85f96b1b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterable'],['../classentt_1_1basic__flow.html#a40ae2917753dbe694ccbd8a0b9d030e4',1,'entt::basic_flow::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage< Entity, Entity, Allocator >::iterable'],['../classentt_1_1basic__storage.html#ac23311c6fa44244eaf8140b0fff6787e',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterable']]], + ['iterator_5',['iterator',['../classentt_1_1dense__map.html#acc07b299f15a57db885089cc1a31322d',1,'entt::dense_map::iterator'],['../classentt_1_1dense__set.html#a44f127ff9c4a0fa1c8284f7d072bd5c3',1,'entt::dense_set::iterator'],['../classentt_1_1basic__table.html#a5d47acc4b3df21d03434bf8caa34b8c3',1,'entt::basic_table::iterator'],['../structentt_1_1iterable__adaptor.html#a5f7920bf5cba9b4aa765affe21490a2d',1,'entt::iterable_adaptor::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#acd96ed39873cbcb38100928945e5781f',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a611925e5ae41497d06519a40aaabdc64',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::iterator'],['../classentt_1_1basic__runtime__view.html#a46936cbc64be35947bf709b67cef5f3f',1,'entt::basic_runtime_view::iterator'],['../classentt_1_1basic__sparse__set.html#a6cea231ae7386a12487164d918f632b0',1,'entt::basic_sparse_set::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage::iterator'],['../classentt_1_1basic__common__view.html#ac1779f77c4f07bd1db2479b9557be325',1,'entt::basic_common_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_00bfe15740605f6adb254763e866b0aef8.html#a572ec90eb0a60a1de9f801d3b9c3a448',1,'entt::basic_view< get_t< Get... >, exclude_t< Exclude... >, std::enable_if_t<(sizeof...(Get) !=0u)> >::iterator'],['../classentt_1_1basic__storage__view.html#a948136cfa7098e8ea86e2036228e2c64',1,'entt::basic_storage_view::iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a596bf9b9e3c27f5e02fa5dd13cf9780b',1,'entt::basic_view< get_t< Get >, exclude_t<> >::iterator'],['../structentt_1_1basic__meta__sequence__container__traits.html#a04287f0c1dc224c4625090a4040691f0',1,'entt::basic_meta_sequence_container_traits::iterator'],['../structentt_1_1basic__meta__associative__container__traits.html#a40e3448c9cd000ed80e672847be3c684',1,'entt::basic_meta_associative_container_traits::iterator'],['../classentt_1_1meta__sequence__container.html#a878e2f710e88a6ae42449cb7a93c3928',1,'entt::meta_sequence_container::iterator'],['../classentt_1_1meta__associative__container.html#aafbaf281035562432a4e8e55443e9584',1,'entt::meta_associative_container::iterator'],['../classentt_1_1resource__cache.html#aad6a23cc2ea4a9367ebdb9b186308353',1,'entt::resource_cache::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage< Entity, Entity, Allocator >::iterator'],['../classentt_1_1basic__storage.html#a7de50cda6208b00b58642be70d79da43',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::iterator']]], ['iterator_5fcategory_6',['iterator_category',['../classentt_1_1iota__iterator.html#aa3fa6540a202f4434a1326a7f0ebba8e',1,'entt::iota_iterator']]] ]; diff --git a/search/typedefs_b.js b/search/typedefs_b.js index ebb66ae64..6d8a2e93d 100644 --- a/search/typedefs_b.js +++ b/search/typedefs_b.js @@ -2,7 +2,6 @@ var searchData= [ ['mapped_5ftype_0',['mapped_type',['../classentt_1_1dense__map.html#a7cdfe85f102518543b7a684c9e8e3bd3',1,'entt::dense_map']]], ['member_5fclass_5ft_1',['member_class_t',['../namespaceentt.html#a021c5343afb213cf29d3703cdc2c8cbc',1,'entt']]], - ['meta_5fany_5fpolicy_2',['meta_any_policy',['../namespaceentt.html#a1c42091382f4a183ae6b917eb95aef50',1,'entt']]], - ['meta_5ffunction_5fhelper_5ft_3',['meta_function_helper_t',['../namespaceentt.html#a396e96dc705319d2fc6ded344292004f',1,'entt']]], - ['meta_5frange_4',['meta_range',['../namespaceentt.html#a7885dfa7d8e1307ff909f99182a64134',1,'entt']]] + ['meta_5ffunction_5fhelper_5ft_2',['meta_function_helper_t',['../namespaceentt.html#a396e96dc705319d2fc6ded344292004f',1,'entt']]], + ['meta_5frange_3',['meta_range',['../namespaceentt.html#a7885dfa7d8e1307ff909f99182a64134',1,'entt']]] ]; diff --git a/search/typedefs_d.js b/search/typedefs_d.js index a895ad3ea..40d8eaa91 100644 --- a/search/typedefs_d.js +++ b/search/typedefs_d.js @@ -1,6 +1,5 @@ var searchData= [ - ['observer_0',['observer',['../namespaceentt.html#ab53f35f7c2e36603582be3372af9d9e4',1,'entt']]], - ['organizer_1',['organizer',['../namespaceentt.html#a20330b209394a912be898c964f228327',1,'entt']]], - ['out_5fedge_5fiterator_2',['out_edge_iterator',['../classentt_1_1adjacency__matrix.html#a88b3a1f0df93f9785b51ece42cb71852',1,'entt::adjacency_matrix']]] + ['organizer_0',['organizer',['../namespaceentt.html#a20330b209394a912be898c964f228327',1,'entt']]], + ['out_5fedge_5fiterator_1',['out_edge_iterator',['../classentt_1_1adjacency__matrix.html#a88b3a1f0df93f9785b51ece42cb71852',1,'entt::adjacency_matrix']]] ]; diff --git a/search/typedefs_e.js b/search/typedefs_e.js index 4eccb6972..19e58ccb2 100644 --- a/search/typedefs_e.js +++ b/search/typedefs_e.js @@ -1,5 +1,5 @@ var searchData= [ - ['pointer_0',['pointer',['../structentt_1_1input__iterator__pointer.html#ad1541f6a78eb2f792fc03d9a6bfefbab',1,'entt::input_iterator_pointer::pointer'],['../classentt_1_1iota__iterator.html#ad41ace26ec6af78a2da98e01053e7578',1,'entt::iota_iterator::pointer'],['../structentt_1_1allocation__deleter.html#a37186f63eb16409b00b0261041b68c5c',1,'entt::allocation_deleter::pointer'],['../classentt_1_1basic__sparse__set.html#a8b18963e68d4f003e19389fd342f90cc',1,'entt::basic_sparse_set::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage::pointer']]], + ['pointer_0',['pointer',['../structentt_1_1input__iterator__pointer.html#ad1541f6a78eb2f792fc03d9a6bfefbab',1,'entt::input_iterator_pointer::pointer'],['../classentt_1_1iota__iterator.html#ad41ace26ec6af78a2da98e01053e7578',1,'entt::iota_iterator::pointer'],['../structentt_1_1allocation__deleter.html#a37186f63eb16409b00b0261041b68c5c',1,'entt::allocation_deleter::pointer'],['../classentt_1_1basic__sparse__set.html#a8b18963e68d4f003e19389fd342f90cc',1,'entt::basic_sparse_set::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage< Entity, Entity, Allocator >::pointer'],['../classentt_1_1basic__storage.html#ab7a786a114c38b8ee8de18315ec7f7e5',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::pointer']]], ['poly_1',['poly',['../namespaceentt.html#ab6d2fe9024bafa328c5f4e4adbc96298',1,'entt']]] ]; diff --git a/search/typedefs_f.js b/search/typedefs_f.js index b1b81c368..251c22b10 100644 --- a/search/typedefs_f.js +++ b/search/typedefs_f.js @@ -3,10 +3,10 @@ var searchData= ['reactive_5fmixin_0',['reactive_mixin',['../namespaceentt.html#a7d9d8ddc2e43b7cda372aa52cbcc2725',1,'entt']]], ['reference_1',['reference',['../structentt_1_1input__iterator__pointer.html#a6fcbdecfdb892833e1c89dee1d791f19',1,'entt::input_iterator_pointer::reference'],['../classentt_1_1iota__iterator.html#aa112a5d5894b92b38f7b13368ba34556',1,'entt::iota_iterator::reference']]], ['registry_2',['registry',['../namespaceentt.html#ab8c1f492841aeafa5e75422af3f0cdc4',1,'entt']]], - ['registry_5ftype_3',['registry_type',['../classentt_1_1basic__handle.html#ae0a96c4e65b652ef8e6c0764a31d7707',1,'entt::basic_handle::registry_type'],['../classentt_1_1as__view.html#acb61ac3405aeaef4fb051c8ebb5f0802',1,'entt::as_view::registry_type'],['../classentt_1_1as__group.html#a181c04aa4d53d5fef0f90b33e000f8d1',1,'entt::as_group::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a5dd4fa0484feea38dc6b464b98f2336a',1,'entt::sigh_helper< Registry >::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a2514fd73cb720dce8bde7d8ac2cf164d',1,'entt::sigh_helper< Registry, Type >::registry_type'],['../classentt_1_1basic__sigh__mixin.html#a5eddc32c85c4c0e0d20d5288add24bc3',1,'entt::basic_sigh_mixin::registry_type'],['../classentt_1_1basic__reactive__mixin.html#ad229496ac95debff57e7999efb49bb10',1,'entt::basic_reactive_mixin::registry_type'],['../classentt_1_1basic__observer.html#a49cd0f73cfb9e61aaaaa32eee4a82da4',1,'entt::basic_observer::registry_type'],['../classentt_1_1basic__organizer.html#a204c62d3d8111ed5e0d2c34fa816235c',1,'entt::basic_organizer::registry_type'],['../classentt_1_1basic__snapshot.html#a0c9d161ffb8b94259166b432852efbac',1,'entt::basic_snapshot::registry_type'],['../classentt_1_1basic__snapshot__loader.html#ac462fe9061f89d529833bdbc62919bca',1,'entt::basic_snapshot_loader::registry_type'],['../classentt_1_1basic__continuous__loader.html#ae51ed38dcfbae0c059aeed260b4d7dee',1,'entt::basic_continuous_loader::registry_type']]], - ['result_5ftype_4',['result_type',['../structentt_1_1resource__loader.html#add7a5c71b563bbc139c0983837764dc1',1,'entt::resource_loader::result_type'],['../classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html#a9bca9876e6671a34c6503b7de65402b6',1,'entt::delegate< Ret(Args...)>::result_type']]], + ['registry_5ftype_3',['registry_type',['../classentt_1_1basic__handle.html#ae0a96c4e65b652ef8e6c0764a31d7707',1,'entt::basic_handle::registry_type'],['../classentt_1_1as__view.html#acb61ac3405aeaef4fb051c8ebb5f0802',1,'entt::as_view::registry_type'],['../classentt_1_1as__group.html#a181c04aa4d53d5fef0f90b33e000f8d1',1,'entt::as_group::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_01_4.html#a5dd4fa0484feea38dc6b464b98f2336a',1,'entt::sigh_helper< Registry >::registry_type'],['../structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html#a2514fd73cb720dce8bde7d8ac2cf164d',1,'entt::sigh_helper< Registry, Type >::registry_type'],['../classentt_1_1basic__sigh__mixin.html#a5eddc32c85c4c0e0d20d5288add24bc3',1,'entt::basic_sigh_mixin::registry_type'],['../classentt_1_1basic__reactive__mixin.html#ad229496ac95debff57e7999efb49bb10',1,'entt::basic_reactive_mixin::registry_type'],['../classentt_1_1basic__organizer.html#a204c62d3d8111ed5e0d2c34fa816235c',1,'entt::basic_organizer::registry_type'],['../classentt_1_1basic__snapshot.html#a0c9d161ffb8b94259166b432852efbac',1,'entt::basic_snapshot::registry_type'],['../classentt_1_1basic__snapshot__loader.html#ac462fe9061f89d529833bdbc62919bca',1,'entt::basic_snapshot_loader::registry_type'],['../classentt_1_1basic__continuous__loader.html#ae51ed38dcfbae0c059aeed260b4d7dee',1,'entt::basic_continuous_loader::registry_type']]], + ['result_5ftype_4',['result_type',['../structentt_1_1resource__loader.html#add7a5c71b563bbc139c0983837764dc1',1,'entt::resource_loader']]], ['return_5ftype_5',['return_type',['../structentt_1_1meta__function__descriptor__traits.html#ad210fafe14b4744ef7f1aaafe67e5a83',1,'entt::meta_function_descriptor_traits']]], - ['reverse_5fiterable_6',['reverse_iterable',['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage::reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a34996b779593809edfb11d2fc60a005a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a1fd72c81109540e8f140fdbe3caea9fa',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable']]], - ['reverse_5fiterator_7',['reverse_iterator',['../classentt_1_1dense__set.html#a8b91ff4841d5fc46d02544d71825822a',1,'entt::dense_set::reverse_iterator'],['../classentt_1_1basic__table.html#aa8acbf75a4736d43d8d4e973ea0fe8dd',1,'entt::basic_table::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1f1ebbcf7774e04d4ecc91b6b5a14469',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9bc92cfc49d8a5f02420f9d5ed3f086e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__sparse__set.html#afe62c143e816cf5e12078a607966c003',1,'entt::basic_sparse_set::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage::reverse_iterator'],['../classentt_1_1basic__storage__view.html#a1e9df97e90ca800813415aa9592827be',1,'entt::basic_storage_view::reverse_iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a47200d684b9f5b58d61c2a87e84dc8ad',1,'entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator']]], + ['reverse_5fiterable_6',['reverse_iterable',['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage::reverse_iterable'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a986bb0755284684f0e3492120bcbf416',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterable'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a1fd72c81109540e8f140fdbe3caea9fa',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable'],['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterable'],['../classentt_1_1basic__storage.html#ac0b087048aeab81f0c34f9934d55fa0a',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterable']]], + ['reverse_5fiterator_7',['reverse_iterator',['../classentt_1_1dense__set.html#a8b91ff4841d5fc46d02544d71825822a',1,'entt::dense_set::reverse_iterator'],['../classentt_1_1basic__table.html#aa8acbf75a4736d43d8d4e973ea0fe8dd',1,'entt::basic_table::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_4_00_01get__t_3_01Get_8_8_8_01_4_00_01exclude__t_3_01Exclude_8_8_8_01_4_01_4.html#a1f1ebbcf7774e04d4ecc91b6b5a14469',1,'entt::basic_group< owned_t<>, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__group_3_01owned__t_3_01Owned_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_00_011bc3c06bb47de7bb72ca45b6e209ac72.html#a9bc92cfc49d8a5f02420f9d5ed3f086e',1,'entt::basic_group< owned_t< Owned... >, get_t< Get... >, exclude_t< Exclude... > >::reverse_iterator'],['../classentt_1_1basic__sparse__set.html#afe62c143e816cf5e12078a607966c003',1,'entt::basic_sparse_set::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage::reverse_iterator'],['../classentt_1_1basic__storage__view.html#a1e9df97e90ca800813415aa9592827be',1,'entt::basic_storage_view::reverse_iterator'],['../classentt_1_1basic__view_3_01get__t_3_01Get_01_4_00_01exclude__t_3_4_01_4.html#a47200d684b9f5b58d61c2a87e84dc8ad',1,'entt::basic_view< get_t< Get >, exclude_t<> >::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage< Entity, Entity, Allocator >::reverse_iterator'],['../classentt_1_1basic__storage.html#aad006022c957075831aee9f1a798b485',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::reverse_iterator']]], ['runtime_5fview_8',['runtime_view',['../namespaceentt.html#ae7874d535e3193cbc008ef5c7f02829d',1,'entt']]] ]; diff --git a/search/variables_1.js b/search/variables_1.js index 6594f51f7..c0fde8c48 100644 --- a/search/variables_1.js +++ b/search/variables_1.js @@ -1,6 +1,5 @@ var searchData= [ ['choice_0',['choice',['../namespaceentt.html#a089f75043b082abca3ea144bce44e9ae',1,'entt']]], - ['collector_1',['collector',['../namespaceentt.html#aea8b073b774362fe800d9cce3542927a',1,'entt']]], - ['connect_5farg_2',['connect_arg',['../namespaceentt.html#a142bebb2be3b87a778b1932b3a267a57',1,'entt']]] + ['connect_5farg_1',['connect_arg',['../namespaceentt.html#a142bebb2be3b87a778b1932b3a267a57',1,'entt']]] ]; diff --git a/search/variables_5.js b/search/variables_5.js index 61baeaba2..b8784f7eb 100644 --- a/search/variables_5.js +++ b/search/variables_5.js @@ -1,6 +1,6 @@ var searchData= [ - ['in_5fplace_5fdelete_0',['in_place_delete',['../structentt_1_1component__traits.html#ac3efe50eb183fe2a31b642ade474017f',1,'entt::component_traits']]], + ['in_5fplace_5fdelete_0',['in_place_delete',['../structentt_1_1component__traits.html#a1c3296904a082d8ca44d77344ad002ec',1,'entt::component_traits']]], ['is_5fapplicable_5fr_5fv_1',['is_applicable_r_v',['../namespaceentt.html#ae764716fab8c01b12d3e209004b62647',1,'entt']]], ['is_5fapplicable_5fv_2',['is_applicable_v',['../namespaceentt.html#a4f238620469de3ef2bafdb28fe4657ef',1,'entt']]], ['is_5fcomplete_5fv_3',['is_complete_v',['../namespaceentt.html#a8a96fcc4bc8da9a2aa1cdb0bc15b75c8',1,'entt']]], diff --git a/search/variables_b.js b/search/variables_b.js index ef0e4d043..dfc7aa17e 100644 --- a/search/variables_b.js +++ b/search/variables_b.js @@ -1,4 +1,4 @@ var searchData= [ - ['page_5fsize_0',['page_size',['../structentt_1_1component__traits.html#a8fa4acd0fc9b0c554ea805961a5b6f8b',1,'entt::component_traits::page_size'],['../structentt_1_1entt__traits.html#a187c362626da03111928aff88f43bb83',1,'entt::entt_traits::page_size']]] + ['page_5fsize_0',['page_size',['../structentt_1_1component__traits.html#ae37a0cf9d057ff1ae12261be2abde7b3',1,'entt::component_traits::page_size'],['../structentt_1_1entt__traits.html#a187c362626da03111928aff88f43bb83',1,'entt::entt_traits::page_size']]] ]; diff --git a/search/variables_c.js b/search/variables_c.js index a546b8b00..ea71d6d82 100644 --- a/search/variables_c.js +++ b/search/variables_c.js @@ -2,5 +2,5 @@ var searchData= [ ['size_0',['size',['../structentt_1_1type__list.html#a430c0675bdbcbb40be9b8f13f7259484',1,'entt::type_list::size'],['../structentt_1_1value__list.html#a26bdc12c949cf22068f1bd411acf6cc7',1,'entt::value_list::size']]], ['size_5fof_5fv_1',['size_of_v',['../namespaceentt.html#a15f9a70cbdd5a64f897a012ab2b5834f',1,'entt']]], - ['storage_5fpolicy_2',['storage_policy',['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage::storage_policy'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01co2dd25f12de13e2fda612c38b5da5182f.html#a7611d604fb0e052bbfc6b20f3e4431ac',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::storage_policy'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a27abe6f0df04dd96bf358dcde392551c',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy']]] + ['storage_5fpolicy_2',['storage_policy',['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage::storage_policy'],['../classentt_1_1basic__storage_3_01Type_00_01Entity_00_01Allocator_00_01std_1_1enable__if__t_3_01codc425495d57bad12d99123a94a344005.html#a55b3e6f1dccfe50350c8dc24a3a0524f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::storage_policy'],['../classentt_1_1basic__storage_3_01Entity_00_01Entity_00_01Allocator_01_4.html#a27abe6f0df04dd96bf358dcde392551c',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy'],['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage< Entity, Entity, Allocator >::storage_policy'],['../classentt_1_1basic__storage.html#af42a17a8061be4805ac46ac0a37e915f',1,'entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type, Entity >::page_size==0u > >::storage_policy']]] ]; diff --git a/sigh_8hpp_source.html b/sigh_8hpp_source.html index 162844ad7..0e26e3fc3 100644 --- a/sigh_8hpp_source.html +++ b/sigh_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/signal/sigh.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    sigh.hpp
    @@ -95,112 +103,84 @@ $(function() { codefold.init(0); });
    10#include "fwd.hpp"
    11
    12namespace entt {
    -
    13
    +
    13
    22template<typename Type>
    -
    23class sink;
    -
    24
    +
    23class sink;
    +
    24
    34template<typename Type, typename Allocator>
    -
    35class sigh;
    -
    36
    -
    53template<typename Ret, typename... Args, typename Allocator>
    -
    -
    54class sigh<Ret(Args...), Allocator> {
    -
    55 friend class sink<sigh<Ret(Args...), Allocator>>;
    +
    35class sigh;
    +
    36
    +
    53template<typename Ret, typename... Args, typename Allocator>
    +
    54class sigh<Ret(Args...), Allocator> {
    +
    55 friend class sink<sigh<Ret(Args...), Allocator>>;
    56
    57 using alloc_traits = std::allocator_traits<Allocator>;
    -
    58 using delegate_type = delegate<Ret(Args...)>;
    +
    58 using delegate_type = delegate<Ret(Args...)>;
    59 using container_type = std::vector<delegate_type, typename alloc_traits::template rebind_alloc<delegate_type>>;
    60
    61public:
    -
    63 using allocator_type = Allocator;
    -
    65 using size_type = std::size_t;
    -
    67 using sink_type = sink<sigh<Ret(Args...), Allocator>>;
    -
    68
    -
    - -
    71 : sigh{allocator_type{}} {}
    -
    -
    72
    -
    - -
    78 : calls{allocator} {}
    -
    -
    79
    -
    -
    84 sigh(const sigh &other)
    -
    85 : calls{other.calls} {}
    -
    -
    86
    -
    - -
    93 : calls{other.calls, allocator} {}
    -
    -
    94
    -
    - -
    100 : calls{std::move(other.calls)} {}
    -
    -
    101
    -
    - -
    108 : calls{std::move(other.calls), allocator} {}
    -
    -
    109
    -
    111 ~sigh() = default;
    -
    112
    -
    - -
    119 calls = other.calls;
    +
    63 using allocator_type = Allocator;
    +
    65 using size_type = std::size_t;
    +
    67 using sink_type = sink<sigh<Ret(Args...), Allocator>>;
    +
    68
    +
    70 sigh() noexcept(noexcept(allocator_type{}))
    +
    71 : sigh{allocator_type{}} {}
    +
    72
    +
    77 explicit sigh(const allocator_type &allocator) noexcept
    +
    78 : calls{allocator} {}
    +
    79
    +
    84 sigh(const sigh &other)
    +
    85 : calls{other.calls} {}
    +
    86
    +
    92 sigh(const sigh &other, const allocator_type &allocator)
    +
    93 : calls{other.calls, allocator} {}
    +
    94
    +
    99 sigh(sigh &&other) noexcept
    +
    100 : calls{std::move(other.calls)} {}
    +
    101
    +
    107 sigh(sigh &&other, const allocator_type &allocator)
    +
    108 : calls{std::move(other.calls), allocator} {}
    +
    109
    +
    111 ~sigh() = default;
    +
    112
    +
    118 sigh &operator=(const sigh &other) {
    +
    119 calls = other.calls;
    120 return *this;
    121 }
    -
    -
    122
    -
    -
    128 sigh &operator=(sigh &&other) noexcept {
    -
    129 swap(other);
    +
    122
    +
    128 sigh &operator=(sigh &&other) noexcept {
    +
    129 swap(other);
    130 return *this;
    131 }
    -
    -
    132
    -
    -
    137 void swap(sigh &other) noexcept {
    +
    132
    +
    137 void swap(sigh &other) noexcept {
    138 using std::swap;
    -
    139 swap(calls, other.calls);
    +
    139 swap(calls, other.calls);
    140 }
    -
    -
    141
    -
    - +
    141
    +
    146 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    147 return calls.get_allocator();
    148 }
    -
    -
    149
    -
    - +
    149
    +
    154 [[nodiscard]] size_type size() const noexcept {
    155 return calls.size();
    156 }
    -
    -
    157
    -
    - +
    157
    +
    162 [[nodiscard]] bool empty() const noexcept {
    163 return calls.empty();
    164 }
    -
    -
    165
    -
    -
    173 void publish(Args... args) const {
    -
    174 for(auto pos = calls.size(); pos; --pos) {
    -
    175 calls[pos - 1u](args...);
    +
    165
    +
    173 void publish(Args... args) const {
    +
    174 for(auto pos = calls.size(); pos; --pos) {
    +
    175 calls[pos - 1u](args...);
    176 }
    177 }
    -
    -
    178
    +
    178
    193 template<typename Func>
    -
    -
    194 void collect(Func func, Args... args) const {
    -
    195 for(auto pos = calls.size(); pos; --pos) {
    +
    194 void collect(Func func, Args... args) const {
    +
    195 for(auto pos = calls.size(); pos; --pos) {
    196 if constexpr(std::is_void_v<Ret> || !std::is_invocable_v<Func, Ret>) {
    -
    197 calls[pos - 1u](args...);
    +
    197 calls[pos - 1u](args...);
    198
    199 if constexpr(std::is_invocable_r_v<bool, Func>) {
    200 if(func()) {
    @@ -211,26 +191,24 @@ $(function() { codefold.init(0); });
    205 }
    206 } else {
    207 if constexpr(std::is_invocable_r_v<bool, Func, Ret>) {
    -
    208 if(func(calls[pos - 1u](args...))) {
    +
    208 if(func(calls[pos - 1u](args...))) {
    209 break;
    210 }
    211 } else {
    -
    212 func(calls[pos - 1u](args...));
    +
    212 func(calls[pos - 1u](args...));
    213 }
    214 }
    215 }
    216 }
    -
    217
    218private:
    219 container_type calls;
    220};
    -
    -
    221
    +
    221
    - +
    229class connection {
    230 template<typename>
    -
    231 friend class sink;
    +
    231 friend class sink;
    232
    233 connection(delegate<void(void *)> fn, void *ref)
    234 : disconnect{fn}, signal{ref} {}
    @@ -240,13 +218,13 @@ $(function() { codefold.init(0); });
    239 : signal{} {}
    -
    240
    +
    240
    -
    245 [[nodiscard]] explicit operator bool() const noexcept {
    +
    245 [[nodiscard]] explicit operator bool() const noexcept {
    246 return static_cast<bool>(disconnect);
    247 }
    -
    248
    +
    248
    250 void release() {
    251 if(disconnect) {
    @@ -257,58 +235,58 @@ $(function() { codefold.init(0); });
    256
    257private:
    -
    258 delegate<void(void *)> disconnect;
    +
    258 delegate<void(void *)> disconnect;
    259 void *signal;
    260};
    -
    261
    +
    261
    - +
    273 scoped_connection() = default;
    -
    274
    +
    274
    - -
    280 : conn{other} {}
    + +
    280 : conn{other} {}
    -
    281
    - -
    284
    +
    281
    + +
    284
    - -
    290 : conn{std::exchange(other.conn, {})} {}
    + +
    290 : conn{std::exchange(other.conn, {})} {}
    -
    291
    +
    291
    -
    294 conn.release();
    +
    294 conn.release();
    295 }
    -
    296
    - -
    302
    +
    296
    + +
    302
    - -
    309 conn = std::exchange(other.conn, {});
    + +
    309 conn = std::exchange(other.conn, {});
    310 return *this;
    311 }
    -
    312
    +
    312
    - -
    319 conn = other;
    + +
    319 conn = other;
    320 return *this;
    321 }
    -
    322
    +
    322
    -
    327 [[nodiscard]] explicit operator bool() const noexcept {
    +
    327 [[nodiscard]] explicit operator bool() const noexcept {
    328 return static_cast<bool>(conn);
    329 }
    -
    330
    +
    330
    332 void release() {
    -
    333 conn.release();
    +
    333 conn.release();
    334 }
    335
    @@ -316,132 +294,146 @@ $(function() { codefold.init(0); });
    337 connection conn;
    338};
    -
    339
    -
    359template<typename Ret, typename... Args, typename Allocator>
    -
    -
    360class sink<sigh<Ret(Args...), Allocator>> {
    -
    361 using signal_type = sigh<Ret(Args...), Allocator>;
    -
    362 using delegate_type = typename signal_type::delegate_type;
    +
    339
    +
    359template<typename Ret, typename... Args, typename Allocator>
    +
    360class sink<sigh<Ret(Args...), Allocator>> {
    +
    361 using signal_type = sigh<Ret(Args...), Allocator>;
    +
    362 using delegate_type = typename signal_type::delegate_type;
    363 using difference_type = typename signal_type::container_type::difference_type;
    364
    365 template<auto Candidate, typename Type>
    -
    366 static void release(Type value_or_instance, void *signal) {
    -
    367 sink{*static_cast<signal_type *>(signal)}.disconnect<Candidate>(value_or_instance);
    +
    366 static void release(Type value_or_instance, void *signal) {
    +
    367 sink{*static_cast<signal_type *>(signal)}.disconnect<Candidate>(value_or_instance);
    368 }
    369
    370 template<auto Candidate>
    371 static void release(void *signal) {
    -
    372 sink{*static_cast<signal_type *>(signal)}.disconnect<Candidate>();
    +
    372 sink{*static_cast<signal_type *>(signal)}.disconnect<Candidate>();
    373 }
    374
    375 template<typename Func>
    376 void disconnect_if(Func callback) {
    -
    377 for(auto pos = signal->calls.size(); pos; --pos) {
    -
    378 if(auto &elem = signal->calls[pos - 1u]; callback(elem)) {
    -
    379 elem = std::move(signal->calls.back());
    -
    380 signal->calls.pop_back();
    -
    381 }
    -
    382 }
    -
    383 }
    -
    384
    -
    385public:
    -
    -
    390 sink(sigh<Ret(Args...), Allocator> &ref) noexcept
    -
    391 : signal{&ref} {}
    -
    -
    392
    -
    - -
    398 return signal->calls.empty();
    -
    399 }
    -
    -
    400
    -
    409 template<auto Candidate, typename... Type>
    -
    - - -
    412
    -
    413 delegate_type call{};
    - -
    415 signal->calls.push_back(std::move(call));
    -
    416
    -
    417 delegate<void(void *)> conn{};
    -
    418 conn.template connect<&release<Candidate, Type...>>(value_or_instance...);
    -
    419 return {conn, signal};
    -
    420 }
    -
    -
    421
    -
    429 template<auto Candidate, typename... Type>
    -
    - -
    431 delegate_type call{};
    - -
    433 disconnect_if([&call](const auto &elem) { return elem == call; });
    -
    434 }
    -
    -
    435
    -
    -
    441 void disconnect(const void *value_or_instance) {
    -
    442 ENTT_ASSERT(value_or_instance != nullptr, "Invalid value or instance");
    -
    443 disconnect_if([value_or_instance](const auto &elem) { return elem.data() == value_or_instance; });
    -
    444 }
    -
    -
    445
    -
    -
    447 void disconnect() {
    -
    448 signal->calls.clear();
    -
    449 }
    -
    -
    450
    -
    451private:
    -
    452 signal_type *signal;
    -
    453};
    -
    -
    454
    -
    465template<typename Ret, typename... Args, typename Allocator>
    -
    466sink(sigh<Ret(Args...), Allocator> &) -> sink<sigh<Ret(Args...), Allocator>>;
    -
    467
    -
    468} // namespace entt
    -
    469
    -
    470#endif
    +
    377 auto &ref = signal_or_assert();
    +
    378
    +
    379 for(auto pos = ref.calls.size(); pos; --pos) {
    +
    380 if(auto &elem = ref.calls[pos - 1u]; callback(elem)) {
    +
    381 elem = std::move(ref.calls.back());
    +
    382 ref.calls.pop_back();
    +
    383 }
    +
    384 }
    +
    385 }
    +
    386
    +
    387 [[nodiscard]] auto &signal_or_assert() const noexcept {
    +
    388 ENTT_ASSERT(signal != nullptr, "Invalid pointer to signal");
    +
    389 return *signal;
    +
    390 }
    +
    391
    +
    392public:
    +
    394 sink() noexcept
    +
    395 : signal{} {}
    +
    396
    +
    401 sink(sigh<Ret(Args...), Allocator> &ref) noexcept
    +
    402 : signal{&ref} {}
    +
    403
    +
    408 [[nodiscard]] bool empty() const noexcept {
    +
    409 return signal_or_assert().calls.empty();
    +
    410 }
    +
    411
    +
    417 template<auto Candidate>
    +
    418 connection connect() {
    +
    419 disconnect<Candidate>();
    +
    420
    +
    421 delegate_type call{};
    +
    422 call.template connect<Candidate>();
    +
    423 signal_or_assert().calls.push_back(std::move(call));
    +
    424
    +
    425 delegate<void(void *)> conn{};
    +
    426 conn.template connect<&release<Candidate>>();
    +
    427 return {conn, signal};
    +
    428 }
    +
    429
    +
    446 template<auto Candidate, typename Type>
    +
    447 connection connect(Type &value_or_instance) {
    +
    448 disconnect<Candidate>(value_or_instance);
    +
    449
    +
    450 delegate_type call{};
    +
    451 call.template connect<Candidate>(value_or_instance);
    +
    452 signal_or_assert().calls.push_back(std::move(call));
    +
    453
    +
    454 delegate<void(void *)> conn{};
    +
    455 conn.template connect<&release<Candidate, Type &>>(value_or_instance);
    +
    456 return {conn, signal};
    +
    457 }
    +
    458
    +
    470 template<auto Candidate, typename Type>
    +
    471 connection connect(Type *value_or_instance) {
    +
    472 disconnect<Candidate>(value_or_instance);
    +
    473
    +
    474 delegate_type call{};
    +
    475 call.template connect<Candidate>(value_or_instance);
    +
    476 signal_or_assert().calls.push_back(std::move(call));
    +
    477
    +
    478 delegate<void(void *)> conn{};
    +
    479 conn.template connect<&release<Candidate, Type *>>(value_or_instance);
    +
    480 return {conn, signal};
    +
    481 }
    +
    482
    +
    487 template<auto Candidate>
    +
    488 void disconnect() {
    +
    489 delegate_type call{};
    +
    490 call.template connect<Candidate>();
    +
    491 disconnect_if([&call](const auto &elem) { return elem == call; });
    +
    492 }
    +
    493
    +
    509 template<auto Candidate, typename Type>
    +
    510 void disconnect(Type &value_or_instance) {
    +
    511 delegate_type call{};
    +
    512 call.template connect<Candidate>(value_or_instance);
    +
    513 disconnect_if([&call](const auto &elem) { return elem == call; });
    +
    514 }
    +
    515
    +
    526 template<auto Candidate, typename Type>
    +
    527 void disconnect(Type *value_or_instance) {
    +
    528 delegate_type call{};
    +
    529 call.template connect<Candidate>(value_or_instance);
    +
    530 disconnect_if([&call](const auto &elem) { return elem == call; });
    +
    531 }
    +
    532
    +
    538 void disconnect(const void *value_or_instance) {
    +
    539 ENTT_ASSERT(value_or_instance != nullptr, "Invalid value or instance");
    +
    540 disconnect_if([value_or_instance](const auto &elem) { return elem.data() == value_or_instance; });
    +
    541 }
    +
    542
    +
    544 void disconnect() {
    +
    545 signal_or_assert().calls.clear();
    +
    546 }
    +
    547
    +
    552 [[nodiscard]] explicit operator bool() const noexcept {
    +
    553 return signal != nullptr;
    +
    554 }
    +
    555
    +
    556private:
    +
    557 signal_type *signal;
    +
    558};
    +
    559
    +
    570template<typename Ret, typename... Args, typename Allocator>
    +
    571sink(sigh<Ret(Args...), Allocator> &) -> sink<sigh<Ret(Args...), Allocator>>;
    +
    572
    +
    573} // namespace entt
    +
    574
    +
    575#endif
    Connection class.
    Definition sigh.hpp:229
    connection()
    Default constructor.
    Definition sigh.hpp:238
    void release()
    Breaks the connection.
    Definition sigh.hpp:250
    -
    Utility class to use to send around functions and members.
    Definition delegate.hpp:66
    Basic delegate implementation.
    Definition delegate.hpp:51
    -
    Unmanaged signal handler.
    Definition sigh.hpp:54
    -
    void publish(Args... args) const
    Triggers a signal.
    Definition sigh.hpp:173
    -
    Allocator allocator_type
    Allocator type.
    Definition sigh.hpp:63
    -
    sigh() noexcept(noexcept(allocator_type{}))
    Default constructor.
    Definition sigh.hpp:70
    -
    sigh(const sigh &other)
    Copy constructor.
    Definition sigh.hpp:84
    -
    ~sigh()=default
    Default destructor.
    -
    sigh & operator=(sigh &&other) noexcept
    Move assignment operator.
    Definition sigh.hpp:128
    -
    void swap(sigh &other) noexcept
    Exchanges the contents with those of a given signal handler.
    Definition sigh.hpp:137
    -
    size_type size() const noexcept
    Number of listeners connected to the signal.
    Definition sigh.hpp:154
    -
    sigh(sigh &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition sigh.hpp:107
    -
    sigh(sigh &&other) noexcept
    Move constructor.
    Definition sigh.hpp:99
    -
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition sigh.hpp:146
    -
    sigh(const allocator_type &allocator) noexcept
    Constructs a signal handler with a given allocator.
    Definition sigh.hpp:77
    -
    bool empty() const noexcept
    Returns false if at least a listener is connected to the signal.
    Definition sigh.hpp:162
    -
    std::size_t size_type
    Unsigned integer type.
    Definition sigh.hpp:65
    -
    sigh & operator=(const sigh &other)
    Copy assignment operator.
    Definition sigh.hpp:118
    -
    sigh(const sigh &other, const allocator_type &allocator)
    Allocator-extended copy constructor.
    Definition sigh.hpp:92
    -
    void collect(Func func, Args... args) const
    Collects return values from the listeners.
    Definition sigh.hpp:194
    Unmanaged signal handler.
    Definition fwd.hpp:25
    - -
    void disconnect(const void *value_or_instance)
    Disconnects free functions with payload or bound members from a signal.
    Definition sigh.hpp:441
    -
    sink(sigh< Ret(Args...), Allocator > &ref) noexcept
    Constructs a sink that is allowed to modify a given signal.
    Definition sigh.hpp:390
    -
    bool empty() const noexcept
    Returns false if at least a listener is connected to the sink.
    Definition sigh.hpp:397
    -
    void disconnect()
    Disconnects all the listeners from a signal.
    Definition sigh.hpp:447
    -
    connection connect(Type &&...value_or_instance)
    Connects a free function (with or without payload), a bound or an unbound member to a signal.
    Definition sigh.hpp:410
    -
    void disconnect(Type &&...value_or_instance)
    Disconnects a free function (with or without payload), a bound or an unbound member from a signal.
    Definition sigh.hpp:430
    Sink class.
    Definition fwd.hpp:22
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
    Swaps two compressed pair objects.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs) noexcept
    Swaps two compressed pair objects.
    +
    delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
    Deduction guide.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    +
    @ empty
    Default mode, the object does not own any elements.
    Definition fwd.hpp:13
    sink(sigh< Ret(Args...), Allocator > &) -> sink< sigh< Ret(Args...), Allocator > >
    Deduction guide.
    -
    Scoped connection class.
    Definition sigh.hpp:271
    scoped_connection()=default
    Default constructor.
    void release()
    Breaks the connection.
    Definition sigh.hpp:332
    scoped_connection(scoped_connection &&other) noexcept
    Move constructor.
    Definition sigh.hpp:289
    @@ -454,7 +446,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/signal_2fwd_8hpp_source.html b/signal_2fwd_8hpp_source.html index 6b9a4a2ca..449c03989 100644 --- a/signal_2fwd_8hpp_source.html +++ b/signal_2fwd_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/signal/fwd.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    fwd.hpp
    @@ -91,33 +99,33 @@ $(function() { codefold.init(0); });
    6namespace entt {
    7
    8template<typename>
    -
    9class delegate;
    +
    9class delegate;
    10
    11template<typename = std::allocator<void>>
    -
    12class basic_dispatcher;
    +
    13
    14template<typename, typename = std::allocator<void>>
    -
    15class emitter;
    +
    15class emitter;
    16
    -
    17class connection;
    +
    17class connection;
    18
    -
    19struct scoped_connection;
    +
    20
    21template<typename>
    22class sink;
    23
    24template<typename Type, typename = std::allocator<void>>
    25class sigh;
    -
    26
    - -
    29
    +
    26
    + +
    29
    31template<auto>
    - +
    34 explicit connect_arg_t() = default;
    35};
    -
    36
    +
    36
    41template<auto Candidate>
    43
    @@ -125,17 +133,22 @@ $(function() { codefold.init(0); });
    45
    46#endif
    Basic dispatcher implementation.
    +
    Connection class.
    Definition sigh.hpp:229
    +
    Basic delegate implementation.
    Definition delegate.hpp:51
    +
    General purpose event emitter.
    Definition emitter.hpp:36
    Unmanaged signal handler.
    Definition fwd.hpp:25
    Sink class.
    Definition fwd.hpp:22
    EnTT default namespace.
    Definition dense_map.hpp:22
    +
    basic_dispatcher<> dispatcher
    Alias declaration for the most common use case.
    Definition fwd.hpp:28
    constexpr connect_arg_t< Candidate > connect_arg
    Constant of type connect_arg_t used to disambiguate calls.
    Definition fwd.hpp:42
    -
    delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)> > >
    Deduction guide.
    Disambiguation tag for constructors and the like.
    Definition fwd.hpp:32
    connect_arg_t()=default
    Default constructor.
    +
    Scoped connection class.
    Definition sigh.hpp:271
    +
    diff --git a/snapshot_8hpp_source.html b/snapshot_8hpp_source.html index bdee1a0da..d58c54721 100644 --- a/snapshot_8hpp_source.html +++ b/snapshot_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/snapshot.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    snapshot.hpp
    @@ -100,100 +108,101 @@ $(function() { codefold.init(0); });
    15#include "view.hpp"
    16
    17namespace entt {
    -
    18
    +
    18
    20namespace internal {
    21
    22template<typename Registry>
    23void orphans(Registry &registry) {
    24 auto &storage = registry.template storage<typename Registry::entity_type>();
    25
    -
    26 for(auto entt: storage) {
    -
    27 if(registry.orphan(entt)) {
    -
    28 storage.erase(entt);
    +
    26 for(auto entt: storage) {
    +
    27 if(registry.orphan(entt)) {
    +
    28 storage.erase(entt);
    29 }
    30 }
    31}
    32
    33} // namespace internal
    +
    35
    46template<typename Registry>
    - +
    48 static_assert(!std::is_const_v<Registry>, "Non-const registry type required");
    - +
    50
    51public:
    - -
    55 using entity_type = typename registry_type::entity_type;
    -
    56
    +
    53 using registry_type = Registry;
    + +
    56
    - -
    62 : reg{&source} {}
    +
    61 basic_snapshot(const registry_type &source) noexcept
    +
    62 : reg{&source} {}
    -
    63
    -
    65 basic_snapshot(const basic_snapshot &) = delete;
    -
    66
    - -
    69
    - -
    72
    - -
    78
    - -
    84
    - +
    63
    +
    65 basic_snapshot(const basic_snapshot &) = delete;
    +
    66
    +
    68 basic_snapshot(basic_snapshot &&) noexcept = default;
    +
    69
    +
    71 ~basic_snapshot() = default;
    +
    72
    +
    77 basic_snapshot &operator=(const basic_snapshot &) = delete;
    +
    78
    +
    83 basic_snapshot &operator=(basic_snapshot &&) noexcept = default;
    +
    84
    +
    93 template<typename Type, typename Archive>
    -
    94 const basic_snapshot &get(Archive &archive, const id_type id = type_hash<Type>::value()) const {
    -
    95 if(const auto *storage = reg->template storage<Type>(id); storage) {
    -
    96 const typename registry_type::common_type &base = *storage;
    +
    94 const basic_snapshot &get(Archive &archive, const id_type id = type_hash<Type>::value()) const {
    +
    95 if(const auto *storage = reg->template storage<Type>(id); storage) {
    +
    96 const typename registry_type::common_type &base = *storage;
    97
    - +
    98 archive(static_cast<typename traits_type::entity_type>(storage->size()));
    99
    -
    100 if constexpr(std::is_same_v<Type, entity_type>) {
    - +
    100 if constexpr(std::is_same_v<Type, entity_type>) {
    +
    101 archive(static_cast<typename traits_type::entity_type>(storage->free_list()));
    102
    -
    103 for(auto first = base.rbegin(), last = base.rend(); first != last; ++first) {
    -
    104 archive(*first);
    +
    103 for(auto first = base.rbegin(), last = base.rend(); first != last; ++first) {
    +
    104 archive(*first);
    105 }
    106 } else if constexpr(registry_type::template storage_for_type<Type>::storage_policy == deletion_policy::in_place) {
    -
    107 for(auto it = base.rbegin(), last = base.rend(); it != last; ++it) {
    -
    108 if(const auto entt = *it; entt == tombstone) {
    -
    109 archive(static_cast<entity_type>(null));
    -
    110 } else {
    -
    111 archive(entt);
    -
    112 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, storage->get_as_tuple(entt));
    +
    107 for(auto it = base.rbegin(), last = base.rend(); it != last; ++it) {
    +
    108 if(const auto entt = *it; entt == tombstone) {
    +
    109 archive(static_cast<entity_type>(null));
    +
    110 } else {
    +
    111 archive(entt);
    +
    112 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, storage->get_as_tuple(entt));
    113 }
    114 }
    115 } else {
    -
    116 for(auto elem: storage->reach()) {
    -
    117 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, elem);
    +
    116 for(auto elem: storage->reach()) {
    +
    117 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, elem);
    118 }
    119 }
    120 } else {
    - +
    121 archive(typename traits_type::entity_type{});
    122 }
    123
    124 return *this;
    125 }
    -
    126
    +
    126
    139 template<typename Type, typename Archive, typename It>
    -
    140 const basic_snapshot &get(Archive &archive, It first, It last, const id_type id = type_hash<Type>::value()) const {
    +
    140 const basic_snapshot &get(Archive &archive, It first, It last, const id_type id = type_hash<Type>::value()) const {
    141 static_assert(!std::is_same_v<Type, entity_type>, "Entity types not supported");
    142
    -
    143 if(const auto *storage = reg->template storage<Type>(id); storage && !storage->empty()) {
    -
    144 archive(static_cast<typename traits_type::entity_type>(std::distance(first, last)));
    +
    143 if(const auto *storage = reg->template storage<Type>(id); storage && !storage->empty()) {
    +
    144 archive(static_cast<typename traits_type::entity_type>(std::distance(first, last)));
    145
    146 for(; first != last; ++first) {
    -
    147 if(const auto entt = *first; storage->contains(entt)) {
    -
    148 archive(entt);
    -
    149 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, storage->get_as_tuple(entt));
    +
    147 if(const auto entt = *first; storage->contains(entt)) {
    +
    148 archive(entt);
    +
    149 std::apply([&archive](auto &&...args) { (archive(std::forward<decltype(args)>(args)), ...); }, storage->get_as_tuple(entt));
    150 } else {
    -
    151 archive(static_cast<entity_type>(null));
    +
    151 archive(static_cast<entity_type>(null));
    152 }
    153 }
    154 } else {
    - +
    155 archive(typename traits_type::entity_type{});
    156 }
    157
    158 return *this;
    @@ -201,322 +210,313 @@ $(function() { codefold.init(0); });
    160
    161private:
    -
    162 const registry_type *reg;
    +
    162 const registry_type *reg;
    163};
    -
    164
    +
    164
    175template<typename Registry>
    - +
    177 static_assert(!std::is_const_v<Registry>, "Non-const registry type required");
    - +
    179
    180public:
    - -
    184 using entity_type = typename registry_type::entity_type;
    -
    185
    +
    182 using registry_type = Registry;
    + +
    185
    - -
    191 : reg{&source} {
    + +
    191 : reg{&source} {
    192 // restoring a snapshot as a whole requires a clean registry
    -
    193 ENTT_ASSERT(reg->template storage<entity_type>().free_list() == 0u, "Registry must be empty");
    +
    193 ENTT_ASSERT(reg->template storage<entity_type>().free_list() == 0u, "Registry must be empty");
    194 }
    -
    195
    - -
    198
    - -
    201
    - -
    204
    - -
    210
    - -
    216
    - +
    195
    + +
    198
    + +
    201
    + +
    204
    +
    209 basic_snapshot_loader &operator=(const basic_snapshot_loader &) = delete;
    +
    210
    +
    215 basic_snapshot_loader &operator=(basic_snapshot_loader &&) noexcept = default;
    +
    216
    +
    225 template<typename Type, typename Archive>
    - -
    227 auto &storage = reg->template storage<Type>(id);
    +
    226 basic_snapshot_loader &get(Archive &archive, const id_type id = type_hash<Type>::value()) {
    +
    227 auto &storage = reg->template storage<Type>(id);
    228 typename traits_type::entity_type length{};
    229
    -
    230 archive(length);
    +
    230 archive(length);
    231
    232 if constexpr(std::is_same_v<Type, entity_type>) {
    233 typename traits_type::entity_type count{};
    -
    234
    -
    235 storage.reserve(length);
    -
    236 archive(count);
    -
    237
    -
    238 for(entity_type entity = null; length; --length) {
    - - -
    241 }
    -
    242
    -
    243 storage.free_list(count);
    -
    244 } else {
    -
    245 auto &other = reg->template storage<entity_type>();
    - -
    247
    -
    248 while(length--) {
    -
    249 if(archive(entt); entt != null) {
    -
    250 const auto entity = other.contains(entt) ? entt : other.emplace(entt);
    -
    251 ENTT_ASSERT(entity == entt, "Entity not available for use");
    -
    252
    -
    253 if constexpr(std::tuple_size_v<decltype(storage.get_as_tuple({}))> == 0u) {
    - -
    255 } else {
    -
    256 Type elem{};
    -
    257 archive(elem);
    -
    258 storage.emplace(entity, std::move(elem));
    -
    259 }
    -
    260 }
    -
    261 }
    -
    262 }
    -
    263
    -
    264 return *this;
    -
    265 }
    -
    +
    234 entity_type placeholder{};
    +
    235
    +
    236 storage.reserve(length);
    +
    237 archive(count);
    +
    238
    +
    239 for(entity_type entity = null; length; --length) {
    +
    240 archive(entity);
    +
    241 storage.generate(entity);
    +
    242 placeholder = (entity > placeholder) ? entity : placeholder;
    +
    243 }
    +
    244
    +
    245 storage.start_from(traits_type::next(placeholder));
    +
    246 storage.free_list(count);
    +
    247 } else {
    +
    248 auto &other = reg->template storage<entity_type>();
    + +
    250
    +
    251 while(length--) {
    +
    252 if(archive(entt); entt != null) {
    +
    253 const auto entity = other.contains(entt) ? entt : other.generate(entt);
    +
    254 ENTT_ASSERT(entity == entt, "Entity not available for use");
    +
    255
    +
    256 if constexpr(std::tuple_size_v<decltype(storage.get_as_tuple({}))> == 0u) {
    +
    257 storage.emplace(entity);
    +
    258 } else {
    +
    259 Type elem{};
    +
    260 archive(elem);
    +
    261 storage.emplace(entity, std::move(elem));
    +
    262 }
    +
    263 }
    +
    264 }
    +
    265 }
    266
    -
    - -
    278 internal::orphans(*reg);
    -
    279 return *this;
    -
    280 }
    +
    267 return *this;
    +
    268 }
    -
    281
    -
    282private:
    -
    283 registry_type *reg;
    -
    284};
    +
    269
    +
    + +
    281 internal::orphans(*reg);
    +
    282 return *this;
    +
    283 }
    -
    285
    -
    302template<typename Registry>
    -
    - -
    304 static_assert(!std::is_const_v<Registry>, "Non-const registry type required");
    - -
    306
    -
    307 void restore(typename Registry::entity_type entt) {
    -
    308 if(const auto entity = to_entity(entt); remloc.contains(entity) && remloc[entity].first == entt) {
    -
    309 if(!reg->valid(remloc[entity].second)) {
    -
    310 remloc[entity].second = reg->create();
    -
    311 }
    -
    312 } else {
    -
    313 remloc.insert_or_assign(entity, std::make_pair(entt, reg->create()));
    -
    314 }
    -
    315 }
    -
    316
    -
    317 template<typename Container>
    -
    318 auto update(int, Container &container) -> decltype(typename Container::mapped_type{}, void()) {
    -
    319 // map like container
    - -
    321
    -
    322 for(auto &&pair: container) {
    -
    323 using first_type = std::remove_const_t<typename std::decay_t<decltype(pair)>::first_type>;
    -
    324 using second_type = typename std::decay_t<decltype(pair)>::second_type;
    -
    325
    -
    326 if constexpr(std::is_same_v<first_type, entity_type> && std::is_same_v<second_type, entity_type>) {
    -
    327 other.emplace(map(pair.first), map(pair.second));
    -
    328 } else if constexpr(std::is_same_v<first_type, entity_type>) {
    -
    329 other.emplace(map(pair.first), std::move(pair.second));
    -
    330 } else {
    -
    331 static_assert(std::is_same_v<second_type, entity_type>, "Neither the key nor the value are of entity type");
    -
    332 other.emplace(std::move(pair.first), map(pair.second));
    -
    333 }
    -
    334 }
    -
    335
    -
    336 using std::swap;
    - -
    338 }
    -
    339
    -
    340 template<typename Container>
    -
    341 auto update(char, Container &container) -> decltype(typename Container::value_type{}, void()) {
    -
    342 // vector like container
    -
    343 static_assert(std::is_same_v<typename Container::value_type, entity_type>, "Invalid value type");
    -
    344
    -
    345 for(auto &&entt: container) {
    -
    346 entt = map(entt);
    -
    347 }
    -
    348 }
    -
    349
    -
    350 template<typename Component, typename Other, typename Member>
    -
    351 void update([[maybe_unused]] Component &instance, [[maybe_unused]] Member Other::*member) {
    -
    352 if constexpr(!std::is_same_v<Component, Other>) {
    -
    353 return;
    -
    354 } else if constexpr(std::is_same_v<Member, entity_type>) {
    -
    355 instance.*member = map(instance.*member);
    -
    356 } else {
    -
    357 // maybe a container? let's try...
    -
    358 update(0, instance.*member);
    -
    359 }
    -
    360 }
    -
    361
    -
    362public:
    - -
    366 using entity_type = typename registry_type::entity_type;
    -
    367
    -
    - -
    373 : remloc{source.get_allocator()},
    -
    374 reg{&source} {}
    +
    284
    +
    285private:
    +
    286 registry_type *reg;
    +
    287};
    -
    375
    - -
    378
    - -
    381
    - -
    384
    - -
    390
    - -
    396
    - -
    - -
    413 auto &storage = reg->template storage<Type>(id);
    -
    414 typename traits_type::entity_type length{};
    - -
    416
    -
    417 archive(length);
    -
    418
    -
    419 if constexpr(std::is_same_v<Type, entity_type>) {
    - +
    288
    +
    305template<typename Registry>
    +
    + +
    307 static_assert(!std::is_const_v<Registry>, "Non-const registry type required");
    + +
    309
    +
    310 void restore(typename Registry::entity_type entt) {
    +
    311 if(const auto entity = to_entity(entt); remloc.contains(entity) && remloc[entity].first == entt) {
    +
    312 if(!reg->valid(remloc[entity].second)) {
    +
    313 remloc[entity].second = reg->create();
    +
    314 }
    +
    315 } else {
    +
    316 remloc.insert_or_assign(entity, std::make_pair(entt, reg->create()));
    +
    317 }
    +
    318 }
    +
    319
    +
    320 template<typename Container>
    +
    321 auto update(int, Container &container) -> decltype(typename Container::mapped_type{}, void()) {
    +
    322 // map like container
    +
    323 Container other;
    +
    324
    +
    325 for(auto &&pair: container) {
    +
    326 using first_type = std::remove_const_t<typename std::decay_t<decltype(pair)>::first_type>;
    +
    327 using second_type = typename std::decay_t<decltype(pair)>::second_type;
    +
    328
    +
    329 if constexpr(std::is_same_v<first_type, entity_type> && std::is_same_v<second_type, entity_type>) {
    +
    330 other.emplace(map(pair.first), map(pair.second));
    +
    331 } else if constexpr(std::is_same_v<first_type, entity_type>) {
    +
    332 other.emplace(map(pair.first), std::move(pair.second));
    +
    333 } else {
    +
    334 static_assert(std::is_same_v<second_type, entity_type>, "Neither the key nor the value are of entity type");
    +
    335 other.emplace(std::move(pair.first), map(pair.second));
    +
    336 }
    +
    337 }
    +
    338
    +
    339 using std::swap;
    +
    340 swap(container, other);
    +
    341 }
    +
    342
    +
    343 template<typename Container>
    +
    344 auto update(char, Container &container) -> decltype(typename Container::value_type{}, void()) {
    +
    345 // vector like container
    +
    346 static_assert(std::is_same_v<typename Container::value_type, entity_type>, "Invalid value type");
    +
    347
    +
    348 for(auto &&entt: container) {
    +
    349 entt = map(entt);
    +
    350 }
    +
    351 }
    +
    352
    +
    353 template<typename Component, typename Other, typename Member>
    +
    354 void update([[maybe_unused]] Component &instance, [[maybe_unused]] Member Other::*member) {
    +
    355 if constexpr(!std::is_same_v<Component, Other>) {
    +
    356 return;
    +
    357 } else if constexpr(std::is_same_v<Member, entity_type>) {
    +
    358 instance.*member = map(instance.*member);
    +
    359 } else {
    +
    360 // maybe a container? let's try...
    +
    361 update(0, instance.*member);
    +
    362 }
    +
    363 }
    +
    364
    +
    365public:
    +
    367 using registry_type = Registry;
    + +
    370
    +
    + +
    376 : remloc{source.get_allocator()},
    +
    377 reg{&source} {}
    +
    +
    378
    + +
    381
    + +
    384
    + +
    387
    + +
    393
    +
    398 basic_continuous_loader &operator=(basic_continuous_loader &&) noexcept = default;
    +
    399
    +
    414 template<typename Type, typename Archive>
    +
    +
    415 basic_continuous_loader &get(Archive &archive, const id_type id = type_hash<Type>::value()) {
    +
    416 auto &storage = reg->template storage<Type>(id);
    +
    417 typename traits_type::entity_type length{};
    + +
    419
    +
    420 archive(length);
    421
    -
    422 storage.reserve(length);
    - +
    422 if constexpr(std::is_same_v<Type, entity_type>) {
    +
    423 typename traits_type::entity_type in_use{};
    424
    -
    425 for(std::size_t pos{}; pos < in_use; ++pos) {
    -
    426 archive(entt);
    -
    427 restore(entt);
    -
    428 }
    -
    429
    -
    430 for(std::size_t pos = in_use; pos < length; ++pos) {
    -
    431 archive(entt);
    +
    425 storage.reserve(length);
    +
    426 archive(in_use);
    +
    427
    +
    428 for(std::size_t pos{}; pos < in_use; ++pos) {
    +
    429 archive(entt);
    +
    430 restore(entt);
    +
    431 }
    432
    -
    433 if(const auto entity = to_entity(entt); remloc.contains(entity)) {
    -
    434 if(reg->valid(remloc[entity].second)) {
    -
    435 reg->destroy(remloc[entity].second);
    -
    436 }
    -
    437
    -
    438 remloc.erase(entity);
    -
    439 }
    -
    440 }
    -
    441 } else {
    -
    442 for(auto &&ref: remloc) {
    -
    443 storage.remove(ref.second.second);
    -
    444 }
    -
    445
    -
    446 while(length--) {
    -
    447 if(archive(entt); entt != null) {
    -
    448 restore(entt);
    -
    449
    -
    450 if constexpr(std::tuple_size_v<decltype(storage.get_as_tuple({}))> == 0u) {
    - -
    452 } else {
    -
    453 Type elem{};
    -
    454 archive(elem);
    -
    455 storage.emplace(map(entt), std::move(elem));
    -
    456 }
    -
    457 }
    -
    458 }
    -
    459 }
    -
    460
    -
    461 return *this;
    -
    462 }
    -
    +
    433 for(std::size_t pos = in_use; pos < length; ++pos) {
    +
    434 archive(entt);
    +
    435
    +
    436 if(const auto entity = to_entity(entt); remloc.contains(entity)) {
    +
    437 if(reg->valid(remloc[entity].second)) {
    +
    438 reg->destroy(remloc[entity].second);
    +
    439 }
    +
    440
    +
    441 remloc.erase(entity);
    +
    442 }
    +
    443 }
    +
    444 } else {
    +
    445 for(auto &&ref: remloc) {
    +
    446 storage.remove(ref.second.second);
    +
    447 }
    +
    448
    +
    449 while(length--) {
    +
    450 if(archive(entt); entt != null) {
    +
    451 restore(entt);
    +
    452
    +
    453 if constexpr(std::tuple_size_v<decltype(storage.get_as_tuple({}))> == 0u) {
    +
    454 storage.emplace(map(entt));
    +
    455 } else {
    +
    456 Type elem{};
    +
    457 archive(elem);
    +
    458 storage.emplace(map(entt), std::move(elem));
    +
    459 }
    +
    460 }
    +
    461 }
    +
    462 }
    463
    -
    - -
    475 internal::orphans(*reg);
    -
    476 return *this;
    -
    477 }
    +
    464 return *this;
    +
    465 }
    -
    478
    -
    -
    484 [[nodiscard]] bool contains(entity_type entt) const noexcept {
    -
    485 const auto it = remloc.find(to_entity(entt));
    -
    486 return it != remloc.cend() && it->second.first == entt;
    -
    487 }
    +
    466
    +
    + +
    478 internal::orphans(*reg);
    +
    479 return *this;
    +
    480 }
    -
    488
    -
    - -
    495 if(const auto it = remloc.find(to_entity(entt)); it != remloc.cend() && it->second.first == entt) {
    -
    496 return it->second.second;
    -
    497 }
    -
    498
    -
    499 return null;
    -
    500 }
    +
    481
    +
    +
    487 [[nodiscard]] bool contains(entity_type entt) const noexcept {
    +
    488 const auto it = remloc.find(to_entity(entt));
    +
    489 return it != remloc.cend() && it->second.first == entt;
    +
    490 }
    +
    491
    +
    +
    497 [[nodiscard]] entity_type map(entity_type entt) const noexcept {
    +
    498 if(const auto it = remloc.find(to_entity(entt)); it != remloc.cend() && it->second.first == entt) {
    +
    499 return it->second.second;
    +
    500 }
    501
    -
    502private:
    - -
    504 registry_type *reg;
    -
    505};
    +
    502 return null;
    +
    503 }
    -
    506
    -
    507} // namespace entt
    -
    508
    -
    509#endif
    -
    Utility class for continuous loading.
    Definition snapshot.hpp:303
    +
    504
    +
    505private:
    + +
    507 registry_type *reg;
    +
    508};
    +
    +
    509
    +
    510} // namespace entt
    +
    511
    +
    512#endif
    basic_continuous_loader(const basic_continuous_loader &)=delete
    Default copy constructor, deleted on purpose.
    -
    basic_continuous_loader(registry_type &source) noexcept
    Constructs an instance that is bound to a given registry.
    Definition snapshot.hpp:372
    +
    basic_continuous_loader(registry_type &source) noexcept
    Constructs an instance that is bound to a given registry.
    Definition snapshot.hpp:375
    basic_continuous_loader(basic_continuous_loader &&) noexcept=default
    Default move constructor.
    -
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition snapshot.hpp:366
    -
    bool contains(entity_type entt) const noexcept
    Tests if a loader knows about a given entity.
    Definition snapshot.hpp:484
    -
    entity_type map(entity_type entt) const noexcept
    Returns the identifier to which an entity refers.
    Definition snapshot.hpp:494
    -
    basic_continuous_loader & orphans()
    Destroys those entities that have no elements.
    Definition snapshot.hpp:474
    - -
    typename Traits::entity_type entity_type
    Underlying entity type.
    Definition entity.hpp:71
    -
    Utility class to restore a snapshot as a whole.
    Definition snapshot.hpp:176
    +
    typename registry_type::entity_type entity_type
    Definition snapshot.hpp:369
    +
    bool contains(entity_type entt) const noexcept
    Tests if a loader knows about a given entity.
    Definition snapshot.hpp:487
    +
    entity_type map(entity_type entt) const noexcept
    Returns the identifier to which an entity refers.
    Definition snapshot.hpp:497
    +
    basic_continuous_loader & get(Archive &archive, const id_type id=type_hash< Type >::value())
    Definition snapshot.hpp:415
    +
    basic_continuous_loader & orphans()
    Destroys those entities that have no elements.
    Definition snapshot.hpp:477
    + +
    typename internal::entt_traits< Type >::entity_type entity_type
    Definition entity.hpp:71
    +
    static constexpr value_type next(const value_type value) noexcept
    Definition entity.hpp:116
    +
    bool orphan(const entity_type entt) const
    Checks if an entity has elements assigned.
    Definition registry.hpp:978
    +
    typename traits_type::value_type entity_type
    Definition registry.hpp:304
    basic_snapshot_loader(registry_type &source) noexcept
    Constructs an instance that is bound to a given registry.
    Definition snapshot.hpp:190
    -
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition snapshot.hpp:184
    +
    typename registry_type::entity_type entity_type
    Definition snapshot.hpp:184
    +
    basic_snapshot_loader & get(Archive &archive, const id_type id=type_hash< Type >::value())
    Definition snapshot.hpp:226
    basic_snapshot_loader(basic_snapshot_loader &&) noexcept=default
    Default move constructor.
    - -
    basic_snapshot_loader & orphans()
    Destroys those entities that have no elements.
    Definition snapshot.hpp:277
    + +
    basic_snapshot_loader & orphans()
    Destroys those entities that have no elements.
    Definition snapshot.hpp:280
    basic_snapshot_loader(const basic_snapshot_loader &)=delete
    Default copy constructor, deleted on purpose.
    -
    Utility class to create snapshots from a registry.
    Definition snapshot.hpp:47
    basic_snapshot(const registry_type &source) noexcept
    Constructs an instance that is bound to a given registry.
    Definition snapshot.hpp:61
    -
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition snapshot.hpp:55
    - +
    typename registry_type::entity_type entity_type
    Definition snapshot.hpp:55
    +
    basic_snapshot(const basic_snapshot &)=delete
    Default copy constructor, deleted on purpose.
    +
    const basic_snapshot & get(Archive &archive, const id_type id=type_hash< Type >::value()) const
    Definition snapshot.hpp:94
    const basic_snapshot & get(Archive &archive, It first, It last, const id_type id=type_hash< Type >::value()) const
    Serializes all elements of a type with associated identifiers for the entities in a range.
    Definition snapshot.hpp:140
    basic_snapshot(basic_snapshot &&) noexcept=default
    Default move constructor.
    -
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a sparse set contains an entity.
    -
    size_type free_list() const noexcept
    Returns data on the free list whose meaning depends on the mode.
    -
    bool empty() const noexcept
    Checks whether a sparse set is empty.
    -
    bool remove(const entity_type entt)
    Removes an entity from a sparse set if it exists.
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:769
    -
    void reserve(const size_type cap) override
    Increases the capacity of a storage.
    Definition storage.hpp:512
    -
    value_type & emplace(const entity_type entt, Args &&...args)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:675
    -
    std::tuple< const value_type & > get_as_tuple(const entity_type entt) const noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:653
    -
    Associative container for key-value pairs with unique keys.
    -
    bool contains(const key_type &key) const
    Checks if the container contains an element with a given key.
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    -
    iterator find(const key_type &key)
    Finds an element with a given key.
    -
    iterator erase(const_iterator pos)
    Removes an element from a given position.
    -
    std::pair< iterator, bool > insert_or_assign(const key_type &key, Arg &&value)
    Inserts an element into the container or assigns to the current element if the key already exists.
    +
    void erase(const entity_type entt)
    Erases an entity from a sparse set.
    +
    Associative container for key-value pairs with unique keys.
    EnTT default namespace.
    Definition dense_map.hpp:22
    entity
    Default entity identifier.
    Definition fwd.hpp:14
    constexpr entt_traits< Entity >::entity_type to_entity(const Entity value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:188
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs) noexcept
    Swaps two compressed pair objects.
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    -
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    -
    constexpr void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
    Swaps two compressed pair objects.
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:93
    -
    @ in_place
    In-place deletion policy.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    -
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:76
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    +
    basic_registry<> registry
    Alias declaration for the most common use case.
    Definition fwd.hpp:95
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    Entity traits.
    Definition entity.hpp:163
    Type hash.
    Definition type_info.hpp:92
    +
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    +
    diff --git a/sparse__set_8hpp_source.html b/sparse__set_8hpp_source.html index fbd135833..e8c5a3551 100644 --- a/sparse__set_8hpp_source.html +++ b/sparse__set_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/sparse_set.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    sparse_set.hpp
    @@ -101,7 +109,7 @@ $(function() { codefold.init(0); });
    16#include "fwd.hpp"
    17
    18namespace entt {
    -
    19
    +
    19
    21namespace internal {
    22
    23template<typename Container>
    @@ -125,7 +133,7 @@ $(function() { codefold.init(0); });
    41 }
    42
    43 constexpr sparse_set_iterator operator++(int) noexcept {
    -
    44 sparse_set_iterator orig = *this;
    +
    44 const sparse_set_iterator orig = *this;
    45 return ++(*this), orig;
    46 }
    47
    @@ -134,7 +142,7 @@ $(function() { codefold.init(0); });
    50 }
    51
    52 constexpr sparse_set_iterator operator--(int) noexcept {
    -
    53 sparse_set_iterator orig = *this;
    +
    53 const sparse_set_iterator orig = *this;
    54 return operator--(), orig;
    55 }
    56
    @@ -157,7 +165,7 @@ $(function() { codefold.init(0); });
    73 }
    74
    75 [[nodiscard]] constexpr reference operator[](const difference_type value) const noexcept {
    -
    76 return (*packed)[index() - value];
    +
    76 return (*packed)[static_cast<typename Container::size_type>(index() - value)];
    77 }
    78
    79 [[nodiscard]] constexpr pointer operator->() const noexcept {
    @@ -217,801 +225,830 @@ $(function() { codefold.init(0); });
    133}
    134
    135} // namespace internal
    +
    137
    157template<typename Entity, typename Allocator>
    - +
    159 using alloc_traits = std::allocator_traits<Allocator>;
    160 static_assert(std::is_same_v<typename alloc_traits::value_type, Entity>, "Invalid value type");
    161 using sparse_container_type = std::vector<typename alloc_traits::pointer, typename alloc_traits::template rebind_alloc<typename alloc_traits::pointer>>;
    162 using packed_container_type = std::vector<Entity, Allocator>;
    - +
    163 using traits_type = entt_traits<Entity>;
    164
    165 static constexpr auto max_size = static_cast<std::size_t>(traits_type::to_entity(null));
    166
    -
    167 [[nodiscard]] auto policy_to_head() const noexcept {
    -
    168 return static_cast<size_type>(max_size * static_cast<decltype(max_size)>(mode != deletion_policy::swap_only));
    -
    169 }
    -
    170
    -
    171 [[nodiscard]] auto sparse_ptr(const Entity entt) const {
    -
    172 const auto pos = static_cast<size_type>(traits_type::to_entity(entt));
    -
    173 const auto page = pos / traits_type::page_size;
    -
    174 return (page < sparse.size() && sparse[page]) ? (sparse[page] + fast_mod(pos, traits_type::page_size)) : nullptr;
    -
    175 }
    -
    176
    -
    177 [[nodiscard]] auto &sparse_ref(const Entity entt) const {
    -
    178 ENTT_ASSERT(sparse_ptr(entt), "Invalid element");
    -
    179 const auto pos = static_cast<size_type>(traits_type::to_entity(entt));
    - -
    181 }
    -
    182
    -
    183 [[nodiscard]] auto to_iterator(const Entity entt) const {
    -
    184 return --(end() - index(entt));
    -
    185 }
    -
    186
    -
    187 [[nodiscard]] auto &assure_at_least(const Entity entt) {
    -
    188 const auto pos = static_cast<size_type>(traits_type::to_entity(entt));
    -
    189 const auto page = pos / traits_type::page_size;
    -
    190
    -
    191 if(!(page < sparse.size())) {
    -
    192 sparse.resize(page + 1u, nullptr);
    -
    193 }
    -
    194
    -
    195 if(!sparse[page]) {
    -
    196 constexpr entity_type init = null;
    -
    197 auto page_allocator{packed.get_allocator()};
    -
    198 sparse[page] = alloc_traits::allocate(page_allocator, traits_type::page_size);
    -
    199 std::uninitialized_fill(sparse[page], sparse[page] + traits_type::page_size, init);
    -
    200 }
    -
    201
    -
    202 return sparse[page][fast_mod(pos, traits_type::page_size)];
    -
    203 }
    -
    204
    -
    205 void release_sparse_pages() {
    -
    206 auto page_allocator{packed.get_allocator()};
    -
    207
    -
    208 for(auto &&page: sparse) {
    -
    209 if(page != nullptr) {
    -
    210 std::destroy(page, page + traits_type::page_size);
    -
    211 alloc_traits::deallocate(page_allocator, page, traits_type::page_size);
    -
    212 page = nullptr;
    -
    213 }
    -
    214 }
    -
    215 }
    +
    167 // it could be auto but gcc complains and emits a warning due to a false positive
    +
    168 [[nodiscard]] std::size_t policy_to_head() const noexcept {
    +
    169 return static_cast<size_type>(max_size * static_cast<std::remove_const_t<decltype(max_size)>>(mode != deletion_policy::swap_only));
    +
    170 }
    +
    171
    +
    172 [[nodiscard]] auto entity_to_pos(const Entity entt) const noexcept {
    +
    173 return static_cast<size_type>(traits_type::to_entity(entt));
    +
    174 }
    +
    175
    +
    176 [[nodiscard]] auto pos_to_page(const std::size_t pos) const noexcept {
    +
    177 return static_cast<size_type>(pos / traits_type::page_size);
    +
    178 }
    +
    179
    +
    180 [[nodiscard]] auto sparse_ptr(const Entity entt) const {
    +
    181 const auto pos = entity_to_pos(entt);
    +
    182 const auto page = pos_to_page(pos);
    +
    183 return (page < sparse.size() && sparse[page]) ? (sparse[page] + fast_mod(pos, traits_type::page_size)) : nullptr;
    +
    184 }
    +
    185
    +
    186 [[nodiscard]] auto &sparse_ref(const Entity entt) const {
    +
    187 ENTT_ASSERT(sparse_ptr(entt), "Invalid element");
    +
    188 const auto pos = entity_to_pos(entt);
    +
    189 return sparse[pos_to_page(pos)][fast_mod(pos, traits_type::page_size)];
    +
    190 }
    +
    191
    +
    192 [[nodiscard]] auto to_iterator(const Entity entt) const {
    +
    193 return --(end() - static_cast<difference_type>(index(entt)));
    +
    194 }
    +
    195
    +
    196 [[nodiscard]] auto &assure_at_least(const Entity entt) {
    +
    197 const auto pos = entity_to_pos(entt);
    +
    198 const auto page = pos_to_page(pos);
    +
    199
    +
    200 if(!(page < sparse.size())) {
    +
    201 sparse.resize(page + 1u, nullptr);
    +
    202 }
    +
    203
    +
    204 if(!sparse[page]) {
    +
    205 constexpr entity_type init = null;
    +
    206 auto page_allocator{packed.get_allocator()};
    +
    207 sparse[page] = alloc_traits::allocate(page_allocator, traits_type::page_size);
    +
    208 std::uninitialized_fill(sparse[page], sparse[page] + traits_type::page_size, init);
    +
    209 }
    +
    210
    +
    211 return sparse[page][fast_mod(pos, traits_type::page_size)];
    +
    212 }
    +
    213
    +
    214 void release_sparse_pages() {
    +
    215 auto page_allocator{packed.get_allocator()};
    216
    -
    217 void swap_at(const std::size_t lhs, const std::size_t rhs) {
    -
    218 auto &from = packed[lhs];
    -
    219 auto &to = packed[rhs];
    -
    220
    - - -
    223
    -
    224 std::swap(from, to);
    -
    225 }
    -
    226
    -
    227private:
    -
    228 [[nodiscard]] virtual const void *get_at(const std::size_t) const {
    -
    229 return nullptr;
    -
    230 }
    -
    231
    -
    232 virtual void swap_or_move([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs) {
    -
    233 ENTT_ASSERT((mode != deletion_policy::swap_only) || ((lhs < head) == (rhs < head)), "Cross swapping is not supported");
    +
    217 for(auto &&page: sparse) {
    +
    218 if(page != nullptr) {
    +
    219 std::destroy(page, page + traits_type::page_size);
    +
    220 alloc_traits::deallocate(page_allocator, page, traits_type::page_size);
    +
    221 page = nullptr;
    +
    222 }
    +
    223 }
    +
    224 }
    +
    225
    +
    226 void swap_at(const std::size_t lhs, const std::size_t rhs) {
    +
    227 auto &from = packed[lhs];
    +
    228 auto &to = packed[rhs];
    +
    229
    +
    230 sparse_ref(from) = traits_type::combine(static_cast<typename traits_type::entity_type>(rhs), traits_type::to_integral(from));
    +
    231 sparse_ref(to) = traits_type::combine(static_cast<typename traits_type::entity_type>(lhs), traits_type::to_integral(to));
    +
    232
    +
    233 std::swap(from, to);
    234 }
    235
    -
    236protected:
    -
    238 using basic_iterator = internal::sparse_set_iterator<packed_container_type>;
    -
    239
    -
    - -
    245 ENTT_ASSERT(mode == deletion_policy::swap_only, "Deletion policy mismatch");
    -
    246 const auto pos = index(*it);
    - -
    248 swap_at(pos, head -= (pos < head));
    -
    249 }
    +
    236private:
    +
    237 [[nodiscard]] virtual const void *get_at(const std::size_t) const {
    +
    238 return nullptr;
    +
    239 }
    +
    240
    +
    241 virtual void swap_or_move([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs) {
    +
    242 ENTT_ASSERT((mode != deletion_policy::swap_only) || ((lhs < head) == (rhs < head)), "Cross swapping is not supported");
    +
    243 }
    +
    244
    +
    245protected:
    +
    247 using basic_iterator = internal::sparse_set_iterator<packed_container_type>;
    +
    248
    +
    +
    253 void swap_only(const basic_iterator it) {
    +
    254 ENTT_ASSERT(mode == deletion_policy::swap_only, "Deletion policy mismatch");
    +
    255 const auto pos = index(*it);
    + +
    257 swap_at(pos, head -= (pos < head));
    +
    258 }
    -
    250
    -
    - -
    256 ENTT_ASSERT(mode == deletion_policy::swap_and_pop, "Deletion policy mismatch");
    -
    257 auto &self = sparse_ref(*it);
    -
    258 const auto entt = traits_type::to_entity(self);
    -
    259 sparse_ref(packed.back()) = traits_type::combine(entt, traits_type::to_integral(packed.back()));
    -
    260 packed[static_cast<size_type>(entt)] = packed.back();
    -
    261 // unnecessary but it helps to detect nasty bugs
    -
    262 ENTT_ASSERT((packed.back() = null, true), "");
    -
    263 // lazy self-assignment guard
    -
    264 self = null;
    -
    265 packed.pop_back();
    -
    266 }
    -
    -
    267
    -
    - -
    273 ENTT_ASSERT(mode == deletion_policy::in_place, "Deletion policy mismatch");
    -
    274 const auto pos = static_cast<size_type>(traits_type::to_entity(std::exchange(sparse_ref(*it), null)));
    -
    275 packed[pos] = traits_type::combine(static_cast<typename traits_type::entity_type>(std::exchange(head, pos)), tombstone);
    +
    259
    +
    + +
    265 ENTT_ASSERT(mode == deletion_policy::swap_and_pop, "Deletion policy mismatch");
    +
    266 auto &self = sparse_ref(*it);
    +
    267 const auto entt = traits_type::to_entity(self);
    +
    268 sparse_ref(packed.back()) = traits_type::combine(entt, traits_type::to_integral(packed.back()));
    +
    269 packed[static_cast<size_type>(entt)] = packed.back();
    +
    270 // unnecessary but it helps to detect nasty bugs
    +
    271 // NOLINTNEXTLINE(bugprone-assert-side-effect)
    +
    272 ENTT_ASSERT((packed.back() = null, true), "");
    +
    273 // lazy self-assignment guard
    +
    274 self = null;
    +
    275 packed.pop_back();
    276 }
    -
    277
    -
    -
    283 virtual void pop(basic_iterator first, basic_iterator last) {
    -
    284 switch(mode) {
    - -
    286 for(; first != last; ++first) {
    -
    287 swap_and_pop(first);
    -
    288 }
    -
    289 break;
    - -
    291 for(; first != last; ++first) {
    -
    292 in_place_pop(first);
    -
    293 }
    -
    294 break;
    - +
    277
    +
    + +
    283 ENTT_ASSERT(mode == deletion_policy::in_place, "Deletion policy mismatch");
    +
    284 const auto pos = entity_to_pos(std::exchange(sparse_ref(*it), null));
    +
    285 packed[pos] = traits_type::combine(static_cast<typename traits_type::entity_type>(std::exchange(head, pos)), tombstone);
    +
    286 }
    +
    +
    287
    +
    +
    293 virtual void pop(basic_iterator first, basic_iterator last) {
    +
    294 switch(mode) {
    +
    296 for(; first != last; ++first) {
    -
    297 swap_only(first);
    +
    297 swap_and_pop(first);
    298 }
    299 break;
    -
    300 }
    -
    301 }
    + +
    301 for(; first != last; ++first) {
    +
    302 in_place_pop(first);
    +
    303 }
    +
    304 break;
    + +
    306 for(; first != last; ++first) {
    +
    307 swap_only(first);
    +
    308 }
    +
    309 break;
    +
    310 }
    +
    311 }
    -
    302
    -
    -
    304 virtual void pop_all() {
    -
    305 switch(mode) {
    - -
    307 if(head != max_size) {
    -
    308 for(auto first = begin(); !(first.index() < 0); ++first) {
    -
    309 if(*first != tombstone) {
    -
    310 sparse_ref(*first) = null;
    -
    311 }
    -
    312 }
    -
    313 break;
    -
    314 }
    -
    315 [[fallthrough]];
    - - -
    318 for(auto first = begin(); !(first.index() < 0); ++first) {
    -
    319 sparse_ref(*first) = null;
    -
    320 }
    -
    321 break;
    -
    322 }
    -
    323
    -
    324 head = policy_to_head();
    -
    325 packed.clear();
    -
    326 }
    +
    312
    +
    +
    314 virtual void pop_all() {
    +
    315 switch(mode) {
    + +
    317 if(head != max_size) {
    +
    318 for(auto &&elem: packed) {
    +
    319 if(elem != tombstone) {
    +
    320 sparse_ref(elem) = null;
    +
    321 }
    +
    322 }
    +
    323 break;
    +
    324 }
    +
    325 [[fallthrough]];
    + + +
    328 for(auto &&elem: packed) {
    +
    329 sparse_ref(elem) = null;
    +
    330 }
    +
    331 break;
    +
    332 }
    +
    333
    +
    334 head = policy_to_head();
    +
    335 packed.clear();
    +
    336 }
    -
    327
    -
    -
    334 virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void * = nullptr) {
    -
    335 ENTT_ASSERT(entt != null && entt != tombstone, "Invalid element");
    -
    336 auto &elem = assure_at_least(entt);
    -
    337 auto pos = size();
    -
    338
    -
    339 switch(mode) {
    - -
    341 if(head != max_size && !force_back) {
    -
    342 pos = head;
    -
    343 ENTT_ASSERT(elem == null, "Slot not available");
    - -
    345 head = static_cast<size_type>(traits_type::to_entity(std::exchange(packed[pos], entt)));
    -
    346 break;
    -
    347 }
    -
    348 [[fallthrough]];
    - -
    350 packed.push_back(entt);
    -
    351 ENTT_ASSERT(elem == null, "Slot not available");
    - -
    353 break;
    - -
    355 if(elem == null) {
    -
    356 packed.push_back(entt);
    - -
    358 } else {
    -
    359 ENTT_ASSERT(!(static_cast<size_type>(traits_type::to_entity(elem)) < head), "Slot not available");
    -
    360 bump(entt);
    -
    361 }
    -
    362
    -
    363 pos = head++;
    -
    364 swap_at(static_cast<size_type>(traits_type::to_entity(elem)), pos);
    -
    365 break;
    -
    366 }
    -
    367
    -
    368 return --(end() - static_cast<typename iterator::difference_type>(pos));
    -
    369 }
    +
    337
    +
    +
    344 virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void * = nullptr) {
    +
    345 ENTT_ASSERT(entt != null && entt != tombstone, "Invalid element");
    +
    346 auto &elem = assure_at_least(entt);
    +
    347 auto pos = size();
    +
    348
    +
    349 switch(mode) {
    + +
    351 if(head != max_size && !force_back) {
    +
    352 pos = head;
    +
    353 ENTT_ASSERT(elem == null, "Slot not available");
    + +
    355 head = entity_to_pos(std::exchange(packed[pos], entt));
    +
    356 break;
    +
    357 }
    +
    358 [[fallthrough]];
    + +
    360 packed.push_back(entt);
    +
    361 ENTT_ASSERT(elem == null, "Slot not available");
    +
    362 elem = traits_type::combine(static_cast<typename traits_type::entity_type>(packed.size() - 1u), traits_type::to_integral(entt));
    +
    363 break;
    + +
    365 if(elem == null) {
    +
    366 packed.push_back(entt);
    +
    367 elem = traits_type::combine(static_cast<typename traits_type::entity_type>(packed.size() - 1u), traits_type::to_integral(entt));
    +
    368 } else {
    +
    369 ENTT_ASSERT(!(entity_to_pos(elem) < head), "Slot not available");
    +
    370 bump(entt);
    +
    371 }
    +
    372
    +
    373 pos = head++;
    +
    374 swap_at(entity_to_pos(elem), pos);
    +
    375 break;
    +
    376 }
    +
    377
    +
    378 return --(end() - static_cast<difference_type>(pos));
    +
    379 }
    -
    370
    -
    372 // NOLINTNEXTLINE(performance-unnecessary-value-param)
    -
    373 virtual void bind_any(any) noexcept {}
    -
    374
    -
    375public:
    -
    377 using allocator_type = Allocator;
    - - -
    383 using size_type = std::size_t;
    -
    385 using pointer = typename packed_container_type::const_pointer;
    - - -
    391 using reverse_iterator = std::reverse_iterator<iterator>;
    -
    393 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    -
    394
    -
    - - +
    380
    +
    382 // NOLINTNEXTLINE(performance-unnecessary-value-param)
    +
    383 virtual void bind_any(any) noexcept {}
    +
    384
    +
    385public:
    +
    387 using allocator_type = Allocator;
    + + +
    393 using size_type = std::size_t;
    +
    395 using difference_type = std::ptrdiff_t;
    +
    397 using pointer = typename packed_container_type::const_pointer;
    + + +
    403 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    405 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    406
    + -
    398
    -
    - - +
    410
    +
    +
    415 explicit basic_sparse_set(const allocator_type &allocator)
    +
    -
    405
    -
    - - +
    417
    +
    +
    423 explicit basic_sparse_set(deletion_policy pol, const allocator_type &allocator = {})
    +
    424 : basic_sparse_set{type_id<void>(), pol, allocator} {}
    -
    413
    -
    - -
    422 : sparse{allocator},
    -
    423 packed{allocator},
    -
    424 info{&elem},
    -
    425 mode{pol},
    -
    426 head{policy_to_head()} {
    -
    427 ENTT_ASSERT(traits_type::version_mask || mode != deletion_policy::in_place, "Policy does not support zero-sized versions");
    -
    428 }
    +
    425
    +
    + +
    434 : sparse{allocator},
    +
    435 packed{allocator},
    +
    436 info{&elem},
    +
    437 mode{pol},
    +
    438 head{policy_to_head()} {
    +
    439 ENTT_ASSERT(traits_type::version_mask || mode != deletion_policy::in_place, "Policy does not support zero-sized versions");
    +
    440 }
    -
    429
    - -
    432
    -
    - -
    438 : sparse{std::move(other.sparse)},
    -
    439 packed{std::move(other.packed)},
    -
    440 info{other.info},
    -
    441 mode{other.mode},
    -
    442 head{std::exchange(other.head, policy_to_head())} {}
    -
    -
    443
    +
    441
    + +
    444
    - -
    450 : sparse{std::move(other.sparse), allocator},
    -
    451 packed{std::move(other.packed), allocator},
    -
    452 info{other.info},
    -
    453 mode{other.mode},
    -
    454 head{std::exchange(other.head, policy_to_head())} {
    -
    455 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a sparse set is not allowed");
    -
    456 }
    + +
    450 : sparse{std::move(other.sparse)},
    +
    451 packed{std::move(other.packed)},
    +
    452 info{other.info},
    +
    453 mode{other.mode},
    +
    454 head{std::exchange(other.head, policy_to_head())} {}
    -
    457
    -
    - -
    460 release_sparse_pages();
    -
    461 }
    +
    455
    +
    + +
    462 : sparse{std::move(other.sparse), allocator},
    +
    463 packed{std::move(other.packed), allocator},
    +
    464 info{other.info},
    +
    465 mode{other.mode},
    +
    466 head{std::exchange(other.head, policy_to_head())} {
    +
    467 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a sparse set is not allowed");
    +
    468 }
    -
    462
    - -
    468
    -
    - -
    475 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a sparse set is not allowed");
    -
    476 swap(other);
    -
    477 return *this;
    -
    478 }
    +
    469
    +
    + +
    472 release_sparse_pages();
    +
    473 }
    -
    479
    -
    -
    484 void swap(basic_sparse_set &other) noexcept {
    -
    485 using std::swap;
    -
    486 swap(sparse, other.sparse);
    -
    487 swap(packed, other.packed);
    -
    488 swap(info, other.info);
    -
    489 swap(mode, other.mode);
    -
    490 swap(head, other.head);
    -
    491 }
    +
    474
    + +
    480
    +
    + +
    487 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a sparse set is not allowed");
    +
    488 swap(other);
    +
    489 return *this;
    +
    490 }
    -
    492
    -
    - -
    498 return packed.get_allocator();
    -
    499 }
    +
    491
    +
    +
    496 void swap(basic_sparse_set &other) noexcept {
    +
    497 using std::swap;
    +
    498 swap(sparse, other.sparse);
    +
    499 swap(packed, other.packed);
    +
    500 swap(info, other.info);
    +
    501 swap(mode, other.mode);
    +
    502 swap(head, other.head);
    +
    503 }
    -
    500
    -
    - -
    506 return mode;
    -
    507 }
    +
    504
    +
    +
    509 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    +
    510 return packed.get_allocator();
    +
    511 }
    -
    508
    -
    - -
    514 return head;
    -
    515 }
    +
    512
    +
    +
    517 [[nodiscard]] deletion_policy policy() const noexcept {
    +
    518 return mode;
    +
    519 }
    -
    516
    -
    -
    521 void free_list(const size_type value) noexcept {
    -
    522 ENTT_ASSERT((mode == deletion_policy::swap_only) && !(value > packed.size()), "Invalid value");
    -
    523 head = value;
    -
    524 }
    +
    520
    +
    +
    525 [[nodiscard]] size_type free_list() const noexcept {
    +
    526 return head;
    +
    527 }
    -
    525
    -
    -
    534 virtual void reserve(const size_type cap) {
    -
    535 packed.reserve(cap);
    +
    528
    +
    +
    533 void free_list(const size_type value) noexcept {
    +
    534 ENTT_ASSERT((mode == deletion_policy::swap_only) && !(value > packed.size()), "Invalid value");
    +
    535 head = value;
    536 }
    -
    537
    -
    - -
    544 return packed.capacity();
    -
    545 }
    +
    537
    +
    +
    546 virtual void reserve(const size_type cap) {
    +
    547 packed.reserve(cap);
    +
    548 }
    -
    546
    -
    -
    548 virtual void shrink_to_fit() {
    -
    549 packed.shrink_to_fit();
    -
    550 }
    +
    549
    +
    +
    555 [[nodiscard]] virtual size_type capacity() const noexcept {
    +
    556 return packed.capacity();
    +
    557 }
    -
    551
    -
    - -
    563 return sparse.size() * traits_type::page_size;
    -
    564 }
    +
    558
    +
    +
    560 virtual void shrink_to_fit() {
    +
    561 sparse_container_type other{sparse.get_allocator()};
    +
    562 const auto len = sparse.size();
    +
    563 size_type cnt{};
    +
    564
    +
    565 other.reserve(len);
    +
    566
    +
    567 for(auto &&elem: std::as_const(packed)) {
    +
    568 if(elem != tombstone) {
    +
    569 if(const auto page = pos_to_page(entity_to_pos(elem)); sparse[page] != nullptr) {
    +
    570 if(const auto sz = page + 1u; sz > other.size()) {
    +
    571 other.resize(sz, nullptr);
    +
    572 }
    +
    573
    +
    574 other[page] = std::exchange(sparse[page], nullptr);
    +
    575
    +
    576 if(++cnt == len) {
    +
    577 // early exit due to lack of pages
    +
    578 break;
    +
    579 }
    +
    580 }
    +
    581 }
    +
    582 }
    +
    583
    +
    584 release_sparse_pages();
    +
    585 sparse.swap(other);
    +
    586
    +
    587 sparse.shrink_to_fit();
    +
    588 packed.shrink_to_fit();
    +
    589 }
    -
    565
    -
    - -
    577 return packed.size();
    -
    578 }
    -
    -
    579
    -
    - -
    585 return packed.empty();
    -
    586 }
    -
    -
    587
    -
    - -
    593 return (mode != deletion_policy::in_place) || (head == max_size);
    -
    594 }
    -
    -
    595
    +
    590
    - -
    601 return packed.data();
    +
    600 [[nodiscard]] size_type extent() const noexcept {
    +
    601 return sparse.size() * traits_type::page_size;
    602 }
    -
    603
    -
    - -
    613 const auto pos = static_cast<typename iterator::difference_type>(packed.size());
    -
    614 return iterator{packed, pos};
    -
    615 }
    +
    603
    +
    +
    614 [[nodiscard]] size_type size() const noexcept {
    +
    615 return packed.size();
    +
    616 }
    -
    616
    -
    - -
    619 return begin();
    -
    620 }
    +
    617
    +
    +
    622 [[nodiscard]] bool empty() const noexcept {
    +
    623 return packed.empty();
    +
    624 }
    -
    621
    -
    - -
    628 return iterator{packed, {}};
    -
    629 }
    +
    625
    +
    +
    630 [[nodiscard]] bool contiguous() const noexcept {
    +
    631 return (mode != deletion_policy::in_place) || (head == max_size);
    +
    632 }
    -
    630
    -
    - -
    633 return end();
    -
    634 }
    +
    633
    +
    +
    638 [[nodiscard]] pointer data() const noexcept {
    +
    639 return packed.data();
    +
    640 }
    -
    635
    -
    - -
    646 return std::make_reverse_iterator(end());
    -
    647 }
    -
    -
    648
    +
    641
    - -
    651 return rbegin();
    -
    652 }
    +
    650 [[nodiscard]] iterator begin() const noexcept {
    +
    651 const auto pos = static_cast<difference_type>(packed.size());
    +
    652 return iterator{packed, pos};
    +
    653 }
    -
    653
    -
    - -
    660 return std::make_reverse_iterator(begin());
    -
    661 }
    +
    654
    +
    +
    656 [[nodiscard]] const_iterator cbegin() const noexcept {
    +
    657 return begin();
    +
    658 }
    -
    662
    -
    - -
    665 return rend();
    -
    666 }
    +
    659
    +
    +
    665 [[nodiscard]] iterator end() const noexcept {
    +
    666 return iterator{packed, {}};
    +
    667 }
    -
    667
    -
    -
    674 [[nodiscard]] const_iterator find(const entity_type entt) const noexcept {
    -
    675 return contains(entt) ? to_iterator(entt) : end();
    -
    676 }
    +
    668
    +
    +
    670 [[nodiscard]] const_iterator cend() const noexcept {
    +
    671 return end();
    +
    672 }
    -
    677
    +
    673
    -
    683 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    -
    684 const auto *elem = sparse_ptr(entt);
    -
    685 constexpr auto cap = traits_type::entity_mask;
    -
    686 constexpr auto mask = traits_type::to_integral(null) & ~cap;
    -
    687 // testing versions permits to avoid accessing the packed array
    - -
    689 }
    +
    683 [[nodiscard]] reverse_iterator rbegin() const noexcept {
    +
    684 return std::make_reverse_iterator(end());
    +
    685 }
    -
    690
    +
    686
    +
    +
    688 [[nodiscard]] const_reverse_iterator crbegin() const noexcept {
    +
    689 return rbegin();
    +
    690 }
    +
    +
    691
    -
    697 [[nodiscard]] version_type current(const entity_type entt) const noexcept {
    -
    698 const auto *elem = sparse_ptr(entt);
    - - -
    701 }
    +
    697 [[nodiscard]] reverse_iterator rend() const noexcept {
    +
    698 return std::make_reverse_iterator(begin());
    +
    699 }
    -
    702
    -
    -
    713 [[nodiscard]] size_type index(const entity_type entt) const noexcept {
    -
    714 ENTT_ASSERT(contains(entt), "Set does not contain entity");
    -
    715 return static_cast<size_type>(traits_type::to_entity(sparse_ref(entt)));
    -
    716 }
    +
    700
    +
    +
    702 [[nodiscard]] const_reverse_iterator crend() const noexcept {
    +
    703 return rend();
    +
    704 }
    -
    717
    -
    -
    723 [[nodiscard]] entity_type operator[](const size_type pos) const noexcept {
    -
    724 ENTT_ASSERT(pos < packed.size(), "Index out of bounds");
    -
    725 return packed[pos];
    -
    726 }
    +
    705
    +
    +
    712 [[nodiscard]] const_iterator find(const entity_type entt) const noexcept {
    +
    713 return contains(entt) ? to_iterator(entt) : end();
    +
    714 }
    -
    727
    -
    -
    738 [[nodiscard]] const void *value(const entity_type entt) const noexcept {
    -
    739 return get_at(index(entt));
    -
    740 }
    +
    715
    +
    +
    721 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    +
    722 const auto *elem = sparse_ptr(entt);
    +
    723 constexpr auto cap = traits_type::entity_mask;
    +
    724 constexpr auto mask = traits_type::to_integral(null) & ~cap;
    +
    725 // testing versions permits to avoid accessing the packed array
    +
    726 return elem && (((mask & traits_type::to_integral(entt)) ^ traits_type::to_integral(*elem)) < cap);
    +
    727 }
    -
    741
    -
    -
    743 [[nodiscard]] void *value(const entity_type entt) noexcept {
    -
    744 return const_cast<void *>(std::as_const(*this).value(entt));
    -
    745 }
    +
    728
    +
    +
    735 [[nodiscard]] version_type current(const entity_type entt) const noexcept {
    +
    736 const auto *elem = sparse_ptr(entt);
    +
    737 constexpr auto fallback = traits_type::to_version(tombstone);
    +
    738 return elem ? traits_type::to_version(*elem) : fallback;
    +
    739 }
    -
    746
    -
    -
    759 iterator push(const entity_type entt, const void *elem = nullptr) {
    -
    760 return try_emplace(entt, false, elem);
    -
    761 }
    +
    740
    +
    +
    751 [[nodiscard]] size_type index(const entity_type entt) const noexcept {
    +
    752 ENTT_ASSERT(contains(entt), "Set does not contain entity");
    +
    753 return entity_to_pos(sparse_ref(entt));
    +
    754 }
    -
    762
    -
    776 template<typename It>
    -
    -
    777 iterator push(It first, It last) {
    -
    778 auto curr = end();
    -
    779
    -
    780 for(; first != last; ++first) {
    -
    781 curr = try_emplace(*first, true);
    -
    782 }
    -
    783
    -
    784 return curr;
    -
    785 }
    +
    755
    +
    +
    761 [[nodiscard]] entity_type operator[](const size_type pos) const noexcept {
    +
    762 ENTT_ASSERT(pos < packed.size(), "Index out of bounds");
    +
    763 return packed[pos];
    +
    764 }
    -
    786
    +
    765
    +
    +
    776 [[nodiscard]] const void *value(const entity_type entt) const noexcept {
    +
    777 return get_at(index(entt));
    +
    778 }
    +
    +
    779
    +
    +
    781 [[nodiscard]] void *value(const entity_type entt) noexcept {
    +
    782 return const_cast<void *>(std::as_const(*this).value(entt));
    +
    783 }
    +
    +
    784
    - -
    798 auto &elem = sparse_ref(entt);
    -
    799 ENTT_ASSERT(entt != null && elem != tombstone, "Cannot set the required version");
    - -
    801 packed[static_cast<size_type>(traits_type::to_entity(elem))] = entt;
    - -
    803 }
    +
    797 iterator push(const entity_type entt, const void *elem = nullptr) {
    +
    798 return try_emplace(entt, false, elem);
    +
    799 }
    -
    804
    -
    -
    814 void erase(const entity_type entt) {
    -
    815 const auto it = to_iterator(entt);
    -
    816 pop(it, it + 1u);
    -
    817 }
    +
    800
    +
    814 template<typename It>
    +
    +
    815 iterator push(It first, It last) {
    +
    816 auto curr = end();
    +
    817
    +
    818 for(; first != last; ++first) {
    +
    819 curr = try_emplace(*first, true);
    +
    820 }
    +
    821
    +
    822 return curr;
    +
    823 }
    -
    818
    -
    828 template<typename It>
    -
    -
    829 void erase(It first, It last) {
    -
    830 if constexpr(std::is_same_v<It, basic_iterator>) {
    -
    831 pop(first, last);
    -
    832 } else {
    -
    833 for(; first != last; ++first) {
    -
    834 erase(*first);
    -
    835 }
    -
    836 }
    -
    837 }
    +
    824
    +
    + +
    836 auto &elem = sparse_ref(entt);
    +
    837 ENTT_ASSERT(entt != null && elem != tombstone, "Cannot set the required version");
    + +
    839 packed[entity_to_pos(elem)] = entt;
    + +
    841 }
    -
    838
    -
    -
    844 bool remove(const entity_type entt) {
    -
    845 return contains(entt) && (erase(entt), true);
    -
    846 }
    +
    842
    +
    +
    852 void erase(const entity_type entt) {
    +
    853 const auto it = to_iterator(entt);
    +
    854 pop(it, it + 1u);
    +
    855 }
    -
    847
    -
    855 template<typename It>
    -
    -
    856 size_type remove(It first, It last) {
    -
    857 size_type count{};
    -
    858
    -
    859 if constexpr(std::is_same_v<It, basic_iterator>) {
    -
    860 while(first != last) {
    -
    861 while(first != last && !contains(*first)) {
    -
    862 ++first;
    -
    863 }
    -
    864
    -
    865 const auto it = first;
    -
    866
    -
    867 while(first != last && contains(*first)) {
    -
    868 ++first;
    -
    869 }
    -
    870
    -
    871 count += std::distance(it, first);
    -
    872 erase(it, first);
    +
    856
    +
    866 template<typename It>
    +
    +
    867 void erase(It first, It last) {
    +
    868 if constexpr(std::is_same_v<It, basic_iterator>) {
    +
    869 pop(first, last);
    +
    870 } else {
    +
    871 for(; first != last; ++first) {
    +
    872 erase(*first);
    873 }
    -
    874 } else {
    -
    875 for(; first != last; ++first) {
    -
    876 count += remove(*first);
    -
    877 }
    -
    878 }
    -
    879
    -
    880 return count;
    -
    881 }
    +
    874 }
    +
    875 }
    -
    882
    -
    -
    884 void compact() {
    -
    885 if(mode == deletion_policy::in_place) {
    -
    886 size_type from = packed.size();
    -
    887 size_type pos = std::exchange(head, max_size);
    -
    888
    -
    889 for(; from && packed[from - 1u] == tombstone; --from) {}
    -
    890
    -
    891 while(pos != max_size) {
    -
    892 if(const auto to = std::exchange(pos, static_cast<size_type>(traits_type::to_entity(packed[pos]))); to < from) {
    -
    893 --from;
    -
    894 swap_or_move(from, to);
    -
    895
    -
    896 packed[to] = packed[from];
    -
    897 const auto elem = static_cast<typename traits_type::entity_type>(to);
    -
    898 sparse_ref(packed[to]) = traits_type::combine(elem, traits_type::to_integral(packed[to]));
    -
    899
    -
    900 for(; from && packed[from - 1u] == tombstone; --from) {}
    +
    876
    +
    +
    882 bool remove(const entity_type entt) {
    +
    883 return contains(entt) && (erase(entt), true);
    +
    884 }
    +
    +
    885
    +
    893 template<typename It>
    +
    +
    894 size_type remove(It first, It last) {
    +
    895 size_type count{};
    +
    896
    +
    897 if constexpr(std::is_same_v<It, basic_iterator>) {
    +
    898 while(first != last) {
    +
    899 while(first != last && !contains(*first)) {
    +
    900 ++first;
    901 }
    -
    902 }
    -
    903
    -
    904 packed.erase(packed.begin() + from, packed.end());
    -
    905 }
    -
    906 }
    +
    902
    +
    903 const auto it = first;
    +
    904
    +
    905 while(first != last && contains(*first)) {
    +
    906 ++first;
    +
    907 }
    +
    908
    +
    909 count += static_cast<size_type>(std::distance(it, first));
    +
    910 erase(it, first);
    +
    911 }
    +
    912 } else {
    +
    913 for(; first != last; ++first) {
    +
    914 count += remove(*first);
    +
    915 }
    +
    916 }
    +
    917
    +
    918 return count;
    +
    919 }
    -
    907
    -
    - -
    922 const auto from = index(lhs);
    -
    923 const auto to = index(rhs);
    -
    924
    -
    925 // basic no-leak guarantee if swapping throws
    -
    926 swap_or_move(from, to);
    -
    927 swap_at(from, to);
    -
    928 }
    +
    920
    +
    +
    922 void compact() {
    +
    923 if(mode == deletion_policy::in_place) {
    +
    924 size_type from = packed.size();
    +
    925 size_type pos = std::exchange(head, max_size);
    +
    926
    +
    927 for(; from && packed[from - 1u] == tombstone; --from) {}
    +
    928
    +
    929 while(pos != max_size) {
    +
    930 if(const auto to = std::exchange(pos, entity_to_pos(packed[pos])); to < from) {
    +
    931 --from;
    +
    932 swap_or_move(from, to);
    +
    933
    +
    934 packed[to] = packed[from];
    +
    935 const auto elem = static_cast<typename traits_type::entity_type>(to);
    +
    936 sparse_ref(packed[to]) = traits_type::combine(elem, traits_type::to_integral(packed[to]));
    +
    937
    +
    938 for(; from && packed[from - 1u] == tombstone; --from) {}
    +
    939 }
    +
    940 }
    +
    941
    +
    942 packed.erase(packed.begin() + static_cast<difference_type>(from), packed.end());
    +
    943 }
    +
    944 }
    -
    929
    -
    960 template<typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    961 void sort_n(const size_type length, Compare compare, Sort algo = Sort{}, Args &&...args) {
    -
    962 ENTT_ASSERT((mode != deletion_policy::in_place) || (head == max_size), "Sorting with tombstones not allowed");
    -
    963 ENTT_ASSERT(!(length > packed.size()), "Length exceeds the number of elements");
    -
    964
    -
    965 algo(packed.rend() - length, packed.rend(), std::move(compare), std::forward<Args>(args)...);
    -
    966
    -
    967 for(size_type pos{}; pos < length; ++pos) {
    -
    968 auto curr = pos;
    -
    969 auto next = index(packed[curr]);
    -
    970
    -
    971 while(curr != next) {
    -
    972 const auto idx = index(packed[next]);
    -
    973 const auto entt = packed[curr];
    -
    974
    -
    975 swap_or_move(next, idx);
    -
    976 const auto elem = static_cast<typename traits_type::entity_type>(curr);
    - -
    978 curr = std::exchange(next, idx);
    -
    979 }
    -
    980 }
    -
    981 }
    +
    945
    +
    +
    959 void swap_elements(const entity_type lhs, const entity_type rhs) {
    +
    960 const auto from = index(lhs);
    +
    961 const auto to = index(rhs);
    +
    962
    +
    963 // basic no-leak guarantee if swapping throws
    +
    964 swap_or_move(from, to);
    +
    965 swap_at(from, to);
    +
    966 }
    -
    982
    -
    995 template<typename Compare, typename Sort = std_sort, typename... Args>
    -
    -
    996 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    -
    997 const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
    -
    998 sort_n(len, std::move(compare), std::move(algo), std::forward<Args>(args)...);
    -
    999 }
    +
    967
    +
    998 template<typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    999 void sort_n(const size_type length, Compare compare, Sort algo = Sort{}, Args &&...args) {
    +
    1000 ENTT_ASSERT((mode != deletion_policy::in_place) || (head == max_size), "Sorting with tombstones not allowed");
    +
    1001 ENTT_ASSERT(!(length > packed.size()), "Length exceeds the number of elements");
    +
    1002
    +
    1003 algo(packed.rend() - static_cast<difference_type>(length), packed.rend(), std::move(compare), std::forward<Args>(args)...);
    +
    1004
    +
    1005 for(size_type pos{}; pos < length; ++pos) {
    +
    1006 auto curr = pos;
    +
    1007 auto next = index(packed[curr]);
    +
    1008
    +
    1009 while(curr != next) {
    +
    1010 const auto idx = index(packed[next]);
    +
    1011 const auto entt = packed[curr];
    +
    1012
    +
    1013 swap_or_move(next, idx);
    +
    1014 const auto elem = static_cast<typename traits_type::entity_type>(curr);
    +
    1015 sparse_ref(entt) = traits_type::combine(elem, traits_type::to_integral(packed[curr]));
    +
    1016 curr = std::exchange(next, idx);
    +
    1017 }
    +
    1018 }
    +
    1019 }
    -
    1000
    -
    1014 template<typename It>
    -
    -
    1015 iterator sort_as(It first, It last) {
    -
    1016 ENTT_ASSERT((mode != deletion_policy::in_place) || (head == max_size), "Sorting with tombstones not allowed");
    -
    1017 const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
    -
    1018 auto it = end() - static_cast<typename iterator::difference_type>(len);
    -
    1019
    -
    1020 for(const auto other = end(); (it != other) && (first != last); ++first) {
    -
    1021 if(const auto curr = *first; contains(curr)) {
    -
    1022 if(const auto entt = *it; entt != curr) {
    -
    1023 // basic no-leak guarantee (with invalid state) if swapping throws
    - -
    1025 }
    -
    1026
    -
    1027 ++it;
    -
    1028 }
    -
    1029 }
    -
    1030
    -
    1031 return it;
    -
    1032 }
    +
    1020
    +
    1033 template<typename Compare, typename Sort = std_sort, typename... Args>
    +
    +
    1034 void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
    +
    1035 const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
    +
    1036 sort_n(len, std::move(compare), std::move(algo), std::forward<Args>(args)...);
    +
    1037 }
    -
    1033
    -
    -
    1035 void clear() {
    -
    1036 pop_all();
    -
    1037 // sanity check to avoid subtle issues due to storage classes
    -
    1038 ENTT_ASSERT((compact(), size()) == 0u, "Non-empty set");
    -
    1039 head = policy_to_head();
    -
    1040 packed.clear();
    -
    1041 }
    +
    1038
    +
    1052 template<typename It>
    +
    +
    1053 iterator sort_as(It first, It last) {
    +
    1054 ENTT_ASSERT((mode != deletion_policy::in_place) || (head == max_size), "Sorting with tombstones not allowed");
    +
    1055 const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
    +
    1056 auto it = end() - static_cast<difference_type>(len);
    +
    1057
    +
    1058 for(const auto other = end(); (it != other) && (first != last); ++first) {
    +
    1059 if(const auto curr = *first; contains(curr)) {
    +
    1060 if(const auto entt = *it; entt != curr) {
    +
    1061 // basic no-leak guarantee (with invalid state) if swapping throws
    +
    1062 swap_elements(entt, curr);
    +
    1063 }
    +
    1064
    +
    1065 ++it;
    +
    1066 }
    +
    1067 }
    +
    1068
    +
    1069 return it;
    +
    1070 }
    -
    1042
    -
    - -
    1048 return *info;
    -
    1049 }
    +
    1071
    +
    +
    1073 void clear() {
    +
    1074 pop_all();
    +
    1075 // sanity check to avoid subtle issues due to storage classes
    +
    1076 ENTT_ASSERT((compact(), size()) == 0u, "Non-empty set");
    +
    1077 head = policy_to_head();
    +
    1078 packed.clear();
    +
    1079 }
    -
    1050
    -
    1057 template<typename Type>
    -
    1058 [[deprecated("avoid wrapping elements with basic_any")]] std::enable_if_t<std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, basic_any<>>>
    -
    -
    1059 bind(Type &&value) noexcept {
    -
    1060 // backward compatibility
    -
    1061 bind_any(std::forward<Type>(value));
    -
    1062 }
    +
    1080
    +
    +
    1085 [[nodiscard]] const type_info &type() const noexcept {
    +
    1086 return *info;
    +
    1087 }
    -
    1063
    -
    1070 template<typename Type>
    -
    1071 std::enable_if_t<!std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, basic_any<>>>
    -
    -
    1072 bind(Type &&value) noexcept {
    -
    1073 bind_any(forward_as_any(std::forward<Type>(value)));
    -
    1074 }
    +
    1088
    +
    1094 template<typename Type>
    +
    +
    1095 void bind(Type &&value) noexcept {
    +
    1096 bind_any(forward_as_any(std::forward<Type>(value)));
    +
    1097 }
    -
    1075
    -
    1076private:
    -
    1077 sparse_container_type sparse;
    -
    1078 packed_container_type packed;
    -
    1079 const type_info *info;
    -
    1080 deletion_policy mode;
    -
    1081 size_type head;
    -
    1082};
    +
    1098
    +
    1099private:
    +
    1100 sparse_container_type sparse;
    +
    1101 packed_container_type packed;
    +
    1102 const type_info *info;
    +
    1103 deletion_policy mode;
    +
    1104 size_type head;
    +
    1105};
    -
    1083
    -
    1084} // namespace entt
    -
    1085
    -
    1086#endif
    - -
    typename Traits::entity_type entity_type
    Underlying entity type.
    Definition entity.hpp:71
    -
    static constexpr entity_type version_mask
    Version mask size.
    Definition entity.hpp:78
    -
    static constexpr value_type next(const value_type value) noexcept
    Returns the successor of a given identifier.
    Definition entity.hpp:116
    -
    static constexpr entity_type to_integral(const value_type value) noexcept
    Converts an entity to its underlying type.
    Definition entity.hpp:85
    -
    static constexpr entity_type entity_mask
    Entity mask size.
    Definition entity.hpp:76
    -
    static constexpr entity_type to_entity(const value_type value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:94
    -
    typename Traits::value_type value_type
    Value type.
    Definition entity.hpp:69
    -
    typename Traits::version_type version_type
    Underlying version type.
    Definition entity.hpp:73
    -
    static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept
    Combines two identifiers in a single one.
    Definition entity.hpp:149
    -
    static constexpr version_type to_version(const value_type value) noexcept
    Returns the version part once converted to the underlying type.
    Definition entity.hpp:103
    +
    1106
    +
    1107} // namespace entt
    +
    1108
    +
    1109#endif
    +
    typename Traits::entity_type entity_type
    Underlying entity type.
    Definition entity.hpp:71
    +
    static constexpr entity_type version_mask
    Version mask size.
    Definition entity.hpp:78
    +
    static constexpr value_type next(const value_type value) noexcept
    Returns the successor of a given identifier.
    Definition entity.hpp:116
    +
    static constexpr entity_type to_integral(const value_type value) noexcept
    Converts an entity to its underlying type.
    Definition entity.hpp:85
    +
    static constexpr entity_type entity_mask
    Entity mask size.
    Definition entity.hpp:76
    +
    static constexpr entity_type to_entity(const value_type value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:94
    +
    typename Traits::value_type value_type
    Value type.
    Definition entity.hpp:69
    +
    typename Traits::version_type version_type
    Underlying version type.
    Definition entity.hpp:73
    +
    static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept
    Combines two identifiers in a single one.
    Definition entity.hpp:149
    +
    static constexpr version_type to_version(const value_type value) noexcept
    Returns the version part once converted to the underlying type.
    Definition entity.hpp:103
    Sparse set implementation.
    -
    void erase(const entity_type entt)
    Erases an entity from a sparse set.
    -
    std::enable_if_t< std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind(Type &&value) noexcept
    Forwards variables to derived classes, if any.
    -
    std::enable_if_t<!std::is_same_v< std::remove_const_t< std::remove_reference_t< Type > >, basic_any<> > > bind(Type &&value) noexcept
    Forwards variables to derived classes, if any.
    -
    iterator begin() const noexcept
    Returns an iterator to the beginning.
    -
    typename traits_type::version_type version_type
    Underlying version type.
    -
    virtual size_type capacity() const noexcept
    Returns the number of elements that a sparse set has currently allocated space for.
    -
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    -
    basic_sparse_set(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    -
    virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void *=nullptr)
    Assigns an entity to a sparse set.
    -
    virtual void pop_all()
    Erases all entities of a sparse set.
    -
    void erase(It first, It last)
    Erases entities from a set.
    -
    std::reverse_iterator< const_iterator > const_reverse_iterator
    Constant reverse iterator type.
    -
    void swap_elements(const entity_type lhs, const entity_type rhs)
    Swaps two entities in a sparse set.
    -
    void swap_and_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    -
    std::size_t size_type
    Unsigned integer type.
    -
    iterator end() const noexcept
    Returns an iterator to the end.
    -
    void * value(const entity_type entt) noexcept
    Returns the element assigned to an entity, if any.
    -
    iterator const_iterator
    Constant random access iterator type.
    -
    reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    -
    iterator push(It first, It last)
    Assigns one or more entities to a sparse set.
    -
    void sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort the first count elements according to the given comparison function.
    -
    pointer data() const noexcept
    Direct access to the internal packed array.
    -
    basic_sparse_set & operator=(basic_sparse_set &&other) noexcept
    Move assignment operator.
    -
    virtual void reserve(const size_type cap)
    Increases the capacity of a sparse set.
    -
    void clear()
    Clears a sparse set.
    -
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    -
    basic_iterator iterator
    Random access iterator type.
    +
    void erase(const entity_type entt)
    Erases an entity from a sparse set.
    +
    iterator begin() const noexcept
    Returns an iterator to the beginning.
    +
    typename traits_type::version_type version_type
    +
    virtual size_type capacity() const noexcept
    Returns the number of elements that a sparse set has currently allocated space for.
    +
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    +
    basic_sparse_set(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    +
    virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void *=nullptr)
    Assigns an entity to a sparse set.
    +
    virtual void pop_all()
    Erases all entities of a sparse set.
    +
    void erase(It first, It last)
    Erases entities from a set.
    +
    std::reverse_iterator< const_iterator > const_reverse_iterator
    +
    void swap_elements(const entity_type lhs, const entity_type rhs)
    Swaps two entities in a sparse set.
    +
    void swap_and_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    +
    std::size_t size_type
    Unsigned integer type.
    +
    iterator end() const noexcept
    Returns an iterator to the end.
    +
    void * value(const entity_type entt) noexcept
    Returns the element assigned to an entity, if any.
    + +
    reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    +
    iterator push(It first, It last)
    Assigns one or more entities to a sparse set.
    +
    void sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort the first count elements according to the given comparison function.
    +
    pointer data() const noexcept
    Direct access to the internal packed array.
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    +
    basic_sparse_set & operator=(basic_sparse_set &&other) noexcept
    Move assignment operator.
    +
    virtual void reserve(const size_type cap)
    Increases the capacity of a sparse set.
    +
    void clear()
    Clears a sparse set.
    +
    void bind(Type &&value) noexcept
    Forwards variables to derived classes, if any.
    +
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    +
    basic_sparse_set & operator=(const basic_sparse_set &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    bool contiguous() const noexcept
    Checks whether a sparse set is fully packed.
    -
    version_type bump(const entity_type entt)
    Bump the version number of an entity.
    -
    virtual void shrink_to_fit()
    Requests the removal of unused capacity.
    -
    size_type extent() const noexcept
    Returns the extent of a sparse set.
    -
    void swap(basic_sparse_set &other) noexcept
    Exchanges the contents with those of a given sparse set.
    -
    typename packed_container_type::const_pointer pointer
    Pointer type to contained entities.
    -
    const_iterator find(const entity_type entt) const noexcept
    Finds an entity.
    -
    iterator push(const entity_type entt, const void *elem=nullptr)
    Assigns an entity to a sparse set.
    -
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})
    Constructs an empty container with the given policy and allocator.
    -
    virtual void pop(basic_iterator first, basic_iterator last)
    Erases entities from a sparse set.
    -
    deletion_policy policy() const noexcept
    Returns the deletion policy of a sparse set.
    -
    virtual void bind_any(any) noexcept
    Forwards variables to derived classes, if any.
    -
    version_type current(const entity_type entt) const noexcept
    Returns the contained version for an identifier.
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a sparse set contains an entity.
    -
    basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    -
    iterator sort_as(It first, It last)
    Sort entities according to their order in a range.
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    -
    void in_place_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    -
    basic_sparse_set(basic_sparse_set &&other) noexcept
    Move constructor.
    -
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    -
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    -
    size_type remove(It first, It last)
    Removes entities from a sparse set if they exist.
    -
    const void * value(const entity_type entt) const noexcept
    Returns the element assigned to an entity, if any.
    -
    reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    -
    entity_type operator[](const size_type pos) const noexcept
    Returns the entity at specified location.
    -
    size_type free_list() const noexcept
    Returns data on the free list whose meaning depends on the mode.
    -
    void swap_only(const basic_iterator it)
    Erases an entity from a sparse set.
    -
    internal::sparse_set_iterator< packed_container_type > basic_iterator
    Random access iterator type.
    -
    virtual ~basic_sparse_set()
    Default destructor.
    -
    void free_list(const size_type value) noexcept
    Sets data on the free list whose meaning depends on the mode.
    +
    bool contiguous() const noexcept
    Checks whether a sparse set is fully packed.
    +
    version_type bump(const entity_type entt)
    Bump the version number of an entity.
    +
    virtual void shrink_to_fit()
    Requests the removal of unused capacity.
    +
    size_type extent() const noexcept
    Returns the extent of a sparse set.
    +
    void swap(basic_sparse_set &other) noexcept
    Exchanges the contents with those of a given sparse set.
    +
    typename packed_container_type::const_pointer pointer
    +
    const_iterator find(const entity_type entt) const noexcept
    Finds an entity.
    +
    iterator push(const entity_type entt, const void *elem=nullptr)
    Assigns an entity to a sparse set.
    +
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})
    Constructs an empty container with the given policy and allocator.
    +
    virtual void pop(basic_iterator first, basic_iterator last)
    Erases entities from a sparse set.
    +
    deletion_policy policy() const noexcept
    Returns the deletion policy of a sparse set.
    +
    virtual void bind_any(any) noexcept
    Forwards variables to derived classes, if any.
    +
    version_type current(const entity_type entt) const noexcept
    Returns the contained version for an identifier.
    +
    bool contains(const entity_type entt) const noexcept
    Checks if a sparse set contains an entity.
    +
    basic_sparse_set(basic_sparse_set &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    +
    iterator sort_as(It first, It last)
    Sort entities according to their order in a range.
    +
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    +
    void in_place_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    +
    basic_sparse_set(basic_sparse_set &&other) noexcept
    Move constructor.
    +
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    +
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    +
    size_type remove(It first, It last)
    Removes entities from a sparse set if they exist.
    +
    const void * value(const entity_type entt) const noexcept
    +
    reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    +
    entity_type operator[](const size_type pos) const noexcept
    Returns the entity at specified location.
    +
    size_type free_list() const noexcept
    Returns data on the free list whose meaning depends on the mode.
    +
    void swap_only(const basic_iterator it)
    Erases an entity from a sparse set.
    +
    internal::sparse_set_iterator< packed_container_type > basic_iterator
    +
    virtual ~basic_sparse_set()
    Default destructor.
    +
    void free_list(const size_type value) noexcept
    Sets data on the free list whose meaning depends on the mode.
    basic_sparse_set(const basic_sparse_set &)=delete
    Default copy constructor, deleted on purpose.
    -
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    -
    bool empty() const noexcept
    Checks whether a sparse set is empty.
    -
    size_type index(const entity_type entt) const noexcept
    Returns the position of an entity in a sparse set.
    -
    const type_info & type() const noexcept
    Returned value type, if any.
    -
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort all elements according to the given comparison function.
    -
    typename traits_type::value_type entity_type
    Underlying entity identifier.
    -
    bool remove(const entity_type entt)
    Removes an entity from a sparse set if it exists.
    -
    void compact()
    Removes all tombstones from a sparse set.
    -
    basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
    Constructs an empty container with the given value type, policy and allocator.
    -
    Allocator allocator_type
    Allocator type.
    -
    basic_sparse_set()
    Default constructor.
    -
    std::reverse_iterator< iterator > reverse_iterator
    Reverse iterator type.
    +
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    +
    bool empty() const noexcept
    Checks whether a sparse set is empty.
    +
    size_type index(const entity_type entt) const noexcept
    Returns the position of an entity in a sparse set.
    +
    const type_info & type() const noexcept
    Returned value type, if any.
    +
    void sort(Compare compare, Sort algo=Sort{}, Args &&...args)
    Sort all elements according to the given comparison function.
    +
    typename traits_type::value_type entity_type
    Underlying entity identifier.
    +
    bool remove(const entity_type entt)
    Removes an entity from a sparse set if it exists.
    +
    void compact()
    Removes all tombstones from a sparse set.
    +
    basic_sparse_set(const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
    Constructs an empty container with the given value type, policy and allocator.
    + +
    basic_sparse_set()
    Default constructor.
    +
    std::reverse_iterator< iterator > reverse_iterator
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:62
    +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:63
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    +
    basic_any<> any
    Alias declaration for the most common use case.
    Definition fwd.hpp:32
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    deletion_policy
    Storage deletion policy.
    Definition fwd.hpp:17
    -
    @ swap_only
    Swap-only deletion policy.
    -
    @ swap_and_pop
    Swap-and-pop deletion policy.
    -
    @ in_place
    In-place deletion policy.
    +
    @ swap_only
    Swap-only deletion policy.
    Definition fwd.hpp:23
    +
    @ swap_and_pop
    Swap-and-pop deletion policy.
    Definition fwd.hpp:19
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    basic_any< Len, Align > forward_as_any(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition any.hpp:508
    +
    basic_any< Len, Align > forward_as_any(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition any.hpp:538
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    Entity traits.
    Definition entity.hpp:163
    -
    static constexpr std::size_t page_size
    Page size, default is ENTT_SPARSE_PAGE.
    Definition entity.hpp:167
    +
    static constexpr std::size_t page_size
    Definition entity.hpp:167
    Function object to wrap std::sort in a class type.
    Definition algorithm.hpp:21
    Implementation specific information about a type.
    +
    diff --git a/storage_8hpp_source.html b/storage_8hpp_source.html index 8e175422a..999d7c4b7 100644 --- a/storage_8hpp_source.html +++ b/storage_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/storage.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    storage.hpp
    @@ -104,12 +112,12 @@ $(function() { codefold.init(0); });
    19#include "sparse_set.hpp"
    20
    21namespace entt {
    -
    22
    +
    22
    24namespace internal {
    25
    -
    26template<typename Container>
    +
    26template<typename Container, auto Page>
    27class storage_iterator final {
    -
    28 friend storage_iterator<const Container>;
    +
    28 friend storage_iterator<const Container, Page>;
    29
    30 using container_type = std::remove_const_t<Container>;
    31 using alloc_traits = std::allocator_traits<typename container_type::allocator_type>;
    @@ -133,7 +141,7 @@ $(function() { codefold.init(0); });
    49 offset{idx} {}
    50
    51 template<bool Const = std::is_const_v<Container>, typename = std::enable_if_t<Const>>
    -
    52 constexpr storage_iterator(const storage_iterator<std::remove_const_t<Container>> &other) noexcept
    +
    52 constexpr storage_iterator(const storage_iterator<std::remove_const_t<Container>, Page> &other) noexcept
    53 : storage_iterator{other.payload, other.offset} {}
    54
    55 constexpr storage_iterator &operator++() noexcept {
    @@ -141,7 +149,7 @@ $(function() { codefold.init(0); });
    57 }
    58
    59 constexpr storage_iterator operator++(int) noexcept {
    -
    60 storage_iterator orig = *this;
    +
    60 const storage_iterator orig = *this;
    61 return ++(*this), orig;
    62 }
    63
    @@ -150,7 +158,7 @@ $(function() { codefold.init(0); });
    66 }
    67
    68 constexpr storage_iterator operator--(int) noexcept {
    -
    69 storage_iterator orig = *this;
    +
    69 const storage_iterator orig = *this;
    70 return operator--(), orig;
    71 }
    72
    @@ -173,1019 +181,1097 @@ $(function() { codefold.init(0); });
    89 }
    90
    91 [[nodiscard]] constexpr reference operator[](const difference_type value) const noexcept {
    -
    92 const auto pos = index() - value;
    -
    93 constexpr auto page_size = component_traits<value_type>::page_size;
    -
    94 return (*payload)[pos / page_size][fast_mod(static_cast<std::size_t>(pos), page_size)];
    -
    95 }
    -
    96
    -
    97 [[nodiscard]] constexpr pointer operator->() const noexcept {
    -
    98 return std::addressof(operator[](0));
    -
    99 }
    -
    100
    -
    101 [[nodiscard]] constexpr reference operator*() const noexcept {
    -
    102 return operator[](0);
    -
    103 }
    -
    104
    -
    105 [[nodiscard]] constexpr difference_type index() const noexcept {
    -
    106 return offset - 1;
    -
    107 }
    -
    108
    -
    109private:
    -
    110 Container *payload;
    -
    111 difference_type offset;
    -
    112};
    -
    113
    -
    114template<typename Lhs, typename Rhs>
    -
    115[[nodiscard]] constexpr std::ptrdiff_t operator-(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    116 return rhs.index() - lhs.index();
    -
    117}
    -
    118
    -
    119template<typename Lhs, typename Rhs>
    -
    120[[nodiscard]] constexpr bool operator==(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    121 return lhs.index() == rhs.index();
    -
    122}
    -
    123
    -
    124template<typename Lhs, typename Rhs>
    -
    125[[nodiscard]] constexpr bool operator!=(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    126 return !(lhs == rhs);
    -
    127}
    -
    128
    -
    129template<typename Lhs, typename Rhs>
    -
    130[[nodiscard]] constexpr bool operator<(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    131 return lhs.index() > rhs.index();
    -
    132}
    -
    133
    -
    134template<typename Lhs, typename Rhs>
    -
    135[[nodiscard]] constexpr bool operator>(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    136 return rhs < lhs;
    -
    137}
    -
    138
    -
    139template<typename Lhs, typename Rhs>
    -
    140[[nodiscard]] constexpr bool operator<=(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    141 return !(lhs > rhs);
    -
    142}
    -
    143
    -
    144template<typename Lhs, typename Rhs>
    -
    145[[nodiscard]] constexpr bool operator>=(const storage_iterator<Lhs> &lhs, const storage_iterator<Rhs> &rhs) noexcept {
    -
    146 return !(lhs < rhs);
    -
    147}
    -
    148
    -
    149template<typename It, typename... Other>
    -
    150class extended_storage_iterator final {
    -
    151 template<typename Iter, typename... Args>
    -
    152 friend class extended_storage_iterator;
    -
    153
    -
    154public:
    -
    155 using iterator_type = It;
    -
    156 using value_type = decltype(std::tuple_cat(std::make_tuple(*std::declval<It>()), std::forward_as_tuple(*std::declval<Other>()...)));
    -
    157 using pointer = input_iterator_pointer<value_type>;
    -
    158 using reference = value_type;
    -
    159 using difference_type = std::ptrdiff_t;
    -
    160 using iterator_category = std::input_iterator_tag;
    -
    161 using iterator_concept = std::forward_iterator_tag;
    -
    162
    -
    163 constexpr extended_storage_iterator()
    -
    164 : it{} {}
    -
    165
    -
    166 constexpr extended_storage_iterator(iterator_type base, Other... other)
    -
    167 : it{base, other...} {}
    -
    168
    -
    169 template<typename... Args, typename = std::enable_if_t<(!std::is_same_v<Other, Args> && ...) && (std::is_constructible_v<Other, Args> && ...)>>
    -
    170 constexpr extended_storage_iterator(const extended_storage_iterator<It, Args...> &other)
    -
    171 : it{other.it} {}
    -
    172
    -
    173 constexpr extended_storage_iterator &operator++() noexcept {
    -
    174 return ++std::get<It>(it), (++std::get<Other>(it), ...), *this;
    -
    175 }
    -
    176
    -
    177 constexpr extended_storage_iterator operator++(int) noexcept {
    -
    178 extended_storage_iterator orig = *this;
    -
    179 return ++(*this), orig;
    -
    180 }
    -
    181
    -
    182 [[nodiscard]] constexpr pointer operator->() const noexcept {
    -
    183 return operator*();
    -
    184 }
    -
    185
    -
    186 [[nodiscard]] constexpr reference operator*() const noexcept {
    -
    187 return {*std::get<It>(it), *std::get<Other>(it)...};
    -
    188 }
    -
    189
    -
    190 [[nodiscard]] constexpr iterator_type base() const noexcept {
    -
    191 return std::get<It>(it);
    -
    192 }
    -
    193
    -
    194 template<typename... Lhs, typename... Rhs>
    -
    195 friend constexpr bool operator==(const extended_storage_iterator<Lhs...> &, const extended_storage_iterator<Rhs...> &) noexcept;
    -
    196
    -
    197private:
    -
    198 std::tuple<It, Other...> it;
    -
    199};
    -
    200
    -
    201template<typename... Lhs, typename... Rhs>
    -
    202[[nodiscard]] constexpr bool operator==(const extended_storage_iterator<Lhs...> &lhs, const extended_storage_iterator<Rhs...> &rhs) noexcept {
    -
    203 return std::get<0>(lhs.it) == std::get<0>(rhs.it);
    -
    204}
    -
    205
    -
    206template<typename... Lhs, typename... Rhs>
    -
    207[[nodiscard]] constexpr bool operator!=(const extended_storage_iterator<Lhs...> &lhs, const extended_storage_iterator<Rhs...> &rhs) noexcept {
    -
    208 return !(lhs == rhs);
    -
    209}
    -
    210
    -
    211} // namespace internal
    -
    229template<typename Type, typename Entity, typename Allocator, typename>
    -
    -
    230class basic_storage: public basic_sparse_set<Entity, typename std::allocator_traits<Allocator>::template rebind_alloc<Entity>> {
    -
    231 using alloc_traits = std::allocator_traits<Allocator>;
    -
    232 static_assert(std::is_same_v<typename alloc_traits::value_type, Type>, "Invalid value type");
    -
    233 using container_type = std::vector<typename alloc_traits::pointer, typename alloc_traits::template rebind_alloc<typename alloc_traits::pointer>>;
    - -
    235 using underlying_iterator = typename underlying_type::basic_iterator;
    - -
    237
    -
    238 [[nodiscard]] auto &element_at(const std::size_t pos) const {
    - -
    240 }
    -
    241
    -
    242 auto assure_at_least(const std::size_t pos) {
    -
    243 const auto idx = pos / traits_type::page_size;
    -
    244
    -
    245 if(!(idx < payload.size())) {
    -
    246 auto curr = payload.size();
    - -
    248 payload.resize(idx + 1u, nullptr);
    -
    249
    -
    250 ENTT_TRY {
    -
    251 for(const auto last = payload.size(); curr < last; ++curr) {
    -
    252 payload[curr] = alloc_traits::allocate(allocator, traits_type::page_size);
    -
    253 }
    -
    254 }
    -
    255 ENTT_CATCH {
    -
    256 payload.resize(curr);
    -
    257 ENTT_THROW;
    -
    258 }
    -
    259 }
    -
    260
    -
    261 return payload[idx] + fast_mod(pos, traits_type::page_size);
    -
    262 }
    -
    263
    -
    264 template<typename... Args>
    -
    265 auto emplace_element(const Entity entt, const bool force_back, Args &&...args) {
    - -
    267
    -
    268 ENTT_TRY {
    -
    269 auto *elem = to_address(assure_at_least(static_cast<size_type>(it.index())));
    - -
    271 }
    -
    272 ENTT_CATCH {
    -
    273 base_type::pop(it, it + 1u);
    -
    274 ENTT_THROW;
    -
    275 }
    -
    276
    -
    277 return it;
    -
    278 }
    -
    279
    -
    280 void shrink_to_size(const std::size_t sz) {
    - - -
    283
    -
    284 for(auto pos = sz, length = base_type::size(); pos < length; ++pos) {
    -
    285 if constexpr(traits_type::in_place_delete) {
    -
    286 if(base_type::data()[pos] != tombstone) {
    -
    287 alloc_traits::destroy(allocator, std::addressof(element_at(pos)));
    -
    288 }
    -
    289 } else {
    -
    290 alloc_traits::destroy(allocator, std::addressof(element_at(pos)));
    -
    291 }
    -
    292 }
    -
    293
    -
    294 for(auto pos = from, last = payload.size(); pos < last; ++pos) {
    -
    295 alloc_traits::deallocate(allocator, payload[pos], traits_type::page_size);
    -
    296 }
    -
    297
    -
    298 payload.resize(from);
    +
    92 const auto pos = static_cast<typename Container::size_type>(index() - value);
    +
    93 return (*payload)[pos / Page][fast_mod(static_cast<std::size_t>(pos), Page)];
    +
    94 }
    +
    95
    +
    96 [[nodiscard]] constexpr pointer operator->() const noexcept {
    +
    97 return std::addressof(operator[](0));
    +
    98 }
    +
    99
    +
    100 [[nodiscard]] constexpr reference operator*() const noexcept {
    +
    101 return operator[](0);
    +
    102 }
    +
    103
    +
    104 [[nodiscard]] constexpr difference_type index() const noexcept {
    +
    105 return offset - 1;
    +
    106 }
    +
    107
    +
    108private:
    +
    109 Container *payload;
    +
    110 difference_type offset;
    +
    111};
    +
    112
    +
    113template<typename Lhs, typename Rhs, auto Page>
    +
    114[[nodiscard]] constexpr std::ptrdiff_t operator-(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    115 return rhs.index() - lhs.index();
    +
    116}
    +
    117
    +
    118template<typename Lhs, typename Rhs, auto Page>
    +
    119[[nodiscard]] constexpr bool operator==(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    120 return lhs.index() == rhs.index();
    +
    121}
    +
    122
    +
    123template<typename Lhs, typename Rhs, auto Page>
    +
    124[[nodiscard]] constexpr bool operator!=(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    125 return !(lhs == rhs);
    +
    126}
    +
    127
    +
    128template<typename Lhs, typename Rhs, auto Page>
    +
    129[[nodiscard]] constexpr bool operator<(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    130 return lhs.index() > rhs.index();
    +
    131}
    +
    132
    +
    133template<typename Lhs, typename Rhs, auto Page>
    +
    134[[nodiscard]] constexpr bool operator>(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    135 return rhs < lhs;
    +
    136}
    +
    137
    +
    138template<typename Lhs, typename Rhs, auto Page>
    +
    139[[nodiscard]] constexpr bool operator<=(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    140 return !(lhs > rhs);
    +
    141}
    +
    142
    +
    143template<typename Lhs, typename Rhs, auto Page>
    +
    144[[nodiscard]] constexpr bool operator>=(const storage_iterator<Lhs, Page> &lhs, const storage_iterator<Rhs, Page> &rhs) noexcept {
    +
    145 return !(lhs < rhs);
    +
    146}
    +
    147
    +
    148template<typename It, typename... Other>
    +
    149class extended_storage_iterator final {
    +
    150 template<typename Iter, typename... Args>
    +
    151 friend class extended_storage_iterator;
    +
    152
    +
    153public:
    +
    154 using iterator_type = It;
    +
    155 using value_type = decltype(std::tuple_cat(std::make_tuple(*std::declval<It>()), std::forward_as_tuple(*std::declval<Other>()...)));
    +
    156 using pointer = input_iterator_pointer<value_type>;
    +
    157 using reference = value_type;
    +
    158 using difference_type = std::ptrdiff_t;
    +
    159 using iterator_category = std::input_iterator_tag;
    +
    160 using iterator_concept = std::forward_iterator_tag;
    +
    161
    +
    162 constexpr extended_storage_iterator()
    +
    163 : it{} {}
    +
    164
    +
    165 constexpr extended_storage_iterator(iterator_type base, Other... other)
    +
    166 : it{base, other...} {}
    +
    167
    +
    168 template<typename... Args, typename = std::enable_if_t<(!std::is_same_v<Other, Args> && ...) && (std::is_constructible_v<Other, Args> && ...)>>
    +
    169 constexpr extended_storage_iterator(const extended_storage_iterator<It, Args...> &other)
    +
    170 : it{other.it} {}
    +
    171
    +
    172 constexpr extended_storage_iterator &operator++() noexcept {
    +
    173 return ++std::get<It>(it), (++std::get<Other>(it), ...), *this;
    +
    174 }
    +
    175
    +
    176 constexpr extended_storage_iterator operator++(int) noexcept {
    +
    177 const extended_storage_iterator orig = *this;
    +
    178 return ++(*this), orig;
    +
    179 }
    +
    180
    +
    181 [[nodiscard]] constexpr pointer operator->() const noexcept {
    +
    182 return operator*();
    +
    183 }
    +
    184
    +
    185 [[nodiscard]] constexpr reference operator*() const noexcept {
    +
    186 return {*std::get<It>(it), *std::get<Other>(it)...};
    +
    187 }
    +
    188
    +
    189 [[nodiscard]] constexpr iterator_type base() const noexcept {
    +
    190 return std::get<It>(it);
    +
    191 }
    +
    192
    +
    193 template<typename... Lhs, typename... Rhs>
    +
    194 friend constexpr bool operator==(const extended_storage_iterator<Lhs...> &, const extended_storage_iterator<Rhs...> &) noexcept;
    +
    195
    +
    196private:
    +
    197 std::tuple<It, Other...> it;
    +
    198};
    +
    199
    +
    200template<typename... Lhs, typename... Rhs>
    +
    201[[nodiscard]] constexpr bool operator==(const extended_storage_iterator<Lhs...> &lhs, const extended_storage_iterator<Rhs...> &rhs) noexcept {
    +
    202 return std::get<0>(lhs.it) == std::get<0>(rhs.it);
    +
    203}
    +
    204
    +
    205template<typename... Lhs, typename... Rhs>
    +
    206[[nodiscard]] constexpr bool operator!=(const extended_storage_iterator<Lhs...> &lhs, const extended_storage_iterator<Rhs...> &rhs) noexcept {
    +
    207 return !(lhs == rhs);
    +
    208}
    +
    209
    +
    210} // namespace internal
    +
    212
    +
    228template<typename Type, typename Entity, typename Allocator, typename>
    +
    +
    229class basic_storage: public basic_sparse_set<Entity, typename std::allocator_traits<Allocator>::template rebind_alloc<Entity>> {
    +
    230 using alloc_traits = std::allocator_traits<Allocator>;
    +
    231 static_assert(std::is_same_v<typename alloc_traits::value_type, Type>, "Invalid value type");
    +
    232 using container_type = std::vector<typename alloc_traits::pointer, typename alloc_traits::template rebind_alloc<typename alloc_traits::pointer>>;
    + +
    234 using underlying_iterator = typename underlying_type::basic_iterator;
    +
    235 using traits_type = component_traits<Type, Entity>;
    +
    236
    +
    237 [[nodiscard]] auto &element_at(const std::size_t pos) const {
    +
    238 return payload[pos / traits_type::page_size][fast_mod(pos, traits_type::page_size)];
    +
    239 }
    +
    240
    +
    241 auto assure_at_least(const std::size_t pos) {
    +
    242 const auto idx = pos / traits_type::page_size;
    +
    243
    +
    244 if(!(idx < payload.size())) {
    +
    245 auto curr = payload.size();
    +
    246 allocator_type allocator{get_allocator()};
    +
    247 payload.resize(idx + 1u, nullptr);
    +
    248
    +
    249 ENTT_TRY {
    +
    250 for(const auto last = payload.size(); curr < last; ++curr) {
    +
    251 payload[curr] = alloc_traits::allocate(allocator, traits_type::page_size);
    +
    252 }
    +
    253 }
    +
    254 ENTT_CATCH {
    +
    255 payload.resize(curr);
    +
    256 ENTT_THROW;
    +
    257 }
    +
    258 }
    +
    259
    +
    260 return payload[idx] + fast_mod(pos, traits_type::page_size);
    +
    261 }
    +
    262
    +
    263 template<typename... Args>
    +
    264 auto emplace_element(const Entity entt, const bool force_back, Args &&...args) {
    +
    265 const auto it = base_type::try_emplace(entt, force_back);
    +
    266
    +
    267 ENTT_TRY {
    +
    268 auto *elem = to_address(assure_at_least(static_cast<size_type>(it.index())));
    +
    269 entt::uninitialized_construct_using_allocator(elem, get_allocator(), std::forward<Args>(args)...);
    +
    270 }
    +
    271 ENTT_CATCH {
    +
    272 base_type::pop(it, it + 1u);
    +
    273 ENTT_THROW;
    +
    274 }
    +
    275
    +
    276 return it;
    +
    277 }
    +
    278
    +
    279 void shrink_to_size(const std::size_t sz) {
    +
    280 const auto from = (sz + traits_type::page_size - 1u) / traits_type::page_size;
    +
    281 allocator_type allocator{get_allocator()};
    +
    282
    +
    283 for(auto pos = sz, length = base_type::size(); pos < length; ++pos) {
    +
    284 if constexpr(traits_type::in_place_delete) {
    +
    285 if(base_type::data()[pos] != tombstone) {
    +
    286 alloc_traits::destroy(allocator, std::addressof(element_at(pos)));
    +
    287 }
    +
    288 } else {
    +
    289 alloc_traits::destroy(allocator, std::addressof(element_at(pos)));
    +
    290 }
    +
    291 }
    +
    292
    +
    293 for(auto pos = from, last = payload.size(); pos < last; ++pos) {
    +
    294 alloc_traits::deallocate(allocator, payload[pos], traits_type::page_size);
    +
    295 }
    +
    296
    +
    297 payload.resize(from);
    +
    298 payload.shrink_to_fit();
    299 }
    300
    -
    301private:
    -
    302 [[nodiscard]] const void *get_at(const std::size_t pos) const final {
    -
    303 return std::addressof(element_at(pos));
    +
    301 void swap_at(const std::size_t lhs, const std::size_t rhs) {
    +
    302 using std::swap;
    +
    303 swap(element_at(lhs), element_at(rhs));
    304 }
    305
    -
    306 void swap_or_move([[maybe_unused]] const std::size_t from, [[maybe_unused]] const std::size_t to) override {
    -
    307 static constexpr bool is_pinned_type_v = !(std::is_move_constructible_v<Type> && std::is_move_assignable_v<Type>);
    -
    308 // use a runtime value to avoid compile-time suppression that drives the code coverage tool crazy
    -
    309 ENTT_ASSERT((from + 1u) && !is_pinned_type_v, "Pinned type");
    -
    310
    -
    311 if constexpr(!is_pinned_type_v) {
    -
    312 auto &elem = element_at(from);
    -
    313
    -
    314 if constexpr(traits_type::in_place_delete) {
    -
    315 if(base_type::operator[](to) == tombstone) {
    - - -
    318 alloc_traits::destroy(allocator, std::addressof(elem));
    -
    319 return;
    -
    320 }
    -
    321 }
    +
    306 void move_to(const std::size_t lhs, const std::size_t rhs) {
    +
    307 auto &elem = element_at(lhs);
    +
    308 allocator_type allocator{get_allocator()};
    +
    309 entt::uninitialized_construct_using_allocator(to_address(assure_at_least(rhs)), allocator, std::move(elem));
    +
    310 alloc_traits::destroy(allocator, std::addressof(elem));
    +
    311 }
    +
    312
    +
    313private:
    +
    314 [[nodiscard]] const void *get_at(const std::size_t pos) const final {
    +
    315 return std::addressof(element_at(pos));
    +
    316 }
    +
    317
    +
    318 void swap_or_move([[maybe_unused]] const std::size_t from, [[maybe_unused]] const std::size_t to) override {
    +
    319 static constexpr bool is_pinned_type = !(std::is_move_constructible_v<Type> && std::is_move_assignable_v<Type>);
    +
    320 // use a runtime value to avoid compile-time suppression that drives the code coverage tool crazy
    +
    321 ENTT_ASSERT((from + 1u) && !is_pinned_type, "Pinned type");
    322
    -
    323 using std::swap;
    -
    324 swap(elem, element_at(to));
    -
    325 }
    -
    326 }
    -
    327
    -
    328protected:
    -
    -
    334 void pop(underlying_iterator first, underlying_iterator last) override {
    -
    335 for(allocator_type allocator{get_allocator()}; first != last; ++first) {
    -
    336 // cannot use first.index() because it would break with cross iterators
    -
    337 auto &elem = element_at(base_type::index(*first));
    -
    338
    -
    339 if constexpr(traits_type::in_place_delete) {
    - -
    341 alloc_traits::destroy(allocator, std::addressof(elem));
    -
    342 } else {
    -
    343 auto &other = element_at(base_type::size() - 1u);
    -
    344 // destroying on exit allows reentrant destructors
    -
    345 [[maybe_unused]] auto unused = std::exchange(elem, std::move(other));
    -
    346 alloc_traits::destroy(allocator, std::addressof(other));
    - -
    348 }
    -
    349 }
    -
    350 }
    +
    323 if constexpr(!is_pinned_type) {
    +
    324 if constexpr(traits_type::in_place_delete) {
    +
    325 (base_type::operator[](to) == tombstone) ? move_to(from, to) : swap_at(from, to);
    +
    326 } else {
    +
    327 swap_at(from, to);
    +
    328 }
    +
    329 }
    +
    330 }
    +
    331
    +
    332protected:
    +
    +
    338 void pop(underlying_iterator first, underlying_iterator last) override {
    +
    339 for(allocator_type allocator{get_allocator()}; first != last; ++first) {
    +
    340 // cannot use first.index() because it would break with cross iterators
    +
    341 auto &elem = element_at(base_type::index(*first));
    +
    342
    +
    343 if constexpr(traits_type::in_place_delete) {
    + +
    345 alloc_traits::destroy(allocator, std::addressof(elem));
    +
    346 } else {
    +
    347 auto &other = element_at(base_type::size() - 1u);
    +
    348 // destroying on exit allows reentrant destructors
    +
    349 [[maybe_unused]] auto unused = std::exchange(elem, std::move(other));
    +
    350 alloc_traits::destroy(allocator, std::addressof(other));
    + +
    352 }
    +
    353 }
    +
    354 }
    -
    351
    -
    -
    353 void pop_all() override {
    - -
    355
    -
    356 for(auto first = base_type::begin(); !(first.index() < 0); ++first) {
    -
    357 if constexpr(traits_type::in_place_delete) {
    -
    358 if(*first != tombstone) {
    - -
    360 alloc_traits::destroy(allocator, std::addressof(element_at(static_cast<size_type>(first.index()))));
    -
    361 }
    -
    362 } else {
    - -
    364 alloc_traits::destroy(allocator, std::addressof(element_at(static_cast<size_type>(first.index()))));
    -
    365 }
    -
    366 }
    -
    367 }
    +
    355
    +
    +
    357 void pop_all() override {
    +
    358 allocator_type allocator{get_allocator()};
    +
    359
    +
    360 for(auto first = base_type::begin(); !(first.index() < 0); ++first) {
    +
    361 if constexpr(traits_type::in_place_delete) {
    +
    362 if(*first != tombstone) {
    + +
    364 alloc_traits::destroy(allocator, std::addressof(element_at(static_cast<size_type>(first.index()))));
    +
    365 }
    +
    366 } else {
    + +
    368 alloc_traits::destroy(allocator, std::addressof(element_at(static_cast<size_type>(first.index()))));
    +
    369 }
    +
    370 }
    +
    371 }
    -
    368
    -
    -
    376 underlying_iterator try_emplace([[maybe_unused]] const Entity entt, [[maybe_unused]] const bool force_back, const void *value) override {
    -
    377 if(value != nullptr) {
    -
    378 if constexpr(std::is_copy_constructible_v<element_type>) {
    -
    379 return emplace_element(entt, force_back, *static_cast<const element_type *>(value));
    -
    380 } else {
    -
    381 return base_type::end();
    -
    382 }
    -
    383 } else {
    -
    384 if constexpr(std::is_default_constructible_v<element_type>) {
    -
    385 return emplace_element(entt, force_back);
    -
    386 } else {
    -
    387 return base_type::end();
    -
    388 }
    -
    389 }
    -
    390 }
    +
    372
    +
    +
    380 underlying_iterator try_emplace([[maybe_unused]] const Entity entt, [[maybe_unused]] const bool force_back, const void *value) override {
    +
    381 if(value != nullptr) {
    +
    382 if constexpr(std::is_copy_constructible_v<element_type>) {
    +
    383 return emplace_element(entt, force_back, *static_cast<const element_type *>(value));
    +
    384 } else {
    +
    385 return base_type::end();
    +
    386 }
    +
    387 } else {
    +
    388 if constexpr(std::is_default_constructible_v<element_type>) {
    +
    389 return emplace_element(entt, force_back);
    +
    390 } else {
    +
    391 return base_type::end();
    +
    392 }
    +
    393 }
    +
    394 }
    -
    391
    -
    392public:
    -
    394 using allocator_type = Allocator;
    - -
    398 using element_type = Type;
    - - -
    404 using size_type = std::size_t;
    -
    406 using pointer = typename container_type::pointer;
    -
    408 using const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointer;
    -
    410 using iterator = internal::storage_iterator<container_type>;
    -
    412 using const_iterator = internal::storage_iterator<const container_type>;
    -
    414 using reverse_iterator = std::reverse_iterator<iterator>;
    -
    416 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    - - - - - -
    427
    -
    - - +
    395
    +
    396public:
    +
    398 using allocator_type = Allocator;
    +
    400 using base_type = underlying_type;
    +
    402 using element_type = Type;
    + +
    406 using entity_type = Entity;
    +
    408 using size_type = std::size_t;
    +
    410 using difference_type = std::ptrdiff_t;
    +
    412 using pointer = typename container_type::pointer;
    +
    414 using const_pointer = typename alloc_traits::template rebind_traits<typename alloc_traits::const_pointer>::const_pointer;
    +
    416 using iterator = internal::storage_iterator<container_type, traits_type::page_size>;
    +
    418 using const_iterator = internal::storage_iterator<const container_type, traits_type::page_size>;
    +
    420 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    422 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    + + + + + +
    433
    + -
    431
    -
    - - -
    438 payload{allocator} {}
    +
    437
    +
    +
    442 explicit basic_storage(const allocator_type &allocator)
    + +
    444 payload{allocator} {}
    -
    439
    -
    441 basic_storage(const basic_storage &) = delete;
    -
    442
    -
    - -
    448 : base_type{std::move(other)},
    -
    449 payload{std::move(other.payload)} {}
    +
    445
    +
    447 basic_storage(const basic_storage &) = delete;
    +
    448
    +
    453 // NOLINTBEGIN(bugprone-use-after-move)
    +
    +
    454 basic_storage(basic_storage &&other) noexcept
    +
    455 : base_type{std::move(other)},
    +
    456 payload{std::move(other.payload)} {}
    -
    450
    -
    - -
    457 : base_type{std::move(other), allocator},
    -
    458 payload{std::move(other.payload), allocator} {
    -
    459 // NOLINTNEXTLINE(bugprone-use-after-move)
    -
    460 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a storage is not allowed");
    -
    461 }
    -
    -
    462
    -
    464 // NOLINTNEXTLINE(bugprone-exception-escape)
    +
    457 // NOLINTEND(bugprone-use-after-move)
    +
    458
    +
    464 // NOLINTBEGIN(bugprone-use-after-move)
    -
    465 ~basic_storage() override {
    -
    466 shrink_to_size(0u);
    -
    467 }
    +
    465 basic_storage(basic_storage &&other, const allocator_type &allocator)
    +
    466 : base_type{std::move(other), allocator},
    +
    467 payload{std::move(other.payload), allocator} {
    +
    468 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a storage is not allowed");
    +
    469 }
    -
    468
    - -
    474
    -
    - -
    481 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a storage is not allowed");
    -
    482 swap(other);
    -
    483 return *this;
    -
    484 }
    +
    470 // NOLINTEND(bugprone-use-after-move)
    +
    471
    +
    473 // NOLINTNEXTLINE(bugprone-exception-escape)
    +
    +
    474 ~basic_storage() override {
    +
    475 shrink_to_size(0u);
    +
    476 }
    -
    485
    -
    -
    490 void swap(basic_storage &other) noexcept {
    -
    491 using std::swap;
    -
    492 swap(payload, other.payload);
    - -
    494 }
    +
    477
    + +
    483
    +
    + +
    490 ENTT_ASSERT(alloc_traits::is_always_equal::value || get_allocator() == other.get_allocator(), "Copying a storage is not allowed");
    +
    491 swap(other);
    +
    492 return *this;
    +
    493 }
    -
    495
    -
    - -
    501 return payload.get_allocator();
    -
    502 }
    +
    494
    +
    +
    499 void swap(basic_storage &other) noexcept {
    +
    500 using std::swap;
    +
    501 swap(payload, other.payload);
    +
    502 base_type::swap(other);
    +
    503 }
    -
    503
    -
    -
    512 void reserve(const size_type cap) override {
    -
    513 if(cap != 0u) {
    - -
    515 assure_at_least(cap - 1u);
    -
    516 }
    -
    517 }
    +
    504
    +
    +
    509 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    +
    510 return payload.get_allocator();
    +
    511 }
    -
    518
    -
    - -
    525 return payload.size() * traits_type::page_size;
    +
    512
    +
    +
    521 void reserve(const size_type cap) override {
    +
    522 if(cap != 0u) {
    + +
    524 assure_at_least(cap - 1u);
    +
    525 }
    526 }
    -
    527
    -
    -
    529 void shrink_to_fit() override {
    - -
    531 shrink_to_size(base_type::size());
    -
    532 }
    +
    527
    +
    +
    533 [[nodiscard]] size_type capacity() const noexcept override {
    +
    534 return payload.size() * traits_type::page_size;
    +
    535 }
    -
    533
    +
    536
    - -
    539 return payload.data();
    -
    540 }
    +
    538 void shrink_to_fit() override {
    + +
    540 shrink_to_size(base_type::size());
    +
    541 }
    -
    541
    -
    - -
    544 return payload.data();
    -
    545 }
    +
    542
    +
    +
    547 [[nodiscard]] const_pointer raw() const noexcept {
    +
    548 return payload.data();
    +
    549 }
    -
    546
    -
    - -
    555 const auto pos = static_cast<typename iterator::difference_type>(base_type::size());
    -
    556 return const_iterator{&payload, pos};
    -
    557 }
    +
    550
    +
    +
    552 [[nodiscard]] pointer raw() noexcept {
    +
    553 return payload.data();
    +
    554 }
    -
    558
    -
    - -
    561 return cbegin();
    -
    562 }
    +
    555
    +
    +
    563 [[nodiscard]] const_iterator cbegin() const noexcept {
    +
    564 const auto pos = static_cast<difference_type>(base_type::size());
    +
    565 return const_iterator{&payload, pos};
    +
    566 }
    -
    563
    -
    - -
    566 const auto pos = static_cast<typename iterator::difference_type>(base_type::size());
    -
    567 return iterator{&payload, pos};
    -
    568 }
    +
    567
    +
    +
    569 [[nodiscard]] const_iterator begin() const noexcept {
    +
    570 return cbegin();
    +
    571 }
    -
    569
    -
    - -
    576 return const_iterator{&payload, {}};
    +
    572
    +
    +
    574 [[nodiscard]] iterator begin() noexcept {
    +
    575 const auto pos = static_cast<difference_type>(base_type::size());
    +
    576 return iterator{&payload, pos};
    577 }
    -
    578
    -
    - -
    581 return cend();
    -
    582 }
    +
    578
    +
    +
    584 [[nodiscard]] const_iterator cend() const noexcept {
    +
    585 return const_iterator{&payload, {}};
    +
    586 }
    -
    583
    -
    - -
    586 return iterator{&payload, {}};
    -
    587 }
    +
    587
    +
    +
    589 [[nodiscard]] const_iterator end() const noexcept {
    +
    590 return cend();
    +
    591 }
    -
    588
    -
    - -
    597 return std::make_reverse_iterator(cend());
    -
    598 }
    +
    592
    +
    +
    594 [[nodiscard]] iterator end() noexcept {
    +
    595 return iterator{&payload, {}};
    +
    596 }
    -
    599
    -
    - -
    602 return crbegin();
    -
    603 }
    +
    597
    +
    +
    605 [[nodiscard]] const_reverse_iterator crbegin() const noexcept {
    +
    606 return std::make_reverse_iterator(cend());
    +
    607 }
    -
    604
    -
    - -
    607 return std::make_reverse_iterator(end());
    -
    608 }
    +
    608
    +
    +
    610 [[nodiscard]] const_reverse_iterator rbegin() const noexcept {
    +
    611 return crbegin();
    +
    612 }
    -
    609
    +
    613
    - -
    616 return std::make_reverse_iterator(cbegin());
    +
    615 [[nodiscard]] reverse_iterator rbegin() noexcept {
    +
    616 return std::make_reverse_iterator(end());
    617 }
    -
    618
    -
    - -
    621 return crend();
    -
    622 }
    +
    618
    +
    +
    624 [[nodiscard]] const_reverse_iterator crend() const noexcept {
    +
    625 return std::make_reverse_iterator(cbegin());
    +
    626 }
    -
    623
    -
    - -
    626 return std::make_reverse_iterator(begin());
    -
    627 }
    +
    627
    +
    +
    629 [[nodiscard]] const_reverse_iterator rend() const noexcept {
    +
    630 return crend();
    +
    631 }
    -
    628
    -
    -
    639 [[nodiscard]] const value_type &get(const entity_type entt) const noexcept {
    -
    640 return element_at(base_type::index(entt));
    -
    641 }
    +
    632
    +
    +
    634 [[nodiscard]] reverse_iterator rend() noexcept {
    +
    635 return std::make_reverse_iterator(begin());
    +
    636 }
    -
    642
    -
    -
    644 [[nodiscard]] value_type &get(const entity_type entt) noexcept {
    -
    645 return const_cast<value_type &>(std::as_const(*this).get(entt));
    -
    646 }
    +
    637
    +
    +
    648 [[nodiscard]] const value_type &get(const entity_type entt) const noexcept {
    +
    649 return element_at(base_type::index(entt));
    +
    650 }
    -
    647
    +
    651
    -
    653 [[nodiscard]] std::tuple<const value_type &> get_as_tuple(const entity_type entt) const noexcept {
    -
    654 return std::forward_as_tuple(get(entt));
    +
    653 [[nodiscard]] value_type &get(const entity_type entt) noexcept {
    +
    654 return const_cast<value_type &>(std::as_const(*this).get(entt));
    655 }
    -
    656
    -
    -
    658 [[nodiscard]] std::tuple<value_type &> get_as_tuple(const entity_type entt) noexcept {
    -
    659 return std::forward_as_tuple(get(entt));
    -
    660 }
    +
    656
    +
    +
    662 [[nodiscard]] std::tuple<const value_type &> get_as_tuple(const entity_type entt) const noexcept {
    +
    663 return std::forward_as_tuple(get(entt));
    +
    664 }
    -
    661
    -
    674 template<typename... Args>
    -
    - -
    676 if constexpr(std::is_aggregate_v<value_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<value_type>)) {
    -
    677 const auto it = emplace_element(entt, false, Type{std::forward<Args>(args)...});
    -
    678 return element_at(static_cast<size_type>(it.index()));
    -
    679 } else {
    -
    680 const auto it = emplace_element(entt, false, std::forward<Args>(args)...);
    -
    681 return element_at(static_cast<size_type>(it.index()));
    -
    682 }
    -
    683 }
    +
    665
    +
    +
    667 [[nodiscard]] std::tuple<value_type &> get_as_tuple(const entity_type entt) noexcept {
    +
    668 return std::forward_as_tuple(get(entt));
    +
    669 }
    -
    684
    -
    692 template<typename... Func>
    -
    -
    693 value_type &patch(const entity_type entt, Func &&...func) {
    -
    694 const auto idx = base_type::index(entt);
    -
    695 auto &elem = element_at(idx);
    -
    696 (std::forward<Func>(func)(elem), ...);
    -
    697 return elem;
    -
    698 }
    +
    670
    +
    683 template<typename... Args>
    +
    +
    684 value_type &emplace(const entity_type entt, Args &&...args) {
    +
    685 if constexpr(std::is_aggregate_v<value_type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<value_type>)) {
    +
    686 const auto it = emplace_element(entt, false, Type{std::forward<Args>(args)...});
    +
    687 return element_at(static_cast<size_type>(it.index()));
    +
    688 } else {
    +
    689 const auto it = emplace_element(entt, false, std::forward<Args>(args)...);
    +
    690 return element_at(static_cast<size_type>(it.index()));
    +
    691 }
    +
    692 }
    -
    699
    -
    714 template<typename It>
    -
    -
    715 iterator insert(It first, It last, const value_type &value = {}) {
    -
    716 for(; first != last; ++first) {
    -
    717 emplace_element(*first, true, value);
    -
    718 }
    -
    719
    -
    720 return begin();
    -
    721 }
    +
    693
    +
    701 template<typename... Func>
    +
    +
    702 value_type &patch(const entity_type entt, Func &&...func) {
    +
    703 const auto idx = base_type::index(entt);
    +
    704 auto &elem = element_at(idx);
    +
    705 (std::forward<Func>(func)(elem), ...);
    +
    706 return elem;
    +
    707 }
    -
    722
    - -
    -
    737 iterator insert(EIt first, EIt last, CIt from) {
    -
    738 for(; first != last; ++first, ++from) {
    -
    739 emplace_element(*first, true, *from);
    -
    740 }
    -
    741
    -
    742 return begin();
    -
    743 }
    +
    708
    +
    723 template<typename It>
    +
    +
    724 iterator insert(It first, It last, const value_type &value = {}) {
    +
    725 for(; first != last; ++first) {
    +
    726 emplace_element(*first, true, value);
    +
    727 }
    +
    728
    +
    729 return begin();
    +
    730 }
    -
    744
    -
    - -
    754 return iterable{{base_type::begin(), begin()}, {base_type::end(), end()}};
    -
    755 }
    +
    731
    +
    745 template<typename EIt, typename CIt, typename = std::enable_if_t<std::is_same_v<typename std::iterator_traits<CIt>::value_type, value_type>>>
    +
    +
    746 iterator insert(EIt first, EIt last, CIt from) {
    +
    747 for(; first != last; ++first, ++from) {
    +
    748 emplace_element(*first, true, *from);
    +
    749 }
    +
    750
    +
    751 return begin();
    +
    752 }
    -
    756
    -
    - - -
    760 }
    +
    753
    +
    +
    762 [[nodiscard]] iterable each() noexcept {
    +
    763 return iterable{{base_type::begin(), begin()}, {base_type::end(), end()}};
    +
    764 }
    -
    761
    -
    - - -
    771 }
    +
    765
    +
    +
    767 [[nodiscard]] const_iterable each() const noexcept {
    + +
    769 }
    -
    772
    -
    - - -
    776 }
    +
    770
    +
    +
    778 [[nodiscard]] reverse_iterable reach() noexcept {
    + +
    780 }
    -
    777
    -
    778private:
    -
    779 container_type payload;
    -
    780};
    +
    781
    +
    +
    783 [[nodiscard]] const_reverse_iterable reach() const noexcept {
    + +
    785 }
    -
    781
    -
    783template<typename Type, typename Entity, typename Allocator>
    -
    -
    784class basic_storage<Type, Entity, Allocator, std::enable_if_t<component_traits<Type>::page_size == 0u>>
    -
    785 : public basic_sparse_set<Entity, typename std::allocator_traits<Allocator>::template rebind_alloc<Entity>> {
    -
    786 using alloc_traits = std::allocator_traits<Allocator>;
    -
    787 static_assert(std::is_same_v<typename alloc_traits::value_type, Type>, "Invalid value type");
    - -
    789
    -
    790public:
    -
    792 using allocator_type = Allocator;
    - -
    796 using element_type = Type;
    - - -
    802 using size_type = std::size_t;
    - - - - - -
    813
    -
    - - +
    786
    +
    787private:
    +
    788 container_type payload;
    +
    789};
    -
    817
    -
    - - +
    790
    +
    792template<typename Type, typename Entity, typename Allocator>
    +
    +
    793class basic_storage<Type, Entity, Allocator, std::enable_if_t<component_traits<Type, Entity>::page_size == 0u>>
    +
    794 : public basic_sparse_set<Entity, typename std::allocator_traits<Allocator>::template rebind_alloc<Entity>> {
    +
    795 using alloc_traits = std::allocator_traits<Allocator>;
    +
    796 static_assert(std::is_same_v<typename alloc_traits::value_type, Type>, "Invalid value type");
    +
    797 using traits_type = component_traits<Type, Entity>;
    +
    798
    +
    799public:
    +
    801 using allocator_type = Allocator;
    + +
    805 using element_type = Type;
    +
    807 using value_type = void;
    +
    809 using entity_type = Entity;
    +
    811 using size_type = std::size_t;
    +
    813 using difference_type = std::ptrdiff_t;
    + + + + + +
    824
    + -
    824
    -
    826 basic_storage(const basic_storage &) = delete;
    -
    827
    -
    832 basic_storage(basic_storage &&other) noexcept = default;
    -
    833
    -
    - -
    840 : base_type{std::move(other), allocator} {}
    +
    828
    +
    +
    833 explicit basic_storage(const allocator_type &allocator)
    +
    834 : base_type{type_id<element_type>(), storage_policy, allocator} {}
    -
    841
    -
    843 ~basic_storage() override = default;
    -
    844
    - -
    850
    - -
    857
    -
    - -
    863 // std::allocator<void> has no cross constructors (waiting for C++20)
    -
    864 if constexpr(std::is_void_v<element_type> && !std::is_constructible_v<allocator_type, typename base_type::allocator_type>) {
    -
    865 return allocator_type{};
    -
    866 } else {
    - -
    868 }
    -
    869 }
    +
    835
    +
    837 basic_storage(const basic_storage &) = delete;
    +
    838
    +
    843 basic_storage(basic_storage &&other) noexcept = default;
    +
    844
    +
    +
    850 basic_storage(basic_storage &&other, const allocator_type &allocator)
    +
    851 : base_type{std::move(other), allocator} {}
    -
    870
    -
    -
    880 void get([[maybe_unused]] const entity_type entt) const noexcept {
    -
    881 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    -
    882 }
    +
    852
    +
    854 ~basic_storage() override = default;
    +
    855
    + +
    861
    +
    867 basic_storage &operator=(basic_storage &&other) noexcept = default;
    +
    868
    +
    +
    873 [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
    +
    874 // std::allocator<void> has no cross constructors (waiting for C++20)
    +
    875 if constexpr(std::is_void_v<element_type> && !std::is_constructible_v<allocator_type, typename base_type::allocator_type>) {
    +
    876 return allocator_type{};
    +
    877 } else {
    + +
    879 }
    +
    880 }
    -
    883
    -
    -
    889 [[nodiscard]] std::tuple<> get_as_tuple([[maybe_unused]] const entity_type entt) const noexcept {
    -
    890 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    -
    891 return std::tuple{};
    -
    892 }
    +
    881
    +
    +
    891 void get([[maybe_unused]] const entity_type entt) const noexcept {
    +
    892 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    +
    893 }
    -
    893
    -
    904 template<typename... Args>
    -
    -
    905 void emplace(const entity_type entt, Args &&...) {
    - -
    907 }
    +
    894
    +
    +
    900 [[nodiscard]] std::tuple<> get_as_tuple([[maybe_unused]] const entity_type entt) const noexcept {
    +
    901 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    +
    902 return std::tuple{};
    +
    903 }
    -
    908
    -
    915 template<typename... Func>
    -
    -
    916 void patch([[maybe_unused]] const entity_type entt, Func &&...func) {
    -
    917 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    -
    918 (std::forward<Func>(func)(), ...);
    +
    904
    +
    915 template<typename... Args>
    +
    916 // NOLINTNEXTLINE(cppcoreguidelines-missing-std-forward)
    +
    +
    917 void emplace(const entity_type entt, Args &&...) {
    +
    919 }
    -
    920
    -
    928 template<typename It, typename... Args>
    -
    -
    929 void insert(It first, It last, Args &&...) {
    -
    930 for(; first != last; ++first) {
    -
    931 base_type::try_emplace(*first, true);
    -
    932 }
    -
    933 }
    +
    920
    +
    927 template<typename... Func>
    +
    +
    928 void patch([[maybe_unused]] const entity_type entt, Func &&...func) {
    +
    929 ENTT_ASSERT(base_type::contains(entt), "Invalid entity");
    +
    930 (std::forward<Func>(func)(), ...);
    +
    931 }
    -
    934
    +
    932
    +
    940 template<typename It, typename... Args>
    +
    941 // NOLINTNEXTLINE(cppcoreguidelines-missing-std-forward)
    - - -
    944 }
    +
    942 void insert(It first, It last, Args &&...) {
    +
    943 for(; first != last; ++first) {
    +
    944 base_type::try_emplace(*first, true);
    +
    945 }
    +
    946 }
    -
    945
    -
    - - -
    949 }
    +
    947
    +
    +
    955 [[nodiscard]] iterable each() noexcept {
    + +
    957 }
    -
    950
    -
    - - -
    960 }
    +
    958
    +
    +
    960 [[nodiscard]] const_iterable each() const noexcept {
    + +
    962 }
    -
    961
    -
    - - -
    965 }
    +
    963
    +
    +
    971 [[nodiscard]] reverse_iterable reach() noexcept {
    + +
    973 }
    -
    966};
    +
    974
    +
    +
    976 [[nodiscard]] const_reverse_iterable reach() const noexcept {
    + +
    978 }
    -
    967
    -
    973template<typename Entity, typename Allocator>
    -
    -
    974class basic_storage<Entity, Entity, Allocator>
    -
    975 : public basic_sparse_set<Entity, Allocator> {
    -
    976 using alloc_traits = std::allocator_traits<Allocator>;
    -
    977 static_assert(std::is_same_v<typename alloc_traits::value_type, Entity>, "Invalid value type");
    -
    978 using underlying_iterator = typename basic_sparse_set<Entity, Allocator>::basic_iterator;
    - -
    980
    -
    981 auto next() noexcept {
    - -
    983
    -
    984 do {
    -
    985 ENTT_ASSERT(placeholder < traits_type::to_entity(null), "No more entities available");
    -
    986 entt = traits_type::combine(static_cast<typename traits_type::entity_type>(placeholder++), {});
    -
    987 } while(base_type::current(entt) != traits_type::to_version(tombstone) && entt != null);
    -
    988
    -
    989 return entt;
    -
    990 }
    -
    991
    -
    992protected:
    -
    -
    994 void pop_all() override {
    - -
    996 placeholder = {};
    -
    997 }
    -
    -
    998
    -
    -
    1004 underlying_iterator try_emplace(const Entity hint, const bool, const void *) override {
    -
    1005 return base_type::find(emplace(hint));
    -
    1006 }
    +
    979};
    +
    980
    +
    986template<typename Entity, typename Allocator>
    +
    +
    987class basic_storage<Entity, Entity, Allocator>
    +
    988 : public basic_sparse_set<Entity, Allocator> {
    +
    989 using alloc_traits = std::allocator_traits<Allocator>;
    +
    990 static_assert(std::is_same_v<typename alloc_traits::value_type, Entity>, "Invalid value type");
    +
    991 using underlying_iterator = typename basic_sparse_set<Entity, Allocator>::basic_iterator;
    +
    992 using traits_type = entt_traits<Entity>;
    +
    993
    +
    994 auto from_placeholder() noexcept {
    +
    995 const auto entt = traits_type::combine(static_cast<typename traits_type::entity_type>(placeholder), {});
    +
    996 ENTT_ASSERT(entt != null, "No more entities available");
    +
    997 placeholder += static_cast<size_type>(entt != null);
    +
    998 return entt;
    +
    999 }
    +
    1000
    +
    1001 auto next() noexcept {
    +
    1002 entity_type entt = from_placeholder();
    +
    1003
    + +
    1005 entt = from_placeholder();
    +
    1006 }
    1007
    -
    1008public:
    -
    1010 using allocator_type = Allocator;
    - - - - -
    1020 using size_type = std::size_t;
    - - - - - -
    1031
    -
    - - -
    1035 }
    +
    1008 return entt;
    +
    1009 }
    +
    1010
    +
    1011protected:
    +
    +
    1013 void pop_all() override {
    + +
    1015 placeholder = {};
    +
    1016 }
    -
    1036
    -
    - - +
    1017
    +
    +
    1023 underlying_iterator try_emplace(const Entity hint, const bool, const void *) override {
    +
    1024 return base_type::find(generate(hint));
    +
    1025 }
    -
    1043
    -
    1045 basic_storage(const basic_storage &) = delete;
    -
    1046
    -
    - -
    1052 : base_type{std::move(other)},
    -
    1053 placeholder{other.placeholder} {}
    +
    1026
    +
    1027public:
    +
    1029 using allocator_type = Allocator;
    + +
    1033 using element_type = Entity;
    +
    1035 using value_type = void;
    +
    1037 using entity_type = Entity;
    +
    1039 using size_type = std::size_t;
    +
    1041 using difference_type = std::ptrdiff_t;
    + + + + + +
    1052
    +
    + + +
    1056 }
    -
    1054
    -
    - -
    1061 : base_type{std::move(other), allocator},
    -
    1062 placeholder{other.placeholder} {}
    +
    1057
    +
    +
    1062 explicit basic_storage(const allocator_type &allocator)
    +
    1063 : base_type{type_id<void>(), storage_policy, allocator} {}
    -
    1063
    -
    1065 ~basic_storage() override = default;
    -
    1066
    - -
    1072
    -
    - -
    1079 placeholder = other.placeholder;
    -
    1080 base_type::operator=(std::move(other));
    -
    1081 return *this;
    -
    1082 }
    +
    1064
    +
    1066 basic_storage(const basic_storage &) = delete;
    +
    1067
    +
    1072 // NOLINTBEGIN(bugprone-use-after-move)
    +
    + +
    1074 : base_type{std::move(other)},
    +
    1075 placeholder{other.placeholder} {}
    -
    1083
    -
    -
    1093 void get([[maybe_unused]] const entity_type entt) const noexcept {
    -
    1094 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    -
    1095 }
    +
    1076 // NOLINTEND(bugprone-use-after-move)
    +
    1077
    +
    1083 // NOLINTBEGIN(bugprone-use-after-move)
    +
    +
    1084 basic_storage(basic_storage &&other, const allocator_type &allocator)
    +
    1085 : base_type{std::move(other), allocator},
    +
    1086 placeholder{other.placeholder} {}
    -
    1096
    -
    -
    1102 [[nodiscard]] std::tuple<> get_as_tuple([[maybe_unused]] const entity_type entt) const noexcept {
    -
    1103 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    -
    1104 return std::tuple{};
    -
    1105 }
    +
    1087 // NOLINTEND(bugprone-use-after-move)
    +
    1088
    +
    1090 ~basic_storage() override = default;
    +
    1091
    + +
    1097
    +
    + +
    1104 placeholder = other.placeholder;
    +
    1105 base_type::operator=(std::move(other));
    +
    1106 return *this;
    +
    1107 }
    -
    1106
    -
    - -
    1112 const auto len = base_type::free_list();
    -
    1113 const auto entt = (len == base_type::size()) ? next() : base_type::data()[len];
    -
    1114 return *base_type::try_emplace(entt, true);
    -
    1115 }
    +
    1108
    +
    +
    1118 void get([[maybe_unused]] const entity_type entt) const noexcept {
    +
    1119 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    +
    1120 }
    -
    1116
    -
    - -
    1127 if(hint != null && hint != tombstone) {
    -
    1128 if(const auto curr = traits_type::construct(traits_type::to_entity(hint), base_type::current(hint)); curr == tombstone || !(base_type::index(curr) < base_type::free_list())) {
    -
    1129 return *base_type::try_emplace(hint, true);
    -
    1130 }
    -
    1131 }
    -
    1132
    -
    1133 return emplace();
    -
    1134 }
    +
    1121
    +
    +
    1127 [[nodiscard]] std::tuple<> get_as_tuple([[maybe_unused]] const entity_type entt) const noexcept {
    +
    1128 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    +
    1129 return std::tuple{};
    +
    1130 }
    -
    1135
    -
    1142 template<typename... Func>
    -
    -
    1143 void patch([[maybe_unused]] const entity_type entt, Func &&...func) {
    -
    1144 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    -
    1145 (std::forward<Func>(func)(), ...);
    -
    1146 }
    +
    1131
    +
    + +
    1137 const auto len = base_type::free_list();
    +
    1138 const auto entt = (len == base_type::size()) ? next() : base_type::data()[len];
    +
    1139 return *base_type::try_emplace(entt, true);
    +
    1140 }
    -
    1147
    -
    1154 template<typename It>
    -
    -
    1155 void insert(It first, It last) {
    -
    1156 for(const auto sz = base_type::size(); first != last && base_type::free_list() != sz; ++first) {
    - -
    1158 }
    -
    1159
    -
    1160 for(; first != last; ++first) {
    -
    1161 *first = *base_type::try_emplace(next(), true);
    -
    1162 }
    -
    1163 }
    +
    1141
    +
    + +
    1152 if(hint != null && hint != tombstone) {
    +
    1153 if(const auto curr = traits_type::construct(traits_type::to_entity(hint), base_type::current(hint)); curr == tombstone || !(base_type::index(curr) < base_type::free_list())) {
    +
    1154 return *base_type::try_emplace(hint, true);
    +
    1155 }
    +
    1156 }
    +
    1157
    +
    1158 return generate();
    +
    1159 }
    -
    1164
    -
    - -
    1173 return std::as_const(*this).each();
    -
    1174 }
    +
    1160
    +
    1167 template<typename It>
    +
    +
    1168 void generate(It first, It last) {
    +
    1169 for(const auto sz = base_type::size(); first != last && base_type::free_list() != sz; ++first) {
    + +
    1171 }
    +
    1172
    +
    1173 for(; first != last; ++first) {
    +
    1174 *first = *base_type::try_emplace(next(), true);
    +
    1175 }
    +
    1176 }
    -
    1175
    -
    - -
    1178 const auto it = base_type::cend();
    - -
    1180 }
    +
    1177
    +
    +
    1182 [[deprecated("use ::generate() instead")]] entity_type emplace() {
    +
    1183 return generate();
    +
    1184 }
    -
    1181
    -
    - -
    1190 return std::as_const(*this).reach();
    -
    1191 }
    -
    -
    1192
    -
    - -
    1195 const auto it = base_type::crbegin();
    - +
    1185
    +
    +
    1195 [[deprecated("use ::generate(hint) instead")]] entity_type emplace(const entity_type hint) {
    +
    1196 return generate(hint);
    1197 }
    -
    1198
    -
    1199private:
    -
    1200 size_type placeholder{};
    -
    1201};
    +
    1198
    +
    1205 template<typename... Func>
    +
    +
    1206 void patch([[maybe_unused]] const entity_type entt, Func &&...func) {
    +
    1207 ENTT_ASSERT(base_type::index(entt) < base_type::free_list(), "The requested entity is not a live one");
    +
    1208 (std::forward<Func>(func)(), ...);
    +
    1209 }
    -
    1202
    -
    1203} // namespace entt
    -
    1204
    -
    1205#endif
    -
    typename Traits::entity_type entity_type
    Underlying entity type.
    Definition entity.hpp:71
    -
    Sparse set implementation.
    -
    iterator begin() const noexcept
    Returns an iterator to the beginning.
    -
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    -
    virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void *=nullptr)
    Assigns an entity to a sparse set.
    -
    virtual void pop_all()
    Erases all entities of a sparse set.
    -
    void swap_and_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    -
    iterator end() const noexcept
    Returns an iterator to the end.
    -
    reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    -
    pointer data() const noexcept
    Direct access to the internal packed array.
    -
    virtual void reserve(const size_type cap)
    Increases the capacity of a sparse set.
    -
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    -
    basic_sparse_set & operator=(const basic_sparse_set &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    virtual void shrink_to_fit()
    Requests the removal of unused capacity.
    -
    void swap(basic_sparse_set &other) noexcept
    Exchanges the contents with those of a given sparse set.
    -
    const_iterator find(const entity_type entt) const noexcept
    Finds an entity.
    -
    virtual void pop(basic_iterator first, basic_iterator last)
    Erases entities from a sparse set.
    -
    version_type current(const entity_type entt) const noexcept
    Returns the contained version for an identifier.
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a sparse set contains an entity.
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    -
    void in_place_pop(const basic_iterator it)
    Erases an entity from a sparse set.
    -
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    -
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    -
    const void * value(const entity_type entt) const noexcept
    Returns the element assigned to an entity, if any.
    -
    reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    -
    size_type free_list() const noexcept
    Returns data on the free list whose meaning depends on the mode.
    -
    internal::sparse_set_iterator< packed_container_type > basic_iterator
    Random access iterator type.
    -
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    -
    size_type index(const entity_type entt) const noexcept
    Returns the position of an entity in a sparse set.
    -
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:1194
    -
    std::size_t size_type
    Unsigned integer type.
    Definition storage.hpp:1020
    -
    void get(const entity_type entt) const noexcept
    Returns the object assigned to an entity, that is void.
    Definition storage.hpp:1093
    -
    void value_type
    Type of the objects assigned to entities.
    Definition storage.hpp:1016
    -
    void insert(It first, It last)
    Assigns each element in a range an identifier.
    Definition storage.hpp:1155
    -
    Entity entity_type
    Underlying entity identifier.
    Definition storage.hpp:1018
    -
    void pop_all() override
    Erases all entities of a storage.
    Definition storage.hpp:994
    -
    entity_type emplace(const entity_type hint)
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1126
    +
    1210
    +
    1217 template<typename It>
    +
    +
    1218 [[deprecated("use ::generate(first, last) instead")]] void insert(It first, It last) {
    +
    1219 generate(std::move(first), std::move(last));
    +
    1220 }
    +
    +
    1221
    +
    +
    1229 [[nodiscard]] iterable each() noexcept {
    +
    1230 return std::as_const(*this).each();
    +
    1231 }
    +
    +
    1232
    +
    +
    1234 [[nodiscard]] const_iterable each() const noexcept {
    +
    1235 const auto it = base_type::cend();
    +
    1236 const auto offset = static_cast<difference_type>(base_type::free_list());
    +
    1237 return const_iterable{it - offset, it};
    +
    1238 }
    +
    +
    1239
    +
    +
    1247 [[nodiscard]] reverse_iterable reach() noexcept {
    +
    1248 return std::as_const(*this).reach();
    +
    1249 }
    +
    +
    1250
    +
    +
    1252 [[nodiscard]] const_reverse_iterable reach() const noexcept {
    +
    1253 const auto it = base_type::crbegin();
    +
    1254 const auto offset = static_cast<difference_type>(base_type::free_list());
    +
    1255 return const_reverse_iterable{it, it + offset};
    +
    1256 }
    +
    +
    1257
    +
    +
    1265 void start_from(const entity_type hint) {
    +
    1266 placeholder = static_cast<size_type>(traits_type::to_entity(hint));
    +
    1267 }
    +
    +
    1268
    +
    1269private:
    +
    1270 size_type placeholder{};
    +
    1271};
    +
    +
    1272
    +
    1273} // namespace entt
    +
    1274
    +
    1275#endif
    +
    typename Traits::entity_type entity_type
    Underlying entity type.
    Definition entity.hpp:71
    +
    static constexpr value_type construct(const entity_type entity, const version_type version) noexcept
    Constructs an identifier from its parts.
    Definition entity.hpp:131
    +
    static constexpr entity_type to_entity(const value_type value) noexcept
    Returns the entity part once converted to the underlying type.
    Definition entity.hpp:94
    +
    static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept
    Combines two identifiers in a single one.
    Definition entity.hpp:149
    +
    static constexpr version_type to_version(const value_type value) noexcept
    Returns the version part once converted to the underlying type.
    Definition entity.hpp:103
    + + +
    virtual basic_iterator try_emplace(const Entity entt, const bool force_back, const void *=nullptr)
    + + + + + + + + + + + + +
    version_type current(const entity_type entt) const noexcept
    Returns the contained version for an identifier.
    + + + + + + + + +
    size_type free_list() const noexcept
    Returns data on the free list whose meaning depends on the mode.
    + + + + +
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:1252
    +
    std::size_t size_type
    Unsigned integer type.
    Definition storage.hpp:1039
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator > > reverse_iterable
    Extended reverse iterable storage proxy.
    Definition storage.hpp:1047
    +
    static constexpr deletion_policy storage_policy
    Storage deletion policy.
    Definition storage.hpp:1051
    +
    void get(const entity_type entt) const noexcept
    Returns the object assigned to an entity, that is void.
    Definition storage.hpp:1118
    +
    void value_type
    Type of the objects assigned to entities.
    Definition storage.hpp:1035
    +
    entity_type generate(const entity_type hint)
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1151
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator > > const_iterable
    Constant extended iterable storage proxy.
    Definition storage.hpp:1045
    +
    void insert(It first, It last)
    Assigns each element in a range an identifier.
    Definition storage.hpp:1218
    +
    Entity entity_type
    Underlying entity identifier.
    Definition storage.hpp:1037
    +
    void pop_all() override
    Erases all entities of a storage.
    Definition storage.hpp:1013
    +
    entity_type emplace(const entity_type hint)
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1195
    ~basic_storage() override=default
    Default destructor.
    -
    underlying_iterator try_emplace(const Entity hint, const bool, const void *) override
    Assigns an entity to a storage.
    Definition storage.hpp:1004
    -
    basic_storage & operator=(basic_storage &&other) noexcept
    Move assignment operator.
    Definition storage.hpp:1078
    -
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:1189
    -
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:1060
    - -
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:1177
    -
    basic_storage(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    Definition storage.hpp:1041
    - -
    basic_storage(basic_storage &&other) noexcept
    Move constructor.
    Definition storage.hpp:1051
    -
    entity_type emplace()
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1111
    -
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:1172
    +
    underlying_iterator try_emplace(const Entity hint, const bool, const void *) override
    Assigns an entity to a storage.
    Definition storage.hpp:1023
    +
    basic_storage & operator=(basic_storage &&other) noexcept
    Move assignment operator.
    Definition storage.hpp:1103
    +
    entity_type generate()
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1136
    +
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:1247
    +
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:1084
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition storage.hpp:1041
    + +
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:1234
    +
    basic_storage(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    Definition storage.hpp:1062
    +
    void generate(It first, It last)
    Assigns each element in a range an identifier.
    Definition storage.hpp:1168
    + +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator > > const_reverse_iterable
    Constant extended reverse iterable storage proxy.
    Definition storage.hpp:1049
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator > > iterable
    Extended iterable storage proxy.
    Definition storage.hpp:1043
    +
    basic_sparse_set< Entity, Allocator > base_type
    Base type.
    Definition storage.hpp:1031
    +
    basic_storage(basic_storage &&other) noexcept
    Move constructor.
    Definition storage.hpp:1073
    +
    entity_type emplace()
    Creates a new identifier or recycles a destroyed one.
    Definition storage.hpp:1182
    +
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:1229
    basic_storage(const basic_storage &)=delete
    Default copy constructor, deleted on purpose.
    -
    void patch(const entity_type entt, Func &&...func)
    Updates a given identifier.
    Definition storage.hpp:1143
    - +
    void patch(const entity_type entt, Func &&...func)
    Updates a given identifier.
    Definition storage.hpp:1206
    + +
    void start_from(const entity_type hint)
    Sets the starting identifier for generation.
    Definition storage.hpp:1265
    basic_storage & operator=(const basic_storage &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    std::tuple get_as_tuple(const entity_type entt) const noexcept
    Returns an empty tuple.
    Definition storage.hpp:1102
    -
    basic_storage(const basic_storage &)=delete
    Default copy constructor, deleted on purpose.
    - -
    void emplace(const entity_type entt, Args &&...)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:905
    -
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:958
    -
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition storage.hpp:862
    -
    void get(const entity_type entt) const noexcept
    Returns the object assigned to an entity, that is void.
    Definition storage.hpp:880
    - - - - -
    basic_storage(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    Definition storage.hpp:822
    -
    basic_storage & operator=(const basic_storage &)=delete
    Default copy assignment operator, deleted on purpose.
    - -
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:947
    - -
    void patch(const entity_type entt, Func &&...func)
    Updates the instance assigned to a given entity in-place.
    Definition storage.hpp:916
    - -
    std::tuple get_as_tuple(const entity_type entt) const noexcept
    Returns an empty tuple.
    Definition storage.hpp:889
    -
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:942
    -
    basic_storage & operator=(basic_storage &&other) noexcept=default
    Move assignment operator.
    - -
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:839
    -
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:963
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    iterator end() noexcept
    Returns an iterator to the end.
    Definition storage.hpp:585
    -
    internal::storage_iterator< const container_type > const_iterator
    Constant random access iterator type.
    Definition storage.hpp:412
    -
    ~basic_storage() override
    Default destructor.
    Definition storage.hpp:465
    -
    basic_storage()
    Default constructor.
    Definition storage.hpp:429
    -
    iterator insert(EIt first, EIt last, CIt from)
    Assigns one or more entities to a storage and constructs their objects from a given range.
    Definition storage.hpp:737
    -
    const_reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:601
    -
    const_iterator end() const noexcept
    Returns an iterator to the end.
    Definition storage.hpp:580
    -
    const_pointer raw() const noexcept
    Direct access to the array of objects.
    Definition storage.hpp:538
    -
    void pop_all() override
    Erases all entities of a storage.
    Definition storage.hpp:353
    -
    basic_storage(basic_storage &&other) noexcept
    Move constructor.
    Definition storage.hpp:447
    -
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:639
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    Definition storage.hpp:575
    -
    size_type capacity() const noexcept override
    Returns the number of elements that a storage has currently allocated space for.
    Definition storage.hpp:524
    -
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition storage.hpp:500
    -
    typename alloc_traits::template rebind_traits< typename alloc_traits::const_pointer >::const_pointer const_pointer
    Constant pointer type to contained elements.
    Definition storage.hpp:408
    -
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:758
    -
    void swap(basic_storage &other) noexcept
    Exchanges the contents with those of a given storage.
    Definition storage.hpp:490
    -
    element_type value_type
    Type of the objects assigned to entities.
    Definition storage.hpp:400
    -
    reverse_iterator rbegin() noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:606
    -
    const_iterator begin() const noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:560
    -
    reverse_iterator rend() noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:625
    -
    basic_storage & operator=(basic_storage &&other) noexcept
    Move assignment operator.
    Definition storage.hpp:480
    -
    Entity entity_type
    Underlying entity identifier.
    Definition storage.hpp:402
    -
    const_reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:620
    -
    underlying_iterator try_emplace(const Entity entt, const bool force_back, const void *value) override
    Assigns an entity to a storage.
    Definition storage.hpp:376
    -
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:554
    -
    std::reverse_iterator< const_iterator > const_reverse_iterator
    Constant reverse iterator type.
    Definition storage.hpp:416
    -
    value_type & patch(const entity_type entt, Func &&...func)
    Updates the instance assigned to a given entity in-place.
    Definition storage.hpp:693
    -
    std::reverse_iterator< iterator > reverse_iterator
    Reverse iterator type.
    Definition storage.hpp:414
    -
    std::size_t size_type
    Unsigned integer type.
    Definition storage.hpp:404
    -
    iterator insert(It first, It last, const value_type &value={})
    Assigns one or more entities to a storage and constructs their objects from a given instance.
    Definition storage.hpp:715
    -
    void pop(underlying_iterator first, underlying_iterator last) override
    Erases entities from a storage.
    Definition storage.hpp:334
    -
    typename container_type::pointer pointer
    Pointer type to contained elements.
    Definition storage.hpp:406
    -
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:769
    -
    pointer raw() noexcept
    Direct access to the array of objects.
    Definition storage.hpp:543
    -
    std::tuple< value_type & > get_as_tuple(const entity_type entt) noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:658
    -
    value_type & get(const entity_type entt) noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:644
    -
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:615
    -
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:774
    -
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:753
    +
    std::tuple get_as_tuple(const entity_type entt) const noexcept
    Returns an empty tuple.
    Definition storage.hpp:1127
    + + + +
    basic_storage & operator=(const basic_storage &)=delete
    Default copy assignment operator, deleted on purpose.
    +
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition storage.hpp:873
    +
    basic_sparse_set< Entity, typename alloc_traits::template rebind_alloc< Entity > > base_type
    Base type.
    Definition storage.hpp:803
    + + +
    std::tuple get_as_tuple(const entity_type entt) const noexcept
    Returns an empty tuple.
    Definition storage.hpp:900
    +
    void patch(const entity_type entt, Func &&...func)
    Updates the instance assigned to a given entity in-place.
    Definition storage.hpp:928
    +
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:971
    + +
    basic_storage(const allocator_type &allocator)
    Constructs an empty container with a given allocator.
    Definition storage.hpp:833
    +
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:850
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator > > iterable
    Extended iterable storage proxy.
    Definition storage.hpp:815
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator > > reverse_iterable
    Extended reverse iterable storage proxy.
    Definition storage.hpp:819
    + +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator > > const_iterable
    Constant extended iterable storage proxy.
    Definition storage.hpp:817
    +
    basic_storage(const basic_storage &)=delete
    Default copy constructor, deleted on purpose.
    +
    void get(const entity_type entt) const noexcept
    Returns the object assigned to an entity, that is void.
    Definition storage.hpp:891
    + + +
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:960
    +
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:976
    +
    basic_storage & operator=(basic_storage &&other) noexcept=default
    Move assignment operator.
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator > > const_reverse_iterable
    Constant extended reverse iterable storage proxy.
    Definition storage.hpp:821
    + +
    void emplace(const entity_type entt, Args &&...)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:917
    + + +
    iterator end() noexcept
    Returns an iterator to the end.
    Definition storage.hpp:594
    +
    ~basic_storage() override
    Default destructor.
    Definition storage.hpp:474
    +
    basic_storage()
    Default constructor.
    Definition storage.hpp:435
    +
    iterator insert(EIt first, EIt last, CIt from)
    Assigns one or more entities to a storage and constructs their objects from a given range.
    Definition storage.hpp:746
    +
    const_reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:610
    +
    const_iterator end() const noexcept
    Returns an iterator to the end.
    Definition storage.hpp:589
    +
    const_pointer raw() const noexcept
    Direct access to the array of objects.
    Definition storage.hpp:547
    +
    void pop_all() override
    Erases all entities of a storage.
    Definition storage.hpp:357
    +
    basic_storage(basic_storage &&other) noexcept
    Move constructor.
    Definition storage.hpp:454
    +
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:648
    +
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    Definition storage.hpp:584
    +
    size_type capacity() const noexcept override
    Returns the number of elements that a storage has currently allocated space for.
    Definition storage.hpp:533
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator, const_reverse_iterator > > const_reverse_iterable
    Definition storage.hpp:430
    +
    constexpr allocator_type get_allocator() const noexcept
    Returns the associated allocator.
    Definition storage.hpp:509
    +
    typename alloc_traits::template rebind_traits< typename alloc_traits::const_pointer >::const_pointer const_pointer
    Definition storage.hpp:414
    +
    const_iterable each() const noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:767
    +
    void swap(basic_storage &other) noexcept
    Exchanges the contents with those of a given storage.
    Definition storage.hpp:499
    + +
    reverse_iterator rbegin() noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:615
    +
    internal::storage_iterator< container_type, traits_type::page_size > iterator
    Definition storage.hpp:416
    +
    const_iterator begin() const noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:569
    +
    underlying_type base_type
    Definition storage.hpp:400
    +
    reverse_iterator rend() noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:634
    +
    basic_storage & operator=(basic_storage &&other) noexcept
    Move assignment operator.
    Definition storage.hpp:489
    + +
    const_reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:629
    +
    underlying_iterator try_emplace(const Entity entt, const bool force_back, const void *value) override
    Assigns an entity to a storage.
    Definition storage.hpp:380
    +
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:563
    +
    std::reverse_iterator< const_iterator > const_reverse_iterator
    Definition storage.hpp:422
    +
    value_type & patch(const entity_type entt, Func &&...func)
    Updates the instance assigned to a given entity in-place.
    Definition storage.hpp:702
    +
    std::reverse_iterator< iterator > reverse_iterator
    Definition storage.hpp:420
    +
    std::size_t size_type
    Unsigned integer type.
    Definition storage.hpp:408
    +
    iterator insert(It first, It last, const value_type &value={})
    Assigns one or more entities to a storage and constructs their objects from a given instance.
    Definition storage.hpp:724
    +
    void pop(underlying_iterator first, underlying_iterator last) override
    Erases entities from a storage.
    Definition storage.hpp:338
    +
    typename container_type::pointer pointer
    Definition storage.hpp:412
    +
    reverse_iterable reach() noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:778
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator, reverse_iterator > > reverse_iterable
    Definition storage.hpp:428
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator, iterator > > iterable
    Definition storage.hpp:424
    +
    pointer raw() noexcept
    Direct access to the array of objects.
    Definition storage.hpp:552
    +
    std::tuple< value_type & > get_as_tuple(const entity_type entt) noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:667
    +
    std::ptrdiff_t difference_type
    Definition storage.hpp:410
    +
    value_type & get(const entity_type entt) noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:653
    +
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    Definition storage.hpp:624
    +
    const_reverse_iterable reach() const noexcept
    Returns a reverse iterable object to use to visit a storage.
    Definition storage.hpp:783
    +
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:762
    basic_storage & operator=(const basic_storage &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    Type element_type
    Element type.
    Definition storage.hpp:398
    -
    void reserve(const size_type cap) override
    Increases the capacity of a storage.
    Definition storage.hpp:512
    -
    basic_storage(const allocator_type &allocator)
    Constructs an empty storage with a given allocator.
    Definition storage.hpp:436
    -
    value_type & emplace(const entity_type entt, Args &&...args)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:675
    -
    std::tuple< const value_type & > get_as_tuple(const entity_type entt) const noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:653
    -
    void shrink_to_fit() override
    Requests the removal of unused capacity.
    Definition storage.hpp:529
    -
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:596
    -
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:456
    + +
    void reserve(const size_type cap) override
    Increases the capacity of a storage.
    Definition storage.hpp:521
    +
    basic_storage(const allocator_type &allocator)
    Constructs an empty storage with a given allocator.
    Definition storage.hpp:442
    +
    value_type & emplace(const entity_type entt, Args &&...args)
    Assigns an entity to a storage and constructs its object.
    Definition storage.hpp:684
    +
    std::tuple< const value_type & > get_as_tuple(const entity_type entt) const noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:662
    +
    void shrink_to_fit() override
    Requests the removal of unused capacity.
    Definition storage.hpp:538
    +
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition storage.hpp:605
    +
    internal::storage_iterator< const container_type, traits_type::page_size > const_iterator
    Definition storage.hpp:418
    +
    basic_storage(basic_storage &&other, const allocator_type &allocator)
    Allocator-extended move constructor.
    Definition storage.hpp:465
    +
    iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator, const_iterator > > const_iterable
    Definition storage.hpp:426
    basic_storage(const basic_storage &)=delete
    Default copy constructor, deleted on purpose.
    -
    iterator begin() noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:565
    -
    internal::storage_iterator< container_type > iterator
    Random access iterator type.
    Definition storage.hpp:410
    -
    static constexpr deletion_policy storage_policy
    Storage deletion policy.
    Definition storage.hpp:426
    -
    Allocator allocator_type
    Allocator type.
    Definition storage.hpp:394
    +
    iterator begin() noexcept
    Returns an iterator to the beginning.
    Definition storage.hpp:574
    +
    static constexpr deletion_policy storage_policy
    Definition storage.hpp:432
    +
    Allocator allocator_type
    Allocator type.
    Definition storage.hpp:398
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:62
    +
    constexpr std::enable_if_t< std::is_unsigned_v< Type >, Type > fast_mod(const Type value, const std::size_t mod) noexcept
    Fast module utility function (powers of two only).
    Definition bit.hpp:63
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    constexpr Type * uninitialized_construct_using_allocator(Type *value, const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:238
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    deletion_policy
    Storage deletion policy.
    Definition fwd.hpp:17
    -
    @ swap_only
    Swap-only deletion policy.
    +
    @ swap_only
    Swap-only deletion policy.
    Definition fwd.hpp:23
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    const type_info & type_id() noexcept
    Returns the type info object associated to a given type.
    -
    @ ref
    Aliasing mode, the object points to a non-const element.
    +
    @ ref
    Aliasing mode, the object points to a non-const element.
    Definition fwd.hpp:19
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr auto to_address(Type &&ptr) noexcept
    Unwraps fancy pointers, does nothing otherwise (waiting for C++20).
    Definition memory.hpp:20
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    Common way to access various properties of components.
    Definition component.hpp:42
    -
    static constexpr std::size_t page_size
    Page size, default is ENTT_PACKED_PAGE for non-empty types.
    Definition component.hpp:51
    -
    static constexpr bool in_place_delete
    Pointer stability, default is false.
    Definition component.hpp:49
    +
    Common way to access various properties of components.
    Definition component.hpp:43
    +
    static constexpr bool in_place_delete
    Definition component.hpp:52
    +
    static constexpr std::size_t page_size
    Definition component.hpp:54
    Entity traits.
    Definition entity.hpp:163
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    +
    diff --git a/structentt_1_1adl__meta__pointer__like-members.html b/structentt_1_1adl__meta__pointer__like-members.html index 5bf22447d..389f2d816 100644 --- a/structentt_1_1adl__meta__pointer__like-members.html +++ b/structentt_1_1adl__meta__pointer__like-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::adl_meta_pointer_like< Type > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1adl__meta__pointer__like.html b/structentt_1_1adl__meta__pointer__like.html index abec29b53..665a0a133 100644 --- a/structentt_1_1adl__meta__pointer__like.html +++ b/structentt_1_1adl__meta__pointer__like.html @@ -3,13 +3,15 @@ - + EnTT: entt::adl_meta_pointer_like< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Static Public Member Functions | @@ -89,12 +102,12 @@ $(function() { - +

    Static Public Member Functions

    static decltype(autodereference (const Type &value)
    static decltype(auto) dereference (const Type &value)
     Uses the default ADL based lookup method to resolve the call.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::adl_meta_pointer_like< Type >

    Fake ADL based lookup function for meta pointer-like types.

    Template Parameters
    @@ -111,21 +124,21 @@ struct entt::adl_meta_pointer_like< Type >

    Fake ADL based lookup f

    -template<typename Type >
    +template<typename Type>
    +inlinestatic
    - + - +
    static decltype(auto) entt::adl_meta_pointer_like< Type >::dereference static decltype(auto) entt::adl_meta_pointer_like< Type >::dereference (const Type & value)const Type & value)
    -inlinestatic
    @@ -149,7 +162,8 @@ template< +
    diff --git a/structentt_1_1allocation__deleter-members.html b/structentt_1_1allocation__deleter-members.html index 713c85bfb..52777fbf0 100644 --- a/structentt_1_1allocation__deleter-members.html +++ b/structentt_1_1allocation__deleter-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::allocation_deleter< Allocator > Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1allocation__deleter.html b/structentt_1_1allocation__deleter.html index dbfe1316d..b88e38b79 100644 --- a/structentt_1_1allocation__deleter.html +++ b/structentt_1_1allocation__deleter.html @@ -3,13 +3,15 @@ - + EnTT: entt::allocation_deleter< Allocator > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -110,24 +123,24 @@ Collaboration diagram for entt::allocation_deleter< Allocator >:
    - + - +

    Public Types

    using allocator_type = Allocator
    using allocator_type = Allocator
     Allocator type.
     
    using pointer = typename std::allocator_traits<Allocator>::pointer
    using pointer = typename std::allocator_traits<Allocator>::pointer
     Pointer type.
     
    - + - +

    Public Member Functions

    constexpr allocation_deleter (const allocator_type &alloc) noexcept(std::is_nothrow_copy_constructible_v< allocator_type >)
    constexpr allocation_deleter (const allocator_type &alloc) noexcept(std::is_nothrow_copy_constructible_v< allocator_type >)
     Inherited constructors.
     
    constexpr void operator() (pointer ptr) noexcept(std::is_nothrow_destructible_v< typename allocator_type::value_type >)
    constexpr void operator() (pointer ptr) noexcept(std::is_nothrow_destructible_v< typename allocator_type::value_type >)
     Destroys the pointed object and deallocates its memory.
     

    Detailed Description

    -
    template<typename Allocator>
    +
    template<typename Allocator>
    struct entt::allocation_deleter< Allocator >

    Deleter for allocator-aware unique pointers (waiting for C++20).

    Template Parameters
    @@ -144,10 +157,10 @@ struct entt::allocation_deleter< Allocator >

    Deleter for allocator

    -template<typename Allocator >
    +template<typename Allocator>
    - +
    using entt::allocation_deleter< Allocator >::allocator_type = Allocatorusing entt::allocation_deleter< Allocator >::allocator_type = Allocator
    @@ -164,10 +177,10 @@ template<
    -template<typename Allocator >
    +template<typename Allocator>
    - +
    using entt::allocation_deleter< Allocator >::pointer = typename std::allocator_traits<Allocator>::pointerusing entt::allocation_deleter< Allocator >::pointer = typename std::allocator_traits<Allocator>::pointer
    @@ -185,21 +198,21 @@ template<
    -template<typename Allocator >
    +template<typename Allocator>
    +inlineconstexprnoexcept
    - + - +
    constexpr entt::allocation_deleter< Allocator >::allocation_deleter entt::allocation_deleter< Allocator >::allocation_deleter (const allocator_type & alloc)const allocator_type & alloc)
    -inlineconstexprnoexcept
    @@ -223,13 +236,13 @@ template<
    -template<typename Allocator >
    +template<typename Allocator>
    @@ -31,23 +33,33 @@
    - + @@ -237,7 +250,7 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr void entt::allocation_deleter< Allocator >::operator() void entt::allocation_deleter< Allocator >::operator() ( pointer ptr)
    @@ -260,7 +273,8 @@ template< +
    diff --git a/structentt_1_1as__cref__t.html b/structentt_1_1as__cref__t.html index 38436b144..fbc43a14e 100644 --- a/structentt_1_1as__cref__t.html +++ b/structentt_1_1as__cref__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_cref_t Struct Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    -
    entt::as_cref_t Struct Referencefinal
    +
    entt::as_cref_t Struct Referencefinal
    @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1as__is__t.html b/structentt_1_1as__is__t.html index 0c600c6b5..346d66234 100644 --- a/structentt_1_1as__is__t.html +++ b/structentt_1_1as__is__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_is_t Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::as_is_t Struct Referencefinal
    +
    entt::as_is_t Struct Referencefinal
    @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1as__ref__t.html b/structentt_1_1as__ref__t.html index 599d9b68f..757cd95ba 100644 --- a/structentt_1_1as__ref__t.html +++ b/structentt_1_1as__ref__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_ref_t Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::as_ref_t Struct Referencefinal
    +
    entt::as_ref_t Struct Referencefinal
    @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1as__void__t.html b/structentt_1_1as__void__t.html index f5b9ea2b0..3396ad120 100644 --- a/structentt_1_1as__void__t.html +++ b/structentt_1_1as__void__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::as_void_t Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::as_void_t Struct Referencefinal
    +
    entt::as_void_t Struct Referencefinal
    @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1basic__collector.html b/structentt_1_1basic__collector.html deleted file mode 100644 index 48c1c873a..000000000 --- a/structentt_1_1basic__collector.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -EnTT: entt::basic_collector<... > Struct Template Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    entt::basic_collector<... > Struct Template Reference
    -
    -
    - -

    Collector. - More...

    -

    Detailed Description

    -
    template<typename...>
    -struct entt::basic_collector<... >

    Collector.

    -

    Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

    - -

    Definition at line 26 of file observer.hpp.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_2946084b83498520c73ff3a9eb022209.html b/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_2946084b83498520c73ff3a9eb022209.html deleted file mode 100644 index 319400bee..000000000 --- a/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_2946084b83498520c73ff3a9eb022209.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > Member List
    -
    - - - - - diff --git a/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html b/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html deleted file mode 100644 index bde52ea74..000000000 --- a/structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - - -EnTT: entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > Struct Template Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    - -
    entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > Struct Template Reference
    -
    -
    - -

    Collector. - More...

    - -

    #include <observer.hpp>

    - - - - - -

    -Public Types

    using current_type = matcher<type_list<Reject...>, type_list<Require...>, Rule...>
     Current matcher.
     
    - - - - - - - - - - - - - -

    -Static Public Member Functions

    template<typename... AllOf, typename... NoneOf>
    static constexpr auto group (exclude_t< NoneOf... >=exclude_t{}) noexcept
     Adds a grouping matcher to the collector.
     
    template<typename AnyOf >
    static constexpr auto update () noexcept
     Adds an observing matcher to the collector.
     
    template<typename... AllOf, typename... NoneOf>
    static constexpr auto where (exclude_t< NoneOf... >=exclude_t{}) noexcept
     Updates the filter of the last added matcher.
     
    -

    Detailed Description

    -
    template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    -struct entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >

    Collector.

    -

    A collector contains a set of rules (literally, matchers) to use to track entities.
    - Its main purpose is to generate a descriptor that allows an observer to know how to connect to a registry.

    Template Parameters
    - - - - - -
    RejectUntracked types used to filter out entities.
    RequireUntracked types required by the matcher.
    RuleSpecific details of the current matcher.
    OtherOther matchers.
    -
    -
    - -

    Definition at line 69 of file observer.hpp.

    -

    Member Typedef Documentation

    - -

    ◆ current_type

    - -
    -
    -
    -template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    - - - - -
    using entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::current_type = matcher<type_list<Reject...>, type_list<Require...>, Rule...>
    -
    - -

    Current matcher.

    - -

    Definition at line 71 of file observer.hpp.

    - -
    -
    -

    Member Function Documentation

    - -

    ◆ group()

    - -
    -
    -
    -template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    -
    -template<typename... AllOf, typename... NoneOf>
    - - - - - -
    - - - - - - - -
    static constexpr auto entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::group (exclude_t< NoneOf... > = exclude_t{})
    -
    -inlinestaticconstexprnoexcept
    -
    - -

    Adds a grouping matcher to the collector.

    -
    Template Parameters
    - - - -
    AllOfTypes of elements tracked by the matcher.
    NoneOfTypes of elements used to filter out entities.
    -
    -
    -
    Returns
    The updated collector.
    - -

    Definition at line 80 of file observer.hpp.

    - -
    -
    - -

    ◆ update()

    - -
    -
    -
    -template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    -
    -template<typename AnyOf >
    - - - - - -
    - - - - - - - -
    static constexpr auto entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::update ()
    -
    -inlinestaticconstexprnoexcept
    -
    - -

    Adds an observing matcher to the collector.

    -
    Template Parameters
    - - -
    AnyOfType of element for which changes should be detected.
    -
    -
    -
    Returns
    The updated collector.
    - -

    Definition at line 90 of file observer.hpp.

    - -
    -
    - -

    ◆ where()

    - -
    -
    -
    -template<typename... Reject, typename... Require, typename... Rule, typename... Other>
    -
    -template<typename... AllOf, typename... NoneOf>
    - - - - - -
    - - - - - - - -
    static constexpr auto entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >::where (exclude_t< NoneOf... > = exclude_t{})
    -
    -inlinestaticconstexprnoexcept
    -
    - -

    Updates the filter of the last added matcher.

    -
    Template Parameters
    - - - -
    AllOfTypes of elements required by the matcher.
    NoneOfTypes of elements used to filter out entities.
    -
    -
    -
    Returns
    The updated collector.
    - -

    Definition at line 101 of file observer.hpp.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structentt_1_1basic__collector_3_4-members.html b/structentt_1_1basic__collector_3_4-members.html deleted file mode 100644 index 15d235b46..000000000 --- a/structentt_1_1basic__collector_3_4-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    entt::basic_collector<> Member List
    -
    -
    - -

    This is the complete list of members for entt::basic_collector<>, including all inherited members.

    - - - -
    group(exclude_t< NoneOf... >=exclude_t{}) noexceptentt::basic_collector<>inlinestatic
    update() noexceptentt::basic_collector<>inlinestatic
    - - - - diff --git a/structentt_1_1basic__collector_3_4.html b/structentt_1_1basic__collector_3_4.html deleted file mode 100644 index 69c93cbad..000000000 --- a/structentt_1_1basic__collector_3_4.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - -EnTT: entt::basic_collector<> Struct Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    - -
    entt::basic_collector<> Struct Reference
    -
    -
    - -

    Collector. - More...

    - -

    #include <observer.hpp>

    - - - - - - - - - - -

    -Static Public Member Functions

    template<typename... AllOf, typename... NoneOf>
    static constexpr auto group (exclude_t< NoneOf... >=exclude_t{}) noexcept
     Adds a grouping matcher to the collector.
     
    template<typename AnyOf >
    static constexpr auto update () noexcept
     Adds an observing matcher to the collector.
     
    -

    Detailed Description

    -

    Collector.

    -

    A collector contains a set of rules (literally, matchers) to use to track entities.
    - Its main purpose is to generate a descriptor that allows an observer to know how to connect to a registry.

    - -

    Definition at line 37 of file observer.hpp.

    -

    Member Function Documentation

    - -

    ◆ group()

    - -
    -
    -
    -template<typename... AllOf, typename... NoneOf>
    - - - - - -
    - - - - - - - -
    static constexpr auto entt::basic_collector<>::group (exclude_t< NoneOf... > = exclude_t{})
    -
    -inlinestaticconstexprnoexcept
    -
    - -

    Adds a grouping matcher to the collector.

    -
    Template Parameters
    - - - -
    AllOfTypes of elements tracked by the matcher.
    NoneOfTypes of elements used to filter out entities.
    -
    -
    -
    Returns
    The updated collector.
    - -

    Definition at line 45 of file observer.hpp.

    - -
    -
    - -

    ◆ update()

    - -
    -
    -
    -template<typename AnyOf >
    - - - - - -
    - - - - - - - -
    static constexpr auto entt::basic_collector<>::update ()
    -
    -inlinestaticconstexprnoexcept
    -
    - -

    Adds an observing matcher to the collector.

    -
    Template Parameters
    - - -
    AnyOfType of element for which changes should be detected.
    -
    -
    -
    Returns
    The updated collector.
    - -

    Definition at line 55 of file observer.hpp.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structentt_1_1basic__meta__associative__container__traits-members.html b/structentt_1_1basic__meta__associative__container__traits-members.html index 439f59105..1ba96f4a0 100644 --- a/structentt_1_1basic__meta__associative__container__traits-members.html +++ b/structentt_1_1basic__meta__associative__container__traits-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::basic_meta_associative_container_traits< Type > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1basic__meta__associative__container__traits.html b/structentt_1_1basic__meta__associative__container__traits.html index fd41a8367..5d243a48f 100644 --- a/structentt_1_1basic__meta__associative__container__traits.html +++ b/structentt_1_1basic__meta__associative__container__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_meta_associative_container_traits< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -91,48 +104,48 @@ $(function() { - + - +

    Public Types

    using size_type = typename meta_associative_container::size_type
    using size_type = typename meta_associative_container::size_type
     Unsigned integer type.
     
    using iterator = typename meta_associative_container::iterator
    using iterator = typename meta_associative_container::iterator
     Meta iterator type.
     
    - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static size_type size (const void *container)
    static size_type size (const void *container)
     Returns the number of elements in a container.
     
    static bool clear (void *container)
    static bool clear (void *container)
     Clears a container.
     
    static bool reserve (void *container, const size_type sz)
    static bool reserve (void *container, const size_type sz)
     Increases the capacity of a container.
     
    static iterator begin (const meta_ctx &area, void *container, const void *as_const)
    static iterator begin (const meta_ctx &area, void *container, const void *as_const)
     Returns a possibly const iterator to the beginning.
     
    static iterator end (const meta_ctx &area, void *container, const void *as_const)
    static iterator end (const meta_ctx &area, void *container, const void *as_const)
     Returns a possibly const iterator to the end.
     
    static bool insert (void *container, const void *key, const void *value)
    static bool insert (void *container, const void *key, const void *value)
     Inserts an element into a container, if the key does not exist.
     
    static size_type erase (void *container, const void *key)
    static size_type erase (void *container, const void *key)
     Removes an element from a container.
     
    static iterator find (const meta_ctx &area, void *container, const void *as_const, const void *key)
    static iterator find (const meta_ctx &area, void *container, const void *as_const, const void *key)
     Finds an element with a given key.
     
    - +

    Static Public Attributes

    static constexpr bool key_only = internal::key_only_associative_container_v<Type>
    static constexpr bool key_only = internal::key_only_associative_container_v<Type>
     True in case of key-only containers, false otherwise.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::basic_meta_associative_container_traits< Type >

    General purpose implementation of meta associative container traits.

    Template Parameters
    @@ -149,10 +162,10 @@ struct entt::basic_meta_associative_container_traits< Type >

    Gener

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::basic_meta_associative_container_traits< Type >::iterator = typename meta_associative_container::iteratorusing entt::basic_meta_associative_container_traits< Type >::iterator = typename meta_associative_container::iterator
    @@ -190,30 +203,30 @@ template<
    +template<typename Type>
    +inlinestatic
    - + - + - + - +
    static iterator entt::basic_meta_associative_container_traits< Type >::begin static iterator entt::basic_meta_associative_container_traits< Type >::begin (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * as_const )const void * as_const )
    -inlinestatic
    @@ -239,21 +252,21 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - +
    static bool entt::basic_meta_associative_container_traits< Type >::clear static bool entt::basic_meta_associative_container_traits< Type >::clear (void * container)void * container)
    -inlinestatic
    @@ -277,30 +290,30 @@ template<
    +template<typename Type>
    +inlinestatic
    - + - + - + - +
    static iterator entt::basic_meta_associative_container_traits< Type >::end static iterator entt::basic_meta_associative_container_traits< Type >::end (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * as_const )const void * as_const )
    -inlinestatic
    @@ -326,25 +339,25 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - +
    static size_type entt::basic_meta_associative_container_traits< Type >::erase static size_type entt::basic_meta_associative_container_traits< Type >::erase (void * container, void * container,
    const void * key )const void * key )
    -inlinestatic
    @@ -369,35 +382,35 @@ template<
    +template<typename Type>
    +inlinestatic
    - + - + - + - + - +
    static iterator entt::basic_meta_associative_container_traits< Type >::find static iterator entt::basic_meta_associative_container_traits< Type >::find (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * as_const, const void * as_const,
    const void * key )const void * key )
    -inlinestatic
    @@ -424,30 +437,30 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - + - +
    static bool entt::basic_meta_associative_container_traits< Type >::insert static bool entt::basic_meta_associative_container_traits< Type >::insert (void * container, void * container,
    const void * key, const void * key,
    const void * value )const void * value )
    -inlinestatic
    @@ -473,25 +486,25 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - +
    static bool entt::basic_meta_associative_container_traits< Type >::reserve static bool entt::basic_meta_associative_container_traits< Type >::reserve (void * container, void * container,
    const size_type sz )const size_type sz )
    -inlinestatic
    @@ -516,21 +529,21 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - +
    static size_type entt::basic_meta_associative_container_traits< Type >::size static size_type entt::basic_meta_associative_container_traits< Type >::size (const void * container)const void * container)
    -inlinestatic
    @@ -555,18 +568,18 @@ template<
    +template<typename Type>
    +staticconstexpr
    - +
    constexpr bool entt::basic_meta_associative_container_traits< Type >::key_only = internal::key_only_associative_container_v<Type>bool entt::basic_meta_associative_container_traits< Type >::key_only = internal::key_only_associative_container_v<Type>
    -staticconstexpr
    @@ -583,7 +596,8 @@ template< +
    diff --git a/structentt_1_1basic__meta__sequence__container__traits-members.html b/structentt_1_1basic__meta__sequence__container__traits-members.html index e2928d33a..2823d7a3e 100644 --- a/structentt_1_1basic__meta__sequence__container__traits-members.html +++ b/structentt_1_1basic__meta__sequence__container__traits-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::basic_meta_sequence_container_traits< Type > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1basic__meta__sequence__container__traits.html b/structentt_1_1basic__meta__sequence__container__traits.html index 977e22da6..973740fad 100644 --- a/structentt_1_1basic__meta__sequence__container__traits.html +++ b/structentt_1_1basic__meta__sequence__container__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_meta_sequence_container_traits< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -91,48 +104,48 @@ $(function() { - + - +

    Public Types

    using size_type = typename meta_sequence_container::size_type
    using size_type = typename meta_sequence_container::size_type
     Unsigned integer type.
     
    using iterator = typename meta_sequence_container::iterator
    using iterator = typename meta_sequence_container::iterator
     Meta iterator type.
     
    - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static size_type size (const void *container)
    static size_type size (const void *container)
     Returns the number of elements in a container.
     
    static bool clear (void *container)
    static bool clear (void *container)
     Clears a container.
     
    static bool reserve (void *container, const size_type sz)
    static bool reserve (void *container, const size_type sz)
     Increases the capacity of a container.
     
    static bool resize (void *container, const size_type sz)
    static bool resize (void *container, const size_type sz)
     Resizes a container.
     
    static iterator begin (const meta_ctx &area, void *container, const void *as_const)
    static iterator begin (const meta_ctx &area, void *container, const void *as_const)
     Returns a possibly const iterator to the beginning.
     
    static iterator end (const meta_ctx &area, void *container, const void *as_const)
    static iterator end (const meta_ctx &area, void *container, const void *as_const)
     Returns a possibly const iterator to the end.
     
    static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)
    static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)
     Assigns one element to a container and constructs its object from a given opaque instance.
     
    static iterator erase (const meta_ctx &area, void *container, const iterator &it)
    static iterator erase (const meta_ctx &area, void *container, const iterator &it)
     Erases an element from a container.
     
    - +

    Static Public Attributes

    static constexpr bool fixed_size = internal::fixed_size_sequence_container_v<Type>
    static constexpr bool fixed_size = internal::fixed_size_sequence_container_v<Type>
     True in case of key-only containers, false otherwise.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::basic_meta_sequence_container_traits< Type >

    General purpose implementation of meta sequence container traits.

    Template Parameters
    @@ -149,10 +162,10 @@ struct entt::basic_meta_sequence_container_traits< Type >

    General

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::basic_meta_sequence_container_traits< Type >::iterator = typename meta_sequence_container::iteratorusing entt::basic_meta_sequence_container_traits< Type >::iterator = typename meta_sequence_container::iterator
    @@ -169,10 +182,10 @@ template<
    +template<typename Type>
    - +
    using entt::basic_meta_sequence_container_traits< Type >::size_type = typename meta_sequence_container::size_typeusing entt::basic_meta_sequence_container_traits< Type >::size_type = typename meta_sequence_container::size_type
    @@ -190,30 +203,30 @@ template<
    +template<typename Type>
    +inlinestatic
    - + - + - + - +
    static iterator entt::basic_meta_sequence_container_traits< Type >::begin static iterator entt::basic_meta_sequence_container_traits< Type >::begin (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * as_const )const void * as_const )
    -inlinestatic
    @@ -239,21 +252,21 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - +
    static bool entt::basic_meta_sequence_container_traits< Type >::clear static bool entt::basic_meta_sequence_container_traits< Type >::clear (void * container)void * container)
    -inlinestatic
    @@ -277,30 +290,30 @@ template<
    +template<typename Type>
    +inlinestatic
    - + - + - + - +
    static iterator entt::basic_meta_sequence_container_traits< Type >::end static iterator entt::basic_meta_sequence_container_traits< Type >::end (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * as_const )const void * as_const )
    -inlinestatic
    @@ -326,30 +339,30 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - + - +
    static iterator entt::basic_meta_sequence_container_traits< Type >::erase static iterator entt::basic_meta_sequence_container_traits< Type >::erase (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const iterator & it )const iterator & it )
    -inlinestatic
    @@ -375,40 +388,40 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - + - + - + - +
    static iterator entt::basic_meta_sequence_container_traits< Type >::insert static iterator entt::basic_meta_sequence_container_traits< Type >::insert (const meta_ctx & area, const meta_ctx & area,
    void * container, void * container,
    const void * value, const void * value,
    const void * cref, const void * cref,
    const iterator & it )const iterator & it )
    -inlinestatic
    @@ -436,25 +449,25 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - +
    static bool entt::basic_meta_sequence_container_traits< Type >::reserve static bool entt::basic_meta_sequence_container_traits< Type >::reserve (void * container, void * container,
    const size_type sz )const size_type sz )
    -inlinestatic
    @@ -479,25 +492,25 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - + - +
    static bool entt::basic_meta_sequence_container_traits< Type >::resize static bool entt::basic_meta_sequence_container_traits< Type >::resize (void * container, void * container,
    const size_type sz )const size_type sz )
    -inlinestatic
    @@ -522,21 +535,21 @@ template<
    +template<typename Type>
    +inlinestaticnodiscard
    - + - +
    static size_type entt::basic_meta_sequence_container_traits< Type >::size static size_type entt::basic_meta_sequence_container_traits< Type >::size (const void * container)const void * container)
    -inlinestatic
    @@ -561,18 +574,18 @@ template<
    +template<typename Type>
    +staticconstexpr
    - +
    constexpr bool entt::basic_meta_sequence_container_traits< Type >::fixed_size = internal::fixed_size_sequence_container_v<Type>bool entt::basic_meta_sequence_container_traits< Type >::fixed_size = internal::fixed_size_sequence_container_v<Type>
    -staticconstexpr
    @@ -589,7 +602,8 @@ template< +
    diff --git a/structentt_1_1basic__organizer_1_1vertex-members.html b/structentt_1_1basic__organizer_1_1vertex-members.html index 2960186a5..09906d481 100644 --- a/structentt_1_1basic__organizer_1_1vertex-members.html +++ b/structentt_1_1basic__organizer_1_1vertex-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::basic_organizer< Registry >::vertex Member List
    @@ -82,23 +95,23 @@ $(function() {

    This is the complete list of members for entt::basic_organizer< Registry >::vertex, including all inherited members.

    - - - - - - - - - - - - - + + + + + + + + + + + +
    callback() const noexceptentt::basic_organizer< Registry >::vertexinline
    children() const noexceptentt::basic_organizer< Registry >::vertexinline
    data() const noexceptentt::basic_organizer< Registry >::vertexinline
    in_edges() const noexceptentt::basic_organizer< Registry >::vertexinline
    info() const noexceptentt::basic_organizer< Registry >::vertexinline
    name() const noexceptentt::basic_organizer< Registry >::vertexinline
    out_edges() const noexceptentt::basic_organizer< Registry >::vertexinline
    prepare(registry_type &reg) constentt::basic_organizer< Registry >::vertexinline
    ro_count() const noexceptentt::basic_organizer< Registry >::vertexinline
    ro_dependency(const type_info **buffer, const std::size_t length) const noexceptentt::basic_organizer< Registry >::vertexinline
    rw_count() const noexceptentt::basic_organizer< Registry >::vertexinline
    rw_dependency(const type_info **buffer, const std::size_t length) const noexceptentt::basic_organizer< Registry >::vertexinline
    top_level() const noexceptentt::basic_organizer< Registry >::vertexinline
    vertex(vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)entt::basic_organizer< Registry >::vertexinline
    data() const noexceptentt::basic_organizer< Registry >::vertexinline
    in_edges() const noexceptentt::basic_organizer< Registry >::vertexinline
    info() const noexceptentt::basic_organizer< Registry >::vertexinline
    name() const noexceptentt::basic_organizer< Registry >::vertexinline
    out_edges() const noexceptentt::basic_organizer< Registry >::vertexinline
    prepare(registry_type &reg) constentt::basic_organizer< Registry >::vertexinline
    ro_count() const noexceptentt::basic_organizer< Registry >::vertexinline
    ro_dependency(const type_info **buffer, const std::size_t length) const noexceptentt::basic_organizer< Registry >::vertexinline
    rw_count() const noexceptentt::basic_organizer< Registry >::vertexinline
    rw_dependency(const type_info **buffer, const std::size_t length) const noexceptentt::basic_organizer< Registry >::vertexinline
    top_level() const noexceptentt::basic_organizer< Registry >::vertexinline
    vertex(vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)entt::basic_organizer< Registry >::vertexinline
    +
    diff --git a/structentt_1_1basic__organizer_1_1vertex.html b/structentt_1_1basic__organizer_1_1vertex.html index b8a26dff3..410ff6b3a 100644 --- a/structentt_1_1basic__organizer_1_1vertex.html +++ b/structentt_1_1basic__organizer_1_1vertex.html @@ -3,13 +3,15 @@ - + EnTT: entt::basic_organizer< Registry >::vertex Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,54 +102,51 @@ $(function() { - + - + - + - + - + - + - + - + - + - + - + - + - - - - +

    Public Member Functions

     vertex (vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)
     vertex (vertex_data data, std::vector< std::size_t > from, std::vector< std::size_t > to)
     Constructs a vertex of the task graph.
     
    size_type ro_dependency (const type_info **buffer, const std::size_t length) const noexcept
    size_type ro_dependency (const type_info **buffer, const std::size_t length) const noexcept
     Fills a buffer with the type info objects for the writable resources of a vertex.
     
    size_type rw_dependency (const type_info **buffer, const std::size_t length) const noexcept
    size_type rw_dependency (const type_info **buffer, const std::size_t length) const noexcept
     Fills a buffer with the type info objects for the read-only resources of a vertex.
     
    size_type ro_count () const noexcept
    size_type ro_count () const noexcept
     Returns the number of read-only resources of a vertex.
     
    size_type rw_count () const noexcept
    size_type rw_count () const noexcept
     Returns the number of writable resources of a vertex.
     
    bool top_level () const noexcept
    bool top_level () const noexcept
     Checks if a vertex is also a top-level one.
     
    const type_infoinfo () const noexcept
    const type_infoinfo () const noexcept
     Returns a type info object associated with a vertex.
     
    const charname () const noexcept
    const char * name () const noexcept
     Returns a user defined name associated with a vertex, if any.
     
    function_typecallback () const noexcept
    function_typecallback () const noexcept
     Returns the function associated with a vertex.
     
    const voiddata () const noexcept
    const void * data () const noexcept
     Returns the payload associated with a vertex, if any.
     
    const std::vector< std::size_t > & in_edges () const noexcept
    const std::vector< std::size_t > & in_edges () const noexcept
     Returns the list of in-edges of a vertex.
     
    const std::vector< std::size_t > & out_edges () const noexcept
    const std::vector< std::size_t > & out_edges () const noexcept
     Returns the list of out-edges of a vertex.
     
    const std::vector< std::size_t > & children () const noexcept
     Returns the list of nodes reachable from a given vertex.
     
    void prepare (registry_type &reg) const
    void prepare (registry_type &reg) const
     Prepares a registry and assures that all required resources are properly instantiated before using them.
     

    Detailed Description

    -
    template<typename Registry>
    +
    template<typename Registry>
    struct entt::basic_organizer< Registry >::vertex

    Vertex type of a task graph defined as an adjacency list.

    -

    Definition at line 169 of file organizer.hpp.

    +

    Definition at line 190 of file organizer.hpp.

    Constructor & Destructor Documentation

    ◆ vertex()

    @@ -144,20 +154,20 @@ struct entt::basic_organizer< Registry >::vertex

    Vertex type of a

    -template<typename Registry >
    +template<typename Registry>
    @@ -31,23 +33,33 @@
    - + - + - + @@ -167,7 +177,7 @@ template< -inline +inline
    entt::basic_organizer< Registry >::vertex::vertex entt::basic_organizer< Registry >::vertex::vertex (vertex_data data, vertex_data data,
    std::vector< std::size_t > from, std::vector< std::size_t > from,
    @@ -193,21 +203,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    function_type * entt::basic_organizer< Registry >::vertex::callback function_type * entt::basic_organizer< Registry >::vertex::callback ()) const
    -inlinenoexcept
    - - -

    ◆ children()

    - -
    -
    -
    -template<typename Registry >
    - - - - - -
    - - - - - - - -
    const std::vector< std::size_t > & entt::basic_organizer< Registry >::vertex::children () const
    -
    -inlinenoexcept
    -
    - -

    Returns the list of nodes reachable from a given vertex.

    -
    Returns
    The list of nodes reachable from the vertex.
    - -

    Definition at line 279 of file organizer.hpp.

    +

    Definition at line 268 of file organizer.hpp.

    @@ -257,21 +235,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    const void * entt::basic_organizer< Registry >::vertex::data const void * entt::basic_organizer< Registry >::vertex::data ()) const
    -inlinenoexcept
    @@ -279,7 +257,7 @@ template<
    Returns
    The payload associated with the vertex, if any.
    -

    Definition at line 255 of file organizer.hpp.

    +

    Definition at line 276 of file organizer.hpp.

    @@ -289,21 +267,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    const std::vector< std::size_t > & entt::basic_organizer< Registry >::vertex::in_edges const std::vector< std::size_t > & entt::basic_organizer< Registry >::vertex::in_edges ()) const
    -inlinenoexcept
    @@ -311,7 +289,7 @@ template<
    Returns
    The list of in-edges of a vertex.
    -

    Definition at line 263 of file organizer.hpp.

    +

    Definition at line 284 of file organizer.hpp.

    @@ -321,21 +299,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    const type_info & entt::basic_organizer< Registry >::vertex::info const type_info & entt::basic_organizer< Registry >::vertex::info ()) const
    -inlinenoexcept
    @@ -343,7 +321,7 @@ template<
    Returns
    A properly initialized type info object.
    -

    Definition at line 231 of file organizer.hpp.

    +

    Definition at line 252 of file organizer.hpp.

    @@ -353,21 +331,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    const char * entt::basic_organizer< Registry >::vertex::name const char * entt::basic_organizer< Registry >::vertex::name ()) const
    -inlinenoexcept
    @@ -385,21 +363,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    const std::vector< std::size_t > & entt::basic_organizer< Registry >::vertex::out_edges const std::vector< std::size_t > & entt::basic_organizer< Registry >::vertex::out_edges ()) const
    -inlinenoexcept
    @@ -407,7 +385,7 @@ template<
    Returns
    The list of out-edges of a vertex.
    -

    Definition at line 271 of file organizer.hpp.

    +

    Definition at line 292 of file organizer.hpp.

    @@ -417,13 +395,13 @@ template<
    +template<typename Registry>
    @@ -31,23 +33,33 @@
    - + @@ -431,7 +409,7 @@ template< -inline +inline
    void entt::basic_organizer< Registry >::vertex::prepare void entt::basic_organizer< Registry >::vertex::prepare ( registry_type & reg) const
    @@ -454,21 +432,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    size_type entt::basic_organizer< Registry >::vertex::ro_count size_type entt::basic_organizer< Registry >::vertex::ro_count ()) const
    -inlinenoexcept
    @@ -476,7 +454,7 @@ template<
    Returns
    The number of read-only resources of the vertex.
    -

    Definition at line 207 of file organizer.hpp.

    +

    Definition at line 228 of file organizer.hpp.

    @@ -486,25 +464,25 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - + - +
    size_type entt::basic_organizer< Registry >::vertex::ro_dependency size_type entt::basic_organizer< Registry >::vertex::ro_dependency (const type_info ** buffer, const type_info ** buffer,
    const std::size_t length ) constconst std::size_t length ) const
    -inlinenoexcept
    @@ -529,21 +507,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    size_type entt::basic_organizer< Registry >::vertex::rw_count size_type entt::basic_organizer< Registry >::vertex::rw_count ()) const
    -inlinenoexcept
    @@ -551,7 +529,7 @@ template<
    Returns
    The number of writable resources of the vertex.
    -

    Definition at line 215 of file organizer.hpp.

    +

    Definition at line 236 of file organizer.hpp.

    @@ -561,25 +539,25 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - + - +
    size_type entt::basic_organizer< Registry >::vertex::rw_dependency size_type entt::basic_organizer< Registry >::vertex::rw_dependency (const type_info ** buffer, const type_info ** buffer,
    const std::size_t length ) constconst std::size_t length ) const
    -inlinenoexcept
    @@ -604,21 +582,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    bool entt::basic_organizer< Registry >::vertex::top_level bool entt::basic_organizer< Registry >::vertex::top_level ()) const
    -inlinenoexcept
    @@ -636,7 +614,8 @@ template< + diff --git a/structentt_1_1choice__t.html b/structentt_1_1choice__t.html index 8ca4b4607..fd7b0ca95 100644 --- a/structentt_1_1choice__t.html +++ b/structentt_1_1choice__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::choice_t< N > Struct Template Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + + +
    entt::choice_t< N > Struct Template Reference
    @@ -100,7 +113,8 @@ struct entt::choice_t< N >

    Utility class to disambiguate overloade

    + diff --git a/structentt_1_1choice__t_3_010_01_4.html b/structentt_1_1choice__t_3_010_01_4.html index f9de22553..b983f953b 100644 --- a/structentt_1_1choice__t_3_010_01_4.html +++ b/structentt_1_1choice__t_3_010_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::choice_t< 0 > Struct Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::choice_t< 0 > Struct Reference
    -

    Utility class to disambiguate overloaded functions. +

    Utility class to disambiguate overloaded functions. More...

    #include <type_traits.hpp>

    Detailed Description

    -

    Utility class to disambiguate overloaded functions.

    +

    Utility class to disambiguate overloaded functions.

    Definition at line 26 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
      @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1component__traits-members.html b/structentt_1_1component__traits-members.html index e862b4c3a..b8fec65d1 100644 --- a/structentt_1_1component__traits-members.html +++ b/structentt_1_1component__traits-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::component_traits< Type, typename > Member List
    +
    entt::component_traits< Type, Entity, typename > Member List
    +
    diff --git a/structentt_1_1component__traits.html b/structentt_1_1component__traits.html index 58e62507e..597db4fa9 100644 --- a/structentt_1_1component__traits.html +++ b/structentt_1_1component__traits.html @@ -3,13 +3,15 @@ - + -EnTT: entt::component_traits< Type, typename > Struct Template Reference +EnTT: entt::component_traits< Type, Entity, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::component_traits< Type, typename > Struct Template Reference
    +
    entt::component_traits< Type, Entity, typename > Struct Template Reference
    @@ -90,105 +103,129 @@ $(function() { - - - + + + + + +

    Public Types

    using type = Type
     Component type.
     
    using element_type = Type
     Element type.
     
    using entity_type = Entity
     Underlying entity identifier.
     
    - - - - - - + + + + + +

    Static Public Attributes

    static constexpr bool in_place_delete = internal::in_place_delete<Type>::value
     Pointer stability, default is false.
     
    static constexpr std::size_t page_size = internal::page_size<Type>::value
     Page size, default is ENTT_PACKED_PAGE for non-empty types.
     
    static constexpr bool in_place_delete = internal::in_place_delete<Type>::value
     Pointer stability, default is false.
     
    static constexpr std::size_t page_size = internal::page_size<Type>::value
     Page size, default is ENTT_PACKED_PAGE for non-empty types.
     

    Detailed Description

    -
    template<typename Type, typename = void>
    -struct entt::component_traits< Type, typename >

    Common way to access various properties of components.

    +
    template<typename Type, typename Entity, typename>
    +struct entt::component_traits< Type, Entity, typename >

    Common way to access various properties of components.

    Template Parameters
    - + +
    TypeType of component.
    TypeElement type.
    EntityA valid entity type.
    -

    Definition at line 42 of file component.hpp.

    +

    Definition at line 43 of file component.hpp.

    Member Typedef Documentation

    - -

    ◆ type

    + +

    ◆ element_type

    -template<typename Type , typename = void>
    +template<typename Type, typename Entity, typename>
    - +
    using entt::component_traits< Type, typename >::type = Typeusing entt::component_traits< Type, Entity, typename >::element_type = Type
    -

    Component type.

    +

    Element type.

    -

    Definition at line 46 of file component.hpp.

    +

    Definition at line 47 of file component.hpp.

    -

    Member Data Documentation

    - -

    ◆ in_place_delete

    + +

    ◆ entity_type

    -template<typename Type , typename = void>
    +template<typename Type, typename Entity, typename>
    + + + + +
    using entt::component_traits< Type, Entity, typename >::entity_type = Entity
    +
    + +

    Underlying entity identifier.

    + +

    Definition at line 49 of file component.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ in_place_delete

    + +
    +
    +
    +template<typename Type, typename Entity, typename>
    +staticconstexpr
    - +
    constexpr bool entt::component_traits< Type, typename >::in_place_delete = internal::in_place_delete<Type>::valuebool entt::component_traits< Type, Entity, typename >::in_place_delete = internal::in_place_delete<Type>::value
    -staticconstexpr

    Pointer stability, default is false.

    -

    Definition at line 49 of file component.hpp.

    +

    Definition at line 52 of file component.hpp.

    - -

    ◆ page_size

    + +

    ◆ page_size

    -template<typename Type , typename = void>
    +template<typename Type, typename Entity, typename>
    +staticconstexpr
    - +
    constexpr std::size_t entt::component_traits< Type, typename >::page_size = internal::page_size<Type>::valuestd::size_t entt::component_traits< Type, Entity, typename >::page_size = internal::page_size<Type>::value
    -staticconstexpr

    Page size, default is ENTT_PACKED_PAGE for non-empty types.

    -

    Definition at line 51 of file component.hpp.

    +

    Definition at line 54 of file component.hpp.

    @@ -198,7 +235,8 @@ template< +
    diff --git a/structentt_1_1connect__arg__t-members.html b/structentt_1_1connect__arg__t-members.html index cecb4639f..f9d6a83a2 100644 --- a/structentt_1_1connect__arg__t-members.html +++ b/structentt_1_1connect__arg__t-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::connect_arg_t< auto > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1connect__arg__t.html b/structentt_1_1connect__arg__t.html index 576a3df78..3d459149b 100644 --- a/structentt_1_1connect__arg__t.html +++ b/structentt_1_1connect__arg__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::connect_arg_t< auto > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -90,12 +103,12 @@ $(function() {

    Public Member Functions

    connect_arg_t ()=defaultconnect_arg_t ()=default  Default constructor.
     

    Detailed Description

    -
    template<auto>
    +
    template<auto>
    struct entt::connect_arg_t< auto >

    Disambiguation tag for constructors and the like.

    Definition at line 32 of file fwd.hpp.

    @@ -105,7 +118,8 @@ struct entt::connect_arg_t< auto >

    Disambiguation tag for construc

    +
    diff --git a/structentt_1_1constness__as-members.html b/structentt_1_1constness__as-members.html index 7e39536bc..c2752fea5 100644 --- a/structentt_1_1constness__as-members.html +++ b/structentt_1_1constness__as-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::constness_as< To, From > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1constness__as.html b/structentt_1_1constness__as.html index f8bb79ee9..4ecec5b6a 100644 --- a/structentt_1_1constness__as.html +++ b/structentt_1_1constness__as.html @@ -3,13 +3,15 @@ - + EnTT: entt::constness_as< To, From > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = std::remove_const_t<To>
    using type = std::remove_const_t<To>
     The type resulting from the transcription of the constness.
     

    Detailed Description

    -
    template<typename To, typename From>
    +
    template<typename To, typename From>
    struct entt::constness_as< To, From >

    Transcribes the constness of a type to another type.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::constness_as< To, From >

    Transcribes the constness of -

    Definition at line 821 of file type_traits.hpp.

    +

    Definition at line 823 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::constness_as< To, From >

    Transcribes the constness of

    -template<typename To , typename From >
    +template<typename To, typename From>
    - +
    using entt::constness_as< To, From >::type = std::remove_const_t<To>using entt::constness_as< To, From >::type = std::remove_const_t<To>

    The type resulting from the transcription of the constness.

    -

    Definition at line 823 of file type_traits.hpp.

    +

    Definition at line 825 of file type_traits.hpp.

    @@ -132,7 +145,8 @@ template< +
    diff --git a/structentt_1_1constness__as_3_01To_00_01const_01From_01_4-members.html b/structentt_1_1constness__as_3_01To_00_01const_01From_01_4-members.html index 689d6dc9f..a872001f7 100644 --- a/structentt_1_1constness__as_3_01To_00_01const_01From_01_4-members.html +++ b/structentt_1_1constness__as_3_01To_00_01const_01From_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::constness_as< To, const From > Member List
    @@ -82,10 +95,12 @@ $(function() {

    This is the complete list of members for entt::constness_as< To, const From >, including all inherited members.

    +
    type typedefentt::constness_as< To, const From >
    type typedefentt::constness_as< To, const From >
    +
    diff --git a/structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html b/structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html index 5bf1865c6..2750709b4 100644 --- a/structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html +++ b/structentt_1_1constness__as_3_01To_00_01const_01From_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::constness_as< To, const From > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -82,47 +95,68 @@ $(function() {
    -

    Transcribes the constness of a type to another type. +

    Transcribes the constness of a type to another type. More...

    #include <type_traits.hpp>

    - + + + +

    Public Types

    using type = const To
    using type = const To
     The type resulting from the transcription of the constness.
     
    using type
     The type resulting from the transcription of the constness.
     

    Detailed Description

    -
    template<typename To, typename From>
    -struct entt::constness_as< To, const From >

    Transcribes the constness of a type to another type.

    +
    template<typename To, typename From>
    +struct entt::constness_as< To, const From >

    Transcribes the constness of a type to another type.

    Template Parameters
    - +
    ToThe type to which to transcribe the constness.
    FromThe type from which to transcribe the constness.
    FromThe type from which to transcribe the constness.
    -

    Definition at line 828 of file type_traits.hpp.

    +

    Definition at line 830 of file type_traits.hpp.

    Member Typedef Documentation

    - -

    ◆ type

    + +

    ◆ type [1/2]

    -
    -template<typename To , typename From >
    - +
    using entt::constness_as< To, const From >::type = const Tousing entt::constness_as< To, From >::type

    The type resulting from the transcription of the constness.

    -

    Definition at line 830 of file type_traits.hpp.

    +

    Definition at line 825 of file type_traits.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<typename To, typename From>
    + + + + +
    using entt::constness_as< To, const From >::type = const To
    +
    + +

    The type resulting from the transcription of the constness.

    + +

    Definition at line 832 of file type_traits.hpp.

    @@ -132,7 +166,8 @@ template< +
    diff --git a/structentt_1_1directed__tag.html b/structentt_1_1directed__tag.html index 45e1c0970..0e0d2e221 100644 --- a/structentt_1_1directed__tag.html +++ b/structentt_1_1directed__tag.html @@ -3,13 +3,15 @@ - + EnTT: entt::directed_tag Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::directed_tag Struct Reference
    @@ -103,7 +116,8 @@ Inheritance diagram for entt::directed_tag:
    +
    diff --git a/structentt_1_1entt__traits-members.html b/structentt_1_1entt__traits-members.html index 371cb98b5..bd65a023e 100644 --- a/structentt_1_1entt__traits-members.html +++ b/structentt_1_1entt__traits-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::entt_traits< Type > Member List
    @@ -83,21 +96,30 @@ $(function() { + + - + + + + + - + + +
    base_type typedefentt::entt_traits< Type >
    combine(const entity_type lhs, const entity_type rhs) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    combine(const entity_type lhs, const entity_type rhs) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    construct(const entity_type entity, const version_type version) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    construct(const entity_type entity, const version_type version) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    entity_maskentt::basic_entt_traits< internal::entt_traits< Type > >static
    entity_type typedefentt::basic_entt_traits< internal::entt_traits< Type > >
    entity_maskentt::basic_entt_traits< internal::entt_traits< Type > >static
    entity_type typedefentt::basic_entt_traits< internal::entt_traits< Type > >
    next(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    next(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    page_sizeentt::entt_traits< Type >static
    to_entity(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    to_entity(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    to_integral(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    to_integral(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    to_version(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    value_type typedefentt::basic_entt_traits< internal::entt_traits< Type > >
    to_version(const value_type value) noexceptentt::basic_entt_traits< internal::entt_traits< Type > >inlinestatic
    value_type typedefentt::basic_entt_traits< internal::entt_traits< Type > >
    version_maskentt::basic_entt_traits< internal::entt_traits< Type > >static
    version_maskentt::basic_entt_traits< internal::entt_traits< Type > >static
    version_type typedefentt::basic_entt_traits< internal::entt_traits< Type > >
    +
    diff --git a/structentt_1_1entt__traits.html b/structentt_1_1entt__traits.html index e37fa887c..d300793e8 100644 --- a/structentt_1_1entt__traits.html +++ b/structentt_1_1entt__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::entt_traits< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -110,7 +123,7 @@ Collaboration diagram for entt::entt_traits< Type >:
    - + @@ -126,7 +139,7 @@ Public Types

    Public Types

    using base_type = basic_entt_traits<internal::entt_traits<Type>>
    using base_type = basic_entt_traits<internal::entt_traits<Type>>
     Base type.
     
    - Public Types inherited from entt::basic_entt_traits< internal::entt_traits< Type > >
    - + @@ -136,6 +149,12 @@ Static Public Attributes + + + + + +

    Static Public Attributes

    static constexpr std::size_t page_size = 4096
    static constexpr std::size_t page_size = 4096
     Page size, default is ENTT_SPARSE_PAGE.
     
    - Static Public Attributes inherited from entt::basic_entt_traits< internal::entt_traits< Type > >
    static constexpr entity_type version_mask
     Version mask size.
     
    static constexpr entity_type entity_mask
     Entity mask size.
     
    static constexpr entity_type version_mask
     Version mask size.
     
    @@ -158,9 +177,27 @@ Additional Inherited Members + + + + + + + + + + + + + + + + + +

    Additional Inherited Members

    static constexpr value_type combine (const entity_type lhs, const entity_type rhs) noexcept
     Combines two identifiers in a single one.
     
    static constexpr entity_type to_integral (const value_type value) noexcept
     Converts an entity to its underlying type.
     
    static constexpr entity_type to_entity (const value_type value) noexcept
     Returns the entity part once converted to the underlying type.
     
    static constexpr version_type to_version (const value_type value) noexcept
     Returns the version part once converted to the underlying type.
     
    static constexpr value_type next (const value_type value) noexcept
     Returns the successor of a given identifier.
     
    static constexpr value_type construct (const entity_type entity, const version_type version) noexcept
     Constructs an identifier from its parts.
     
    static constexpr value_type combine (const entity_type lhs, const entity_type rhs) noexcept
     Combines two identifiers in a single one.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::entt_traits< Type >

    Entity traits.

    Template Parameters
    @@ -177,10 +214,10 @@ struct entt::entt_traits< Type >

    Entity traits.

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::entt_traits< Type >::base_type = basic_entt_traits<internal::entt_traits<Type>>using entt::entt_traits< Type >::base_type = basic_entt_traits<internal::entt_traits<Type>>
    @@ -198,18 +235,18 @@ template<
    +template<typename Type>
    +staticconstexpr
    - +
    constexpr std::size_t entt::entt_traits< Type >::page_size = 4096std::size_t entt::entt_traits< Type >::page_size = 4096
    -staticconstexpr
    @@ -226,7 +263,8 @@ template< +
    diff --git a/structentt_1_1enum__as__bitmask.html b/structentt_1_1enum__as__bitmask.html index 06714e050..54496245b 100644 --- a/structentt_1_1enum__as__bitmask.html +++ b/structentt_1_1enum__as__bitmask.html @@ -3,13 +3,15 @@ - + EnTT: entt::enum_as_bitmask< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::enum_as_bitmask< Type, typename > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::enum_as_bitmask< Type, typename >:
    [legend]

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::enum_as_bitmask< Type, typename >

    Enable bitmask support for enum classes.

    Template Parameters
    @@ -120,7 +133,8 @@ struct entt::enum_as_bitmask< Type, typename >

    Enable bitmask supp

    + diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html index e9a290d34..e80be73fb 100644 --- a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html +++ b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enum__as__bitmask_08_4_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> > Struct Template Reference
    -

    Enable bitmask support for enum classes. +

    Enable bitmask support for enum classes. More...

    #include <enum.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::enum_as_bitmask< Type, std::void_t< decltype
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,17 +113,19 @@ Collaboration diagram for entt::enum_as_bitmask< Type, std::void_t< declty
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >

    Enable bitmask support for enum classes.

    +
    template<typename Type>
    +struct entt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum_as_bitmask)> >

    Enable bitmask support for enum classes.

    Template Parameters
    - +
    TypeThe enum type for which to enable bitmask support.
    TypeThe enum type for which to enable bitmask support.
    @@ -120,7 +137,8 @@ struct entt::enum_as_bitmask< Type, std::void_t< decltype(Type::_entt_enum
    +
    diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.map b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.map index 4d4c53769..c73f105c5 100644 --- a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.map +++ b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.md5 b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.md5 index 082569101..7348f9776 100644 --- a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.md5 +++ b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.md5 @@ -1 +1 @@ -14124ab96555e9f205563341a6470cf5 \ No newline at end of file +87123082a2d80f25b7f73631e7678915 \ No newline at end of file diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.png b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enumb45e5b59e9e78d3c72700aca5e6e82c2.png index 594c579c899485ee600d3715f2fbe85ec7033748..4880a6d927e50199d0bcd718d6093bb07addb107 100644 GIT binary patch literal 4407 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 YyH_2VPM88HHz5FR4PEsrRojsN0F92kV*mgE literal 2336 zcmcgu`#;l-7k5cSV$ua+Nz3LEl7&o|+Q){>{jP+Tm})M?bdg)-@i6y04UcK=%q%K* zDq+}T*?KHpMz+fBi{z{4d4Bl*1>bXC=bYDhzh38cUgx~dd7YDT-u|4dw6e5_h=?qJ zLSnaV^|s_m?cCPRb;|d)&CZMHb4Zb`UtHQzMG_H_ngEcN&e4SnMK2$!+9>upMEKTf zB6se1EYCT3PbNjGee905Bj}{w#lCY2LfvGG116~_CnN*PIb4^uI~vn6fq(St z*oB1xc9cx^<`rScZDH|Sw?tuUwT>Uvrvu@MVNErk?6-~?khkNshpyU(s1nkwf&Bso zynQN6`LeVZCoxKWa->@Y21nKaegn~TTuybN;G1(Un-?R*EZADMh6~wJ!+qImtL<^m z+3J6}=i8V1)ILniU1vvBf;}AA`-%hZs5=D@8u)uf4W^tQFdry0Fu*XUNr^GF^QVA7 z5#~tOC$(9@ho*#>w{ff+M4HbG#bU)&9ZPeOc7G+w1FZ>)3tVo!)4h;&ryxt8pQ)BB z3j_dq@`Ah3{#dZu-+c`HxMGi!V2VQmKhFClx6Y5jDiapJ#34$UA3p|JLEi@_!Pb9H zE)qVyDdC4NN8wCJF9ylB)edv*KVdDo4L2e-QiAbJZdx7p=8vHx8=p$DCr|8~{rOv$ zl*uBs^GrS$T)wsEP-)8>U+1mtNh1k;NFZ%!-qC61kbXsQhNg6|R}UG2hp7%ihA-c^r8MP>S9v_jN)Zmme+W6g{~7 zPPMD#g?=e`6I zjcB#dZ8&_T5kWa=j=PDEDrg0L57-VLF(VAkG;g+84WwN-8rKg!yn!0sOo8Y7GLaTg zo7+YVMNr3TYTSPob0+-g5@Pi|d1%ku;XsKFHNX};E&lB}`OIm3sJt9Tx<{NO_WyC4 zmRQ_3MP^Z0=(5c&1EZ9A0*5?t73l`!cR%vOg3&IWVCLM1^_VuD$-y+6nk&NFOu&y&U z);ptC>CGwD@L>G#ce(K3rYUTjK`7h;fA#7#?HPmfC4|Y@Q_Z58zka=<+kX!IsI@a@ zoc6B8?od0C{oX1&{0;QfxsFyj$tX_suxk6Tv;C9(VetwEKefMM<0A%1J4mgSv=BU6 z!#Ro){32+qVL7{+FOwQ-)lIx|k&v{T>WxwmjMi}9xaY9RpM&^7K$qLAGv>`)K?L+N zYqaXb$2hw80d~Q)&&GCKD+7qRx9$LYg!$hFbqpt1QDMoE%!aa85U&mhW}Wc?5aOoZajL@VaSbKfO@DN7 zXj+^cyK(u9T!jpe*(>8^kF?x~3jTcHt=!4%6)#yQnCF#PuJ>A|$+({S#o7sCNhRU?0u^6}=5O6tV;8xrT{-L3;Nw`q=KGXpl^Q z(~xCj#F(>Omtw8A!u3!OGd^YiCR(|Esa-hgl52?<>n0{<<+T}V^{A(vJ@c|QvZUqFNx=An+LobQkQ~ z$?uu9An%w_OFo7}RO{O4XmVSH9E6@o@LSFC-|1lrVXwVNtB zr@HJ0YI+sFh+9dbfS9!;4Zqp;COyN|w4;u&*@ob15Xp93GiNfx5EKkkEaAuzdBj`s(|qFC+;PV+y^JNYH7?M)8i!E&j)-3$SwiSp z&86jy_co(>p4ERkcgWjTty0-M3pi>*{BdAroehJG5#HeMa+<)`)TKdJ*d*yy|7q}a z{HPeou)BqvE#`%|@9aPJh>#OW25++RFJMQ|s7V)CW9~RS^a=3^K1Pf4NW0>7N{Q8a5;h3sf)+8ic1#_ez@FbWm0{zVU<;;q>`x zlaCvgtkOC&68aMTbt21f=r4{rSVO5>=_y0<@ln%hw7m+t%oqx2qYWpE5G!-c=fa6yLeug*~muIX9;)Mox%>xo=awwGA%*lUVj59e~ XqPK}z!!4qq* - - - + + + + + diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.md5 b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.md5 index 082569101..7348f9776 100644 --- a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.md5 +++ b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.md5 @@ -1 +1 @@ -14124ab96555e9f205563341a6470cf5 \ No newline at end of file +87123082a2d80f25b7f73631e7678915 \ No newline at end of file diff --git a/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.png b/structentt_1_1enum__as__bitmask_3_01Type_00_01std_1_1void__t_3_01decltype_07Type_1_1__entt__enume78d06b8709f92cd1e7735875131f315.png index 594c579c899485ee600d3715f2fbe85ec7033748..4880a6d927e50199d0bcd718d6093bb07addb107 100644 GIT binary patch literal 4407 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 YyH_2VPM88HHz5FR4PEsrRojsN0F92kV*mgE literal 2336 zcmcgu`#;l-7k5cSV$ua+Nz3LEl7&o|+Q){>{jP+Tm})M?bdg)-@i6y04UcK=%q%K* zDq+}T*?KHpMz+fBi{z{4d4Bl*1>bXC=bYDhzh38cUgx~dd7YDT-u|4dw6e5_h=?qJ zLSnaV^|s_m?cCPRb;|d)&CZMHb4Zb`UtHQzMG_H_ngEcN&e4SnMK2$!+9>upMEKTf zB6se1EYCT3PbNjGee905Bj}{w#lCY2LfvGG116~_CnN*PIb4^uI~vn6fq(St z*oB1xc9cx^<`rScZDH|Sw?tuUwT>Uvrvu@MVNErk?6-~?khkNshpyU(s1nkwf&Bso zynQN6`LeVZCoxKWa->@Y21nKaegn~TTuybN;G1(Un-?R*EZADMh6~wJ!+qImtL<^m z+3J6}=i8V1)ILniU1vvBf;}AA`-%hZs5=D@8u)uf4W^tQFdry0Fu*XUNr^GF^QVA7 z5#~tOC$(9@ho*#>w{ff+M4HbG#bU)&9ZPeOc7G+w1FZ>)3tVo!)4h;&ryxt8pQ)BB z3j_dq@`Ah3{#dZu-+c`HxMGi!V2VQmKhFClx6Y5jDiapJ#34$UA3p|JLEi@_!Pb9H zE)qVyDdC4NN8wCJF9ylB)edv*KVdDo4L2e-QiAbJZdx7p=8vHx8=p$DCr|8~{rOv$ zl*uBs^GrS$T)wsEP-)8>U+1mtNh1k;NFZ%!-qC61kbXsQhNg6|R}UG2hp7%ihA-c^r8MP>S9v_jN)Zmme+W6g{~7 zPPMD#g?=e`6I zjcB#dZ8&_T5kWa=j=PDEDrg0L57-VLF(VAkG;g+84WwN-8rKg!yn!0sOo8Y7GLaTg zo7+YVMNr3TYTSPob0+-g5@Pi|d1%ku;XsKFHNX};E&lB}`OIm3sJt9Tx<{NO_WyC4 zmRQ_3MP^Z0=(5c&1EZ9A0*5?t73l`!cR%vOg3&IWVCLM1^_VuD$-y+6nk&NFOu&y&U z);ptC>CGwD@L>G#ce(K3rYUTjK`7h;fA#7#?HPmfC4|Y@Q_Z58zka=<+kX!IsI@a@ zoc6B8?od0C{oX1&{0;QfxsFyj$tX_suxk6Tv;C9(VetwEKefMM<0A%1J4mgSv=BU6 z!#Ro){32+qVL7{+FOwQ-)lIx|k&v{T>WxwmjMi}9xaY9RpM&^7K$qLAGv>`)K?L+N zYqaXb$2hw80d~Q)&&GCKD+7qRx9$LYg!$hFbqpt1QDMoE%!aa85U&mhW}Wc?5aOoZajL@VaSbKfO@DN7 zXj+^cyK(u9T!jpe*(>8^kF?x~3jTcHt=!4%6)#yQnCF#PuJ>A|$+({S#o7sCNhRU?0u^6}=5O6tV;8xrT{-L3;Nw`q=KGXpl^Q z(~xCj#F(>Omtw8A!u3!OGd^YiCR(|Esa-hgl52?<>n0{<<+T}V^{A(vJ@c|QvZUqFNx=An+LobQkQ~ z$?uu9An%w_OFo7}RO{O4XmVSH9E6@o@LSFC-|1lrVXwVNtB zr@HJ0YI+sFh+9dbfS9!;4Zqp;COyN|w4;u&*@ob15Xp93GiNfx5EKkkEaAuzdBj`s(|qFC+;PV+y^JNYH7?M)8i!E&j)-3$SwiSp z&86jy_co(>p4ERkcgWjTty0-M3pi>*{BdAroehJG5#HeMa+<)`)TKdJ*d*yy|7q}a z{HPeou)BqvE#`%|@9aPJh>#OW25++RFJMQ|s7V)CW9~RS^a=3^K1Pf4NW0>7N{Q8a5;h3sf)+8ic1#_ez@FbWm0{zVU<;;q>`x zlaCvgtkOC&68aMTbt21f=r4{rSVO5>=_y0<@ln%hw7m+t%oqx2qYWpE5G!-c=fa6yLeug*~muIX9;)Mox%>xo=awwGA%*lUVj59e~ XqPK}z!!4qq* - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::exclude_t< Type > Member List
    @@ -83,11 +96,13 @@ $(function() { - + +
    exclude_t()=defaultentt::exclude_t< Type >explicit
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    +
    diff --git a/structentt_1_1exclude__t.html b/structentt_1_1exclude__t.html index 28dc4fe6b..18adc0e5c 100644 --- a/structentt_1_1exclude__t.html +++ b/structentt_1_1exclude__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::exclude_t< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::exclude_t< Type > Struct Template Referencefinal
    +
    entt::exclude_t< Type > Struct Template Referencefinal
    @@ -110,7 +123,7 @@ Collaboration diagram for entt::exclude_t< Type >:

    Public Member Functions

    -constexpr exclude_t ()=default +constexpr exclude_t ()=default  Default constructor.
      @@ -124,6 +137,9 @@ Additional Inherited Members + + +
    static constexpr auto size
     Compile-time number of elements in the type list.
     
    static constexpr auto size
     Compile-time number of elements in the type list.
     

    Detailed Description

    template<typename... Type>
    @@ -135,14 +151,15 @@ struct entt::exclude_t< Type >

    Alias for exclusion lists.

    -

    Definition at line 141 of file fwd.hpp.

    +

    Definition at line 140 of file fwd.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1forward__apply-members.html b/structentt_1_1forward__apply-members.html index 0996bb97f..6f95dc057 100644 --- a/structentt_1_1forward__apply-members.html +++ b/structentt_1_1forward__apply-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::forward_apply< Func > Member List
    @@ -87,7 +100,8 @@ $(function() {
    +
    diff --git a/structentt_1_1forward__apply.html b/structentt_1_1forward__apply.html index 55b93b558..06358a0f9 100644 --- a/structentt_1_1forward__apply.html +++ b/structentt_1_1forward__apply.html @@ -3,13 +3,15 @@ - + EnTT: entt::forward_apply< Func > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -110,20 +123,20 @@ Collaboration diagram for entt::forward_apply< Func >:

    Public Member Functions

    template<typename... Args> -constexpr forward_apply (Args &&...args) noexcept(std::is_nothrow_constructible_v< Func, Args... >) +constexpr forward_apply (Args &&...args) noexcept(std::is_nothrow_constructible_v< Func, Args... >)  Constructs a forward-and-apply object.
      -template<typename Type > -constexpr decltype(autooperator() (Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args))) +template<typename Type> +constexpr decltype(auto) operator() (Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))  Forwards and applies the arguments with the underlying function.
      -template<typename Type > -constexpr decltype(autooperator() (Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args))) - Forwards and applies the arguments with the underlying function.
    +template<typename Type> +constexpr decltype(auto) operator() (Type &&args) const noexcept(noexcept(std::apply(std::declval< const Func & >(), args))) + Forwards and applies the arguments with the underlying function.
     

    Detailed Description

    -
    template<typename Func>
    +
    template<typename Func>
    struct entt::forward_apply< Func >

    Utility class to forward-and-apply tuple objects.

    Template Parameters
    @@ -132,7 +145,7 @@ struct entt::forward_apply< Func >

    Utility class to forward-and-ap -

    Definition at line 58 of file tuple.hpp.

    +

    Definition at line 53 of file tuple.hpp.

    Constructor & Destructor Documentation

    ◆ forward_apply()

    @@ -140,7 +153,7 @@ struct entt::forward_apply< Func >

    Utility class to forward-and-ap

    -template<typename Func >
    +template<typename Func>
    template<typename... Args>
    @@ -148,15 +161,15 @@ template<typename... Args> +inlineconstexprnoexcept
    - + - +
    constexpr entt::forward_apply< Func >::forward_apply entt::forward_apply< Func >::forward_apply (Args &&... args)Args &&... args)
    -inlineconstexprnoexcept
    @@ -175,7 +188,7 @@ template<typename... Args>
    -

    Definition at line 65 of file tuple.hpp.

    +

    Definition at line 60 of file tuple.hpp.

    @@ -186,15 +199,15 @@ template<typename... Args>
    -template<typename Func >
    +template<typename Func>
    -template<typename Type >
    +template<typename Type>
    @@ -31,23 +33,33 @@
    - + @@ -202,12 +215,12 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr decltype(auto) entt::forward_apply< Func >::operator() decltype(auto) entt::forward_apply< Func >::operator() ( Type && args) const
    -

    Forwards and applies the arguments with the underlying function.

    +

    Forwards and applies the arguments with the underlying function.

    Template Parameters
    @@ -220,9 +233,9 @@ template<
    Returns
    Return value of the underlying function, if any.
    +
    Returns
    Return value of the underlying function, if any.
    -

    Definition at line 81 of file tuple.hpp.

    +

    Definition at line 76 of file tuple.hpp.

    @@ -232,15 +245,15 @@ template<
    +template<typename Func>
    -template<typename Type >
    +template<typename Type>
    TypeTuple-like type to forward to the underlying function.
    @@ -31,23 +33,33 @@
    - + @@ -248,7 +261,7 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr decltype(auto) entt::forward_apply< Func >::operator() decltype(auto) entt::forward_apply< Func >::operator() ( Type && args)
    @@ -278,7 +291,8 @@ template< + diff --git a/structentt_1_1get__t-members.html b/structentt_1_1get__t-members.html index bb5453dab..929d52e3a 100644 --- a/structentt_1_1get__t-members.html +++ b/structentt_1_1get__t-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + + +
    entt::get_t< Type > Member List
    @@ -83,11 +96,13 @@ $(function() { - + +
    get_t()=defaultentt::get_t< Type >explicit
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    + diff --git a/structentt_1_1get__t.html b/structentt_1_1get__t.html index b3a30acea..171ae903c 100644 --- a/structentt_1_1get__t.html +++ b/structentt_1_1get__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::get_t< Type > Struct Template Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    -
    entt::get_t< Type > Struct Template Referencefinal
    +
    entt::get_t< Type > Struct Template Referencefinal
    @@ -110,7 +123,7 @@ Collaboration diagram for entt::get_t< Type >:

    Public Member Functions

    -constexpr get_t ()=default +constexpr get_t ()=default  Default constructor.
      @@ -124,6 +137,9 @@ Additional Inherited Members + + +
    static constexpr auto size
     Compile-time number of elements in the type list.
     
    static constexpr auto size
     Compile-time number of elements in the type list.
     

    Detailed Description

    template<typename... Type>
    @@ -135,14 +151,15 @@ struct entt::get_t< Type >

    Alias for lists of observed elements. < -

    Definition at line 158 of file fwd.hpp.

    +

    Definition at line 157 of file fwd.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1identity-members.html b/structentt_1_1identity-members.html index 51a8f42f4..82dd4956d 100644 --- a/structentt_1_1identity-members.html +++ b/structentt_1_1identity-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::identity Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1identity.html b/structentt_1_1identity.html index 7c40c41bb..8c1850c0d 100644 --- a/structentt_1_1identity.html +++ b/structentt_1_1identity.html @@ -3,13 +3,15 @@ - + EnTT: entt::identity Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,14 +103,14 @@ $(function() { - +

    Public Types

    using is_transparent = void
    using is_transparent = void
     Indicates that this is a transparent function object.
     
    - - + +

    Public Member Functions

    template<typename Type >
    constexpr Type && operator() (Type &&value) const noexcept
    template<typename Type>
    constexpr Type && operator() (Type &&value) const noexcept
     Returns its argument unchanged.
     
    @@ -113,7 +126,7 @@ Public Member Functions
    @@ -131,13 +144,13 @@ Public Member Functions
    -template<typename Type >
    +template<typename Type>
    @@ -31,23 +33,33 @@
    - + @@ -145,7 +158,7 @@ template< -inlineconstexprnoexcept +inlinenodiscardconstexprnoexcept
    constexpr Type && entt::identity::operator() Type && entt::identity::operator() ( Type && value) const
    @@ -175,7 +188,8 @@ template< +
    diff --git a/structentt_1_1input__iterator__pointer-members.html b/structentt_1_1input__iterator__pointer-members.html index 74ee0cf73..8b1d1190c 100644 --- a/structentt_1_1input__iterator__pointer-members.html +++ b/structentt_1_1input__iterator__pointer-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::input_iterator_pointer< Type > Member List
    @@ -90,7 +103,8 @@ $(function() {
    +
    diff --git a/structentt_1_1input__iterator__pointer.html b/structentt_1_1input__iterator__pointer.html index 1f63c4b11..f4981ae07 100644 --- a/structentt_1_1input__iterator__pointer.html +++ b/structentt_1_1input__iterator__pointer.html @@ -3,13 +3,15 @@ - + EnTT: entt::input_iterator_pointer< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::input_iterator_pointer< Type > Struct Template Referencefinal
    +
    entt::input_iterator_pointer< Type > Struct Template Referencefinal
    @@ -90,30 +103,30 @@ $(function() { - + - + - +

    Public Types

    using value_type = Type
    using value_type = Type
     Value type.
     
    using pointer = Type *
    using pointer = Type *
     Pointer type.
     
    using reference = Type &
    using reference = Type &
     Reference type.
     
    - + - + - +

    Public Member Functions

    constexpr input_iterator_pointer (value_type &&val) noexcept(std::is_nothrow_move_constructible_v< value_type >)
    constexpr input_iterator_pointer (value_type &&val) noexcept(std::is_nothrow_move_constructible_v< value_type >)
     Constructs a proxy object by move.
     
    constexpr pointer operator-> () noexcept
    constexpr pointer operator-> () noexcept
     Access operator for accessing wrapped values.
     
    constexpr reference operator* () noexcept
    constexpr reference operator* () noexcept
     Dereference operator for accessing wrapped values.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::input_iterator_pointer< Type >

    Helper type to use as pointer with input iterators.

    Template Parameters
    @@ -130,10 +143,10 @@ struct entt::input_iterator_pointer< Type >

    Helper type to use as

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::input_iterator_pointer< Type >::pointer = Type *using entt::input_iterator_pointer< Type >::pointer = Type *
    @@ -150,10 +163,10 @@ template<
    +template<typename Type>
    - +
    using entt::input_iterator_pointer< Type >::reference = Type &using entt::input_iterator_pointer< Type >::reference = Type &
    @@ -170,10 +183,10 @@ template<
    +template<typename Type>
    - +
    using entt::input_iterator_pointer< Type >::value_type = Typeusing entt::input_iterator_pointer< Type >::value_type = Type
    @@ -191,13 +204,13 @@ template<
    +template<typename Type>
    @@ -31,23 +33,33 @@
    - + @@ -205,7 +218,7 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr entt::input_iterator_pointer< Type >::input_iterator_pointer entt::input_iterator_pointer< Type >::input_iterator_pointer ( value_type && val)
    @@ -229,21 +242,21 @@ template<
    +template<typename Type>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr reference entt::input_iterator_pointer< Type >::operator* reference entt::input_iterator_pointer< Type >::operator* ())
    -inlineconstexprnoexcept
    @@ -261,21 +274,21 @@ template<
    +template<typename Type>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr pointer entt::input_iterator_pointer< Type >::operator-> pointer entt::input_iterator_pointer< Type >::operator-> ())
    -inlineconstexprnoexcept
    @@ -293,7 +306,8 @@ template< +
    diff --git a/structentt_1_1insertion__sort-members.html b/structentt_1_1insertion__sort-members.html index 997869f24..3dd237ee8 100644 --- a/structentt_1_1insertion__sort-members.html +++ b/structentt_1_1insertion__sort-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::insertion_sort Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1insertion__sort.html b/structentt_1_1insertion__sort.html index 2bc6bb195..9cbb538a0 100644 --- a/structentt_1_1insertion__sort.html +++ b/structentt_1_1insertion__sort.html @@ -3,13 +3,15 @@ - + EnTT: entt::insertion_sort Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,8 +102,8 @@ $(function() { - - + +

    Public Member Functions

    template<typename It , typename Compare = std::less<>>
    void operator() (It first, It last, Compare compare=Compare{}) const
    template<typename It, typename Compare = std::less<>>
    void operator() (It first, It last, Compare compare=Compare{}) const
     Sorts the elements in a range.
     
    @@ -105,30 +118,30 @@ Public Member Functions
    -template<typename It , typename Compare = std::less<>>
    +template<typename It, typename Compare = std::less<>>
    +inline
    - + - + - + - +
    void entt::insertion_sort::operator() void entt::insertion_sort::operator() (It first, It first,
    It last, It last,
    Compare compare = Compare{} ) constCompare compare = Compare{} ) const
    -inline
    @@ -161,7 +174,8 @@ template< +
    diff --git a/structentt_1_1is__applicable.html b/structentt_1_1is__applicable.html index a928230ae..80d027083 100644 --- a/structentt_1_1is__applicable.html +++ b/structentt_1_1is__applicable.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_applicable< typename, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_applicable< typename, typename > Struct Template Reference
    @@ -104,17 +117,18 @@ Collaboration diagram for entt::is_applicable< typename, typename >:
    [legend]

    Detailed Description

    -
    template<typename, typename>
    +
    template<typename, typename>
    struct entt::is_applicable< typename, typename >

    Same as std::is_invocable, but with tuples.

    -

    Definition at line 599 of file type_traits.hpp.

    +

    Definition at line 601 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html index 0728f3e8f..9fe2ba562 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_applicable< Func, Tuple< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_applicable< Func, Tuple< Args... > > Struct Template Reference
    -

    Same as std::is_invocable, but with tuples. +

    Same as std::is_invocable, but with tuples. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_applicable< Func, Tuple< Args... > >
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,14 +113,16 @@ Collaboration diagram for entt::is_applicable< Func, Tuple< Args... > &
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Func, template< typename... > class Tuple, typename... Args>
    -struct entt::is_applicable< Func, Tuple< Args... > >

    Same as std::is_invocable, but with tuples.

    +
    template<typename Func, template< typename... > class Tuple, typename... Args>
    +struct entt::is_applicable< Func, Tuple< Args... > >

    Same as std::is_invocable, but with tuples.

    Template Parameters
    @@ -115,14 +132,15 @@ struct entt::is_applicable< Func, Tuple< Args... > >

    Same as -

    Definition at line 608 of file type_traits.hpp.

    +

    Definition at line 610 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map index 6e4364105..4a5de3630 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 830b42c41..8f9a55d91 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -c810d17d710ead5b25e7fdca881bfdc5 \ No newline at end of file +201fc76f4c7e852e2d843673e783de11 \ No newline at end of file diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png index 7297e367c5d29ef6c8f097fa6e01d6a1d5681e9c..aedd40b5c73ea2d41f55d42c9d82a15981b70de6 100644 GIT binary patch literal 4200 zcmV-u5SQokUB5*jmYCwK-5gic})Ejf?v zdogxMg0CTfV@vWKO@Wk#LI-GjxPLSh2sEBh&OV*vIH8U05FC&1BscXjKw`)X?=jHC zWT-uv=A0LNj$6(??bAPEIkHY#?Ml1*+g*J>GnrUgY4@wW)uZ3bt^^Pf5fKp)5fR0Y zm<~YEcHqE)e$yGqoMp?F?X0}7%|sB24-vWFbOthtMT5Lsym&DdE?j6j28C#HauSCQ z9jdy_3ONfA#T<(U5qZL*K}4RgXb_PnEE*IUBJR%s@bcIo*Wo9pJWO;)RgHM6mfnQYrvss za9%$8jvYH@Izmu~dW-K?h(Jh_W}RqIVwdPBN-0|K)T^m=a~r-IT*_Im56_gWfR<~D=d0vc5Jivyt) zD7Oc$p9grO>#Fv=^43SA#i;x_^`77Cekd=}L19aSd{zD?E8R}wHk%RT%uls0mfu)3 z$aj8p72>eXMmUYdc;WQ=D!Y7s?+fGI6R$f>MCv{#N^{z+#>Bo4dYje8W4x%9&#&B0 zt&Yl8m>&XfY4}<7qw)z7l^ju2ud7hL@0<>3FN2#=>k_$LR_*n>c^zI~FK16E@|+I# zMjz|-wi`|Zly27VrijJf&Bb-8W6HZx~lO(Xr=THEyN`~s@ZsStBNH!hIwiI=(gAV!aa zcwW7AmY-1=rKV&n<9-i@FGa)DJh_{K<7QyaB-7g`^2)cCM%c}4FZ10_*-U>LncluB zPSb=@z^-C#z6^w#{Ui*_OfW4 zp$fcm8kpN*I!SAAbI|)WHSb5B@);E`&kgf6gr#QDcI#rF|QR*H=k8BEXz8gs=K55n;Jp7pm_eG1HZZa%EyoY?(siqd-};stQTK0 zov9vGJ!m>ZocR3)Z^g5EXBCZWuDRwQfLQ#@pWg=lL+1mSoYFb-{&VInU6$Z(YZ{;2 zvRYm+osFWa6$(W;&YqOnvONi| z{mjjF02ctbWBy$HFgvDK8;nL22`m~FF8dz#D==Ahm*Ca?^k%j2Xr`b$HjL>-hT;(! z$D&bTXh>{JupPkZ^7~cL20)v3wRp5&Gr%XqQ6{o*BznZ9qOkRJiz+1#&ADtO9KPkZ5ay{}) zSlPlfF)<8 zCa_ zGL0{r&XaVbE9D8>!rKA-6qU1DuPKV+TO)mPG{k5vg+-%DTUW}DM6nLQE!l$ph3Py= zH@Z@uJKx4q1$I^adNqaE7SGKH5{rfpMtbEND%hlof5{efndv-9x4BQIEx`*=%&0)2 zu+J_O{I=~B9yAy)@i=?p7gb3YaGwC(0Io{vwJ1@L&FcmQa!}l)z%+pSEI~U2YAfy? z?UA(Uj7i3phF?VV#1t|Bo>5@$`U(9V(~*)WJ+ALk;A^7Tluk3>0b^-3%FsAP|ohQzY zF2U^(tPmU5@ycTJ*gXl7s$}-#eki)M4OfjWmtUEV6gQc?eh9!ls>qJ^O3rj1VoM`f zBHG!3G=S%12H&`4LN72KDNfSkx&**hRou>k5gjZV0sCr~yn-UuC~)!gGHT_%2zCQFaN-0$YdR0Th6iv6a;xOmV&QrKy+@YdbEfk|-P)aco)obM!0}WH@8`62 zw6JJ|B)3u?fnX4d&t&p?lj%H>r7H90VH*UCQZ`m^Ss}+wN1}7FXoM)&E!&~^3V_^( zf?j1hPZXsK_#A-i6TL$k4HgzU2K;}Z%zY$+bhj_IYQ^F&EHuQv$rStvd_ z+9MOD^H6o1ay1~mN9Rf>4hk@BoyMPTSuOu-I+JOcF?~BMd{=-iBR%qQ(|M>iwloYF zy;e?$V6_5ooN2>$sJ3+RUcXP@01FQRc;wQ~nm>n05y7Hi$Vj(53&9N{Sd+=)Gp6&H zvVKD6q*C}MfRn{e^bd7Ot#9O_h+xq$DAz6D7T~WT*p$v|zv(=oQCVaOEpy{gy*;IBrzW!!Wga<8Qa;G!gx*98E+r@*oEZ7fUj&k1fA z)5VsBg8+8tdL&~y4|&6uMnvR#*k(g4NZ2wT|L}V;T{a9@k+JydQ$4xo-KH={(KK=JhrO{uzSz=DKCC z={(dpwlpHD?IL^xz>`qy-7uyXna?O6bnZDv854V>mJq%+h_270MAWL zVR;EbpY09^7;|edE6SB&^7=&0d!hzxIW3}owOPjjTji|kv$6h z9e}T-3)*Wsj~hp(ai<8Ds)ZXymdo>|^N@cyrV$salFeg>3i_-fu8#7x8ri)5r2?B3 zxN)>ccACyZ{$fibE<|)@4zdvZ(oW%_sQ$oorl5bOz#UNhJqt!Mv853+>-Xs!QYkzJ z;1`#5qAyC{KanlyB2_%5if@hfpr1d)oJ?$K#LV5RHhKAHaC%z6~0c>2$?>tR57LAx1?U4rn z{38UL(|PSOndQh;_@V&IZNYUTeR9-f77AYE$22x>+}L_wgXfZ3mgtI2AD2{nr;L5- zpG;)1-}=6{;SX2-tvvhP&GLhL9x;(24lK($GCVwd&~y$zM80SY3=FVu>?G9zRfX86 z&1_#R=)yNco`1^B_G3a-cW>Rgb*P(V7Gc4H1*T(=lS{8OoglIfA3lti zUw+wi4Bv1}gNQs~(I6sESTu;p6BZ33@`OdhCxe5=&#|hiJeMCCoz@Z6eL((V(Kw^> zfcN?a7#<$>Gfp7lkddN~MT3YuNo3I&92`9RU*-Mf%d6dA?f;ekc6+;82EVh{Th?gC zdimYFwnp~>MO!RR?($-AaPXXFxYO;@zlVp1&$++ycIm!yPEGxK8T`!dW|`M*HIu{b zYoYi`WJ|+|i38W|HtRjkX?e4+%c(&6y)BBj#I-a4^P~8smP+|;w@ha*33{f5;wzCw zBMP5{esxbw@GD0Y{to27#CK0jyzzqiln(M738w*1Kd{x29EodbG}|?3ba2p*4CT+O zTt~I#ZkKt@STBd0*VfG6fub!I->1P#K^D|hs9)RgqS@^PRovX3ZtnJZe&uoddc8hA$r4vIyk3LR zs+?wxyzD=xE=D8!Kdft38f}g8m`Y&L0NA8-!_CQJUYqdcni&TOvU|c}(Y!Ue3qAwdkN#dVM_uDRXfrSU{fib8jh8rKrtlPF5^ zCu=?YR^k>fC*KYYN<`R3OmIb}I_=pvk4(;?YxG(t-}P66d(Pa)(t)zIe?u zoGA@B@ogWL(;p`L*4u3H@DpeP}+Kofumtz^~7_Abp+v{ zM}VXuNj7`uZsvA>4xqfCnOU83L$?lO0$@5H6*r|%h2Ve8^F*OqM@Nsr&u( zGQLWr8vEEpihY!lSs2?t$mNsH$>IZ5mo_K8j`X_Y0t&&KpK{o%de?a|Zf%(S@Jw&a z8?{$Yup7CQH(W8K?)ubH1bv>2d|RMXU{z<16w4lvGFZ2E)ZY_G4n`b^T(aP;l!zn@ z(j^rj)a}`I1v&eGJoH{V2pU#AP0IVtyBOA?00?OoTcw_~`-*n+*Ggpj(<5>*77h)% zYJQ=QEa>q$;u;j36$$xTmiZ(E7Dt;~=Q7;^C)2yJh(_10#ed3`@*|gKltn19MGU2N zc)y>7JR)dAl+-(p+21?PlW~L_g1%tjP$MWBmPnK6hJNudTCR8;UzBoT04}MYuYmX{}OFB1=a@)^vjMaUi5lv~!$uEb7rzmuc4PekItd8u1IDF;DM))qe* zY6wZ9#7}{hP8{ce<21&LWcu$a!2rN`KGw$5refT-66sEU++!XGc^e1|*bE}t%zw4b zifRyt-b_h<+)tTPOQf%ts^7PnqBqp|4WAcBbyu`EY!Y2{#=#J0?4+PFl(?kGFFps6 z;%{MR20^b0XM9&5o{SCy@XlXrw4OGZsJ>xnWSwoEvW7xLO-3Zpk?`_y+wu!#yOU6% z^LmIB-y~<7ALw+Gmji1x@bl{czu?DX7MY^8OA!pINTWj=# z0A>m(AmJSo>>zot<t;DCXBV9T$*HLkgxc7ygxYhXgM)+oIqz5sM|zMWeN3r)4_}>cne<4W>PrTo z<{1uNs~>s_w}nw_pmt_0EiJX`OdB&{sqM_YtP|9I)Sm;)c8S3gS3TNY{&7vl|G1)>7idW5%H~Loa>UZWXlC-=4z$Ky z=3Z~a?pxL}=2>*w!~kjN{-_JH8>}vqzY%$H73G9%!dLg_M`j>Z?Td$T>|A^QD*3=* z=Izf*Z)e=HnzCg6IrDDfwV%V*ReNKzW2mMes(J}XR`_#Po*Io z1Hp+IpeDVP(wnODRT`r3x+13iN(I={8ZymFDtdKtc(J&q18t>kiEGU+FZC8QHuAS| zX5qWu{-rw!#EpKLoy8aY9QGKFG=v zm_hoJ^MQ_ISXDhgDDPX`!Ey2Ep7rv<9!?|c*KL<6&x8pb7=tGd$iYF(=AqjiTs%XW z*X+&Kl=9vPnulI)sT(O(4#m-%1y_uG7sg2j4M#rJ7+Z7d~F>| z;Z*0D}0wv$YL_7*%X^+m3|epMKSRqxE~ z9u1FkiY9IhVG!#*8d!Tf?vh5Ja$f(8mxm!TQZM|HwPlsbXPPMdAwOL7`4L}wbj&IR z@8eE96wr|_*vO@DWI@U z)K;RAt{+5;s=v3y%b`}n@?r3@b72{fmCk$zI9cnQ|FKUf?Zro*CBrs!ajN{4*2)0^ M{=wM$m`Lis06&}J6aWAK diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map index 6e4364105..4a5de3630 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 830b42c41..8f9a55d91 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -c810d17d710ead5b25e7fdca881bfdc5 \ No newline at end of file +201fc76f4c7e852e2d843673e783de11 \ No newline at end of file diff --git a/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__applicable_3_01Func_00_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png index 7297e367c5d29ef6c8f097fa6e01d6a1d5681e9c..aedd40b5c73ea2d41f55d42c9d82a15981b70de6 100644 GIT binary patch literal 4200 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 M{=wM$m`Lis06&}J6aWAK diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html index dbfe7ad29..92f1af418 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_applicable< Func, const Tuple< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    FuncA valid function type.
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_applicable< Func, const Tuple< Args... > > Struct Template Reference
    -

    Same as std::is_invocable, but with tuples. +

    Same as std::is_invocable, but with tuples. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_applicable< Func, const Tuple< Args... &g
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,14 +113,16 @@ Collaboration diagram for entt::is_applicable< Func, const Tuple< Args...
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Func, template< typename... > class Tuple, typename... Args>
    -struct entt::is_applicable< Func, const Tuple< Args... > >

    Same as std::is_invocable, but with tuples.

    +
    template<typename Func, template< typename... > class Tuple, typename... Args>
    +struct entt::is_applicable< Func, const Tuple< Args... > >

    Same as std::is_invocable, but with tuples.

    Template Parameters
    @@ -115,14 +132,15 @@ struct entt::is_applicable< Func, const Tuple< Args... > >

    S -

    Definition at line 617 of file type_traits.hpp.

    +

    Definition at line 619 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map index 77eb13808..1f505646b 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 4cae6b40f..dbf31baa7 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -863b60a12b0cfd3264ec395c996741cb \ No newline at end of file +dd9ce0885019b88f1dac0026257db33d \ No newline at end of file diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png index 6644c28bc3be55883d798668ff822483c3e9395d..974198f65497403521f65a082660e78acc29d1bc 100644 GIT binary patch literal 4325 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 TY?xwm00000NkvXXu0mjf`;}0X literal 2171 zcmb_eXIB#n5)C3CYD5r%AmXFV(6XRfK4m>M*761SMEiFu7CzyWX zug`FwL|Kn#S|`BmWo>Q(IR4Xe>I+i=fHUfrCbtmJ-mJWBNCKH&Zfz*%5sZ#B(+}4X z)Y6eQvx~F#J>Wde#i_9;{>ZZ_`%AWm=jMFzvU>07K&~h=FG#x#=oNV~>GVtKj2yAG zL@wo_k&(A=hlmdrUgI0GX9KG0%F8E)e${P${|?6UT!fsFh)mACJP}^yKc?qj;+CWk zy;vY08+_%;l`0}re50fnS?3>L)9(&y6Tz+o0Ui>WgiP9f6iRAKFy$tGb(|5w!}qCO zn4g{;1A+5DMk`8Qur+OV#44gbIqQcrTZ*9quf+Y3OVXO@vk4#iY40LF8T;9rPOF=# z36CLK$j)k9*UHU^je$Jy5{WJkj6B%|{pD?z@h zgkI9h%r5GE6uHz=%~~m{FG?(}+`2hm)L3}IV{{Gdv$N?(o&_$tIQRT*t_iTEi)Ftl z-6V~ZSWp95$6y+ZaNxP)!cif!;_XQ*O-tPf&h8c9y=tqV?l)IZflvsBsm#MJ9o2Tb z)pqz<@rz_|&y-KE);@Kq0V8WI))UKs+7!`%OR)UjCw)WgER}xJKQlQ&m$WI}(MpkQ zB2cSE-*Owl#I#qWy|b^C`{_YRQRZgBc0?tm&wc%c)ZqC^y>2k_Ew7N3$s?FTkP1^u zXB5atJJ+w&W;l2%W@k#KgQRi`^`y?<#DCYxzYm*I(?Ryfz<$pww2FGdmpr28*6h_y ziETtAAfl#{UPAvj5p!)#p>U;dq{*i4oLGN9sPrX0CDaRrzrvz+8+meuE&mnk1_zg{E%KIGu+{OUy6 z7qSwSj`pf?y~l&AtSw`AYG#3dG#G{^r&77zdExQGN#cfj@3T?=k(d8AAcuwjSlH|p z5T&wGx)y2B8AA&n+8&U%{#G0V0<#kg=#sbXHx&9AL#EDe?iQ8p9kJFahqe<-M*IG{ znB@NPpyIL?)kCn~QZS!1|L%m==I(QM-PK{$(0j_D{q2FOcA}GOZoYLy{?lw!?to}s zQTFYA7{g#@`n-JX zRq9xB{X|;cNEoB+cr#(Y}n2@Z+A`Y5?7LI5vGr5!7`7pNUIF6#eh@t z?NVb>?B}4x)T6>y{=lvD zrU|rzH;^c&05fqZ6xGZ6qvu;Gu17b>OtM54VQ*1iI-}5iUp9R&PvxN5{f60Z6o?dr7WMrp6!dR zS})eYY*%lOIE=ufC_U8>a`Qf&%o`-ZUg&~TwS~HjOb{X)Cavc~i_jDS`c#>f^Q&tq z#I9(iRhNveE^(~<#W-afCjr#+KArMnaja;CGq3h6nL40AMzE}f;T8#hkEE&r(OI|V z;#pw?--=@|NU6;*0+1jWVM#I);Q4Du?Usy*cs$ - - - + + + + + diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 4cae6b40f..dbf31baa7 100644 --- a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -863b60a12b0cfd3264ec395c996741cb \ No newline at end of file +dd9ce0885019b88f1dac0026257db33d \ No newline at end of file diff --git a/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__applicable_3_01Func_00_01const_01Tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png index 6644c28bc3be55883d798668ff822483c3e9395d..974198f65497403521f65a082660e78acc29d1bc 100644 GIT binary patch literal 4325 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 TY?xwm00000NkvXXu0mjf`;}0X literal 2171 zcmb_eXIB#n5)C3CYD5r%AmXFV(6XRfK4m>M*761SMEiFu7CzyWX zug`FwL|Kn#S|`BmWo>Q(IR4Xe>I+i=fHUfrCbtmJ-mJWBNCKH&Zfz*%5sZ#B(+}4X z)Y6eQvx~F#J>Wde#i_9;{>ZZ_`%AWm=jMFzvU>07K&~h=FG#x#=oNV~>GVtKj2yAG zL@wo_k&(A=hlmdrUgI0GX9KG0%F8E)e${P${|?6UT!fsFh)mACJP}^yKc?qj;+CWk zy;vY08+_%;l`0}re50fnS?3>L)9(&y6Tz+o0Ui>WgiP9f6iRAKFy$tGb(|5w!}qCO zn4g{;1A+5DMk`8Qur+OV#44gbIqQcrTZ*9quf+Y3OVXO@vk4#iY40LF8T;9rPOF=# z36CLK$j)k9*UHU^je$Jy5{WJkj6B%|{pD?z@h zgkI9h%r5GE6uHz=%~~m{FG?(}+`2hm)L3}IV{{Gdv$N?(o&_$tIQRT*t_iTEi)Ftl z-6V~ZSWp95$6y+ZaNxP)!cif!;_XQ*O-tPf&h8c9y=tqV?l)IZflvsBsm#MJ9o2Tb z)pqz<@rz_|&y-KE);@Kq0V8WI))UKs+7!`%OR)UjCw)WgER}xJKQlQ&m$WI}(MpkQ zB2cSE-*Owl#I#qWy|b^C`{_YRQRZgBc0?tm&wc%c)ZqC^y>2k_Ew7N3$s?FTkP1^u zXB5atJJ+w&W;l2%W@k#KgQRi`^`y?<#DCYxzYm*I(?Ryfz<$pww2FGdmpr28*6h_y ziETtAAfl#{UPAvj5p!)#p>U;dq{*i4oLGN9sPrX0CDaRrzrvz+8+meuE&mnk1_zg{E%KIGu+{OUy6 z7qSwSj`pf?y~l&AtSw`AYG#3dG#G{^r&77zdExQGN#cfj@3T?=k(d8AAcuwjSlH|p z5T&wGx)y2B8AA&n+8&U%{#G0V0<#kg=#sbXHx&9AL#EDe?iQ8p9kJFahqe<-M*IG{ znB@NPpyIL?)kCn~QZS!1|L%m==I(QM-PK{$(0j_D{q2FOcA}GOZoYLy{?lw!?to}s zQTFYA7{g#@`n-JX zRq9xB{X|;cNEoB+cr#(Y}n2@Z+A`Y5?7LI5vGr5!7`7pNUIF6#eh@t z?NVb>?B}4x)T6>y{=lvD zrU|rzH;^c&05fqZ6xGZ6qvu;Gu17b>OtM54VQ*1iI-}5iUp9R&PvxN5{f60Z6o?dr7WMrp6!dR zS})eYY*%lOIE=ufC_U8>a`Qf&%o`-ZUg&~TwS~HjOb{X)Cavc~i_jDS`c#>f^Q&tq z#I9(iRhNveE^(~<#W-afCjr#+KArMnaja;CGq3h6nL40AMzE}f;T8#hkEE&r(OI|V z;#pw?--=@|NU6;*0+1jWVM#I);Q4Du?Usy*cs$ - + EnTT: entt::is_applicable_r< typename, typename, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    FuncA valid function type.
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_applicable_r< typename, typename, typename > Struct Template Reference
    @@ -104,17 +117,18 @@ Collaboration diagram for entt::is_applicable_r< typename, typename, typename
    [legend]

    Detailed Description

    -
    template<typename, typename, typename>
    +
    template<typename, typename, typename>
    struct entt::is_applicable_r< typename, typename, typename >

    Same as std::is_invocable_r, but with tuples for arguments.

    -

    Definition at line 629 of file type_traits.hpp.

    +

    Definition at line 631 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html index 4e9b0a1f7..946a23734 100644 --- a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_applicable_r< Ret, Func, std::tuple< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_applicable_r< Ret, Func, std::tuple< Args... > > Struct Template Reference
    -

    Same as std::is_invocable_r, but with tuples for arguments. +

    Same as std::is_invocable_r, but with tuples for arguments. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_applicable_r< Ret, Func, std::tuple< Args
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,14 +113,16 @@ Collaboration diagram for entt::is_applicable_r< Ret, Func, std::tuple< Ar
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Ret, typename Func, typename... Args>
    -struct entt::is_applicable_r< Ret, Func, std::tuple< Args... > >

    Same as std::is_invocable_r, but with tuples for arguments.

    +
    template<typename Ret, typename Func, typename... Args>
    +struct entt::is_applicable_r< Ret, Func, std::tuple< Args... > >

    Same as std::is_invocable_r, but with tuples for arguments.

    Template Parameters
    @@ -115,14 +132,15 @@ struct entt::is_applicable_r< Ret, Func, std::tuple< Args... > > -

    Definition at line 639 of file type_traits.hpp.

    +

    Definition at line 641 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map index b99df14ce..b72615b03 100644 --- a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 index ffe4be554..e2fdeab25 100644 --- a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -5bff51bd5a8c607ab5669ac15932aeca \ No newline at end of file +4267daa9173508dd8a0a8eec5ede6e7d \ No newline at end of file diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png index bc6bbd2ca835f1ecafad01e8e9a85c9ca877b8cc..25481551bfd82f91922967ca18afe52ece278f1a 100644 GIT binary patch literal 4499 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 VqicV<(|%b1M*8M@m3LjE{{tg>%0U1C literal 2319 zcmb_e`#;kU7oU=R6k;yRB~}=@ZYZRsp<$s+NK{NUv$-~t?AyhJ6eS|kT5Qr#GWS>w zNyuf)om?v;l}pScU(fTrp4ayucwXmq&ijY+%Xz)d`@GLP@q`OnT1rI<1OiDrI@q~w zB4aZjNlI*1bd-1GCP?^W&~~7Wf5+3>{0AVAWP_vKQTM3Fb2%j`O7@WV^i>(%odD38 z{9Hl7?10X(j&XU_4UpJ7n>!=Jo_#-HKVV*cF;(nY&2I6CZE+GfUb>IJpZ^vDPtNfT z$}%~`;BxcG$n0$EY-^qA+F|Y_Z|?i-C)1ktPc@|r-^F&JB%!o>_Goj@p&H73nn3i1 z20{F#^Po9*YHCVDC`>ln5m?l&&kUAZ3`$;|^m z;zbm*n@ty0i@0sCS-2IW3iTEiKd+rrN7BgtbC0AWU5I#>S>X9{DPqlap z1*D#Nau%aY$%@n@-7`YIQ(R6XM)Y*#*D}6b)J>(~dL^2y;fyB4oaeB$&C0gId4Ab7 zLhK~bM$^sJi;M3GCuq&g)G+Q_0xkPm2i0Ddbk`q4@TSpE%-je5H4tc zp**(LR7&=pMh{9>;j7M0zA#K8HUx}C9XG}*=XCcXssXlpE`(C%8tpY2J@9a_tCpyO z6Phqn%hFSrOqU*PJ_5%H^`Xlpkga%;bL0!9){Jet0kn@ zi1ejna<8wcYOrPVmeQo?z}2TW*q}w9v7wLZR3~rOf)3h^Lek7Zu{Yao^v-L5eNqMP z`_23`7c7fGQ2RO!e^cxZgn&D_Dz<&HFCz!tQ91aF^&4JPpIB_RyR&RR#F8pV{G@Hz~Vtt#)Knlpk?-jZ3cRANkOulz|W|i zKUBdQW(Ru2kEnYw;agu7U*8S_EnV~YpkX2Q`P*le=JB6XzD3+hwy~2?clRyaUKwYH ze^&9|L(jUGU<;NH!=wK1&53n1!qd}pwPJsaciS_Q+LI=xzhMKD7<>haF zkD30XQk%n@dV^i^v4Oy`nQDJLM}1#!M2FTH@B!DS^FU79Mfj8!L;SAoy&|A_+#~_W z=YM0Ps3DLyJn;k4aZYBm09Z`^b)_A2xpJ4X=A14y5)g z2F@uKpu19c`t#JjcYBR_-Sn~wuawb|kZqDzMw~KE{iU8m0?Efdj&7Vh>^FJ>B6_vQ z)|Sehh94jFtym?@c8ztFBYUCdA1U!=W#(<}Mm66eRIbRh2?RJLb@FN<#Jc}KfxEQKObxfkWNUR<*Wg}y0KHC;8Lywj_kb`LJeQhR)?l62P0 z0}_~h8qSQb+Vj%o>&_EjXH(`fmo8w}vd9Ai@BoPNLBCP8gM9VuU*fFjqJ1aPMk!X~ zI)xL5Mh6ToVZN&ATebr=sp){2nv^mUR%Y1nFv>6HgE?*>orrE)`jVBI)}b%L8!!(0 z2K0gt09R5jiIB{>C^)xPvNkZr{MPp%K5SK53R|Tz3HcP>-7SHwa=5Q0-K5QOntHB} zc7{6=cqMde`R$uLcloKKHm=wRIU759ClkO_z3TbEQK;2+i*fCXFM+gFs8^MpX`r#p za*=^2+SaQ-#<3F10*Qni7A->b>cbMJ*}6Jv@qb;oBM=@{AhTvOO>hpGK~=>;wY)oX9vjr_u|%zLQhs%APM zZlxq^>GEjWzOAX8=`EX|>VFS?^HjiQCjI^W?@BMV`v*aH+^zu11Qiqt1&fF7^Futc kP8HZ}x`|z=kK^ZJ4L@`x-$Pv4bT}YKdl$Q6)cKo#12U~!7ytkO diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map index b99df14ce..b72615b03 100644 --- a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index ffe4be554..e2fdeab25 100644 --- a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -5bff51bd5a8c607ab5669ac15932aeca \ No newline at end of file +4267daa9173508dd8a0a8eec5ede6e7d \ No newline at end of file diff --git a/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__applicable__r_3_01Ret_00_01Func_00_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png index bc6bbd2ca835f1ecafad01e8e9a85c9ca877b8cc..25481551bfd82f91922967ca18afe52ece278f1a 100644 GIT binary patch literal 4499 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 VqicV<(|%b1M*8M@m3LjE{{tg>%0U1C literal 2319 zcmb_e`#;kU7oU=R6k;yRB~}=@ZYZRsp<$s+NK{NUv$-~t?AyhJ6eS|kT5Qr#GWS>w zNyuf)om?v;l}pScU(fTrp4ayucwXmq&ijY+%Xz)d`@GLP@q`OnT1rI<1OiDrI@q~w zB4aZjNlI*1bd-1GCP?^W&~~7Wf5+3>{0AVAWP_vKQTM3Fb2%j`O7@WV^i>(%odD38 z{9Hl7?10X(j&XU_4UpJ7n>!=Jo_#-HKVV*cF;(nY&2I6CZE+GfUb>IJpZ^vDPtNfT z$}%~`;BxcG$n0$EY-^qA+F|Y_Z|?i-C)1ktPc@|r-^F&JB%!o>_Goj@p&H73nn3i1 z20{F#^Po9*YHCVDC`>ln5m?l&&kUAZ3`$;|^m z;zbm*n@ty0i@0sCS-2IW3iTEiKd+rrN7BgtbC0AWU5I#>S>X9{DPqlap z1*D#Nau%aY$%@n@-7`YIQ(R6XM)Y*#*D}6b)J>(~dL^2y;fyB4oaeB$&C0gId4Ab7 zLhK~bM$^sJi;M3GCuq&g)G+Q_0xkPm2i0Ddbk`q4@TSpE%-je5H4tc zp**(LR7&=pMh{9>;j7M0zA#K8HUx}C9XG}*=XCcXssXlpE`(C%8tpY2J@9a_tCpyO z6Phqn%hFSrOqU*PJ_5%H^`Xlpkga%;bL0!9){Jet0kn@ zi1ejna<8wcYOrPVmeQo?z}2TW*q}w9v7wLZR3~rOf)3h^Lek7Zu{Yao^v-L5eNqMP z`_23`7c7fGQ2RO!e^cxZgn&D_Dz<&HFCz!tQ91aF^&4JPpIB_RyR&RR#F8pV{G@Hz~Vtt#)Knlpk?-jZ3cRANkOulz|W|i zKUBdQW(Ru2kEnYw;agu7U*8S_EnV~YpkX2Q`P*le=JB6XzD3+hwy~2?clRyaUKwYH ze^&9|L(jUGU<;NH!=wK1&53n1!qd}pwPJsaciS_Q+LI=xzhMKD7<>haF zkD30XQk%n@dV^i^v4Oy`nQDJLM}1#!M2FTH@B!DS^FU79Mfj8!L;SAoy&|A_+#~_W z=YM0Ps3DLyJn;k4aZYBm09Z`^b)_A2xpJ4X=A14y5)g z2F@uKpu19c`t#JjcYBR_-Sn~wuawb|kZqDzMw~KE{iU8m0?Efdj&7Vh>^FJ>B6_vQ z)|Sehh94jFtym?@c8ztFBYUCdA1U!=W#(<}Mm66eRIbRh2?RJLb@FN<#Jc}KfxEQKObxfkWNUR<*Wg}y0KHC;8Lywj_kb`LJeQhR)?l62P0 z0}_~h8qSQb+Vj%o>&_EjXH(`fmo8w}vd9Ai@BoPNLBCP8gM9VuU*fFjqJ1aPMk!X~ zI)xL5Mh6ToVZN&ATebr=sp){2nv^mUR%Y1nFv>6HgE?*>orrE)`jVBI)}b%L8!!(0 z2K0gt09R5jiIB{>C^)xPvNkZr{MPp%K5SK53R|Tz3HcP>-7SHwa=5Q0-K5QOntHB} zc7{6=cqMde`R$uLcloKKHm=wRIU759ClkO_z3TbEQK;2+i*fCXFM+gFs8^MpX`r#p za*=^2+SaQ-#<3F10*Qni7A->b>cbMJ*}6Jv@qb;oBM=@{AhTvOO>hpGK~=>;wY)oX9vjr_u|%zLQhs%APM zZlxq^>GEjWzOAX8=`EX|>VFS?^HjiQCjI^W?@BMV`v*aH+^zu11Qiqt1&fF7^Futc kP8HZ}x`|z=kK^ZJ4L@`x-$Pv4bT}YKdl$Q6)cKo#12U~!7ytkO diff --git a/structentt_1_1is__complete.html b/structentt_1_1is__complete.html index 4a0e5d8e3..0c67f2960 100644 --- a/structentt_1_1is__complete.html +++ b/structentt_1_1is__complete.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_complete< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    RetThe type to which the return type of the function should be convertible.
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_complete< Type, typename > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::is_complete< Type, typename >:
    [legend]

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::is_complete< Type, typename >

    Provides the member constant value to true if a given type is complete, false otherwise.

    Template Parameters
    @@ -113,14 +126,15 @@ struct entt::is_complete< Type, typename >

    Provides the member con -

    Definition at line 657 of file type_traits.hpp.

    +

    Definition at line 659 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html index 18071af6f..91486708a 100644 --- a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html +++ b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_complete< Type, std::void_t< decltype(sizeof(Type))> > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_complete< Type, std::void_t< decltype(sizeof(Type))> > Struct Template Reference
    -

    Provides the member constant value to true if a given type is complete, false otherwise. +

    Provides the member constant value to true if a given type is complete, false otherwise. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_complete< Type, std::void_t< decltype(siz
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,29 +113,32 @@ Collaboration diagram for entt::is_complete< Type, std::void_t< decltype(s
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::is_complete< Type, std::void_t< decltype(sizeof(Type))> >

    Provides the member constant value to true if a given type is complete, false otherwise.

    +
    template<typename Type>
    +struct entt::is_complete< Type, std::void_t< decltype(sizeof(Type))> >

    Provides the member constant value to true if a given type is complete, false otherwise.

    Template Parameters
    - +
    TypeThe type to test.
    TypeThe type to test.
    -

    Definition at line 661 of file type_traits.hpp.

    +

    Definition at line 663 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map index a755a6fa7..07a761833 100644 --- a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map +++ b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 index 1e05f75cb..299d4ad65 100644 --- a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 @@ -1 +1 @@ -16503a3b3edc71a269c352ea9adc070f \ No newline at end of file +425ff3ae5f0edd3d59ff23c5273ba0a1 \ No newline at end of file diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.png b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.png index 104c4c50bf59d2468f2d4ba51ac378d6fbd01a78..ac3eeb5a29c823135e651ea269929557d01e9710 100644 GIT binary patch literal 3589 zcmYjU2{0R4_fKnW&{|5YZ7i=;?dy|@HnHy|mR4)ugP_D(YAHogkMHEqY29ji~2eXMN+$@So7qb=WFA3lBG%b_6i~xi4 zt%7d@*{YgB7|v~acfph(MG z0nDE8?}STch4g*@{(S%wnF>^fhsupWnnKqm?XzXi`asSbCe{9Bk+to|>#$W)c?gTD zqIkLV+ybajwCg!Kj6C?iyc=DGewQtiu;~{mJ373#%))` zwVz(P+CMXsNAtEDc3_4X2`Ur7g2{Of+?={*^6bfF^Ax?t;%XMu)h0`d3JWxgCU7aW z07B-_*K_ew3i0>UsMbxfm=6#Sc>8eSoFM1I=iWY;M#GB^AVm(`@ zgzWB9R1!j;d=N7{y?5L8K6|yak^6*l%+yHwj;$m$Bu1qW33I8D(9GOC-o`KMN)L&xsQ>T!BK7c}SL zc?L~*RA@ELGC}Uu+u00!Yp`tDSIH|qmv)b%5 z*D4=9wPueiY4(Em$w0FZexh`mNq&I1|F4wl56|Tu9O!lbD5bj+Gv021tbY|X8Cduf z{>pRlkglGC-v`AWQdUIm zyC;hYE`n}Im=fpz9L*_D-FqgRuf=vatt{pCxV}SnhIq%3N4sbQD}^n<8K3K8zxwH#=$m#@{%JBYgx zjs206fH9Gb;OjgB+jPxb>K=~Qh|(pfxoQ+8Y9EZM{tWPX!`2A^y3DK97hbWiF;~w< zOoQF>j~vT=m4M80$rM|2i0Q^b*I8%E!Umyif zbLp-FGywoi`rJT3yDc=~J#>7xa;lmS!WN0bj~4j%n}Q!@`>jc0fi4jvxocGpNl{>2 z?Q*yMwhH@M@Ee7=pj5}cE%lzZhL9`{lisg|>YnXy3H|#SW7q`m>UVBr6}a-%gY@SoA9J1R$G6QlJY*x1#pf?^g!A_xXwBA8iBxM3PB95cOcKFYgZ~3_F>a;{bCZx~wVN{!znwhGv`R??nJnWmf=7 z{;URo2O1L=bvRi$Lr%06<8^K^O}H}U05aeCd#SpHmKOCR{;pJaLxLO}>cz;#`Bt8B zu1jU{8lgtICQswTsF@NvJ)Q63+)tzvFGRpIRAP7#@3udBs$KX@Jgnm3x#RkoU3owL zXCGnQwbmi&C_%R6X5 zv1h0NtZr}1%ebiuo_1S;!N;{(axV9_Ox)AvrVs7_r3s6U`m~n9xDHGqr42z|8y?BIX^*AfvM~F6lL6vaM&~?;klkW&uk&;b+6+8Yn~GB5Q01>| zV0rSf+IC)>qEGEGF|qHZm@{f8RaZF(MrRjLD(ITyBVJ9?;~ zsXv#<{7Ws-_a_0mB@eA8&eb99U@Q#hT&CmVy)U(uF5{gbYiWSQs!xTyrN|+)# z?sQJ~PW%MpGI@sTu)+O8EhX{ebDdl}-?9(65d-Nf(@Qchj~pcY0ZZhX%_c*_m7J_X zh`3b8zSkzlNh*>*I>lL!7fTJqSBGNKyCk2m? zs5?R*urG4;j|sTjo&lo}gko*57J7K)dWXWxBOsuIZM*aK&7qU;FS3duo;%sjb^#Yku*+^k3?a5z4830`77zoC;ZG#Idv$ zG7{R&>4wZ0bcl5BSn< z3;Nz3C(j3ZHCkpswv@C&tH1dB;@;oIiqs}W8uLsty&q9s;RADaF41t3trqy~@u@BH zZoNx9QfPRI7|Vq`S07Y{yuM|&#mWSBq*wG(D3>o@)p_I4Z|vi}?$(gfIIeS_zzG|a z%SLb{xTfG)x|Dh;|NRWniF^C|)qhW@T@y`IDwxlw&X!^|w#N!I2d*3X^`6X15OD&N zy6u-I``8f&`}@DoN6vcC_nw1!FJb}Ry0CD(+|~0!CV;|AbQKXy1{kLsz<~SKCf1%=UECEO*FTxupJg{ zFsnG6YmvWtJIaeL=!%@ux?iLD+L_$t5C6jqiF(%(ZWJ zi9DLa>sBB925h~psUp`kYn|qV`q+nZj*3Z`2_iX=9 zywdhd;ntdgW}6k}BBmuE#tw&0%f(lv3XBdJ-L7jJemUY*`Fev{Uew2lZyKnDAI{do zCx0jLF?eJqHf@DIt&#SXcfC?k5o}R7zJ!iesN?HDpul5OsL=(~IT2rEhthnXCh5U;W&eDOD7^hT?( z`&0%EpE$8ruFu6s%S{{(@aj%OetG1^qwYA^4f5h{RV7$}YW}L{^*J#wg^0boI@Vq# zZX$FI)0+HYDV#eN3V-oQVr{L^c(2}fk1C66HHh3bp=>rL1VahVPAi~(gA2jf`8MBB zi1*zE3rG6dbfCy|!+<`6SIuaZu$f-Ln%nK>$6&=Rm=NjW8=r4mkFlN+o0UCU+4$T9 zuvBIq$rzak%FZL>mlxLSNndmnA^Vf0a`Qoe$ITOgom57D`ybT5ibEVHz}z!|+BUAR z?m9edK?)^sr{VF}r+B@}ity6X(#l#|c!%VF71IApr7X|iYz4E(L25u}AVb#yjP)(_ JYT+&k{|7s=-zES6 literal 2035 zcmcIl{WlYe8(&{6*XvOCvWiPyRx&Z8P}j@kZCRO!D=#UQmo{(FGGVi95m_R(CTuLp z!ASGge5rJk*I}0ECRP|qXd_?Wd%pL3&i4=ap65Kz=R7|==RD8zd7ks3obqy2RRSvk z0032YH-z^#HgEe)Mc{TEoIrPN1Ms}3D*~|fZ!2x9qyYdstK1QeKFRb22I}Ts7wzZF zVxht}Lq`K8-He(168Q}Pr4&e1)Zg)e88S8>F@6ZYbT=gpC9A4@{C%lJ00Ml=fSaK!9nI$>pZ$$l3FE-2{j{X&o3^9VX?K`?4WR#0w`Y-OwS?% zP0AkdDHse+j`dIvZj^3yaj6IhjkR2oSE)Qeq^*K3;aI~xf6ya-EI^|~ZN#+e6c$^BXx-bw*;h3v+WH+{Z~CtrW$4K>9G$JGSle+p*$uLLeS zC!jQLYrMT6PQMwO7GHAVBL3NBZw_14F;Lz{T^h+d;ZX@>iTW~+5ao)xK0e{H2N!0Y z0;!hWFS)nEgD>miEnC*cEKwEVk@LIU43MX@w#PRB z|Fw<2tkfR{-%I(hFVnSKL56xXZ5N?PRMNFICH_!Y-T+8bx7Pi|cTi2RCoqao!zF9) z?X{jo-Ni2cQN&b=usi zWMF0lZ0hD9J|JDgUd~4Mv!C_-KT)c!KtRBIW{z`ftgK$z!nOW%I3ptD1Bhvs?uQD; zw8n8MC}odGAlP0G-26C=R`N;*_sFXK5Qnq7sLXKYx$~xU10?Govzj%Xa+AZRuGQH> zSTzdTd@a~@s%gLZS_AOT$a*V@eYcdaRi0kESFcL=dRd18MBgF3mAZE%s%)sa{yLx} z6@wNxaQ>UO{R3c!Gfbuxo7risxp-D=>r;y9QFtRz^*%@;rA>b3zQRoZx^a2MOb9hU z>-V*lmKQL4GC6Lw9#~pB>q&1TxNjDtgH3&cqv2=n#s~UP@G&Kni@9Rp+ zlUil_nhAu zq?Ph0{|0mRxO!by_!8JQ4oUUiGZ*L>&1}59Vpt9_D!cl~8huHxVdCsS>$Suv3PdA? zu@b^4Y1Ia&%ylELktf`m&R_V|^T(#)O5#rkDE zmdLZ3!IGY;gL=!rT7DNCgDDUL3xBpi&-As&z_7W_2}D%PAzsCE?FFv~xt^URuYs6E zmA#MuwY^=(s7hWID-%4wjBR@MrXBgu9MZ#(sp-$N}|oZ$2*UORVxtYR?mD& z%+c}=6pS`upFS{t^2uftD;zVecg21EiM}v3eFUP9I_li?NmL6O@gKFn>Yl0b_QhDB zw+HJz=&bv?0nIY`Q5EEv`9-7mTf1~zVn5z`wglN%J_xmL-#q9zS3q*uE=Z)Pa=2e( z8nEY>`p@5r)lTM)Se$3x3h-*y+*NIyFtM3?OdIavm9OWkm2cd0zpR3{d>h=x60A-e zxA5f*0DUKMl6f8TX1bb0(X_ zuec}CJDOsz??Ik+^KmN2f39}0B+8%#?Vgt=FOK*c6qm`5?lzLW3X%>U=;?h_a@ zj@ zOx12>i*05Gm9w`_q@0vV!Y0hmk)rnthGI%HPVWk?P^1`eJaK5myS)Rgh)Z!VZKzI# z>PGJJYadUydlKBhptujPCi$c)$z$l(+NaTv2)QoVsdX_hA7>B5=GWdab%#hoR^1!O z;8;xaNHr_>EY!0YLE`(VD|z3U8aeXW!pCnul>^7iKm}!aS3;>y#iaiVngMwGRft3) u-B!^(V`%DTw?U=awrKvPoTNP7_g|Fw0QeJcaL=}i1KeG_5RaWgGX4dNPT@-c diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map index a755a6fa7..07a761833 100644 --- a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map +++ b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 index 1e05f75cb..299d4ad65 100644 --- a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -16503a3b3edc71a269c352ea9adc070f \ No newline at end of file +425ff3ae5f0edd3d59ff23c5273ba0a1 \ No newline at end of file diff --git a/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.png b/structentt_1_1is__complete_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.png index 104c4c50bf59d2468f2d4ba51ac378d6fbd01a78..ac3eeb5a29c823135e651ea269929557d01e9710 100644 GIT binary patch literal 3589 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 JYT+&k{|7s=-zES6 literal 2035 zcmcIl{WlYe8(&{6*XvOCvWiPyRx&Z8P}j@kZCRO!D=#UQmo{(FGGVi95m_R(CTuLp z!ASGge5rJk*I}0ECRP|qXd_?Wd%pL3&i4=ap65Kz=R7|==RD8zd7ks3obqy2RRSvk z0032YH-z^#HgEe)Mc{TEoIrPN1Ms}3D*~|fZ!2x9qyYdstK1QeKFRb22I}Ts7wzZF zVxht}Lq`K8-He(168Q}Pr4&e1)Zg)e88S8>F@6ZYbT=gpC9A4@{C%lJ00Ml=fSaK!9nI$>pZ$$l3FE-2{j{X&o3^9VX?K`?4WR#0w`Y-OwS?% zP0AkdDHse+j`dIvZj^3yaj6IhjkR2oSE)Qeq^*K3;aI~xf6ya-EI^|~ZN#+e6c$^BXx-bw*;h3v+WH+{Z~CtrW$4K>9G$JGSle+p*$uLLeS zC!jQLYrMT6PQMwO7GHAVBL3NBZw_14F;Lz{T^h+d;ZX@>iTW~+5ao)xK0e{H2N!0Y z0;!hWFS)nEgD>miEnC*cEKwEVk@LIU43MX@w#PRB z|Fw<2tkfR{-%I(hFVnSKL56xXZ5N?PRMNFICH_!Y-T+8bx7Pi|cTi2RCoqao!zF9) z?X{jo-Ni2cQN&b=usi zWMF0lZ0hD9J|JDgUd~4Mv!C_-KT)c!KtRBIW{z`ftgK$z!nOW%I3ptD1Bhvs?uQD; zw8n8MC}odGAlP0G-26C=R`N;*_sFXK5Qnq7sLXKYx$~xU10?Govzj%Xa+AZRuGQH> zSTzdTd@a~@s%gLZS_AOT$a*V@eYcdaRi0kESFcL=dRd18MBgF3mAZE%s%)sa{yLx} z6@wNxaQ>UO{R3c!Gfbuxo7risxp-D=>r;y9QFtRz^*%@;rA>b3zQRoZx^a2MOb9hU z>-V*lmKQL4GC6Lw9#~pB>q&1TxNjDtgH3&cqv2=n#s~UP@G&Kni@9Rp+ zlUil_nhAu zq?Ph0{|0mRxO!by_!8JQ4oUUiGZ*L>&1}59Vpt9_D!cl~8huHxVdCsS>$Suv3PdA? zu@b^4Y1Ia&%ylELktf`m&R_V|^T(#)O5#rkDE zmdLZ3!IGY;gL=!rT7DNCgDDUL3xBpi&-As&z_7W_2}D%PAzsCE?FFv~xt^URuYs6E zmA#MuwY^=(s7hWID-%4wjBR@MrXBgu9MZ#(sp-$N}|oZ$2*UORVxtYR?mD& z%+c}=6pS`upFS{t^2uftD;zVecg21EiM}v3eFUP9I_li?NmL6O@gKFn>Yl0b_QhDB zw+HJz=&bv?0nIY`Q5EEv`9-7mTf1~zVn5z`wglN%J_xmL-#q9zS3q*uE=Z)Pa=2e( z8nEY>`p@5r)lTM)Se$3x3h-*y+*NIyFtM3?OdIavm9OWkm2cd0zpR3{d>h=x60A-e zxA5f*0DUKMl6f8TX1bb0(X_ zuec}CJDOsz??Ik+^KmN2f39}0B+8%#?Vgt=FOK*c6qm`5?lzLW3X%>U=;?h_a@ zj@ zOx12>i*05Gm9w`_q@0vV!Y0hmk)rnthGI%HPVWk?P^1`eJaK5myS)Rgh)Z!VZKzI# z>PGJJYadUydlKBhptujPCi$c)$z$l(+NaTv2)QoVsdX_hA7>B5=GWdab%#hoR^1!O z;8;xaNHr_>EY!0YLE`(VD|z3U8aeXW!pCnul>^7iKm}!aS3;>y#iaiVngMwGRft3) u-B!^(V`%DTw?U=awrKvPoTNP7_g|Fw0QeJcaL=}i1KeG_5RaWgGX4dNPT@-c diff --git a/structentt_1_1is__ebco__eligible.html b/structentt_1_1is__ebco__eligible.html index 29cd944cb..5167122cf 100644 --- a/structentt_1_1is__ebco__eligible.html +++ b/structentt_1_1is__ebco__eligible.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_ebco_eligible< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_ebco_eligible< Type > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::is_ebco_eligible< Type >:
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_ebco_eligible< Type >

    Provides the member constant value to true if a given type is both an empty and non-final class, false otherwise.

    Template Parameters
    @@ -113,14 +126,15 @@ struct entt::is_ebco_eligible< Type >

    Provides the member constant -

    Definition at line 708 of file type_traits.hpp.

    +

    Definition at line 710 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__equality__comparable.html b/structentt_1_1is__equality__comparable.html index b8a9eb052..f09e10986 100644 --- a/structentt_1_1is__equality__comparable.html +++ b/structentt_1_1is__equality__comparable.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_equality_comparable< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_equality_comparable< Type > Struct Template Reference
    @@ -106,7 +119,7 @@ Collaboration diagram for entt::is_equality_comparable< Type >:
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_equality_comparable< Type >

    Provides the member constant value to true if a given type is equality comparable, false otherwise.

    Template Parameters
    @@ -115,14 +128,15 @@ struct entt::is_equality_comparable< Type >

    Provides the member co -

    Definition at line 802 of file type_traits.hpp.

    +

    Definition at line 804 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html index e99cd8c4a..4334f82d2 100644 --- a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html +++ b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_equality_comparable< const Type > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_equality_comparable< const Type > Struct Template Reference
    -

    Provides the member constant value to true if a given type is equality comparable, false otherwise. +

    Provides the member constant value to true if a given type is equality comparable, false otherwise. More...

    #include <type_traits.hpp>

    @@ -88,11 +101,12 @@ Inheritance diagram for entt::is_equality_comparable< const Type >:
    Inheritance graph
    - - - - - + + + + + +
    [legend]
    @@ -100,31 +114,33 @@ Collaboration diagram for entt::is_equality_comparable< const Type >:
    Collaboration graph
    - - - - - + + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::is_equality_comparable< const Type >

    Provides the member constant value to true if a given type is equality comparable, false otherwise.

    +
    template<typename Type>
    +struct entt::is_equality_comparable< const Type >

    Provides the member constant value to true if a given type is equality comparable, false otherwise.

    Template Parameters
    - +
    TypeThe type to test.
    TypeThe type to test.
    -

    Definition at line 806 of file type_traits.hpp.

    +

    Definition at line 808 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.map b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.map index 2df33c29c..3fb53d1a3 100644 --- a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.map +++ b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.map @@ -1,7 +1,8 @@ - - - - - + + + + + + diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.md5 b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.md5 index 48f74678f..0e4b1c705 100644 --- a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.md5 +++ b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.md5 @@ -1 +1 @@ -4c608f0a2d71a6ba6f2c757d666332eb \ No newline at end of file +8383d20d05dc3726761eab22dd42c90e \ No newline at end of file diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.png b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__coll__graph.png index 4e55a6db9c88a6de13cf8daf3d5da02fd6983bf5..e7da0f3edbc2a06f84b2e224f78bf45e06455651 100644 GIT binary patch literal 5231 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 Wz&3u@c}WZ+nU=bqTGcb_cmDx68F#?| literal 3758 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 diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.map b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.map index 2df33c29c..3fb53d1a3 100644 --- a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.map +++ b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.map @@ -1,7 +1,8 @@ - - - - - + + + + + + diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.md5 b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.md5 index 48f74678f..0e4b1c705 100644 --- a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.md5 +++ b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.md5 @@ -1 +1 @@ -4c608f0a2d71a6ba6f2c757d666332eb \ No newline at end of file +8383d20d05dc3726761eab22dd42c90e \ No newline at end of file diff --git a/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.png b/structentt_1_1is__equality__comparable_3_01const_01Type_01_4__inherit__graph.png index 4e55a6db9c88a6de13cf8daf3d5da02fd6983bf5..e7da0f3edbc2a06f84b2e224f78bf45e06455651 100644 GIT binary patch literal 5231 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 Wz&3u@c}WZ+nU=bqTGcb_cmDx68F#?| literal 3758 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 diff --git a/structentt_1_1is__iterator.html b/structentt_1_1is__iterator.html index 9f3c51dea..6e3caad6b 100644 --- a/structentt_1_1is__iterator.html +++ b/structentt_1_1is__iterator.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_iterator< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_iterator< Type, typename > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::is_iterator< Type, typename >:
    [legend]

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::is_iterator< Type, typename >

    Provides the member constant value to true if a given type is an iterator, false otherwise.

    Template Parameters
    @@ -113,14 +126,15 @@ struct entt::is_iterator< Type, typename >

    Provides the member con -

    Definition at line 676 of file type_traits.hpp.

    +

    Definition at line 678 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html index 6ce76638c..f6f2135c4 100644 --- a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r2784f1f1943c3c544a328e35ff343041.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > > Struct Template Reference
    -

    Provides the member constant value to true if a given type is an iterator, false otherwise. +

    Provides the member constant value to true if a given type is an iterator, false otherwise. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_iterator< Type, std::enable_if_t<!std::is
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,29 +113,32 @@ Collaboration diagram for entt::is_iterator< Type, std::enable_if_t<!std::
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >

    Provides the member constant value to true if a given type is an iterator, false otherwise.

    +
    template<typename Type>
    +struct entt::is_iterator< Type, std::enable_if_t<!std::is_void_v< std::remove_cv_t< std::remove_pointer_t< Type > > > > >

    Provides the member constant value to true if a given type is an iterator, false otherwise.

    Template Parameters
    - +
    TypeThe type to test.
    TypeThe type to test.
    -

    Definition at line 692 of file type_traits.hpp.

    +

    Definition at line 694 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.map b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.map index 7c9551bc6..ce4a028f0 100644 --- a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.map +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.md5 b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.md5 index 2990886be..0c22da34f 100644 --- a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.md5 +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.md5 @@ -1 +1 @@ -17f757b0270b0792feb884d00421f9e9 \ No newline at end of file +399c2ae3c5fbd7d1bfbb44deb31efb9d \ No newline at end of file diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.png b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r396237e909d5a448b433c5b378301e3b.png index 9341411de444de288c9d87a5fcd8076d995980f1..e099c45070a7d7c9a2c44e8750efc1c4333f686c 100644 GIT binary patch literal 4926 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 A0ssI2 diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.map b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.map index 7c9551bc6..ce4a028f0 100644 --- a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.map +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.md5 b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.md5 index 2990886be..0c22da34f 100644 --- a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.md5 +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.md5 @@ -1 +1 @@ -17f757b0270b0792feb884d00421f9e9 \ No newline at end of file +399c2ae3c5fbd7d1bfbb44deb31efb9d \ No newline at end of file diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.png b/structentt_1_1is__iterator_3_01Type_00_01std_1_1enable__if__t_3_9std_1_1is__void__v_3_01std_1_1r96bb326c950276eb3fe6cb301e385789.png index 9341411de444de288c9d87a5fcd8076d995980f1..e099c45070a7d7c9a2c44e8750efc1c4333f686c 100644 GIT binary patch literal 4926 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 A0ssI2 diff --git a/structentt_1_1is__meta__pointer__like.html b/structentt_1_1is__meta__pointer__like.html index dbd86f07b..b6f510e5f 100644 --- a/structentt_1_1is__meta__pointer__like.html +++ b/structentt_1_1is__meta__pointer__like.html @@ -3,13 +3,15 @@ - + -EnTT: entt::is_meta_pointer_like< typename > Struct Template Reference +EnTT: entt::is_meta_pointer_like< typename, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::is_meta_pointer_like< typename > Struct Template Reference
    +
    entt::is_meta_pointer_like< typename, typename > Struct Template Reference
    @@ -84,28 +97,28 @@ $(function() {

    #include <type_traits.hpp>

    -Inheritance diagram for entt::is_meta_pointer_like< typename >:
    +Inheritance diagram for entt::is_meta_pointer_like< typename, typename >:
    -
    Inheritance graph
    - - - - +
    Inheritance graph
    + + + +
    [legend]
    -Collaboration diagram for entt::is_meta_pointer_like< typename >:
    +Collaboration diagram for entt::is_meta_pointer_like< typename, typename >:
    -
    Collaboration graph
    - - - - +
    Collaboration graph
    + + + +
    [legend]

    Detailed Description

    -
    template<typename>
    -struct entt::is_meta_pointer_like< typename >

    Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise.

    +
    template<typename, typename = void>
    +struct entt::is_meta_pointer_like< typename, typename >

    Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise.

    Definition at line 35 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
      @@ -114,7 +127,8 @@ struct entt::is_meta_pointer_like< typename >

    Provides the member

    +
    diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.map b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.map new file mode 100644 index 000000000..ce6e2c373 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.md5 new file mode 100644 index 000000000..310a11e91 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.md5 @@ -0,0 +1 @@ +1967a1b2030aba3b763081485d4612fa \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.png b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me7e73962060dceb2455423bd98c08115f.png new file mode 100644 index 0000000000000000000000000000000000000000..69586c027453293a0fe64ad3848c7722811c2d13 GIT binary patch literal 4100 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 + + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.md5 new file mode 100644 index 000000000..310a11e91 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.md5 @@ -0,0 +1 @@ +1967a1b2030aba3b763081485d4612fa \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.png b/structentt_1_1is__meta__pointer__like_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__me9b7e570208d9e133cebc6e25fb0a4319.png new file mode 100644 index 0000000000000000000000000000000000000000..69586c027453293a0fe64ad3848c7722811c2d13 GIT binary patch literal 4100 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 + + + + + + +EnTT: entt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > > Struct Template Reference + + + + + + + + + + + + + +

    +
    + + + + + + +
    +
    EnTT 3.15.0 +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    entt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > > Struct Template Reference
    +
    +
    + +

    Specialization for self-proclaimed meta pointer like types. + More...

    + +

    #include <pointer.hpp>

    +
    +Inheritance diagram for entt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >:
    +
    +
    Collaboration graph
    + + + + + + + +
    [legend]
    +

    Detailed Description

    +
    template<typename Type>
    +struct entt::is_meta_pointer_like< Type, std::void_t< typename Type::is_meta_pointer_like > >

    Specialization for self-proclaimed meta pointer like types.

    +
    Template Parameters
    + + +
    TypeElement type.
    +
    +
    + +

    Definition at line 54 of file pointer.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html index e172b85b8..a3ab37d98 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_meta_pointer_like< Type * > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_meta_pointer_like< Type * > Struct Template Reference
    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_meta_pointer_like< Type * >:
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,13 +113,15 @@ Collaboration diagram for entt::is_meta_pointer_like< Type * >:
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_meta_pointer_like< Type * >

    Makes plain pointers pointer-like types for the meta system.

    Template Parameters
    @@ -120,7 +137,8 @@ struct entt::is_meta_pointer_like< Type * >

    Makes plain pointers p

    + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map index b247d2468..e6645dc95 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 index 7a28408e2..545a5a636 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 @@ -1 +1 @@ -cd8641159e13f83028b2b96d3712008c \ No newline at end of file +0586dc03276bc9c26fcdf1ea245c6f01 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png index 4e088f8b851eca2338de2538b7793201827d1e5a..cb7310c6b384578c4c612ae4301de451419853dc 100644 GIT binary patch literal 3538 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 literal 1678 zcmb^y3tJKf5H{21#B9yS4ASY!Tv?Eh%m-GWjtU(G4XUD60r3ezwNBMVNf7Y$P;07&fHjcA~+muGOwo$ zA+Oe!9=E8?H}{uKh zCX*W{@ZwG^l`ytM@bzE>3oFsS9a2B;I;@_cSlR0Uy~jE0anIB4fb`G-3XUM|EE9++ zMbs#FtumQ0H$*##Dk6PCrV+1H2{sEXfkv}mppG4fUx#Sql;cgD@6|)N*>(7J(C*6z zc~{iFKMVDangq8xuDZw5R|V-^tG-nGp{7`nVC&Ka8zvL9nli#n6ywEm#4n%L9#S<` z=?X*q3gTtPZM14KLrZ3`X3j~T!kABL_lTO~>oAo*hVbnT-f0cq`+5^fY`4jj!0~~+ zYF_Bi2_*_BskR{2(cMhDecu%Hl%?$PZ#KG##wN+HH%2s5uU<)~yD+nIuB>ihZg7eI zN2}gmXYmBFm*lWGal!LtSPfPs&0Zee%!V$F6a}i_^w?<@m${FevwRx>h<$b`uDWnE1Z(55!&fI>o}Y?eAnK!k z+IjoC`%sdL0PYt2UN8Ft=ATy|GS z*l89la4Yxny2mcY%gtrVo-r3!ryLb?Gi0zK15rU#k3icJ3RjL`f-gVHjAnnT$dp^i zlsU^H(@6E?WXkW3^SCzg9g%y)#_vAfM(6U?tEJmBjOoFWMlg&7x~qf0JcU}LJ6CB^ zsHy}nw~{IE##r`o-|sDn@vo`kER5SL+E&}!iI-0k=K~W~T7ZX4=V|GYj`XwbzLlwo zk&l&QE)U_yOoM9vDf+)-XyXwg6BXMQF#qkx|7PN>fz&fIGp)$U8#aCM6N{GR{KF@* zUL8zxLTN`weQvlsX*@=Vh?o+yIgnR?3tJJ8J$r~0%7gWCS5it!N|ihE$*v;J-^=n( zmX$xsl={`U)@y~}=l%*&IPIF=T&q@Z*YrmayENog|NHP;do=qGclQ|F?6&HKhy9Ww zDI1b?s`it}9cYGR{Z{8Uf&#(nz@}R#kIzkBPbK>`*l%I*UE_Z4g(?^8XbOqM!ABDg zDNBdZmT2FWxh{3naMsM{>Wm$l;LuHRBkU9x&Nzyx2#5nmt|^w^qFS#Y;72DD^DaT` zb=km*9^l3HFNJTwO@zEw1r4yQIaoq1mxh~xhG)A`-~Y$sM(nb(0+Nd)v3-rU?= zB#|U`reC+FqR^sUd11roXjs5C#rmMzLhR`|5NX=!b{0bJKq5EZq=jq!U2WR!dVv*r zf-{+4CPqp4aT_F8)xd($1hT=JaP@&3KN|PLNcP#ZSiZKtW|WHYf%m%~P%Yl1T~Lb? zJFqyP>Wfp&>;OVQI~zEab;>l^BrrXm|7S - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 index 7a28408e2..545a5a636 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 @@ -1 +1 @@ -cd8641159e13f83028b2b96d3712008c \ No newline at end of file +0586dc03276bc9c26fcdf1ea245c6f01 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png index 4e088f8b851eca2338de2538b7793201827d1e5a..cb7310c6b384578c4c612ae4301de451419853dc 100644 GIT binary patch literal 3538 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 literal 1678 zcmb^y3tJKf5H{21#B9yS4ASY!Tv?Eh%m-GWjtU(G4XUD60r3ezwNBMVNf7Y$P;07&fHjcA~+muGOwo$ zA+Oe!9=E8?H}{uKh zCX*W{@ZwG^l`ytM@bzE>3oFsS9a2B;I;@_cSlR0Uy~jE0anIB4fb`G-3XUM|EE9++ zMbs#FtumQ0H$*##Dk6PCrV+1H2{sEXfkv}mppG4fUx#Sql;cgD@6|)N*>(7J(C*6z zc~{iFKMVDangq8xuDZw5R|V-^tG-nGp{7`nVC&Ka8zvL9nli#n6ywEm#4n%L9#S<` z=?X*q3gTtPZM14KLrZ3`X3j~T!kABL_lTO~>oAo*hVbnT-f0cq`+5^fY`4jj!0~~+ zYF_Bi2_*_BskR{2(cMhDecu%Hl%?$PZ#KG##wN+HH%2s5uU<)~yD+nIuB>ihZg7eI zN2}gmXYmBFm*lWGal!LtSPfPs&0Zee%!V$F6a}i_^w?<@m${FevwRx>h<$b`uDWnE1Z(55!&fI>o}Y?eAnK!k z+IjoC`%sdL0PYt2UN8Ft=ATy|GS z*l89la4Yxny2mcY%gtrVo-r3!ryLb?Gi0zK15rU#k3icJ3RjL`f-gVHjAnnT$dp^i zlsU^H(@6E?WXkW3^SCzg9g%y)#_vAfM(6U?tEJmBjOoFWMlg&7x~qf0JcU}LJ6CB^ zsHy}nw~{IE##r`o-|sDn@vo`kER5SL+E&}!iI-0k=K~W~T7ZX4=V|GYj`XwbzLlwo zk&l&QE)U_yOoM9vDf+)-XyXwg6BXMQF#qkx|7PN>fz&fIGp)$U8#aCM6N{GR{KF@* zUL8zxLTN`weQvlsX*@=Vh?o+yIgnR?3tJJ8J$r~0%7gWCS5it!N|ihE$*v;J-^=n( zmX$xsl={`U)@y~}=l%*&IPIF=T&q@Z*YrmayENog|NHP;do=qGclQ|F?6&HKhy9Ww zDI1b?s`it}9cYGR{Z{8Uf&#(nz@}R#kIzkBPbK>`*l%I*UE_Z4g(?^8XbOqM!ABDg zDNBdZmT2FWxh{3naMsM{>Wm$l;LuHRBkU9x&Nzyx2#5nmt|^w^qFS#Y;72DD^DaT` zb=km*9^l3HFNJTwO@zEw1r4yQIaoq1mxh~xhG)A`-~Y$sM(nb(0+Nd)v3-rU?= zB#|U`reC+FqR^sUd11roXjs5C#rmMzLhR`|5NX=!b{0bJKq5EZq=jq!U2WR!dVv*r zf-{+4CPqp4aT_F8)xd($1hT=JaP@&3KN|PLNcP#ZSiZKtW|WHYf%m%~P%Yl1T~Lb? zJFqyP>Wfp&>;OVQI~zEab;>l^BrrXm|7S - + EnTT: entt::is_meta_pointer_like< Type(*)[N]> Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_meta_pointer_like< Type(*)[N]> Struct Template Reference
    @@ -90,7 +103,8 @@ Inheritance diagram for entt::is_meta_pointer_like< Type(*)[N]>:
    - + +
    [legend]
    @@ -100,11 +114,12 @@ Collaboration diagram for entt::is_meta_pointer_like< Type(*)[N]>:
    - + +
    [legend]

    Detailed Description

    -
    template<typename Type, std::size_t N>
    +
    template<typename Type, std::size_t N>
    struct entt::is_meta_pointer_like< Type(*)[N]>

    Partial specialization used to reject pointers to arrays.

    Template Parameters
    @@ -121,7 +136,8 @@ struct entt::is_meta_pointer_like< Type(*)[N]>

    Partial specializat

    + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map index 0f95c32bd..989464789 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map @@ -1,5 +1,6 @@ - + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 index d8794351e..06c8f7314 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 @@ -1 +1 @@ -5326f43e90355b398a892d63316109ec \ No newline at end of file +b77b4278a9452cb053740a47a5396166 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.png index 685d5bc2931d866605c8b52b30126eaa846eef4d..301be62376a70154ff144c6643b5e9758bcf827f 100644 GIT binary patch delta 2581 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 sC - + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 index d8794351e..06c8f7314 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 @@ -1 +1 @@ -5326f43e90355b398a892d63316109ec \ No newline at end of file +b77b4278a9452cb053740a47a5396166 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.png index 685d5bc2931d866605c8b52b30126eaa846eef4d..301be62376a70154ff144c6643b5e9758bcf827f 100644 GIT binary patch delta 2581 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 sC - + EnTT: entt::is_meta_pointer_like< const Type > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_meta_pointer_like< const Type > Struct Template Reference
    @@ -89,10 +102,11 @@ Inheritance diagram for entt::is_meta_pointer_like< const Type >:
    Inheritance graph
    - - - + + + +
    [legend]
    @@ -101,14 +115,15 @@ Collaboration diagram for entt::is_meta_pointer_like< const Type >:
    Collaboration graph
    - - - + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_meta_pointer_like< const Type >

    Partial specialization to ensure that const pointer-like types are also accepted.

    Template Parameters
    @@ -124,7 +139,8 @@ struct entt::is_meta_pointer_like< const Type >

    Partial specializa

    + diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.map index 966e76341..1dd95004a 100644 --- a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.map @@ -1,7 +1,8 @@ - - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.md5 index 005b7cd9d..6b637f19f 100644 --- a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.md5 @@ -1 +1 @@ -281be0af0a8550e3c433a56445028204 \ No newline at end of file +2ba70556643cf8507501da8559ca328f \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__coll__graph.png index 8f59472b4fd2721341a0125e3c62cc1e5bb8a831..f86b9ee3c823381ff4fe21249ad6216e746d89f0 100644 GIT binary patch literal 5838 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 literal 2855 zcmcJRc{Cf!9>?QWYpJxQN=Zv;)lw8Cssy#Wmedwo(@HEA649nXRZ8t`tyPq8Tzl1) zs)i;NC9d#n)gU33R&V3hQnds{xbE`qd*}W6&U?Q(Grx0wbAEH?%zWqbn+I1Mt%0Jl zq5uE@XlrBPyyuB~eMtDg-uMXXq_^h|AnmLz0K31ppIR!j007Z(TZ_xC5d{kqmy_Y{ zGD6>W?__l}`ajM%GW5>u^lZDj`WdM?EAx1;ThQRy%rckhGg(ccGb0J035sNZ>4Zq? zspNN#CB<<*0A^u_^It1mH*}R>t?*gHfS` z(~36$SJQ^?4Uq)iw#5nE{G}_CJ@GCD3?1JbSC zxk~G7atLyFWt-8KI*%s{Tb%JAn$NK{ABuvqHF`*HOm9Axz{BIt1QJCt4E!tqIp!<9D*;}TuNQHBcX{L3DTwV zuz_Y!rol(uAA^pAo#~`Z*+fiC`}xAh2)5A!fcs7X<)MycE2srGllG6@tY@F)nS_nL zIOs?7=m_)XzSJqXXc@wZgYEG60sQ(Zn&|eU37pAOPr6NX55)bW9 z3Eln3^(|e$se`(lfMB1{fM+Uqd{7dfk7^D^T3yU-eAcdoP7C|tyg8|w94sVw9==&V z?*MZ}90yxleS5C`G-OQGBSNdqT_W4{L}FiC0)7-LMpId{wzQkwf9xRwr*KgTNwC+| zdAsze_3`0qmg}j+zWXu=5i%(+sVK`Bu&e4WB<7v|x%yV1Xw;$3dvz&oHZiQmIW=+m z2wk{ewykXL2%yMdx5B8_)%nG7vT>}^YIGu6N~}NdiHpvTiSS8HngUdm#1P)O#%Xbh zVTgUJ-+Y1m=J|O!a8jeb=gYyltHuU`l}>-2eCm)Ex-1cKTJK+q{pY3p&!))R2ifP& zovTdMuCG+75WZU!Z^TpYmA{umd0bOlTZ`$2&6(gR4Gj`a`R^f&6<^#6*WoHPtZ%br zgmls{Ox^3U?$lU&XYgNQ`D0%dzmjBpw=C~)TtsFRQS5x>uJw3ZtJW<=9&sU3(|N>m zwadz1L~2hdr6zrR-Xdp>v%}dQ!*gKf*C#N%(XkgiL^b3#gn%IrU$860Fb*I4MY>$Z z7YzIa=M1wH8&J_W>XjN#uq7p5X@}@Tp|&GRGpy)-(H3)w<3cd2>h@k+I2!RV@|I_bR$DmJKPI@;Gp-R@WdC1yJTYuyQ1_eswLd1Vo*{U zJY!4kcd72%A_>Weq7YY1HAHh#2)wDmOne<$!Aukl4 zyOjU@hHrU7-3F?$FJl;Jx{WgEc$gMh=!H+ZvfUN%$xvrF_e1aV9g9hr^{-ckau0nD z`Dz6&LcMywwv<6uxZhnI;*OIh*D+4LhT73eUn~YY6MIlYmMj(hxkf*4aSp3~;HE+) z!2ze=;FgbVUYt$z!1^U0J6WDkX=tVB9gpb* zYK}S`whYosXL%Ke$}0UWUhvyB+OljKV&x3r9-lSj_N0mza@$BQc*H4v$RB9>wa4`>bcrsI`{2-r+ex`-Wd`d zaQ>P{E?;$44M^vj3feJq(k=FDX+?NaD`Hy`qx^`{{EH>tx`NjK{xJXVEP>Iov$L65TLp-E~$gmV@2Gt^~6% z-arDrY4}DkVuIq5E* zEOLKT*ORA)wU^=&G?EPI9`tB$c{rNsRM$93Rbd7`JW9kB(O#8{1@zM5QqV8$5t{l( zF^t6LZEn})$sjq-T+}9NQY&FYhBI4G?jT+JNI6{&B3tVcBptlTy0!ilK2E{+P$C{5 z#@jlOK=D`c4%bz!GR9{Ib=MI+3&8nm<)%n;XCQGdYiYs9FfFv(ihKuBj3rIlOxncJEx64r*0h zGP*nXG;yHO3$^88oyBE9>JkO5J{biZ{R1`j`v`ij__9LCv)Z_${h z$*QNhjZFN6H1g-}np_21gUqN}-_dzP2VQC{1_LZSM1aM{OCtS~*MxiB - - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.md5 index 005b7cd9d..6b637f19f 100644 --- a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.md5 @@ -1 +1 @@ -281be0af0a8550e3c433a56445028204 \ No newline at end of file +2ba70556643cf8507501da8559ca328f \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4__inherit__graph.png index 8f59472b4fd2721341a0125e3c62cc1e5bb8a831..f86b9ee3c823381ff4fe21249ad6216e746d89f0 100644 GIT binary patch literal 5838 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 literal 2855 zcmcJRc{Cf!9>?QWYpJxQN=Zv;)lw8Cssy#Wmedwo(@HEA649nXRZ8t`tyPq8Tzl1) zs)i;NC9d#n)gU33R&V3hQnds{xbE`qd*}W6&U?Q(Grx0wbAEH?%zWqbn+I1Mt%0Jl zq5uE@XlrBPyyuB~eMtDg-uMXXq_^h|AnmLz0K31ppIR!j007Z(TZ_xC5d{kqmy_Y{ zGD6>W?__l}`ajM%GW5>u^lZDj`WdM?EAx1;ThQRy%rckhGg(ccGb0J035sNZ>4Zq? zspNN#CB<<*0A^u_^It1mH*}R>t?*gHfS` z(~36$SJQ^?4Uq)iw#5nE{G}_CJ@GCD3?1JbSC zxk~G7atLyFWt-8KI*%s{Tb%JAn$NK{ABuvqHF`*HOm9Axz{BIt1QJCt4E!tqIp!<9D*;}TuNQHBcX{L3DTwV zuz_Y!rol(uAA^pAo#~`Z*+fiC`}xAh2)5A!fcs7X<)MycE2srGllG6@tY@F)nS_nL zIOs?7=m_)XzSJqXXc@wZgYEG60sQ(Zn&|eU37pAOPr6NX55)bW9 z3Eln3^(|e$se`(lfMB1{fM+Uqd{7dfk7^D^T3yU-eAcdoP7C|tyg8|w94sVw9==&V z?*MZ}90yxleS5C`G-OQGBSNdqT_W4{L}FiC0)7-LMpId{wzQkwf9xRwr*KgTNwC+| zdAsze_3`0qmg}j+zWXu=5i%(+sVK`Bu&e4WB<7v|x%yV1Xw;$3dvz&oHZiQmIW=+m z2wk{ewykXL2%yMdx5B8_)%nG7vT>}^YIGu6N~}NdiHpvTiSS8HngUdm#1P)O#%Xbh zVTgUJ-+Y1m=J|O!a8jeb=gYyltHuU`l}>-2eCm)Ex-1cKTJK+q{pY3p&!))R2ifP& zovTdMuCG+75WZU!Z^TpYmA{umd0bOlTZ`$2&6(gR4Gj`a`R^f&6<^#6*WoHPtZ%br zgmls{Ox^3U?$lU&XYgNQ`D0%dzmjBpw=C~)TtsFRQS5x>uJw3ZtJW<=9&sU3(|N>m zwadz1L~2hdr6zrR-Xdp>v%}dQ!*gKf*C#N%(XkgiL^b3#gn%IrU$860Fb*I4MY>$Z z7YzIa=M1wH8&J_W>XjN#uq7p5X@}@Tp|&GRGpy)-(H3)w<3cd2>h@k+I2!RV@|I_bR$DmJKPI@;Gp-R@WdC1yJTYuyQ1_eswLd1Vo*{U zJY!4kcd72%A_>Weq7YY1HAHh#2)wDmOne<$!Aukl4 zyOjU@hHrU7-3F?$FJl;Jx{WgEc$gMh=!H+ZvfUN%$xvrF_e1aV9g9hr^{-ckau0nD z`Dz6&LcMywwv<6uxZhnI;*OIh*D+4LhT73eUn~YY6MIlYmMj(hxkf*4aSp3~;HE+) z!2ze=;FgbVUYt$z!1^U0J6WDkX=tVB9gpb* zYK}S`whYosXL%Ke$}0UWUhvyB+OljKV&x3r9-lSj_N0mza@$BQc*H4v$RB9>wa4`>bcrsI`{2-r+ex`-Wd`d zaQ>P{E?;$44M^vj3feJq(k=FDX+?NaD`Hy`qx^`{{EH>tx`NjK{xJXVEP>Iov$L65TLp-E~$gmV@2Gt^~6% z-arDrY4}DkVuIq5E* zEOLKT*ORA)wU^=&G?EPI9`tB$c{rNsRM$93Rbd7`JW9kB(O#8{1@zM5QqV8$5t{l( zF^t6LZEn})$sjq-T+}9NQY&FYhBI4G?jT+JNI6{&B3tVcBptlTy0!ilK2E{+P$C{5 z#@jlOK=D`c4%bz!GR9{Ib=MI+3&8nm<)%n;XCQGdYiYs9FfFv(ihKuBj3rIlOxncJEx64r*0h zGP*nXG;yHO3$^88oyBE9>JkO5J{biZ{R1`j`v`ij__9LCv)Z_${h z$*QNhjZFN6H1g-}np_21gUqN}-_dzP2VQC{1_LZSM1aM{OCtS~*MxiB - + EnTT: entt::is_meta_pointer_like< std::shared_ptr< Type > > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_meta_pointer_like< std::shared_ptr< Type > > Struct Template Reference
    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_meta_pointer_like< std::shared_ptr< Type
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,13 +113,15 @@ Collaboration diagram for entt::is_meta_pointer_like< std::shared_ptr< Typ
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_meta_pointer_like< std::shared_ptr< Type > >

    Makes std::shared_ptrs of any type pointer-like types for the meta system.

    Template Parameters
    @@ -120,7 +137,8 @@ struct entt::is_meta_pointer_like< std::shared_ptr< Type > >

    + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map index 8216e450b..b3b4e1e4c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 index 7661c6185..1870d38ab 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -86aa58d8854a1a5ef7511ce5e58696a0 \ No newline at end of file +5fff2c98506cee44bba3a3bb1c49ea1a \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png index 2fa7070ed381ace7d8e4e4448c20bcf8f9614d45..9eb3d4ecfaa4e6ad172b0d3f9a4028f528653dff 100644 GIT binary patch literal 3423 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 Bh+zN# literal 1913 zcmb_d`#Teg8y_NdHgrzzqLn45aNOlGU$?~EnoAd#YA&V6a2hKN`IfnzQm!p#PGT7& zowjlrYDowgGnU0t*lgz5#bsTNbAC9__Ye4f-sgQk&-1>&eV)(fc?*I9yg|G5b^`za zkk1KE_%;)^yGT`KduB(#klUn!fO&fYzW-gdG-4?Lu+!Yf(=Fs$wUFbQWZAShYX}3Q*Z) z9CJ|ngqD{;e>dg=t!5gJ!{e{Ui8g)0x-v4HL_(LEY1%#~z@BY@@V?ViD=RC@r30V( z%8(^a^%HeWCUZ8Jaupov0jQ;XJ8deB8nhe0Po{%<(Ii<3Rvl1LQIRZUQznMtMH~+2 z6Y_S+vlA(W+=G@tqk;(aqPliX6EsNjBkR-qbWor%kxGfzd-ez-HStT!~)RlrEr921w5cr#7B>XuhgM|aR!2WK_< z3@1_j7b;)VY2V$S05(MxmU(Zoki4BPVjMT~-$RUjNFYj+B;#kfNU~*i2jA0lM$3#8w7pH6i@X%k+}r_}Bg@sL)^OYMLaz9sP2!Q< z0bIErs^8?A_oIghON`;l%92-oa%7e3gR_BAL0lcEk)A!p4&z+^3%r+4OOm1#Lp6)I z;@ab<^Gq=tBDDVP7p|MjIb2lAVop|;VwXZJG|u^%AlTC3y-z30s~-ySvBuzDfNUm`hSN4hGW zJKwjxik6T&os_FSN_4Qr|H}W58G&?fgbwsa`s&^P?+LYH(Ug>sFa!6^1fTTt zk$i-`JJlL3p;x4sdQGv}j+M5{guckAsFi2;KgOT`4(^?wSXx?AmCNO?`k|9WE%i^1eFg#TlU9e{K{Z{|HH79F) zO(Gv29=2Xy9vV*#_4j~M67j4R(H%{$?UMla+aMf*1U()tKJ$svQ?t1qF-h zzTO+X)n0s0Zdo8ZSK~`~6Oc`68p>4Fbw`4CPILktWJ5lKm-4!ANStI~Uyv<=!X>#Z24-<#pzwb@wxEW=WnrQx(pe&!T~V?MN5 zm)CgOb^!x1H{~5Wm*~obbh(vmL7_LE&z;X7EVIG*gLmQfSY>vRy+OEwk8lFasYQ;) zhcYIxBH;aWePq9h>}cgta|idhvw%eUwI#o@ErrA?jE2=8#33Pr9~C_q}AN58S~W zPDN^~{7!Ef6;w9ZVJ?o?FoT$jCtjQ}vu+Wcv8iUdpW!LXczb5_Ytc`V)FKeh<<0-6+7hv2OPhT7 z+b}hJ0CREgIs<5hF-Lq?dvnKwQRxQi45`2gH~p~b2*MF;>w$%KJ<9xJ*#G49w1tD3 xx_a=Wn^I~@N=)Wky>1$f7F7s7@DKQ$9&ddUEYPO#+x9O7_;>|)wz!}F?_YaC(9!?^ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map index 8216e450b..b3b4e1e4c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 index 7661c6185..1870d38ab 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -86aa58d8854a1a5ef7511ce5e58696a0 \ No newline at end of file +5fff2c98506cee44bba3a3bb1c49ea1a \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png index 2fa7070ed381ace7d8e4e4448c20bcf8f9614d45..9eb3d4ecfaa4e6ad172b0d3f9a4028f528653dff 100644 GIT binary patch literal 3423 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 Bh+zN# literal 1913 zcmb_d`#Teg8y_NdHgrzzqLn45aNOlGU$?~EnoAd#YA&V6a2hKN`IfnzQm!p#PGT7& zowjlrYDowgGnU0t*lgz5#bsTNbAC9__Ye4f-sgQk&-1>&eV)(fc?*I9yg|G5b^`za zkk1KE_%;)^yGT`KduB(#klUn!fO&fYzW-gdG-4?Lu+!Yf(=Fs$wUFbQWZAShYX}3Q*Z) z9CJ|ngqD{;e>dg=t!5gJ!{e{Ui8g)0x-v4HL_(LEY1%#~z@BY@@V?ViD=RC@r30V( z%8(^a^%HeWCUZ8Jaupov0jQ;XJ8deB8nhe0Po{%<(Ii<3Rvl1LQIRZUQznMtMH~+2 z6Y_S+vlA(W+=G@tqk;(aqPliX6EsNjBkR-qbWor%kxGfzd-ez-HStT!~)RlrEr921w5cr#7B>XuhgM|aR!2WK_< z3@1_j7b;)VY2V$S05(MxmU(Zoki4BPVjMT~-$RUjNFYj+B;#kfNU~*i2jA0lM$3#8w7pH6i@X%k+}r_}Bg@sL)^OYMLaz9sP2!Q< z0bIErs^8?A_oIghON`;l%92-oa%7e3gR_BAL0lcEk)A!p4&z+^3%r+4OOm1#Lp6)I z;@ab<^Gq=tBDDVP7p|MjIb2lAVop|;VwXZJG|u^%AlTC3y-z30s~-ySvBuzDfNUm`hSN4hGW zJKwjxik6T&os_FSN_4Qr|H}W58G&?fgbwsa`s&^P?+LYH(Ug>sFa!6^1fTTt zk$i-`JJlL3p;x4sdQGv}j+M5{guckAsFi2;KgOT`4(^?wSXx?AmCNO?`k|9WE%i^1eFg#TlU9e{K{Z{|HH79F) zO(Gv29=2Xy9vV*#_4j~M67j4R(H%{$?UMla+aMf*1U()tKJ$svQ?t1qF-h zzTO+X)n0s0Zdo8ZSK~`~6Oc`68p>4Fbw`4CPILktWJ5lKm-4!ANStI~Uyv<=!X>#Z24-<#pzwb@wxEW=WnrQx(pe&!T~V?MN5 zm)CgOb^!x1H{~5Wm*~obbh(vmL7_LE&z;X7EVIG*gLmQfSY>vRy+OEwk8lFasYQ;) zhcYIxBH;aWePq9h>}cgta|idhvw%eUwI#o@ErrA?jE2=8#33Pr9~C_q}AN58S~W zPDN^~{7!Ef6;w9ZVJ?o?FoT$jCtjQ}vu+Wcv8iUdpW!LXczb5_Ytc`V)FKeh<<0-6+7hv2OPhT7 z+b}hJ0CREgIs<5hF-Lq?dvnKwQRxQi45`2gH~p~b2*MF;>w$%KJ<9xJ*#G49w1tD3 xx_a=Wn^I~@N=)Wky>1$f7F7s7@DKQ$9&ddUEYPO#+x9O7_;>|)wz!}F?_YaC(9!?^ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html index 8445b26b4..4d571063c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@
    @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > > Struct Template Reference
    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_meta_pointer_like< std::unique_ptr< Type,
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,13 +113,15 @@ Collaboration diagram for entt::is_meta_pointer_like< std::unique_ptr< Typ
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type, typename... Args>
    +
    template<typename Type, typename... Args>
    struct entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >

    Makes std::unique_ptrs of any type pointer-like types for the meta system.

    Template Parameters
    @@ -121,7 +138,8 @@ struct entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > > + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map index 0e82dee15..69005910c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 0e8244587..9891a550e 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -d5757ecf9196680799b77c7df7812739 \ No newline at end of file +e8088dfebeef2063ab67c51ff0d6c302 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png index 87a96144784de4c18e3939a44f23ee471a0cee9e..2a9f64cee478f4abf9aff37e41a586cee33f93d6 100644 GIT binary patch literal 3537 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 LNkvXXu0mjfvdaxj literal 2005 zcmcIl{W}wi7av86%}XRNqfm0YxGUz4*4yTFjkL-wZM5AkHuI8MHHnKDB9UlbB5gC> zlo&I2t1yz6%4CYQ-pEUn#Vn&-eSi4g=lchIpYxp0d7g7VKb+^B^PErSL4R-HI`ee^ z008LggFLhn%T_#FM|%YmI3)*Hf;JxIjRY+JunGaY003B%<%`^R_-v`X>`}I*r*X#v zhMmzfJA<`nby`!xoDBy`$81uv==t=t)$7sPOQuVxYssomCmep$qh4Qqn!>=@C`bo) z|K9eNHRz$<*-&>1t)=ER|2FOjT4??A%V|!n3axZg*3^)ofX!(J`*k?rDwA+BS$>ON zI+*3%THO1G>f`J}fO#E=xLN~X2qRx=W|>@0+iWAzD1A<6{=rXQIA06S*Nah2VGUBH1EEZfOv6l59GwG2YMz0WR>h&B};hUuwyC2gy51#^ntp~EhnQ;T;? zzBdIo-USWEhG3;}wNqsCjMoK@V|iY~i@KRNER>?R2A3cPR}wpI@QHU81n8C%D&E~% z;ZUVHb_lQTsQYGh)5Bh*qL9y9?DVQ4$#@;~y$@pj+z#n@swi@c=axl2(+$@=E^PBG z0qr&6*fz076bJ`*!QlK_ZB_&|N4ekLVGD*5;C2-^>{cB-c(nHO5VenGi>%7dD{ld_ zqitNaUU15Sfm~ zz5YR5HwWY@HX~dxz7oKF$NV4>6iSw_mn1Wouqlu zJ$j}Zk z_-S8^Qxoe|#e}9|YMj?S)rXl)$(M!43yMw?e=w6#vMxh_b%m?O&WDv5`ihggk0|$v zwL(Gf3F7Mt-A$UMPnjIAa6SMTgG-*ypV6>A`>~aL4whZLu5w~m^I3%d#!%3kheA`} zOsm!IK+_`*E@k%hW}kG2HEkbidBTn$#OG{MbniK`EP7V|`fU^lCj>1t#>Yf{6yhRuWO9;t09NogQJgqz)8t?Ar95}Q*X0L| zy+=ALmn`S zf`V?qWbmjyZY(ozGf=25(Vm`+7mbUpFi#Jjm$`S0>phoe`_XzK^XoFr@YBW$0?wj7 zw^-Sb*)P^uSX150<|US z2Xlr3X?zDxZ&?4y?G~t1X9PsO)hkhQv37mm0bCUy{50APo90KZ| zj`{o=9=Y3jf-O1P^5zNtK@p)^_fOJh^0W+vTjQPHQeQ{zH$SBn*Mcs7EYC0#)|Z% zvFqb9a;D%1nDor{;xhf@5Tbd@&RfGgjGGp3gCOzU;-I`{Wm+M_X@gTX2{d4$tvuZ< z^>ch(=kZEqM2?d6slyC4Sngyeg$`L6zI?1GwqN6#L#k)=6-J#HyGQ0({uG_f)f<>A zzt0Y`J|TGhtZj}#ONL@7MZ%AF>6vNdDcYj4aw=o8u`pi5Eu8WINqu+R;s!K5&8vc0 zS=6Iz{(6Yrs#QSSmdC#^y<@ZJ7ntC*1lfF*7QMA3x5KYLNUo=6{6Am3w*2Ei^pFe|wv2esN8!ww< z+0Wl`YdHV&;eOKNRccPGy8NU6OSRZBI$_6~Eb?|YuWkdv4HQXgyLZCF2-9f8jgZYe zLu+zk6W5;aiN`3;Il-Ar#`!8rW$=|lkVXjB;dIa9^H)TZS7Qv7&lbVhcq`c)kM&@B z`&`GNpuwr?rbjI5+uBpQG8*DZb3ZEpUfUHAxj$nEBxCpH-;c3Tu-u8o59yK7ewA%p z&#o6!7yaG+q((AkwdgIh?!hVub!l{#7SaqE+sN4H*nQLGhG1)Qwk#@3KB4w;9Y+Vs zW@k=S)Ez#>FMfZ0;3|u4SB%Sa|5vBLQ%HPV90s%I*naAnGYL{O`2oHEsNxD3 awI_{_7EyV2N&FR^2KajVBWw4Eru+la4B%h@ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index 0e82dee15..69005910c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 0e8244587..9891a550e 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -d5757ecf9196680799b77c7df7812739 \ No newline at end of file +e8088dfebeef2063ab67c51ff0d6c302 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index 87a96144784de4c18e3939a44f23ee471a0cee9e..2a9f64cee478f4abf9aff37e41a586cee33f93d6 100644 GIT binary patch literal 3537 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 LNkvXXu0mjfvdaxj literal 2005 zcmcIl{W}wi7av86%}XRNqfm0YxGUz4*4yTFjkL-wZM5AkHuI8MHHnKDB9UlbB5gC> zlo&I2t1yz6%4CYQ-pEUn#Vn&-eSi4g=lchIpYxp0d7g7VKb+^B^PErSL4R-HI`ee^ z008LggFLhn%T_#FM|%YmI3)*Hf;JxIjRY+JunGaY003B%<%`^R_-v`X>`}I*r*X#v zhMmzfJA<`nby`!xoDBy`$81uv==t=t)$7sPOQuVxYssomCmep$qh4Qqn!>=@C`bo) z|K9eNHRz$<*-&>1t)=ER|2FOjT4??A%V|!n3axZg*3^)ofX!(J`*k?rDwA+BS$>ON zI+*3%THO1G>f`J}fO#E=xLN~X2qRx=W|>@0+iWAzD1A<6{=rXQIA06S*Nah2VGUBH1EEZfOv6l59GwG2YMz0WR>h&B};hUuwyC2gy51#^ntp~EhnQ;T;? zzBdIo-USWEhG3;}wNqsCjMoK@V|iY~i@KRNER>?R2A3cPR}wpI@QHU81n8C%D&E~% z;ZUVHb_lQTsQYGh)5Bh*qL9y9?DVQ4$#@;~y$@pj+z#n@swi@c=axl2(+$@=E^PBG z0qr&6*fz076bJ`*!QlK_ZB_&|N4ekLVGD*5;C2-^>{cB-c(nHO5VenGi>%7dD{ld_ zqitNaUU15Sfm~ zz5YR5HwWY@HX~dxz7oKF$NV4>6iSw_mn1Wouqlu zJ$j}Zk z_-S8^Qxoe|#e}9|YMj?S)rXl)$(M!43yMw?e=w6#vMxh_b%m?O&WDv5`ihggk0|$v zwL(Gf3F7Mt-A$UMPnjIAa6SMTgG-*ypV6>A`>~aL4whZLu5w~m^I3%d#!%3kheA`} zOsm!IK+_`*E@k%hW}kG2HEkbidBTn$#OG{MbniK`EP7V|`fU^lCj>1t#>Yf{6yhRuWO9;t09NogQJgqz)8t?Ar95}Q*X0L| zy+=ALmn`S zf`V?qWbmjyZY(ozGf=25(Vm`+7mbUpFi#Jjm$`S0>phoe`_XzK^XoFr@YBW$0?wj7 zw^-Sb*)P^uSX150<|US z2Xlr3X?zDxZ&?4y?G~t1X9PsO)hkhQv37mm0bCUy{50APo90KZ| zj`{o=9=Y3jf-O1P^5zNtK@p)^_fOJh^0W+vTjQPHQeQ{zH$SBn*Mcs7EYC0#)|Z% zvFqb9a;D%1nDor{;xhf@5Tbd@&RfGgjGGp3gCOzU;-I`{Wm+M_X@gTX2{d4$tvuZ< z^>ch(=kZEqM2?d6slyC4Sngyeg$`L6zI?1GwqN6#L#k)=6-J#HyGQ0({uG_f)f<>A zzt0Y`J|TGhtZj}#ONL@7MZ%AF>6vNdDcYj4aw=o8u`pi5Eu8WINqu+R;s!K5&8vc0 zS=6Iz{(6Yrs#QSSmdC#^y<@ZJ7ntC*1lfF*7QMA3x5KYLNUo=6{6Am3w*2Ei^pFe|wv2esN8!ww< z+0Wl`YdHV&;eOKNRccPGy8NU6OSRZBI$_6~Eb?|YuWkdv4HQXgyLZCF2-9f8jgZYe zLu+zk6W5;aiN`3;Il-Ar#`!8rW$=|lkVXjB;dIa9^H)TZS7Qv7&lbVhcq`c)kM&@B z`&`GNpuwr?rbjI5+uBpQG8*DZb3ZEpUfUHAxj$nEBxCpH-;c3Tu-u8o59yK7ewA%p z&#o6!7yaG+q((AkwdgIh?!hVub!l{#7SaqE+sN4H*nQLGhG1)Qwk#@3KB4w;9Y+Vs zW@k=S)Ez#>FMfZ0;3|u4SB%Sa|5vBLQ%HPV90s%I*naAnGYL{O`2oHEsNxD3 awI_{_7EyV2N&FR^2KajVBWw4Eru+la4B%h@ diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.map b/structentt_1_1is__meta__pointer__like__coll__graph.map index bc96506cf..943ea0f7b 100644 --- a/structentt_1_1is__meta__pointer__like__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like__coll__graph.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.md5 b/structentt_1_1is__meta__pointer__like__coll__graph.md5 index 283237acc..b5cdeea64 100644 --- a/structentt_1_1is__meta__pointer__like__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like__coll__graph.md5 @@ -1 +1 @@ -0775a49f465b2d5523688a3bbee8713c \ No newline at end of file +ec2531811bb76ece152ab15f49d0dd98 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.png b/structentt_1_1is__meta__pointer__like__coll__graph.png index b0e83ee9bbe6fb08bf4d65c2b3adf3042b8a316c..4607f45cd769f0ef6de40d76ec46ee3411cba60b 100644 GIT binary patch literal 1817 zcmb_di!&Qo7f)XpT2UBZZ@|{)QPIvW)EEZ+y}ht$^aaTasu|j( z_Yb!Fgbe{)v(sZ|WH*cPn^&TknwFdEefvwxtKM(3-jLrMFMPkx?!;ua8%;*;0m*R!6H|)J8TFGdK)|QktY5fPgjW0Syl$LUUw<9C%^_ae z;Q)ujnFA*FdN@D>K?iuon*gvv?l3VlwUS*7Q* zklj-?a9wfn+-eC_5H7Y6jh=65HKnX{-ni{KVw5adLZ#g5SS;%eysPbBnbCXvu#U06 zMRYzq0O3i2qG-)x~Rq#rf{7MjSiJ34c!M@@%=a&?+ zPXdv0o+_5E71QNSzsBxkF^Ea zo!>_+zo=NYjC~A4?k&LJ6_E+5pYPYqEYtg*U(;5__q87SX~_GDryV;&kza*q5vC)s z0i|dH_@1o{L@l}$ZE@N567GW!UO(9Af&tAh;`Jyi@SG&itTcT%&rDphx}zvZHyg4i z9HRb)5JJz7FljV{eF-ZFD%J~5j=OnTk8-QmSxD?cH^IKS92@>vWqa=S@S4!O|@V4`jx@cH(!&~MGqGi(aKGW)}qSl zIe}eR9UVFdKlNZq!^I6dWP2xhPdLsn{5(9H$LCuSiA1O6SQNjt)m`*s*7$-_89FGV z|Fia{A?DrhAWTfI)_jzQ7wY8H&=|0@v2mJD_d+f<;Y4V;dr3DE6rE+zmUH3A-Hk1_ zN9Tu(R~wwpfupHqbsT1`vUQy!uAXCYQl#o8L3o((mizpjo_`x{Do%=H|7X_hD!bRTf;jyePt7DvM3#_wm8|5C2XF$9%2)(u+5RaLH(4E+o` zYH^P-lOV9QNL9WrkVqtV@yNHckTWw2$Zu@L8^Q3I;?QPkGXu5yjodpGA0Z ziS`sO>=c&8c=^P|?AWgPuKHgd8gvC-<)th4vM5!GYwy#MuH<$F^XZjI65~Jd-2T;% zH48BRWb>KT@>xTM4Rq)GbX92Oq`yGj;VZSiL29r6(6T-ycQ}@AJ}Pj-E=`9^f#TF% zMvGZtYR^jCz(%X6*L4vSXKqAxcznIW*L2{rL)dC=zsY)C68?Z4CGi0|Lc3$Nq=H!u ze`k!3CE_P}2(^M8PjCy}>TnowFBNSXW~PmyU!GtKBOgT5rGi>ZX&OR5E_OoHJrtQ) zsHv&wn+kRRWV6UY7SK_C$U@bWh=YfGdO&(+H0G5)k?z0pwTx5NmvI6NA;sXEliwUT z?zV%WZ^3Xjk2$;XOgH)WxTz>tuRt`f$EgC?ZkKf3 literal 1717 zcmb_d`&ZHl7DqciMrE|rM47?VDYI!bR{d&Owqufy3Val5iAMNHfk;c;LD3mo(J>L7 zLJiHzN<~7+ghum)%%-i9E51Nd+)7hS#YSSqz@`0Rcm9CA_uPBWx%d8X&*yW`y+4N` zgTQ7EW*`s<91Q zqNt=NQfU<>%=dW}hrwXTalAY)v=Fq*c@>JADV3TOxHz*xm-x-k&adD;7 zU|L&yyL}fuWF1!Y5l(nO#kzP~Kv}ogT>Cd_WGTEp%TW%nFyUD9A70boR@;k$xj^AW zTC|NVu0El1nvM#?{>l@S}4)+5)ZbHx5Kz_lgx!~I5Nrh&%Lm!SB7t0o|SWQ zx$H!+dn78J$ZBXA)2d&%6F_4P+hjIg5BOvEkqX^rf)A};xAtJ4Sexs zJF3)xJ$T9C;Ra)F06@i(0H*Ane<)bMMa)B){}{cB^rijcK&6cx_zV>EuJS}f0t7%g z_fE%0MupceWZk!f9S+;@`T4A_<_L|XuI;z(p_pv@GR?n^DuVp}PXe&%mE<_po%gR- zqP)wWc#i6q6lGs|d~PTP6|85iak-z6GZWkKT|dfw)&sKNRJj&pH$+x2L;LW6rMda9 zpz{VG3ocm&{ozk(AqcGG@W~&)P0BCayzaVZ>ox6xku4Q_r7bh6cE`2r&c6H}Mft7S zP;s4^kbCfuai@`BZK~48PAxINy7cYkW>JqFcH@8jh&(}qfy1%zj;db z5>X`Sem_xEZ_%V+X^xd#1-BIy5}Kvy)#AOKgub2T+cK;i;Q{LJAs@UDD)OYsxQJhP zIAkO$azUFTOKF;kI95YQ!HcrE-YHjXe`j zVKf(4#$#1x24_$EGER#IRZ`XI1L|5GVwJ K3~UZKpZ{-`4`X2f diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.map b/structentt_1_1is__meta__pointer__like__inherit__graph.map index bc96506cf..943ea0f7b 100644 --- a/structentt_1_1is__meta__pointer__like__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like__inherit__graph.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like__inherit__graph.md5 index 283237acc..b5cdeea64 100644 --- a/structentt_1_1is__meta__pointer__like__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like__inherit__graph.md5 @@ -1 +1 @@ -0775a49f465b2d5523688a3bbee8713c \ No newline at end of file +ec2531811bb76ece152ab15f49d0dd98 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.png b/structentt_1_1is__meta__pointer__like__inherit__graph.png index b0e83ee9bbe6fb08bf4d65c2b3adf3042b8a316c..4607f45cd769f0ef6de40d76ec46ee3411cba60b 100644 GIT binary patch literal 1817 zcmb_di!&Qo7f)XpT2UBZZ@|{)QPIvW)EEZ+y}ht$^aaTasu|j( z_Yb!Fgbe{)v(sZ|WH*cPn^&TknwFdEefvwxtKM(3-jLrMFMPkx?!;ua8%;*;0m*R!6H|)J8TFGdK)|QktY5fPgjW0Syl$LUUw<9C%^_ae z;Q)ujnFA*FdN@D>K?iuon*gvv?l3VlwUS*7Q* zklj-?a9wfn+-eC_5H7Y6jh=65HKnX{-ni{KVw5adLZ#g5SS;%eysPbBnbCXvu#U06 zMRYzq0O3i2qG-)x~Rq#rf{7MjSiJ34c!M@@%=a&?+ zPXdv0o+_5E71QNSzsBxkF^Ea zo!>_+zo=NYjC~A4?k&LJ6_E+5pYPYqEYtg*U(;5__q87SX~_GDryV;&kza*q5vC)s z0i|dH_@1o{L@l}$ZE@N567GW!UO(9Af&tAh;`Jyi@SG&itTcT%&rDphx}zvZHyg4i z9HRb)5JJz7FljV{eF-ZFD%J~5j=OnTk8-QmSxD?cH^IKS92@>vWqa=S@S4!O|@V4`jx@cH(!&~MGqGi(aKGW)}qSl zIe}eR9UVFdKlNZq!^I6dWP2xhPdLsn{5(9H$LCuSiA1O6SQNjt)m`*s*7$-_89FGV z|Fia{A?DrhAWTfI)_jzQ7wY8H&=|0@v2mJD_d+f<;Y4V;dr3DE6rE+zmUH3A-Hk1_ zN9Tu(R~wwpfupHqbsT1`vUQy!uAXCYQl#o8L3o((mizpjo_`x{Do%=H|7X_hD!bRTf;jyePt7DvM3#_wm8|5C2XF$9%2)(u+5RaLH(4E+o` zYH^P-lOV9QNL9WrkVqtV@yNHckTWw2$Zu@L8^Q3I;?QPkGXu5yjodpGA0Z ziS`sO>=c&8c=^P|?AWgPuKHgd8gvC-<)th4vM5!GYwy#MuH<$F^XZjI65~Jd-2T;% zH48BRWb>KT@>xTM4Rq)GbX92Oq`yGj;VZSiL29r6(6T-ycQ}@AJ}Pj-E=`9^f#TF% zMvGZtYR^jCz(%X6*L4vSXKqAxcznIW*L2{rL)dC=zsY)C68?Z4CGi0|Lc3$Nq=H!u ze`k!3CE_P}2(^M8PjCy}>TnowFBNSXW~PmyU!GtKBOgT5rGi>ZX&OR5E_OoHJrtQ) zsHv&wn+kRRWV6UY7SK_C$U@bWh=YfGdO&(+H0G5)k?z0pwTx5NmvI6NA;sXEliwUT z?zV%WZ^3Xjk2$;XOgH)WxTz>tuRt`f$EgC?ZkKf3 literal 1717 zcmb_d`&ZHl7DqciMrE|rM47?VDYI!bR{d&Owqufy3Val5iAMNHfk;c;LD3mo(J>L7 zLJiHzN<~7+ghum)%%-i9E51Nd+)7hS#YSSqz@`0Rcm9CA_uPBWx%d8X&*yW`y+4N` zgTQ7EW*`s<91Q zqNt=NQfU<>%=dW}hrwXTalAY)v=Fq*c@>JADV3TOxHz*xm-x-k&adD;7 zU|L&yyL}fuWF1!Y5l(nO#kzP~Kv}ogT>Cd_WGTEp%TW%nFyUD9A70boR@;k$xj^AW zTC|NVu0El1nvM#?{>l@S}4)+5)ZbHx5Kz_lgx!~I5Nrh&%Lm!SB7t0o|SWQ zx$H!+dn78J$ZBXA)2d&%6F_4P+hjIg5BOvEkqX^rf)A};xAtJ4Sexs zJF3)xJ$T9C;Ra)F06@i(0H*Ane<)bMMa)B){}{cB^rijcK&6cx_zV>EuJS}f0t7%g z_fE%0MupceWZk!f9S+;@`T4A_<_L|XuI;z(p_pv@GR?n^DuVp}PXe&%mE<_po%gR- zqP)wWc#i6q6lGs|d~PTP6|85iak-z6GZWkKT|dfw)&sKNRJj&pH$+x2L;LW6rMda9 zpz{VG3ocm&{ozk(AqcGG@W~&)P0BCayzaVZ>ox6xku4Q_r7bh6cE`2r&c6H}Mft7S zP;s4^kbCfuai@`BZK~48PAxINy7cYkW>JqFcH@8jh&(}qfy1%zj;db z5>X`Sem_xEZ_%V+X^xd#1-BIy5}Kvy)#AOKgub2T+cK;i;Q{LJAs@UDD)OYsxQJhP zIAkO$azUFTOKF;kI95YQ!HcrE-YHjXe`j zVKf(4#$#1x24_$EGER#IRZ`XI1L|5GVwJ K3~UZKpZ{-`4`X2f diff --git a/structentt_1_1is__meta__policy.html b/structentt_1_1is__meta__policy.html index 8b03713e7..2612a8271 100644 --- a/structentt_1_1is__meta__policy.html +++ b/structentt_1_1is__meta__policy.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_meta_policy< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_meta_policy< Type > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::is_meta_policy< Type >:
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_meta_policy< Type >

    Provides the member constant value to true if a type also is a meta policy, false otherwise.

    Template Parameters
    @@ -120,7 +133,8 @@ struct entt::is_meta_policy< Type >

    Provides the member constant <

    + diff --git a/structentt_1_1is__transparent.html b/structentt_1_1is__transparent.html index fea648afb..976f9d2b7 100644 --- a/structentt_1_1is__transparent.html +++ b/structentt_1_1is__transparent.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_transparent< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_transparent< Type, typename > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::is_transparent< Type, typename >:
    [legend]

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::is_transparent< Type, typename >

    Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise.

    Template Parameters
    @@ -113,14 +126,15 @@ struct entt::is_transparent< Type, typename >

    Provides the member -

    Definition at line 724 of file type_traits.hpp.

    +

    Definition at line 726 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html index 5c9130c3f..295845082 100644 --- a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html +++ b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::is_transparent< Type, std::void_t< typename Type::is_transparent > > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::is_transparent< Type, std::void_t< typename Type::is_transparent > > Struct Template Reference
    -

    Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. +

    Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::is_transparent< Type, std::void_t< typename
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,29 +113,32 @@ Collaboration diagram for entt::is_transparent< Type, std::void_t< typenam
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::is_transparent< Type, std::void_t< typename Type::is_transparent > >

    Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise.

    +
    template<typename Type>
    +struct entt::is_transparent< Type, std::void_t< typename Type::is_transparent > >

    Provides the member constant value to true if Type::is_transparent is valid and denotes a type, false otherwise.

    Template Parameters
    - +
    TypeThe type to test.
    TypeThe type to test.
    -

    Definition at line 728 of file type_traits.hpp.

    +

    Definition at line 730 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.map b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.map index 8da819e44..684ec6df8 100644 --- a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.md5 b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.md5 index 66e94db31..84f07a3d7 100644 --- a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -5a5910c12b7031a3bb70cc23c3c07dc7 \ No newline at end of file +8ccc9ad62c71e9f82d2c39e28c3419da \ No newline at end of file diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.png b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__coll__graph.png index 728277832de349ef97e96faffe3d9b48bbfdb507..edba10897b2a48f81a468c4baf109786679163b3 100644 GIT binary patch literal 3622 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 literal 2135 zcmcgtiBl2?7bh{%@~G4_CCy{8V#_qi8%<0xMZ9%Q(O@;rD8u`}(kM|;@u)m1wLI5b zH%w5(zC2dVBQzJ#uw?Tj%FQET>$B#YZ@$0an>WAr=Kbcqc{6X`k>Td*sIW(44*&pA za6;O9?AVVx$dZ-W(LpUL)Ey&(b#}A|eETlt-8BUOfULZe{aLU02g2F0EbuuM)+gW7 zjPghNNc&#IcmSc`<_%lj+TJ5}NY<8~`kB8?@dvHroxk1;v(0BvS1|c4p!K%7M9=(H z*93C=QZ${;px4uvr;=@2R-@5z(<@6Ufm7Dr4Bef|06+t%z~bi23?oiNSXQ5l{V>zX ztHTZc;jj!K;3%DUEo6SzO@$)oWG;<9$SW{FS1STl#bR+AgHdWhSsn2J0fNmAsJl_5 zWmNQ1cl9CXNR+o1tSAU6M-}6F@*F6nOFSk> zT28o^#*p{4Bpe^~t9q_Rd}R|Pdi~dC!xjIga4u|2H62aCC;O{R5lXb4D;(1n?xb_` zFE6$+*?8WE#A}%`NUm9!9Wc`!*xX7>nxG{GTxKUzSrH?q`w^xSMp~#aTciIrVsGfT zZ)ZD^b7|Jw;x9@=eV&Ul39hm4v*^xw>*DX`S}yygbHR)gw1K^PCZ@hCBoYQ^vGBp&MtlisCF4b@TOQP>y3r# z236&NuDb!%7P&+*w_o|oaAuc|E;d`j_~iA5o-iRPusB0Hrw~w{U9;BbAy}V3*kioh8Xot(Yx zFsxG9P?Alc$qiSqhHiz-$-#<2RlT<8?rRNT{MDhVV>r72{m8SF!4BuVgkhO z!(^|d;KL^t2pD^0@R3W?A};Sc>gH{&W`MxVA47PmTwPB7sDsr1$qijTO{39HYT~X| z$;w52J;9`k$4LZJ{g8VC89 zp=|JYH;|PJP3;8zXS;%b%$Q4zl;OdwNgaUGPpG*>scnd0V$yl-@C0Ec+YkUTT;zmpC;CnV#BgH-l4=tV@y=*n{ne3+OF;ghs~3JKA3gCq#e($ zpXTv+hA*4Z&F{UR!ipK#uvcEyP)r%oxfR0?2^7megoNAGnEldU$cf#5$lsNpJD{r4;?IN9it_0W^m*Gk*-S}IHQ&hugp-r6~S0H=0^8<@;^}5u)@=yBNZ2Ik~Xen z#=n;O0~n;FWfcY{IowgxM;5~il4cbh=rsZlPkz_>Km0)xnK7cF0*-JKZ~D(b5x(pe%)7}C^8Gx#BZh%1!mP}I(qKxf9I#u7{&(=|beW z^*~V)%qAJKk_|B__lt$KIGCToC4_ZoWqzqIJl4oWH>OM#(izy=3i65r56&jZSP3?2 zQl7{gG<4iOHe5Ur3nt#Nt2S#w3@>V=99w&g$QF@X z{4&52t$1Wy@3vbf6CsUg?8xNBSysq%l*-)waf#%oG1bM(Ta>_NQ5$hAkk1qti65ai z#$NvB+u??g=FtytH>im*uymdLilO?rAO&|<{+OOu0&|##|5r^`1ckZ4vAL~9Z?Aw? zPAb9d3bmu238-8BFXlZltGI;=Px@<9+tG76mb}S;k~Rs|?ymN{Pw>csmA)2#4SSdY zJ`fkuRx^&@RAVanB$K-K^NB8~DDH^RA2Z2DI{kwtz nm!w2OA?gt5$8!b%%I&}H`s*$g4xc4Ne5ahwx!O0`1*iQRrlSG$ diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.map b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.map index 8da819e44..684ec6df8 100644 --- a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.md5 index 66e94db31..84f07a3d7 100644 --- a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -5a5910c12b7031a3bb70cc23c3c07dc7 \ No newline at end of file +8ccc9ad62c71e9f82d2c39e28c3419da \ No newline at end of file diff --git a/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.png b/structentt_1_1is__transparent_3_01Type_00_01std_1_1void__t_3_01typename_01Type_1_1is__transparent_01_4_01_4__inherit__graph.png index 728277832de349ef97e96faffe3d9b48bbfdb507..edba10897b2a48f81a468c4baf109786679163b3 100644 GIT binary patch literal 3622 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 literal 2135 zcmcgtiBl2?7bh{%@~G4_CCy{8V#_qi8%<0xMZ9%Q(O@;rD8u`}(kM|;@u)m1wLI5b zH%w5(zC2dVBQzJ#uw?Tj%FQET>$B#YZ@$0an>WAr=Kbcqc{6X`k>Td*sIW(44*&pA za6;O9?AVVx$dZ-W(LpUL)Ey&(b#}A|eETlt-8BUOfULZe{aLU02g2F0EbuuM)+gW7 zjPghNNc&#IcmSc`<_%lj+TJ5}NY<8~`kB8?@dvHroxk1;v(0BvS1|c4p!K%7M9=(H z*93C=QZ${;px4uvr;=@2R-@5z(<@6Ufm7Dr4Bef|06+t%z~bi23?oiNSXQ5l{V>zX ztHTZc;jj!K;3%DUEo6SzO@$)oWG;<9$SW{FS1STl#bR+AgHdWhSsn2J0fNmAsJl_5 zWmNQ1cl9CXNR+o1tSAU6M-}6F@*F6nOFSk> zT28o^#*p{4Bpe^~t9q_Rd}R|Pdi~dC!xjIga4u|2H62aCC;O{R5lXb4D;(1n?xb_` zFE6$+*?8WE#A}%`NUm9!9Wc`!*xX7>nxG{GTxKUzSrH?q`w^xSMp~#aTciIrVsGfT zZ)ZD^b7|Jw;x9@=eV&Ul39hm4v*^xw>*DX`S}yygbHR)gw1K^PCZ@hCBoYQ^vGBp&MtlisCF4b@TOQP>y3r# z236&NuDb!%7P&+*w_o|oaAuc|E;d`j_~iA5o-iRPusB0Hrw~w{U9;BbAy}V3*kioh8Xot(Yx zFsxG9P?Alc$qiSqhHiz-$-#<2RlT<8?rRNT{MDhVV>r72{m8SF!4BuVgkhO z!(^|d;KL^t2pD^0@R3W?A};Sc>gH{&W`MxVA47PmTwPB7sDsr1$qijTO{39HYT~X| z$;w52J;9`k$4LZJ{g8VC89 zp=|JYH;|PJP3;8zXS;%b%$Q4zl;OdwNgaUGPpG*>scnd0V$yl-@C0Ec+YkUTT;zmpC;CnV#BgH-l4=tV@y=*n{ne3+OF;ghs~3JKA3gCq#e($ zpXTv+hA*4Z&F{UR!ipK#uvcEyP)r%oxfR0?2^7megoNAGnEldU$cf#5$lsNpJD{r4;?IN9it_0W^m*Gk*-S}IHQ&hugp-r6~S0H=0^8<@;^}5u)@=yBNZ2Ik~Xen z#=n;O0~n;FWfcY{IowgxM;5~il4cbh=rsZlPkz_>Km0)xnK7cF0*-JKZ~D(b5x(pe%)7}C^8Gx#BZh%1!mP}I(qKxf9I#u7{&(=|beW z^*~V)%qAJKk_|B__lt$KIGCToC4_ZoWqzqIJl4oWH>OM#(izy=3i65r56&jZSP3?2 zQl7{gG<4iOHe5Ur3nt#Nt2S#w3@>V=99w&g$QF@X z{4&52t$1Wy@3vbf6CsUg?8xNBSysq%l*-)waf#%oG1bM(Ta>_NQ5$hAkk1qti65ai z#$NvB+u??g=FtytH>im*uymdLilO?rAO&|<{+OOu0&|##|5r^`1ckZ4vAL~9Z?Aw? zPAb9d3bmu238-8BFXlZltGI;=Px@<9+tG76mb}S;k~Rs|?ymN{Pw>csmA)2#4SSdY zJ`fkuRx^&@RAVanB$K-K^NB8~DDH^RA2Z2DI{kwtz nm!w2OA?gt5$8!b%%I&}H`s*$g4xc4Ne5ahwx!O0`1*iQRrlSG$ diff --git a/structentt_1_1is__tuple.html b/structentt_1_1is__tuple.html index 64114f094..49e8e816d 100644 --- a/structentt_1_1is__tuple.html +++ b/structentt_1_1is__tuple.html @@ -3,13 +3,15 @@ - + EnTT: entt::is_tuple< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::is_tuple< Type > Struct Template Reference
    @@ -88,9 +101,9 @@ Inheritance diagram for entt::is_tuple< Type >:
    Inheritance graph
    - - - + + +
    [legend]
    @@ -98,13 +111,13 @@ Collaboration diagram for entt::is_tuple< Type >:
    Collaboration graph
    - - - + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::is_tuple< Type >

    Provides the member constant value to true if a given type is a tuple, false otherwise.

    Template Parameters
    @@ -113,14 +126,15 @@ struct entt::is_tuple< Type >

    Provides the member constant v -

    Definition at line 28 of file tuple.hpp.

    +

    Definition at line 16 of file tuple.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..2c820c046 --- /dev/null +++ b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html @@ -0,0 +1,144 @@ + + + + + + + +EnTT: entt::is_tuple< std::tuple< Args... > > Struct Template Reference + + + + + + + + + + + + + +
    +
    +
    + + + + + +
    +
    EnTT 3.15.0 +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    entt::is_tuple< std::tuple< Args... > > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is a tuple, false otherwise. + More...

    + +

    #include <tuple.hpp>

    +
    +Inheritance diagram for entt::is_tuple< std::tuple< Args... > >:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_tuple< std::tuple< Args... > >:
    +
    +
    Collaboration graph
    + + + + + + + +
    [legend]
    +

    Detailed Description

    +
    template<typename... Args>
    +struct entt::is_tuple< std::tuple< Args... > >

    Provides the member constant value to true if a given type is a tuple, false otherwise.

    +
    Template Parameters
    + + +
    ArgsTuple template arguments.
    +
    +
    + +

    Definition at line 23 of file tuple.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..849dd9818 --- /dev/null +++ b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..d2e2a7155 --- /dev/null +++ b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +26b9189c18137abaca5ca63d4d390050 \ No newline at end of file diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f4fa6baf0622b563253a64ca95074e975dd816 GIT binary patch literal 3542 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 Qm;e9(07*qoM6N<$f}mzcdjJ3c literal 0 HcmV?d00001 diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map new file mode 100644 index 000000000..849dd9818 --- /dev/null +++ b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 new file mode 100644 index 000000000..d2e2a7155 --- /dev/null +++ b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -0,0 +1 @@ +26b9189c18137abaca5ca63d4d390050 \ No newline at end of file diff --git a/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__tuple_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f4fa6baf0622b563253a64ca95074e975dd816 GIT binary patch literal 3542 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 Qm;e9(07*qoM6N<$f}mzcdjJ3c literal 0 HcmV?d00001 diff --git a/structentt_1_1is__tuple__coll__graph.map b/structentt_1_1is__tuple__coll__graph.map index 8aba00723..89d8b5819 100644 --- a/structentt_1_1is__tuple__coll__graph.map +++ b/structentt_1_1is__tuple__coll__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1is__tuple__coll__graph.md5 b/structentt_1_1is__tuple__coll__graph.md5 index 951a152f6..d238b6bff 100644 --- a/structentt_1_1is__tuple__coll__graph.md5 +++ b/structentt_1_1is__tuple__coll__graph.md5 @@ -1 +1 @@ -eadec721b170202e2918614a935777c9 \ No newline at end of file +7902143ec72dcc9065088f7cc05fb717 \ No newline at end of file diff --git a/structentt_1_1is__tuple__coll__graph.png b/structentt_1_1is__tuple__coll__graph.png index 8be3f2d284e8ee0124366c766b0810ea3b7af94a..e15f844d4f8c2f0153e1af0491891bd53977016a 100644 GIT binary patch literal 1486 zcmb_cc{J1u6#h*ygi`ipCQF{>5vj}*2PtBV8N0C!LW^yv>|->DvBYE(c>}XS(Da~TubYp(&>|(dYRM}V49r~&6h*2R`b#?WsjSFcZS8+JpaaV8V z)bjFj&fyh_bEo$Kb`)+Us|xjpI{@;Jk5|mj&Q>eYaM;<|Q6LTVvluCDRzXjId~NU@ zD?@@ti01yfLQXBhj>1~_>uA9T4aFz=0~LiS<4RuKk=)7F+zsuQ!04YDCWI}f2L!r4 zGtvq>9!(~gHbkqFk*viCK#67vp{bSY8l1W|k5aVsN6Nbf!&@r+P$a03;#L~-cC ztGoptKD$bJb{cO)K_*1yV>vdhE-k$7&U$<~i$%|^4?WLOF7>cB-PdJ*W2#bpvuoo4R(lh3Sba`6hXd zy4Dbo@?FUE$@{k?-^8tbCC2$ttD+1E!#@3!Je=mhBlk{qG^)#37`MINe!txGsTuHE zej+qYgt$9XT@t#S>=+E65nT-aqGrBt)hE7Zv@>!|-CRanCs?AwAg#e}mf3Qt-iQir z*1A@jVwU*hLDEI@fjtg|SVv=Xyj(WN&-vScdy#%F;pqIr>Vf)g`(w(G>DfrxY7&T7 zxn?cU=kL6cE=_^r`LrbK@=q$vzTnyr0=loK@k@H0ZZrghfd)dc0|vbbvVPl~xnTe0*3 zwF?jOq7;E`$|YlnSI6Lb7h4JnVnBVyrZq98LLAt6rJM_-K6?g@;1VemkR;8+cwYfQ z4iQOxuejN4Bp10`q|&Wl5>i(`S&L+cK7w{*`x0^Qjx-^gsCXl#9QrmBtu;ZILp6Gh zs4N&X8ut{IqsUvq4CBpvuEWv z1Ps#|vXnU0f@JHqPo|B0NvUoQd<8v*uf%dm0cH6{urq#m=0{JU+9B>Sc!_lNVa;iD zZ!xs@^|djEjGm!VdI)X!h12+8p?frxi#v6hJ-%RLQFfaUUSmN)?EzX6&}y`umC literal 2074 zcmb_ddpHvc8{cspChROk=VZm)l6$cZLS}NC+lczy$#soyOjyG>E~8QybBQIIB*JEg zE%YsyP)zL7C>1id&LNVBPv7%B&-Z=*f6x28@9%lu_n+S%zu)i8^Kf&JKk(}T001EG z}sGnrnw@oeDwIe?x<0HV;AF322hJ2H%m26W?x^Q@H6q3u<-C~KA#V& z+myWgL+~-MI#?Pi`TlIy+1qMR@5Lu>?k78hr6@~On-dssf>$_mzkQt9WEg@@R1dQb32xr_0>y`-taMxCU%xE5XgI*! zT}uqOf3cm8ffWaEUR>VpGkZ9ETJGVCzgqdPTZf&9E|F&DYqI5|o8>ee&AHmH!X&*{YGR;8Uc}1zN+pchZQMhr$zj`wJ#3^Ny z<(91tiD`V}8;x1Y>4icrk5@{i>v~ZHFuCEx_eV7@zo4m3<0o%35h@|Y9w#WKL6wB1 z13YDFo4-nei84mrzMNqxMYo+P1lPEx6urEP*5_Q1vU`GcYDj-qknx+-qk>6ItxZ!j z&N<8Vb8{W6~GqCx|zO>zdG`t|qf>OFT6dG=yZkbrg!9P&uu7yiKyjYf~% z7^;#c?0k9JluhZ`n-?3^&-c^4zFFsA!=z94MDdJHfQBj4Sr23G?ifV~;O zjNkr~U#cW9>BoZ-|M%m{Gz0?5J?5%iJdQb1tU>rZz=*zOA2 zHwz8QD^;|{KvB$kwyN;HqGSXse{ghK9{Q@fpS(|X)>+^ergD3uxX z&$N1Gl_~xY`JJ$f{$g&-|Clut5E-?%f(|+ zjLlm1M~U}PNp{_iJqhFIaS)XIw2K;p-|99D*o@ntue6WkM8nt<(J|K=mRW?p)ak;e zye4L<*{?Tlf1M}^PT<5ixUmhbRc`39D;5)Ylv69=yjOSZd?O(&W`_v%m@ACsU1~%J zl~DD9a_^WW>6_%{osS%k9}ePxnPi7E6r-lN)Hw?~FfLKw>QTd$g7w+g6UV|WwJ_@` zK_<(f6YvE}V7o1T``l31tM?W^VN?4{qdr~;^}gIVqOIXr0{(~*J?1B7M6gs6{EiD9 zg}sMF`k}~_FrkOefg?$aF)q)y8b^FownJ~e6y4!B`aViCJ1kcU9!dm9tHi-0eVv&F z17WQ6J?ns;v~R=@Ef?i`2X~i+Ifm38TFX%Efhm)ypE|;Bnf{kZW)_pLUajn(!B#Sf vAbMwK^y5gScm4f2tDA@){`FV^0HWKfP1`QLN>@L| - - - + + + diff --git a/structentt_1_1is__tuple__inherit__graph.md5 b/structentt_1_1is__tuple__inherit__graph.md5 index 951a152f6..d238b6bff 100644 --- a/structentt_1_1is__tuple__inherit__graph.md5 +++ b/structentt_1_1is__tuple__inherit__graph.md5 @@ -1 +1 @@ -eadec721b170202e2918614a935777c9 \ No newline at end of file +7902143ec72dcc9065088f7cc05fb717 \ No newline at end of file diff --git a/structentt_1_1is__tuple__inherit__graph.png b/structentt_1_1is__tuple__inherit__graph.png index 8be3f2d284e8ee0124366c766b0810ea3b7af94a..e15f844d4f8c2f0153e1af0491891bd53977016a 100644 GIT binary patch literal 1486 zcmb_cc{J1u6#h*ygi`ipCQF{>5vj}*2PtBV8N0C!LW^yv>|->DvBYE(c>}XS(Da~TubYp(&>|(dYRM}V49r~&6h*2R`b#?WsjSFcZS8+JpaaV8V z)bjFj&fyh_bEo$Kb`)+Us|xjpI{@;Jk5|mj&Q>eYaM;<|Q6LTVvluCDRzXjId~NU@ zD?@@ti01yfLQXBhj>1~_>uA9T4aFz=0~LiS<4RuKk=)7F+zsuQ!04YDCWI}f2L!r4 zGtvq>9!(~gHbkqFk*viCK#67vp{bSY8l1W|k5aVsN6Nbf!&@r+P$a03;#L~-cC ztGoptKD$bJb{cO)K_*1yV>vdhE-k$7&U$<~i$%|^4?WLOF7>cB-PdJ*W2#bpvuoo4R(lh3Sba`6hXd zy4Dbo@?FUE$@{k?-^8tbCC2$ttD+1E!#@3!Je=mhBlk{qG^)#37`MINe!txGsTuHE zej+qYgt$9XT@t#S>=+E65nT-aqGrBt)hE7Zv@>!|-CRanCs?AwAg#e}mf3Qt-iQir z*1A@jVwU*hLDEI@fjtg|SVv=Xyj(WN&-vScdy#%F;pqIr>Vf)g`(w(G>DfrxY7&T7 zxn?cU=kL6cE=_^r`LrbK@=q$vzTnyr0=loK@k@H0ZZrghfd)dc0|vbbvVPl~xnTe0*3 zwF?jOq7;E`$|YlnSI6Lb7h4JnVnBVyrZq98LLAt6rJM_-K6?g@;1VemkR;8+cwYfQ z4iQOxuejN4Bp10`q|&Wl5>i(`S&L+cK7w{*`x0^Qjx-^gsCXl#9QrmBtu;ZILp6Gh zs4N&X8ut{IqsUvq4CBpvuEWv z1Ps#|vXnU0f@JHqPo|B0NvUoQd<8v*uf%dm0cH6{urq#m=0{JU+9B>Sc!_lNVa;iD zZ!xs@^|djEjGm!VdI)X!h12+8p?frxi#v6hJ-%RLQFfaUUSmN)?EzX6&}y`umC literal 2074 zcmb_ddpHvc8{cspChROk=VZm)l6$cZLS}NC+lczy$#soyOjyG>E~8QybBQIIB*JEg zE%YsyP)zL7C>1id&LNVBPv7%B&-Z=*f6x28@9%lu_n+S%zu)i8^Kf&JKk(}T001EG z}sGnrnw@oeDwIe?x<0HV;AF322hJ2H%m26W?x^Q@H6q3u<-C~KA#V& z+myWgL+~-MI#?Pi`TlIy+1qMR@5Lu>?k78hr6@~On-dssf>$_mzkQt9WEg@@R1dQb32xr_0>y`-taMxCU%xE5XgI*! zT}uqOf3cm8ffWaEUR>VpGkZ9ETJGVCzgqdPTZf&9E|F&DYqI5|o8>ee&AHmH!X&*{YGR;8Uc}1zN+pchZQMhr$zj`wJ#3^Ny z<(91tiD`V}8;x1Y>4icrk5@{i>v~ZHFuCEx_eV7@zo4m3<0o%35h@|Y9w#WKL6wB1 z13YDFo4-nei84mrzMNqxMYo+P1lPEx6urEP*5_Q1vU`GcYDj-qknx+-qk>6ItxZ!j z&N<8Vb8{W6~GqCx|zO>zdG`t|qf>OFT6dG=yZkbrg!9P&uu7yiKyjYf~% z7^;#c?0k9JluhZ`n-?3^&-c^4zFFsA!=z94MDdJHfQBj4Sr23G?ifV~;O zjNkr~U#cW9>BoZ-|M%m{Gz0?5J?5%iJdQb1tU>rZz=*zOA2 zHwz8QD^;|{KvB$kwyN;HqGSXse{ghK9{Q@fpS(|X)>+^ergD3uxX z&$N1Gl_~xY`JJ$f{$g&-|Clut5E-?%f(|+ zjLlm1M~U}PNp{_iJqhFIaS)XIw2K;p-|99D*o@ntue6WkM8nt<(J|K=mRW?p)ak;e zye4L<*{?Tlf1M}^PT<5ixUmhbRc`39D;5)Ylv69=yjOSZd?O(&W`_v%m@ACsU1~%J zl~DD9a_^WW>6_%{osS%k9}ePxnPi7E6r-lN)Hw?~FfLKw>QTd$g7w+g6UV|WwJ_@` zK_<(f6YvE}V7o1T``l31tM?W^VN?4{qdr~;^}gIVqOIXr0{(~*J?1B7M6gs6{EiD9 zg}sMF`k}~_FrkOefg?$aF)q)y8b^FownJ~e6y4!B`aViCJ1kcU9!dm9tHi-0eVv&F z17WQ6J?ns;v~R=@Ef?i`2X~i+Ifm38TFX%Efhm)ypE|;Bnf{kZW)_pLUajn(!B#Sf vAbMwK^y5gScm4f2tDA@){`FV^0HWKfP1`QLN>@L| - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::iterable_adaptor< It, Sentinel > Member List
    @@ -93,7 +106,8 @@ $(function() {
    +
    diff --git a/structentt_1_1iterable__adaptor.html b/structentt_1_1iterable__adaptor.html index 5024a4bcb..57763a602 100644 --- a/structentt_1_1iterable__adaptor.html +++ b/structentt_1_1iterable__adaptor.html @@ -3,13 +3,15 @@ - + EnTT: entt::iterable_adaptor< It, Sentinel > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::iterable_adaptor< It, Sentinel > Struct Template Referencefinal
    +
    entt::iterable_adaptor< It, Sentinel > Struct Template Referencefinal
    @@ -90,39 +103,39 @@ $(function() { - + - + - +

    Public Types

    using value_type = typename std::iterator_traits<It>::value_type
    using value_type = typename std::iterator_traits<It>::value_type
     Value type.
     
    using iterator = It
    using iterator = It
     Iterator type.
     
    using sentinel = Sentinel
    using sentinel = Sentinel
     Sentinel type.
     
    - + - + - + - + - - + + - - + +

    Public Member Functions

    constexpr iterable_adaptor () noexcept(std::is_nothrow_default_constructible_v< iterator > &&std::is_nothrow_default_constructible_v< sentinel >)
    constexpr iterable_adaptor () noexcept(std::is_nothrow_default_constructible_v< iterator > &&std::is_nothrow_default_constructible_v< sentinel >)
     Default constructor.
     
    constexpr iterable_adaptor (iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v< iterator > &&std::is_nothrow_move_constructible_v< sentinel >)
    constexpr iterable_adaptor (iterator from, sentinel to) noexcept(std::is_nothrow_move_constructible_v< iterator > &&std::is_nothrow_move_constructible_v< sentinel >)
     Creates an iterable object from a pair of iterators.
     
    constexpr iterator begin () const noexcept
    constexpr iterator begin () const noexcept
     Returns an iterator to the beginning.
     
    constexpr sentinel end () const noexcept
    constexpr sentinel end () const noexcept
     Returns an iterator to the end.
     
    constexpr iterator cbegin () const noexcept
     Returns an iterator to the beginning.
    constexpr iterator cbegin () const noexcept
     Returns an iterator to the beginning.
     
    constexpr sentinel cend () const noexcept
     Returns an iterator to the end.
    constexpr sentinel cend () const noexcept
     Returns an iterator to the end.
     

    Detailed Description

    -
    template<typename It, typename Sentinel = It>
    +
    template<typename It, typename Sentinel = It>
    struct entt::iterable_adaptor< It, Sentinel >

    Utility class to create an iterable object from a pair of iterators.

    Template Parameters
    @@ -140,10 +153,10 @@ struct entt::iterable_adaptor< It, Sentinel >

    Utility class to cre

    -template<typename It , typename Sentinel = It>
    +template<typename It, typename Sentinel = It>
    - +
    using entt::iterable_adaptor< It, Sentinel >::iterator = Itusing entt::iterable_adaptor< It, Sentinel >::iterator = It
    @@ -160,10 +173,10 @@ template<
    +template<typename It, typename Sentinel = It>
    - +
    using entt::iterable_adaptor< It, Sentinel >::sentinel = Sentinelusing entt::iterable_adaptor< It, Sentinel >::sentinel = Sentinel
    @@ -180,10 +193,10 @@ template<
    +template<typename It, typename Sentinel = It>
    - +
    using entt::iterable_adaptor< It, Sentinel >::value_type = typename std::iterator_traits<It>::value_typeusing entt::iterable_adaptor< It, Sentinel >::value_type = typename std::iterator_traits<It>::value_type
    @@ -201,21 +214,21 @@ template<
    +template<typename It, typename Sentinel = It>
    +inlineconstexprnoexcept
    - + - +
    constexpr entt::iterable_adaptor< It, Sentinel >::iterable_adaptor entt::iterable_adaptor< It, Sentinel >::iterable_adaptor ())
    -inlineconstexprnoexcept
    @@ -232,15 +245,15 @@ template<
    +template<typename It, typename Sentinel = It>
    @@ -31,23 +33,33 @@
    - + - + @@ -250,7 +263,7 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr entt::iterable_adaptor< It, Sentinel >::iterable_adaptor entt::iterable_adaptor< It, Sentinel >::iterable_adaptor (iterator from, iterator from,
    @@ -275,21 +288,21 @@ template<
    +template<typename It, typename Sentinel = It>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr iterator entt::iterable_adaptor< It, Sentinel >::begin iterator entt::iterable_adaptor< It, Sentinel >::begin ()) const
    -inlineconstexprnoexcept
    @@ -307,27 +320,27 @@ template<
    +template<typename It, typename Sentinel = It>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr iterator entt::iterable_adaptor< It, Sentinel >::cbegin iterator entt::iterable_adaptor< It, Sentinel >::cbegin ()) const
    -inlineconstexprnoexcept
    -

    Returns an iterator to the beginning.

    -
    Returns
    An iterator to the first element of the range.
    +

    Returns an iterator to the beginning.

    +
    Returns
    An iterator to the first element of the range.

    Definition at line 181 of file iterator.hpp.

    @@ -339,27 +352,27 @@ template<
    +template<typename It, typename Sentinel = It>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr sentinel entt::iterable_adaptor< It, Sentinel >::cend sentinel entt::iterable_adaptor< It, Sentinel >::cend ()) const
    -inlineconstexprnoexcept
    -

    Returns an iterator to the end.

    -
    Returns
    An iterator to the element following the last element of the range.
    +

    Returns an iterator to the end.

    +
    Returns
    An iterator to the element following the last element of the range.

    Definition at line 186 of file iterator.hpp.

    @@ -371,21 +384,21 @@ template<
    +template<typename It, typename Sentinel = It>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr sentinel entt::iterable_adaptor< It, Sentinel >::end sentinel entt::iterable_adaptor< It, Sentinel >::end ()) const
    -inlineconstexprnoexcept
    @@ -403,7 +416,8 @@ template< +
    diff --git a/structentt_1_1meta__associative__container__traits.html b/structentt_1_1meta__associative__container__traits.html index 27687ef12..c42680980 100644 --- a/structentt_1_1meta__associative__container__traits.html +++ b/structentt_1_1meta__associative__container__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< typename > Struct Template Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_associative_container_traits< typename > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Traits class template to be specialized to enable support for meta associative containers. More...

    Detailed Description

    -
    template<typename>
    +
    template<typename>
    struct entt::meta_associative_container_traits< typename >

    Traits class template to be specialized to enable support for meta associative containers.

    Definition at line 28 of file type_traits.hpp.

    @@ -92,7 +105,8 @@ struct entt::meta_associative_container_traits< typename >

    Traits

    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4-members.html index f50e48cde..a894634b4 100644 --- a/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< dense_map< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html index 0e5efc14b..13e102b23 100644 --- a/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01dense__map_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< dense_map< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< dense_map< Args... > &g
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4-members.html index 93ba013c7..874caa7f6 100644 --- a/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< dense_set< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html index 3733ad9bf..b12b08839 100644 --- a/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01dense__set_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< dense_set< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< dense_set< Args... > &g
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4-members.html index 6b4c3d860..413ce8d97 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< std::map< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html index 5df9d511e..017dcc1f8 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< std::map< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< std::map< Args... > >
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4-members.html index 70228bf96..60413c9ad 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< std::set< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html index 6507795e7..7a5a56a8b 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< std::set< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< std::set< Args... > >
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4-members.html index b1ead7aca..85d657fc4 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< std::unordered_map< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html index c5d2417b9..30b63251d 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< std::unordered_map< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< std::unordered_map< Args..
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4-members.html index 400d158cd..5b856d886 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_associative_container_traits< std::unordered_set< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html index 2ee528eaf..fc0117468 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_associative_container_traits< std::unordered_set< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -162,7 +175,8 @@ struct entt::meta_associative_container_traits< std::unordered_set< Args..
    +
    diff --git a/structentt_1_1meta__class__template__tag.html b/structentt_1_1meta__class__template__tag.html index 1a14e500a..eab6f6ef4 100644 --- a/structentt_1_1meta__class__template__tag.html +++ b/structentt_1_1meta__class__template__tag.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_class_template_tag< class > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_class_template_tag< class > Struct Template Reference
    @@ -84,7 +97,7 @@ $(function() {

    #include <template.hpp>

    Detailed Description

    -
    template<template< typename... > class>
    +
    template<template< typename... > class>
    struct entt::meta_class_template_tag< class >

    Utility class to disambiguate class templates.

    Definition at line 12 of file template.hpp.

    @@ -94,7 +107,8 @@ struct entt::meta_class_template_tag< class >

    Utility class to dis

    +
    diff --git a/structentt_1_1meta__custom-members.html b/structentt_1_1meta__custom-members.html index 8956b25f5..18d14036e 100644 --- a/structentt_1_1meta__custom-members.html +++ b/structentt_1_1meta__custom-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_custom Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__custom.html b/structentt_1_1meta__custom.html index f0fe89b1c..fb8eab25a 100644 --- a/structentt_1_1meta__custom.html +++ b/structentt_1_1meta__custom.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_custom Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -90,25 +103,25 @@ $(function() {

    Public Member Functions

    meta_custom () noexcept=defaultmeta_custom () noexcept=default  Default constructor.
      - meta_custom (internal::meta_custom_node curr) noexceptmeta_custom (internal::meta_custom_node curr) noexcept  Basic constructor for meta objects.
      -template<typename Type > - operator Type * () const noexcept +template<typename Type> + operator Type * () const noexcept  Generic conversion operator.
      -template<typename Type > - operator Type & () const noexcept +template<typename Type> + operator Type & () const noexcept  Generic conversion operator.
     

    Detailed Description

    Opaque wrapper for user defined data of any type.

    -

    Definition at line 830 of file meta.hpp.

    +

    Definition at line 805 of file meta.hpp.

    Constructor & Destructor Documentation

    ◆ meta_custom()

    @@ -128,7 +141,7 @@ Public Member Functions -inlinenoexcept +inlinenoexcept
    @@ -141,7 +154,7 @@ Public Member Functions -

    Definition at line 838 of file meta.hpp.

    +

    Definition at line 813 of file meta.hpp.

    @@ -152,7 +165,7 @@ Public Member Functions
    -template<typename Type >
    +template<typename Type>
    - +
    @@ -160,13 +173,13 @@ template<entt::meta_custom::operator Type & ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -179,7 +192,7 @@ template<Definition at line 855 of file meta.hpp.

    +

    Definition at line 830 of file meta.hpp.

    @@ -189,7 +202,7 @@ template<
    +template<typename Type>
    - +
    @@ -197,13 +210,13 @@ template<entt::meta_custom::operator Type * ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -216,7 +229,7 @@ template<Definition at line 846 of file meta.hpp.

    +

    Definition at line 821 of file meta.hpp.

    @@ -226,7 +239,8 @@ template< +
    diff --git a/structentt_1_1meta__data-members.html b/structentt_1_1meta__data-members.html index 397a386e2..7af1c9111 100644 --- a/structentt_1_1meta__data-members.html +++ b/structentt_1_1meta__data-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_data Member List
    @@ -88,11 +101,9 @@ $(function() { is_const() const noexceptentt::meta_datainline is_static() const noexceptentt::meta_datainline meta_data() noexcept=defaultentt::meta_data - meta_data(const meta_ctx &area, const internal::meta_data_node &curr) noexceptentt::meta_datainline + meta_data(const meta_ctx &area, internal::meta_data_node curr) noexceptentt::meta_datainline operator bool() const noexceptentt::meta_datainlineexplicit operator==(const meta_data &other) const noexceptentt::meta_datainline - prop() const noexceptentt::meta_datainline - prop(const id_type key) constentt::meta_datainline set(meta_handle instance, Type &&value) constentt::meta_datainline size_type typedefentt::meta_data traits() const noexceptentt::meta_datainline @@ -100,7 +111,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__data.html b/structentt_1_1meta__data.html index 869d3c4b0..07c1ed55f 100644 --- a/structentt_1_1meta__data.html +++ b/structentt_1_1meta__data.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_data Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,65 +103,59 @@ $(function() { - +

    Public Types

    using size_type = typename internal::meta_data_node::size_type
    using size_type = typename internal::meta_data_node::size_type
     Unsigned integer type.
     
    +  - - - - + + + + - + - + - - + + - - + + - + - + - - - - - - - - + + - + - + - - + +

    Public Member Functions

    meta_data () noexcept=default
    meta_data () noexcept=default
     Default constructor.
     
     meta_data (const meta_ctx &area, const internal::meta_data_node &curr) noexcept
     Context aware constructor for meta objects.
     
    size_type arity () const noexcept
     meta_data (const meta_ctx &area, internal::meta_data_node curr) noexcept
     Context aware constructor for meta objects.
     
    size_type arity () const noexcept
     Returns the number of setters available.
     
    bool is_const () const noexcept
    bool is_const () const noexcept
     Indicates whether a data member is constant or not.
     
    bool is_static () const noexcept
    bool is_static () const noexcept
     Indicates whether a data member is static or not.
     
    meta_type type () const noexcept
     Returns the object type if any, type_id<void>() otherwise.
    meta_type type () const noexcept
     Returns the object type if any, type_id<void>() otherwise.
     
    template<typename Type >
    bool set (meta_handle instance, Type &&value) const
    template<typename Type>
    bool set (meta_handle instance, Type &&value) const
     Sets the value of a given variable.
     
    meta_any get (meta_handle instance) const
    meta_any get (meta_handle instance) const
     Gets the value of a given variable.
     
    meta_type arg (size_type index) const noexcept
    meta_type arg (size_type index) const noexcept
     Returns the type accepted by the i-th setter.
     
    meta_range< meta_prop, typename decltype(internal::meta_data_node::prop)::const_iterator > prop () const noexcept
     Returns a range to visit registered meta properties.
     
    meta_prop prop (const id_type key) const
     Lookup utility for meta properties.
     
    template<typename Type >
    Type traits () const noexcept
    template<typename Type>
    Type traits () const noexcept
     Returns all meta traits for a given meta object.
     
    meta_custom custom () const noexcept
    meta_custom custom () const noexcept
     Returns user defined data for a given meta object.
     
     operator bool () const noexcept
     operator bool () const noexcept
     Returns true if an object is valid, false otherwise.
     
    bool operator== (const meta_data &other) const noexcept
     Checks if two objects refer to the same type.
    bool operator== (const meta_data &other) const noexcept
     Checks if two objects refer to the same type.
     

    Detailed Description

    Opaque wrapper for data members.

    -

    Definition at line 865 of file meta.hpp.

    +

    Definition at line 840 of file meta.hpp.

    Member Typedef Documentation

    ◆ size_type

    @@ -157,20 +164,20 @@ Public Member Functions
    - +
    using entt::meta_data::size_type = typename internal::meta_data_node::size_typeusing entt::meta_data::size_type = typename internal::meta_data_node::size_type

    Unsigned integer type.

    -

    Definition at line 867 of file meta.hpp.

    +

    Definition at line 842 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_data()

    + +

    ◆ meta_data()

    @@ -181,17 +188,17 @@ Public Member Functions entt::meta_data::meta_data ( - const meta_ctx & area, + const meta_ctx & area, - const internal::meta_data_node & curr ) + internal::meta_data_node curr ) -inlinenoexcept +inlinenoexcept
    @@ -205,7 +212,7 @@ Public Member Functions -

    Definition at line 877 of file meta.hpp.

    +

    Definition at line 852 of file meta.hpp.

    @@ -228,7 +235,7 @@ Public Member Functions -inlinenoexcept +inlinenodiscardnoexcept
    @@ -242,7 +249,7 @@ Public Member Functions
    Returns
    The type accepted by the i-th setter.
    -

    Definition at line 1683 of file meta.hpp.

    +

    Definition at line 1603 of file meta.hpp.

    @@ -258,13 +265,13 @@ Public Member Functions size_type entt::meta_data::arity ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    @@ -272,7 +279,7 @@ Public Member Functions

    Returns the number of setters available.

    Returns
    The number of setters available.
    -

    Definition at line 885 of file meta.hpp.

    +

    Definition at line 860 of file meta.hpp.

    @@ -288,13 +295,13 @@ Public Member Functions meta_custom entt::meta_data::custom ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    @@ -302,7 +309,7 @@ Public Member Functions

    Returns user defined data for a given meta object.

    Returns
    User defined arbitrary data.
    -

    Definition at line 974 of file meta.hpp.

    +

    Definition at line 926 of file meta.hpp.

    @@ -324,7 +331,7 @@ Public Member Functions -inline +inlinenodiscard
    @@ -338,7 +345,7 @@ Public Member Functions
    Returns
    A wrapper containing the value of the underlying variable.
    -

    Definition at line 926 of file meta.hpp.

    +

    Definition at line 901 of file meta.hpp.

    @@ -352,15 +359,15 @@ Public Member Functions - + - +
    bool entt::meta_data::is_const bool entt::meta_data::is_const ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -368,7 +375,7 @@ Public Member Functions

    Indicates whether a data member is constant or not.

    Returns
    True if the data member is constant, false otherwise.
    -

    Definition at line 893 of file meta.hpp.

    +

    Definition at line 868 of file meta.hpp.

    @@ -382,15 +389,15 @@ Public Member Functions - + - +
    bool entt::meta_data::is_static bool entt::meta_data::is_static ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -398,7 +405,7 @@ Public Member Functions

    Indicates whether a data member is static or not.

    Returns
    True if the data member is static, false otherwise.
    -

    Definition at line 901 of file meta.hpp.

    +

    Definition at line 876 of file meta.hpp.

    @@ -412,15 +419,15 @@ Public Member Functions - + - +
    entt::meta_data::operator bool entt::meta_data::operator bool ()) const
    -inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
    @@ -428,7 +435,7 @@ Public Member Functions

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 982 of file meta.hpp.

    +

    Definition at line 934 of file meta.hpp.

    @@ -442,95 +449,29 @@ Public Member Functions - + - +
    bool entt::meta_data::operator== bool entt::meta_data::operator== (const meta_data & other)const meta_data & other) const
    -inlinenoexcept +inlinenodiscardnoexcept
    -

    Checks if two objects refer to the same type.

    +

    Checks if two objects refer to the same type.

    Parameters
    otherThe object with which to compare.
    -
    Returns
    True if the objects refer to the same type, false otherwise.
    +
    Returns
    True if the objects refer to the same type, false otherwise.
    -

    Definition at line 987 of file meta.hpp.

    - -
    -
    - -

    ◆ prop() [1/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_range< meta_prop, typename decltype(internal::meta_data_node::prop)::const_iterator > entt::meta_data::prop () const
    -
    -inlinenoexcept
    -
    - -

    Returns a range to visit registered meta properties.

    -
    Returns
    An iterable range to visit registered meta properties.
    - -

    Definition at line 941 of file meta.hpp.

    - -
    -
    - -

    ◆ prop() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_prop entt::meta_data::prop (const id_type key) const
    -
    -inline
    -
    - -

    Lookup utility for meta properties.

    -
    Parameters
    - - -
    keyThe key to use to search for a property.
    -
    -
    -
    Returns
    The registered meta property for the given key, if any.
    - -

    Definition at line 950 of file meta.hpp.

    +

    Definition at line 943 of file meta.hpp.

    @@ -540,15 +481,15 @@ Public Member Functions
    -template<typename Type >
    +template<typename Type>
    +inlinenodiscardnoexcept
    - + - + @@ -558,7 +499,7 @@ template< -inline +inline
    bool entt::meta_data::set bool entt::meta_data::set (meta_handle instance, meta_handle instance,
    @@ -589,7 +530,7 @@ template<
    +template<typename Type>
    - +
    @@ -597,13 +538,13 @@ template<Type entt::meta_data::traits ()) const
    -inlinenoexcept
    @@ -617,7 +558,7 @@ template<
    Returns
    The registered meta traits, if any.
    -

    Definition at line 966 of file meta.hpp.

    +

    Definition at line 918 of file meta.hpp.

    @@ -633,21 +574,21 @@ template<meta_type entt::meta_data::type ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    -

    Returns the object type if any, type_id<void>() otherwise.

    -
    Returns
    The object type if any, type_id<void>() otherwise.
    +

    Returns the object type if any, type_id<void>() otherwise.

    +
    Returns
    The object type if any, type_id<void>() otherwise.
    -

    Definition at line 1679 of file meta.hpp.

    +

    Definition at line 1599 of file meta.hpp.

    @@ -657,7 +598,8 @@ template< +
    diff --git a/structentt_1_1meta__func-members.html b/structentt_1_1meta__func-members.html index 79e4c27d1..e7db0f209 100644 --- a/structentt_1_1meta__func-members.html +++ b/structentt_1_1meta__func-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_func Member List
    @@ -89,19 +102,18 @@ $(function() { is_const() const noexceptentt::meta_funcinline is_static() const noexceptentt::meta_funcinline meta_func() noexcept=defaultentt::meta_func - meta_func(const meta_ctx &area, const internal::meta_func_node &curr) noexceptentt::meta_funcinline + meta_func(const meta_ctx &area, internal::meta_func_node curr) noexceptentt::meta_funcinline next() constentt::meta_funcinline operator bool() const noexceptentt::meta_funcinlineexplicit operator==(const meta_func &other) const noexceptentt::meta_funcinline - prop() const noexceptentt::meta_funcinline - prop(const id_type key) constentt::meta_funcinline ret() const noexceptentt::meta_funcinline size_type typedefentt::meta_func traits() const noexceptentt::meta_funcinline
    +
    diff --git a/structentt_1_1meta__func.html b/structentt_1_1meta__func.html index 071e27cdb..a9f6c7535 100644 --- a/structentt_1_1meta__func.html +++ b/structentt_1_1meta__func.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_func Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,68 +103,62 @@ $(function() { - +

    Public Types

    using size_type = typename internal::meta_func_node::size_type
    using size_type = typename internal::meta_func_node::size_type
     Unsigned integer type.
     
    +  - - - - + + + + - + - + - + - + - + - - + + - - - - - - - - - + + + - - + + - + - + - - + +

    Public Member Functions

    meta_func () noexcept=default
    meta_func () noexcept=default
     Default constructor.
     
     meta_func (const meta_ctx &area, const internal::meta_func_node &curr) noexcept
     Context aware constructor for meta objects.
     
    size_type arity () const noexcept
     meta_func (const meta_ctx &area, internal::meta_func_node curr) noexcept
     Context aware constructor for meta objects.
     
    size_type arity () const noexcept
     Returns the number of arguments accepted by a member function.
     
    bool is_const () const noexcept
    bool is_const () const noexcept
     Indicates whether a member function is constant or not.
     
    bool is_static () const noexcept
    bool is_static () const noexcept
     Indicates whether a member function is static or not.
     
    meta_type ret () const noexcept
    meta_type ret () const noexcept
     Returns the return type of a member function.
     
    meta_type arg (size_type index) const noexcept
    meta_type arg (size_type index) const noexcept
     Returns the type of the i-th argument of a member function.
     
    meta_any invoke (meta_handle instance, meta_any *const args, const size_type sz) const
    meta_any invoke (meta_handle instance, meta_any *const args, const size_type sz) const
     Invokes the underlying function, if possible.
     
    template<typename... Args>
    meta_any invoke (meta_handle instance, Args &&...args) const
     Invokes the underlying function, if possible.
    meta_any invoke (meta_handle instance, Args &&...args) const
     Invokes the underlying function, if possible.
     
    meta_range< meta_prop, typename decltype(internal::meta_func_node::prop)::const_iterator > prop () const noexcept
     Returns a range to visit registered meta properties.
     
    meta_prop prop (const id_type key) const
     Lookup utility for meta properties.
     
    template<typename Type >
    Type traits () const noexcept
     Returns all meta traits for a given meta object.
    template<typename Type>
    Type traits () const noexcept
     Returns all meta traits for a given meta object.
     
    meta_custom custom () const noexcept
     Returns user defined data for a given meta object.
    meta_custom custom () const noexcept
     Returns user defined data for a given meta object.
     
    meta_func next () const
    meta_func next () const
     Returns the next overload of a given function, if any.
     
     operator bool () const noexcept
     operator bool () const noexcept
     Returns true if an object is valid, false otherwise.
     
    bool operator== (const meta_func &other) const noexcept
     Checks if two objects refer to the same type.
    bool operator== (const meta_func &other) const noexcept
     Checks if two objects refer to the same type.
     

    Detailed Description

    Opaque wrapper for member functions.

    -

    Definition at line 1007 of file meta.hpp.

    +

    Definition at line 963 of file meta.hpp.

    Member Typedef Documentation

    ◆ size_type

    @@ -160,20 +167,20 @@ Public Member Functions
    - +
    using entt::meta_func::size_type = typename internal::meta_func_node::size_typeusing entt::meta_func::size_type = typename internal::meta_func_node::size_type

    Unsigned integer type.

    -

    Definition at line 1009 of file meta.hpp.

    +

    Definition at line 965 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_func()

    + +

    ◆ meta_func()

    @@ -184,17 +191,17 @@ Public Member Functions entt::meta_func::meta_func ( - const meta_ctx & area, + const meta_ctx & area, - const internal::meta_func_node & curr ) + internal::meta_func_node curr ) -inlinenoexcept +inlinenoexcept
    @@ -208,7 +215,7 @@ Public Member Functions -

    Definition at line 1019 of file meta.hpp.

    +

    Definition at line 975 of file meta.hpp.

    @@ -231,7 +238,7 @@ Public Member Functions -inlinenoexcept +inlinenodiscardnoexcept
    @@ -245,7 +252,7 @@ Public Member Functions
    Returns
    The type of the i-th argument of a member function.
    -

    Definition at line 1691 of file meta.hpp.

    +

    Definition at line 1611 of file meta.hpp.

    @@ -261,13 +268,13 @@ Public Member Functions size_type entt::meta_func::arity ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    @@ -275,7 +282,7 @@ Public Member Functions

    Returns the number of arguments accepted by a member function.

    Returns
    The number of arguments accepted by the member function.
    -

    Definition at line 1027 of file meta.hpp.

    +

    Definition at line 983 of file meta.hpp.

    @@ -291,21 +298,21 @@ Public Member Functions meta_custom entt::meta_func::custom ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    -

    Returns user defined data for a given meta object.

    -
    Returns
    User defined arbitrary data.
    +

    Returns user defined data for a given meta object.

    +
    Returns
    User defined arbitrary data.
    -

    Definition at line 1112 of file meta.hpp.

    +

    Definition at line 1047 of file meta.hpp.

    @@ -323,22 +330,22 @@ template<typename... Args>
    meta_any entt::meta_func::invoke ( - meta_handle instance, + meta_handle instance, - Args &&... args ) const + Args &&... args ) const -inline +inline
    -

    Invokes the underlying function, if possible.

    +

    Invokes the underlying function, if possible.

    Template Parameters
    @@ -354,7 +361,7 @@ template<typename... Args>
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 1080 of file meta.hpp.

    +

    Definition at line 1036 of file meta.hpp.

    @@ -370,22 +377,22 @@ template<typename... Args> - + - + - +
    ArgsTypes of arguments to use to invoke the function.
    meta_any entt::meta_func::invoke (meta_handle instance, meta_handle instance,
    meta_any *const args, meta_any *const args,
    const size_type sz ) constconst size_type sz ) const
    -inline +inline
    @@ -401,7 +408,7 @@ template<typename... Args>
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 1067 of file meta.hpp.

    +

    Definition at line 1023 of file meta.hpp.

    @@ -415,15 +422,15 @@ template<typename... Args>
    - + - +
    bool entt::meta_func::is_const bool entt::meta_func::is_const ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -431,7 +438,7 @@ template<typename... Args>

    Indicates whether a member function is constant or not.

    Returns
    True if the member function is constant, false otherwise.
    -

    Definition at line 1035 of file meta.hpp.

    +

    Definition at line 991 of file meta.hpp.

    @@ -445,15 +452,15 @@ template<typename... Args>
    - + - +
    bool entt::meta_func::is_static bool entt::meta_func::is_static ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -461,7 +468,7 @@ template<typename... Args>

    Indicates whether a member function is static or not.

    Returns
    True if the member function is static, false otherwise.
    -

    Definition at line 1043 of file meta.hpp.

    +

    Definition at line 999 of file meta.hpp.

    @@ -477,13 +484,13 @@ template<typename... Args>
    meta_func entt::meta_func::next ( - ) + ) const -inline +inlinenodiscard
    @@ -491,7 +498,7 @@ template<typename... Args>

    Returns the next overload of a given function, if any.

    Returns
    The next overload of the given function, if any.
    -

    Definition at line 1120 of file meta.hpp.

    +

    Definition at line 1055 of file meta.hpp.

    @@ -505,15 +512,15 @@ template<typename... Args>
    - + - +
    entt::meta_func::operator bool entt::meta_func::operator bool ()) const
    -inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
    @@ -521,7 +528,7 @@ template<typename... Args>

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 1128 of file meta.hpp.

    +

    Definition at line 1063 of file meta.hpp.

    @@ -535,95 +542,29 @@ template<typename... Args>
    - + - +
    bool entt::meta_func::operator== bool entt::meta_func::operator== (const meta_func & other)const meta_func & other) const
    -inlinenoexcept +inlinenodiscardnoexcept
    -

    Checks if two objects refer to the same type.

    +

    Checks if two objects refer to the same type.

    Parameters
    otherThe object with which to compare.
    -
    Returns
    True if the objects refer to the same type, false otherwise.
    +
    Returns
    True if the objects refer to the same type, false otherwise.
    -

    Definition at line 1133 of file meta.hpp.

    - -
    -
    - -

    ◆ prop() [1/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_range< meta_prop, typename decltype(internal::meta_func_node::prop)::const_iterator > entt::meta_func::prop () const
    -
    -inlinenoexcept
    -
    - -

    Returns a range to visit registered meta properties.

    -
    Returns
    An iterable range to visit registered meta properties.
    - -

    Definition at line 1086 of file meta.hpp.

    - -
    -
    - -

    ◆ prop() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_prop entt::meta_func::prop (const id_type key) const
    -
    -inline
    -
    - -

    Lookup utility for meta properties.

    -
    Parameters
    - - -
    keyThe key to use to search for a property.
    -
    -
    -
    Returns
    The registered meta property for the given key, if any.
    - -

    Definition at line 1095 of file meta.hpp.

    +

    Definition at line 1068 of file meta.hpp.

    @@ -639,13 +580,13 @@ template<typename... Args>
    meta_type entt::meta_func::ret ( - ) + ) const -inlinenoexcept +inlinenodiscardnoexcept
    @@ -653,7 +594,7 @@ template<typename... Args>

    Returns the return type of a member function.

    Returns
    The return type of the member function.
    -

    Definition at line 1687 of file meta.hpp.

    +

    Definition at line 1607 of file meta.hpp.

    @@ -663,7 +604,7 @@ template<typename... Args>
    -template<typename Type >
    +template<typename Type>
    - +
    @@ -671,27 +612,27 @@ template<Type entt::meta_func::traits ()) const
    -inlinenoexcept +inlinenodiscardnoexcept
    -

    Returns all meta traits for a given meta object.

    +

    Returns all meta traits for a given meta object.

    Template Parameters
    TypeThe type to convert the meta traits to.
    -
    Returns
    The registered meta traits, if any.
    +
    Returns
    The registered meta traits, if any.
    -

    Definition at line 1107 of file meta.hpp.

    +

    Definition at line 1042 of file meta.hpp.

    @@ -701,7 +642,8 @@ template< +
    diff --git a/structentt_1_1meta__function__descriptor.html b/structentt_1_1meta__function__descriptor.html index 780956bdc..0f90aec91 100644 --- a/structentt_1_1meta__function__descriptor.html +++ b/structentt_1_1meta__function__descriptor.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< typename, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_function_descriptor< typename, typename > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<typename, typename>
    +
    template<typename, typename>
    struct entt::meta_function_descriptor< typename, typename >

    Primary template isn't defined on purpose.

    Definition at line 38 of file utility.hpp.

    @@ -92,7 +105,8 @@ struct entt::meta_function_descriptor< typename, typename >

    Primar

    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4-members.html index 831a41674..1e91241dc 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_function_descriptor< Type, Ret Class::* > Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html index cf188c121..273e2d1f1 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_01Class_1_1_5_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret Class::* > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -124,7 +137,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, typename Ret, typename Class>
    +
    template<typename Type, typename Ret, typename Class>
    struct entt::meta_function_descriptor< Type, Ret Class::* >

    Meta function descriptor.

    Template Parameters
    @@ -142,7 +155,8 @@ struct entt::meta_function_descriptor< Type, Ret Class::* >

    Meta f

    + diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html index b65912303..6d3e12b56 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const > Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html index af7c123da..0f9c99015 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -124,7 +137,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, typename Ret, typename Class, typename... Args>
    +
    template<typename Type, typename Ret, typename Class, typename... Args>
    struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >

    Meta function descriptor.

    Template Parameters
    @@ -143,7 +156,8 @@ struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const > + diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html index 920153d77..1cd958a40 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)> Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html index 38ef041df..4f02fc930 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)> Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -124,7 +137,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, typename Ret, typename Class, typename... Args>
    +
    template<typename Type, typename Ret, typename Class, typename... Args>
    struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>

    Meta function descriptor.

    Template Parameters
    @@ -143,7 +156,8 @@ struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)> + diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4-members.html index 8342dee1e..39318d385 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)> Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html index 850e9cced..01d4b4c91 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07MaybeType_00_01Args_8_8_8_08_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)> Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -124,7 +137,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, typename Ret, typename MaybeType, typename... Args>
    +
    template<typename Type, typename Ret, typename MaybeType, typename... Args>
    struct entt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)>

    Meta function descriptor.

    Template Parameters
    @@ -143,7 +156,8 @@ struct entt::meta_function_descriptor< Type, Ret(*)(MaybeType, Args...)> + diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4-members.html index 319b08abd..ea4a9cce5 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_function_descriptor< Type, Ret(*)()> Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html index d01a676d1..c7df663d9 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07_08_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(*)()> Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -124,7 +137,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, typename Ret>
    +
    template<typename Type, typename Ret>
    struct entt::meta_function_descriptor< Type, Ret(*)()>

    Meta function descriptor.

    Template Parameters
    @@ -141,7 +154,8 @@ struct entt::meta_function_descriptor< Type, Ret(*)()>

    Meta functi

    + diff --git a/structentt_1_1meta__function__descriptor__traits-members.html b/structentt_1_1meta__function__descriptor__traits-members.html index 329d097b1..67569e4a7 100644 --- a/structentt_1_1meta__function__descriptor__traits-members.html +++ b/structentt_1_1meta__function__descriptor__traits-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_function_descriptor_traits< Ret, Args, Static, Const > Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__function__descriptor__traits.html b/structentt_1_1meta__function__descriptor__traits.html index 902c5c774..359f89be8 100644 --- a/structentt_1_1meta__function__descriptor__traits.html +++ b/structentt_1_1meta__function__descriptor__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_function_descriptor_traits< Ret, Args, Static, Const > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,24 +103,24 @@ $(function() { - + - +

    Public Types

    using return_type = Ret
    using return_type = Ret
     Meta function return type.
     
    using args_type = Args
    using args_type = Args
     Meta function arguments.
     
    - + - +

    Static Public Attributes

    static constexpr bool is_static = Static
    static constexpr bool is_static = Static
     True if the meta function is static, false otherwise.
     
    static constexpr bool is_const = Const
    static constexpr bool is_const = Const
     True if the meta function is const, false otherwise.
     

    Detailed Description

    -
    template<typename Ret, typename Args, bool Static, bool Const>
    +
    template<typename Ret, typename Args, bool Static, bool Const>
    struct entt::meta_function_descriptor_traits< Ret, Args, Static, Const >

    Meta function descriptor traits.

    Template Parameters
    @@ -127,10 +140,10 @@ struct entt::meta_function_descriptor_traits< Ret, Args, Static, Const >
    -template<typename Ret , typename Args , bool Static, bool Const>
    +template<typename Ret, typename Args, bool Static, bool Const>
    - +
    using entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::args_type = Argsusing entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::args_type = Args
    @@ -147,10 +160,10 @@ template<
    +template<typename Ret, typename Args, bool Static, bool Const>
    - +
    using entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::return_type = Retusing entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::return_type = Ret
    @@ -168,18 +181,18 @@ template<
    +template<typename Ret, typename Args, bool Static, bool Const>
    +staticconstexpr
    - +
    constexpr bool entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::is_const = Constbool entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::is_const = Const
    -staticconstexpr
    @@ -196,18 +209,18 @@ template<
    +template<typename Ret, typename Args, bool Static, bool Const>
    +staticconstexpr
    - +
    constexpr bool entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::is_static = Staticbool entt::meta_function_descriptor_traits< Ret, Args, Static, Const >::is_static = Static
    -staticconstexpr
    @@ -224,7 +237,8 @@ template< +
    diff --git a/structentt_1_1meta__handle-members.html b/structentt_1_1meta__handle-members.html index 32a5ffc75..4d7d31b9f 100644 --- a/structentt_1_1meta__handle-members.html +++ b/structentt_1_1meta__handle-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_handle Member List
    @@ -102,7 +115,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__handle.html b/structentt_1_1meta__handle.html index 442e51783..5bfb79c47 100644 --- a/structentt_1_1meta__handle.html +++ b/structentt_1_1meta__handle.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_handle Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,70 +102,69 @@ $(function() { - + - + - + - - + + - + - + - + +  +  +  - + - + - + - - + + - - + + - - + +

    Public Member Functions

     meta_handle ()=default
     meta_handle ()=default
     
     meta_handle (meta_ctx_arg_t, const meta_ctx &area)
     meta_handle (meta_ctx_arg_t, const meta_ctx &area)
     Context aware constructor.
     
     meta_handle (meta_any &value)
     Creates a handle that points to an unmanaged object.
     
     meta_handle (const meta_any &value)
     meta_handle (const meta_any &value)
     Creates a handle that points to an unmanaged object.
     
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
     meta_handle (const meta_ctx &ctx, Type &value)
    template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
     meta_handle (const meta_ctx &ctx, Type &value)
     Creates a handle that points to an unmanaged object.
     
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
     meta_handle (Type &value)
     Creates a handle that points to an unmanaged object.
     
     meta_handle (const meta_ctx &area, const meta_handle &other)
     meta_handle (const meta_ctx &area, const meta_handle &other)
     Context aware copy constructor.
     
     meta_handle (const meta_ctx &area, meta_handle &&other)
     meta_handle (const meta_ctx &area, meta_handle &&other)
     Context aware move constructor.
     
    meta_handle (const meta_handle &)=delete
    meta_handle (const meta_handle &)=delete
     Default copy constructor, deleted on purpose.
     
    meta_handle (meta_handle &&)=default
    meta_handle (meta_handle &&)=default
     Default move constructor.
     
    ~meta_handle ()=default
    ~meta_handle ()=default
     Default destructor.
     
    meta_handleoperator= (const meta_handle &)=delete
    meta_handleoperator= (const meta_handle &)=delete
     Default copy assignment operator, deleted on purpose.
     
    meta_handleoperator= (meta_handle &&)=default
    meta_handleoperator= (meta_handle &&)=default
     Default move assignment operator.
     
     operator bool () const noexcept
     operator bool () const noexcept
     Returns false if a handle is invalid, true otherwise.
     
    bool operator== (const meta_handle &other) const noexcept
     Checks if two wrappers differ in their content.
    bool operator== (const meta_handle &other) const noexcept
     Checks if two wrappers differ in their content.
     
    bool operator!= (const meta_handle &other) const noexcept
     Checks if two wrappers differ in their content.
    bool operator!= (const meta_handle &other) const noexcept
     Checks if two wrappers differ in their content.
     
    meta_anyoperator-> ()
     Access operator for accessing the contained opaque object.
     
    const meta_anyoperator-> () const
     Access operator for accessing the contained opaque object.
    const meta_anyoperator-> () const
     Access operator for accessing the contained opaque object.
     

    Detailed Description

    Opaque pointers to instances of any type.

    -

    A handle doesn't perform copies and isn't responsible for the contained object. It doesn't prolong the lifetime of the pointed instance.

    -

    Definition at line 651 of file meta.hpp.

    +

    Definition at line 688 of file meta.hpp.

    Constructor & Destructor Documentation

    ◆ meta_handle() [1/8]

    @@ -166,13 +178,13 @@ Public Member Functions entt::meta_handle::meta_handle ( - ) + ) -default +default
    @@ -192,17 +204,17 @@ Public Member Functions entt::meta_handle::meta_handle ( - meta_ctx_arg_t , + meta_ctx_arg_t , - const meta_ctx & area ) + const meta_ctx & area ) -inline +inline
    @@ -215,7 +227,7 @@ Public Member Functions -

    Definition at line 659 of file meta.hpp.

    +

    Definition at line 696 of file meta.hpp.

    @@ -237,7 +249,7 @@ Public Member Functions -inline +inline
    @@ -250,7 +262,7 @@ Public Member Functions -

    Definition at line 666 of file meta.hpp.

    +

    Definition at line 703 of file meta.hpp.

    @@ -266,13 +278,13 @@ Public Member Functions entt::meta_handle::meta_handle ( - const meta_any & value) + const meta_any & value) -inline +inline
    @@ -285,7 +297,7 @@ Public Member Functions -

    Definition at line 673 of file meta.hpp.

    +

    Definition at line 710 of file meta.hpp.

    @@ -295,7 +307,7 @@ Public Member Functions
    -template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    - + @@ -313,7 +325,7 @@ template< -inline +inline
    @@ -303,7 +315,7 @@ template<entt::meta_handle::meta_handle (const meta_ctx & ctx, const meta_ctx & ctx,
    @@ -343,7 +355,7 @@ template<
    -template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +inline
    @@ -357,7 +369,7 @@ template< -inline
    @@ -376,7 +388,7 @@ template<Definition at line 692 of file meta.hpp.

    +

    Definition at line 729 of file meta.hpp.

    @@ -392,17 +404,17 @@ template<entt::meta_handle::meta_handle ( - const meta_ctx & area, + const meta_ctx & area, - const meta_handle & other ) + const meta_handle & other ) -inline +inline
    @@ -416,7 +428,7 @@ template<Definition at line 700 of file meta.hpp.

    +

    Definition at line 737 of file meta.hpp.

    @@ -432,7 +444,7 @@ template<entt::meta_handle::meta_handle ( - const meta_ctx & area, + const meta_ctx & area, @@ -442,7 +454,7 @@ template< -inline +inline
    @@ -471,15 +483,15 @@ template< - + - +
    entt::meta_handle::operator bool entt::meta_handle::operator bool ()) const
    -inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
    @@ -501,29 +513,29 @@ template< - + - +
    bool entt::meta_handle::operator!= bool entt::meta_handle::operator!= (const meta_handle & other)const meta_handle & other) const
    -inlinenoexcept +inlinenodiscardnoexcept
    @@ -539,13 +551,13 @@ template<meta_any * entt::meta_handle::operator-> ( - ) + ) -inline +inlinenodiscard
    @@ -553,7 +565,7 @@ template<
    Returns
    A wrapper that shares a reference to an unmanaged object.
    -

    Definition at line 754 of file meta.hpp.

    +

    Definition at line 791 of file meta.hpp.

    @@ -567,23 +579,23 @@ template< - + - +
    const meta_any * entt::meta_handle::operator-> const meta_any * entt::meta_handle::operator-> ()) const
    -inline +inlinenodiscard
    @@ -599,13 +611,13 @@ template<meta_handle & entt::meta_handle::operator= ( - const meta_handle & ) + const meta_handle & ) -delete +delete
    @@ -627,13 +639,13 @@ template<meta_handle & entt::meta_handle::operator= ( - meta_handle && ) + meta_handle && ) -default +default
    @@ -685,7 +697,8 @@ template< +
    diff --git a/structentt_1_1meta__prop-members.html b/structentt_1_1meta__prop-members.html deleted file mode 100644 index 846021829..000000000 --- a/structentt_1_1meta__prop-members.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    entt::meta_prop Member List
    -
    -
    - -

    This is the complete list of members for entt::meta_prop, including all inherited members.

    - - - - - - - -
    meta_prop() noexcept=defaultentt::meta_prop
    meta_prop(const meta_ctx &area, internal::meta_prop_node curr) noexceptentt::meta_propinline
    operator bool() const noexceptentt::meta_propinlineexplicit
    operator==(const meta_prop &other) const noexceptentt::meta_propinline
    value() constentt::meta_propinline
    value()entt::meta_propinline
    - - - - diff --git a/structentt_1_1meta__prop.html b/structentt_1_1meta__prop.html deleted file mode 100644 index 36250329f..000000000 --- a/structentt_1_1meta__prop.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - -EnTT: entt::meta_prop Struct Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT 3.14.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    - -
    entt::meta_prop Struct Reference
    -
    -
    - -

    Opaque wrapper for properties of any type. - More...

    - -

    #include <meta.hpp>

    - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    meta_prop () noexcept=default
     Default constructor.
     
     meta_prop (const meta_ctx &area, internal::meta_prop_node curr) noexcept
     Context aware constructor for meta objects.
     
    meta_any value () const
     Returns the stored value by const reference.
     
    meta_any value ()
     Returns the stored value by reference.
     
     operator bool () const noexcept
     Returns true if an object is valid, false otherwise.
     
    bool operator== (const meta_prop &other) const noexcept
     Checks if two objects refer to the same type.
     
    -

    Detailed Description

    -

    Opaque wrapper for properties of any type.

    - -

    Definition at line 768 of file meta.hpp.

    -

    Constructor & Destructor Documentation

    - -

    ◆ meta_prop()

    - -
    -
    - - - - - -
    - - - - - - - - - - - -
    entt::meta_prop::meta_prop (const meta_ctx & area,
    internal::meta_prop_node curr )
    -
    -inlinenoexcept
    -
    - -

    Context aware constructor for meta objects.

    -
    Parameters
    - - - -
    areaThe context from which to search for meta types.
    currThe underlying node with which to construct the instance.
    -
    -
    - -

    Definition at line 777 of file meta.hpp.

    - -
    -
    -

    Member Function Documentation

    - -

    ◆ operator bool()

    - -
    -
    - - - - - -
    - - - - - - - -
    entt::meta_prop::operator bool () const
    -
    -inlineexplicitnoexcept
    -
    - -

    Returns true if an object is valid, false otherwise.

    -
    Returns
    True if the object is valid, false otherwise.
    - -

    Definition at line 801 of file meta.hpp.

    - -
    -
    - -

    ◆ operator==()

    - -
    -
    - - - - - -
    - - - - - - - -
    bool entt::meta_prop::operator== (const meta_prop & other) const
    -
    -inlinenoexcept
    -
    - -

    Checks if two objects refer to the same type.

    -
    Parameters
    - - -
    otherThe object with which to compare.
    -
    -
    -
    Returns
    True if the objects refer to the same type, false otherwise.
    - -

    Definition at line 810 of file meta.hpp.

    - -
    -
    - -

    ◆ value() [1/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_any entt::meta_prop::value ()
    -
    -inline
    -
    - -

    Returns the stored value by reference.

    -
    Returns
    A wrapper containing the value stored with the property.
    - -

    Definition at line 793 of file meta.hpp.

    - -
    -
    - -

    ◆ value() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_any entt::meta_prop::value () const
    -
    -inline
    -
    - -

    Returns the stored value by const reference.

    -
    Returns
    A wrapper containing the value stored with the property.
    - -

    Definition at line 785 of file meta.hpp.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structentt_1_1meta__sequence__container__traits.html b/structentt_1_1meta__sequence__container__traits.html index 12df34f00..582a6ba6f 100644 --- a/structentt_1_1meta__sequence__container__traits.html +++ b/structentt_1_1meta__sequence__container__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container_traits< typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_sequence_container_traits< typename > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Traits class template to be specialized to enable support for meta sequence containers. More...

    Detailed Description

    -
    template<typename>
    +
    template<typename>
    struct entt::meta_sequence_container_traits< typename >

    Traits class template to be specialized to enable support for meta sequence containers.

    Definition at line 21 of file type_traits.hpp.

    @@ -92,7 +105,8 @@ struct entt::meta_sequence_container_traits< typename >

    Traits cla

    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html index 46e2ec60c..e6d22e620 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_sequence_container_traits< std::array< Type, N > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html index e3de7970e..3dfda1afb 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container_traits< std::array< Type, N > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -134,7 +147,7 @@ Additional Inherited Members static iterator end (const meta_ctx &area, void *container, const void *as_const)  Returns a possibly const iterator to the end.
      -static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it) +static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)  Assigns one element to a container and constructs its object from a given opaque instance.
      static iterator erase (const meta_ctx &area, void *container, const iterator &it) @@ -146,7 +159,7 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Type, auto N>
    +
    template<typename Type, auto N>
    struct entt::meta_sequence_container_traits< std::array< Type, N > >

    Meta sequence container traits for std::arrays of any type.

    Template Parameters
    @@ -163,7 +176,8 @@ struct entt::meta_sequence_container_traits< std::array< Type, N > > + diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4-members.html index f87a3d578..dfff014ac 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - +EnTT: Member List + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::meta_sequence_container_traits< std::deque< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html index 716d5faaa..504fd5946 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1deque_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container_traits< std::deque< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -134,7 +147,7 @@ Additional Inherited Members static iterator end (const meta_ctx &area, void *container, const void *as_const)  Returns a possibly const iterator to the end.
      -static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it) +static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)  Assigns one element to a container and constructs its object from a given opaque instance.
      static iterator erase (const meta_ctx &area, void *container, const iterator &it) @@ -162,7 +175,8 @@ struct entt::meta_sequence_container_traits< std::deque< Args... > >
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4-members.html index 6c20b9f0d..15ea2e172 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_sequence_container_traits< std::list< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html index 7d2e2186f..74430200c 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1list_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container_traits< std::list< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -134,7 +147,7 @@ Additional Inherited Members static iterator end (const meta_ctx &area, void *container, const void *as_const)  Returns a possibly const iterator to the end.
      -static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it) +static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)  Assigns one element to a container and constructs its object from a given opaque instance.
      static iterator erase (const meta_ctx &area, void *container, const iterator &it) @@ -162,7 +175,8 @@ struct entt::meta_sequence_container_traits< std::list< Args... > ><
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4-members.html index 28a9cd358..b2dea4ed8 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_sequence_container_traits< std::vector< Args... > > Member List
    @@ -95,7 +108,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html index 8f866cec5..9d18d795e 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_sequence_container_traits< std::vector< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    @@ -134,7 +147,7 @@ Additional Inherited Members static iterator end (const meta_ctx &area, void *container, const void *as_const)  Returns a possibly const iterator to the end.
      -static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it) +static iterator insert (const meta_ctx &area, void *container, const void *value, const void *cref, const iterator &it)  Assigns one element to a container and constructs its object from a given opaque instance.
      static iterator erase (const meta_ctx &area, void *container, const iterator &it) @@ -162,7 +175,8 @@ struct entt::meta_sequence_container_traits< std::vector< Args... > >
    +
    diff --git a/structentt_1_1meta__template__traits.html b/structentt_1_1meta__template__traits.html index 078954edf..d4e239ca8 100644 --- a/structentt_1_1meta__template__traits.html +++ b/structentt_1_1meta__template__traits.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_template_traits< typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_template_traits< typename > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Traits class template to be specialized to enable support for meta template information. More...

    Detailed Description

    -
    template<typename>
    +
    template<typename>
    struct entt::meta_template_traits< typename >

    Traits class template to be specialized to enable support for meta template information.

    Definition at line 14 of file type_traits.hpp.

    @@ -92,7 +105,8 @@ struct entt::meta_template_traits< typename >

    Traits class templat

    +
    diff --git a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html index 51c5c30dd..a6daae90d 100644 --- a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::meta_template_traits< Clazz< Args... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html index f998e81cd..f45f2b5ed 100644 --- a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::meta_template_traits< Clazz< Args... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,15 +102,15 @@ $(function() { - + - +

    Public Types

    using class_type = meta_class_template_tag<Clazz>
    using class_type = meta_class_template_tag<Clazz>
     Wrapped class template.
     
    using args_type = type_list<Args...>
    using args_type = type_list<Args...>
     List of template arguments.
     

    Detailed Description

    -
    template<template< typename... > class Clazz, typename... Args>
    +
    template<template< typename... > class Clazz, typename... Args>
    struct entt::meta_template_traits< Clazz< Args... > >

    General purpose traits class for generating meta template information.

    Template Parameters
    @@ -115,10 +128,10 @@ struct entt::meta_template_traits< Clazz< Args... > >

    Genera

    -template<template< typename... > class Clazz, typename... Args>
    +template<template< typename... > class Clazz, typename... Args>
    - +
    using entt::meta_template_traits< Clazz< Args... > >::args_type = type_list<Args...>using entt::meta_template_traits< Clazz< Args... > >::args_type = type_list<Args...>
    @@ -135,10 +148,10 @@ template<
    -template<template< typename... > class Clazz, typename... Args>
    +template<template< typename... > class Clazz, typename... Args>
    - +
    using entt::meta_template_traits< Clazz< Args... > >::class_type = meta_class_template_tag<Clazz>using entt::meta_template_traits< Clazz< Args... > >::class_type = meta_class_template_tag<Clazz>
    @@ -155,7 +168,8 @@ template< +
    diff --git a/structentt_1_1monostate-members.html b/structentt_1_1monostate-members.html index 1d090564f..73f010a0e 100644 --- a/structentt_1_1monostate-members.html +++ b/structentt_1_1monostate-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::monostate< id_type > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1monostate.html b/structentt_1_1monostate.html index 87e5d62d9..60f653e43 100644 --- a/structentt_1_1monostate.html +++ b/structentt_1_1monostate.html @@ -3,13 +3,15 @@ - + EnTT: entt::monostate< id_type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,17 +102,17 @@ $(function() { - - + + - - + +

    Public Member Functions

    template<typename Type >
    monostateoperator= (Type val) noexcept
    template<typename Type>
    monostateoperator= (Type val) noexcept
     Assigns a value of a specific type to a given key.
     
    template<typename Type >
     operator Type () const noexcept
    template<typename Type>
     operator Type () const noexcept
     Gets a value of a specific type for a given key.
     

    Detailed Description

    -
    template<id_type>
    +
    template<id_type>
    struct entt::monostate< id_type >

    Minimal implementation of the monostate pattern.

    A minimal, yet complete configuration system built on top of the monostate pattern. Thread safe by design, it works only with basic types like ints or bools.
    Multiple types and therefore more than one value can be associated with a single key. Because of this, users must pay attention to use the same type both during an assignment and when they try to read back their data. Otherwise, they can incur in unexpected results.

    @@ -112,23 +125,23 @@ struct entt::monostate< id_type >

    Minimal implementation of the mo

    -template<id_type >
    +template<id_type>
    -template<typename Type >
    +template<typename Type>
    +inlinenoexcept
    - + - +
    entt::monostate< id_type >::operator Type entt::monostate< id_type >::operator Type ()) const
    -inlinenoexcept
    @@ -152,15 +165,15 @@ template<
    -template<typename Type >
    +template<typename Type>
    @@ -31,23 +33,33 @@
    - + @@ -168,7 +181,7 @@ template< -inlinenoexcept +inlinenoexcept
    monostate & entt::monostate< id_type >::operator= monostate & entt::monostate< id_type >::operator= ( Type val)
    @@ -198,7 +211,8 @@ template< +
    diff --git a/structentt_1_1null__t-members.html b/structentt_1_1null__t-members.html index bd47dd330..ef0c93f47 100644 --- a/structentt_1_1null__t-members.html +++ b/structentt_1_1null__t-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::null_t Member List
    @@ -89,7 +102,8 @@ $(function() {
    +
    diff --git a/structentt_1_1null__t.html b/structentt_1_1null__t.html index 73fabc681..f0636fea5 100644 --- a/structentt_1_1null__t.html +++ b/structentt_1_1null__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::null_t Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -82,36 +95,34 @@ $(function() {
    -

    Null object for all identifiers.
    - +

    Null object for all identifiers. More...

    #include <entity.hpp>

    - - + + - + - + - - + + - - + +

    Public Member Functions

    template<typename Entity >
    constexpr operator Entity () const noexcept
    template<typename Entity>
    constexpr operator Entity () const noexcept
     Converts the null object to identifiers of any type.
     
    constexpr bool operator== (const null_t other) const noexcept
    constexpr bool operator== (const null_t other) const noexcept
     Compares two null objects.
     
    constexpr bool operator!= (const null_t other) const noexcept
    constexpr bool operator!= (const null_t other) const noexcept
     Compares two null objects.
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity) const noexcept
    template<typename Entity>
    constexpr bool operator== (const Entity entity) const noexcept
     Compares a null object and an identifier of any type.
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity) const noexcept
    template<typename Entity>
    constexpr bool operator!= (const Entity entity) const noexcept
     Compares a null object and an identifier of any type.
     

    Detailed Description

    -

    Null object for all identifiers.
    -

    +

    Null object for all identifiers.

    Definition at line 204 of file entity.hpp.

    Member Function Documentation

    @@ -121,21 +132,21 @@ Public Member Functions
    -template<typename Entity >
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr entt::null_t::operator Entity entt::null_t::operator Entity ()) const
    -inlineconstexprnoexcept
    @@ -159,21 +170,21 @@ template<
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr bool entt::null_t::operator!= bool entt::null_t::operator!= (const Entity entity)const Entity entity) const
    -inlineconstexprnoexcept
    @@ -239,21 +250,21 @@ template<
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr bool entt::null_t::operator== bool entt::null_t::operator== (const Entity entity)const Entity entity) const
    -inlineconstexprnoexcept
    @@ -319,7 +330,8 @@ template< +
    diff --git a/structentt_1_1overloaded.html b/structentt_1_1overloaded.html index c2fe3e012..0415ecf68 100644 --- a/structentt_1_1overloaded.html +++ b/structentt_1_1overloaded.html @@ -3,13 +3,15 @@ - + EnTT: entt::overloaded< Func > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::overloaded< Func > Struct Template Reference
    @@ -89,7 +102,7 @@ Inheritance diagram for entt::overloaded< Func >:
    Inheritance graph
    - +
    [legend]
    @@ -99,7 +112,7 @@ Collaboration diagram for entt::overloaded< Func >:
    Collaboration graph
    - +
    [legend]
    @@ -120,7 +133,8 @@ struct entt::overloaded< Func >

    Helper type for visitors.

    +
    diff --git a/structentt_1_1overloaded__coll__graph.map b/structentt_1_1overloaded__coll__graph.map index 7dd03c884..864cae119 100644 --- a/structentt_1_1overloaded__coll__graph.map +++ b/structentt_1_1overloaded__coll__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1overloaded__coll__graph.md5 b/structentt_1_1overloaded__coll__graph.md5 index e361b9bfa..e3ea9ea52 100644 --- a/structentt_1_1overloaded__coll__graph.md5 +++ b/structentt_1_1overloaded__coll__graph.md5 @@ -1 +1 @@ -cefe1efa1715498e76679cc04a9738a8 \ No newline at end of file +2997814fbd624157972e1c21e7220cbb \ No newline at end of file diff --git a/structentt_1_1overloaded__coll__graph.png b/structentt_1_1overloaded__coll__graph.png index 625f1817823c6a39611bb06bcf38457db6985f69..79a870390cf06d1275950f532c537ff26454ca76 100644 GIT binary patch literal 1366 zcmcJP`BTyf7{+PsFcaNOGg;KKbs;geXjR-$S0R(Ug-AuwMs&@r4N`N}+OkQ%nnxm# zvzVz<2&*+orY>ps;RRD>>L|K#mIs807m-U%yVF0g^UnLe^ZfA6JoC=yeSwIuAg~$4 z3ijQy4|GfdYSt7`D~OUAbL@PQxBCTlAWh_0|mowsH6otTZ4(I#s& zRp$!PzhJ7+u8_VuuwIwgX2C}akbLble_~`|11|eYjbm-i>D~GePp+xag2x2uEvRco zt-g1aXB(h2buO-#rtovN_!Neh)R`<^=h?DpUV%zeEFl}4j6P{mdxR`Go5HvAdHBlS z-afc(6m0)U06z&zjH=qAh&+5b2uK6C%#R(KIltQs!R#r-wS z&VxIxuntlv6zsSKi`NCewGI*9n+xftYj!DRecYqxd+@1M!zM#4FpRp{G5QiVbM}Ew zJqJW|Ocq-ak7~cm$JLOm7}x4x1SU&Q-QnL9+wjwF^Inb z(C5fSw3e+d>eI^wzDPN~bsvD3dy;{MIUNUj0u;EgWKD=$xI4iRDKXQrDDiC9i%TAU zRF@%+b(&j*#EjbmLmi|^WTpLT-Q5L$e;eP?Xz|zpqK@{;j`*2@ulJwyzX-75*@w8e zIN~Qf&vUou%Ujx|0;e;E%|5uDjgu;&Q21Nk(Ov2C!9l_bpm^Zt2kc>DAZ$@^rXU`L zLfJt?t|uB^yoZ>=c|%jz%8)Q4X8#hLpePmJO>d2Td8{qY_CEUAHagOP| zR4#4sZX_lRc+@nWZTfSj>3z-37OS?{=Abi`QjK!p>A=S@->^8LkE(HIR^~dpJnKu$ zs%~=Xr5{QMZ2{DWi*wfGrlHP)61-71B!rd&NN-BG?ob6buLhPod zrBQb921cg~tL8dB1Ak#LzrvD10_d=o>C!-I&RBoo3n{Z7bwnT=&82omI(o`RQpfWs zgdd3_TD0~Yo-C#8lanuTSlQ%Bo%*B|?H_ucn>_q+REcfarZ3J&0dt*y3M z0RRB&&=72-**BZ@lu&5{n!}Cs2owgr6T>%fd=q-2Sx>6&@}aFh)rA_jIr z=$h6WNXBX$Cr0cCcf|s|QY!nLJ=p1{F`smmz;ibKxJmOy%BGek2AM}VH*eUtW^DqK zxnfCDe1Q%oRm0Gyyg2z)$vHQ+paWo{jNeeH9`qtn{iNhVW4_kr_E346;7MX$(Vpg- z8mAYG&Z=V;pxljsaF%VCZ`g)e*xo+Q;`&Yq7sm{aBni0|Ntfk2t$Z>o@xS_pQL4u1 zPD)?-G#AG!-*87-=hAzJUM+~%u)>ktk%G~mgCUyV2+GqG%7_BcyXX`WmvVJlc<1jk>WEQ#fOR-+Q`1HAM#%1Y!TfdrB zJ@Lo*GIguo^Yz56-%?nR5)5T3(_rK6?J@rJI&>U7T)3rhrs)nOd`q#UV{YI z3{@%JPP2NYz*wWbH$}!w~+(Vic5$PjDjEp=-MB<;q0w66yO&mWzlDlrV)6Id@6q z%knsme&XQdSZTeB^`8wbw}vWktKtT>?UGbxh7U)$zG4!&6wV0&Dxg4INBfRjyK`KJ)L;AXno}5EVUk`Y-2=?e_>L0!gW<4926;V};R(CW&Mr!V|bWA6nb&{NQOCUZk78 ztI=rgr5!KWekt#9Kmb8;7@5LFeLAB%a>@`R9w=pW`hga?&N%Tvm|fFCM=rRvTf^Mp z&=aVz;^e)+TF3KFQgdg{l$FT`PWUabcNFWddGY5`O^iX>qtT*4w+JnyA35_=!aLO6 zBfL;;>uAwHy-STr-KLwS7|Tc+dfZU!PV+JNrNw2x9y1+raqFPa(UH#7;c3%wMO3-F zu19Su|E8lDa^0a!+}j+1xds<{AG`vJ$i#12$%4`9;B0BH@^@}Qsjdt)i>Li1#xSD& zE!g#q-BJv4`>PV^6b9zNEV#^dwrihyO_tm@IT qDi!Cg&vHNr0c@A2HUA_)-&N)++BxuTewRhc2OJuN$4d4cIsZ4ao1g>$ diff --git a/structentt_1_1overloaded__inherit__graph.map b/structentt_1_1overloaded__inherit__graph.map index 7dd03c884..864cae119 100644 --- a/structentt_1_1overloaded__inherit__graph.map +++ b/structentt_1_1overloaded__inherit__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1overloaded__inherit__graph.md5 b/structentt_1_1overloaded__inherit__graph.md5 index e361b9bfa..e3ea9ea52 100644 --- a/structentt_1_1overloaded__inherit__graph.md5 +++ b/structentt_1_1overloaded__inherit__graph.md5 @@ -1 +1 @@ -cefe1efa1715498e76679cc04a9738a8 \ No newline at end of file +2997814fbd624157972e1c21e7220cbb \ No newline at end of file diff --git a/structentt_1_1overloaded__inherit__graph.png b/structentt_1_1overloaded__inherit__graph.png index 625f1817823c6a39611bb06bcf38457db6985f69..79a870390cf06d1275950f532c537ff26454ca76 100644 GIT binary patch literal 1366 zcmcJP`BTyf7{+PsFcaNOGg;KKbs;geXjR-$S0R(Ug-AuwMs&@r4N`N}+OkQ%nnxm# zvzVz<2&*+orY>ps;RRD>>L|K#mIs807m-U%yVF0g^UnLe^ZfA6JoC=yeSwIuAg~$4 z3ijQy4|GfdYSt7`D~OUAbL@PQxBCTlAWh_0|mowsH6otTZ4(I#s& zRp$!PzhJ7+u8_VuuwIwgX2C}akbLble_~`|11|eYjbm-i>D~GePp+xag2x2uEvRco zt-g1aXB(h2buO-#rtovN_!Neh)R`<^=h?DpUV%zeEFl}4j6P{mdxR`Go5HvAdHBlS z-afc(6m0)U06z&zjH=qAh&+5b2uK6C%#R(KIltQs!R#r-wS z&VxIxuntlv6zsSKi`NCewGI*9n+xftYj!DRecYqxd+@1M!zM#4FpRp{G5QiVbM}Ew zJqJW|Ocq-ak7~cm$JLOm7}x4x1SU&Q-QnL9+wjwF^Inb z(C5fSw3e+d>eI^wzDPN~bsvD3dy;{MIUNUj0u;EgWKD=$xI4iRDKXQrDDiC9i%TAU zRF@%+b(&j*#EjbmLmi|^WTpLT-Q5L$e;eP?Xz|zpqK@{;j`*2@ulJwyzX-75*@w8e zIN~Qf&vUou%Ujx|0;e;E%|5uDjgu;&Q21Nk(Ov2C!9l_bpm^Zt2kc>DAZ$@^rXU`L zLfJt?t|uB^yoZ>=c|%jz%8)Q4X8#hLpePmJO>d2Td8{qY_CEUAHagOP| zR4#4sZX_lRc+@nWZTfSj>3z-37OS?{=Abi`QjK!p>A=S@->^8LkE(HIR^~dpJnKu$ zs%~=Xr5{QMZ2{DWi*wfGrlHP)61-71B!rd&NN-BG?ob6buLhPod zrBQb921cg~tL8dB1Ak#LzrvD10_d=o>C!-I&RBoo3n{Z7bwnT=&82omI(o`RQpfWs zgdd3_TD0~Yo-C#8lanuTSlQ%Bo%*B|?H_ucn>_q+REcfarZ3J&0dt*y3M z0RRB&&=72-**BZ@lu&5{n!}Cs2owgr6T>%fd=q-2Sx>6&@}aFh)rA_jIr z=$h6WNXBX$Cr0cCcf|s|QY!nLJ=p1{F`smmz;ibKxJmOy%BGek2AM}VH*eUtW^DqK zxnfCDe1Q%oRm0Gyyg2z)$vHQ+paWo{jNeeH9`qtn{iNhVW4_kr_E346;7MX$(Vpg- z8mAYG&Z=V;pxljsaF%VCZ`g)e*xo+Q;`&Yq7sm{aBni0|Ntfk2t$Z>o@xS_pQL4u1 zPD)?-G#AG!-*87-=hAzJUM+~%u)>ktk%G~mgCUyV2+GqG%7_BcyXX`WmvVJlc<1jk>WEQ#fOR-+Q`1HAM#%1Y!TfdrB zJ@Lo*GIguo^Yz56-%?nR5)5T3(_rK6?J@rJI&>U7T)3rhrs)nOd`q#UV{YI z3{@%JPP2NYz*wWbH$}!w~+(Vic5$PjDjEp=-MB<;q0w66yO&mWzlDlrV)6Id@6q z%knsme&XQdSZTeB^`8wbw}vWktKtT>?UGbxh7U)$zG4!&6wV0&Dxg4INBfRjyK`KJ)L;AXno}5EVUk`Y-2=?e_>L0!gW<4926;V};R(CW&Mr!V|bWA6nb&{NQOCUZk78 ztI=rgr5!KWekt#9Kmb8;7@5LFeLAB%a>@`R9w=pW`hga?&N%Tvm|fFCM=rRvTf^Mp z&=aVz;^e)+TF3KFQgdg{l$FT`PWUabcNFWddGY5`O^iX>qtT*4w+JnyA35_=!aLO6 zBfL;;>uAwHy-STr-KLwS7|Tc+dfZU!PV+JNrNw2x9y1+raqFPa(UH#7;c3%wMO3-F zu19Su|E8lDa^0a!+}j+1xds<{AG`vJ$i#12$%4`9;B0BH@^@}Qsjdt)i>Li1#xSD& zE!g#q-BJv4`>PV^6b9zNEV#^dwrihyO_tm@IT qDi!Cg&vHNr0c@A2HUA_)-&N)++BxuTewRhc2OJuN$4d4cIsZ4ao1g>$ diff --git a/structentt_1_1owned__t-members.html b/structentt_1_1owned__t-members.html index beb31fdab..887328383 100644 --- a/structentt_1_1owned__t-members.html +++ b/structentt_1_1owned__t-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::owned_t< Type > Member List
    @@ -83,11 +96,13 @@ $(function() { - + +
    owned_t()=defaultentt::owned_t< Type >explicit
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    sizeentt::type_list< Type... >static
    type typedefentt::type_list< Type... >
    +
    diff --git a/structentt_1_1owned__t.html b/structentt_1_1owned__t.html index 0f4221ec5..3df80cb75 100644 --- a/structentt_1_1owned__t.html +++ b/structentt_1_1owned__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::owned_t< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::owned_t< Type > Struct Template Referencefinal
    +
    entt::owned_t< Type > Struct Template Referencefinal
    @@ -110,7 +123,7 @@ Collaboration diagram for entt::owned_t< Type >:

    Public Member Functions

    -constexpr owned_t ()=default +constexpr owned_t ()=default  Default constructor.
      @@ -124,6 +137,9 @@ Additional Inherited Members + + +
    static constexpr auto size
     Compile-time number of elements in the type list.
     
    static constexpr auto size
     Compile-time number of elements in the type list.
     

    Detailed Description

    template<typename... Type>
    @@ -135,14 +151,15 @@ struct entt::owned_t< Type >

    Alias for lists of owned elements. -

    Definition at line 175 of file fwd.hpp.

    +

    Definition at line 174 of file fwd.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1poly__base-members.html b/structentt_1_1poly__base-members.html index fc338386a..5d06a3148 100644 --- a/structentt_1_1poly__base-members.html +++ b/structentt_1_1poly__base-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::poly_base< Poly > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1poly__base.html b/structentt_1_1poly__base.html index ccdbfeb96..0d1a76221 100644 --- a/structentt_1_1poly__base.html +++ b/structentt_1_1poly__base.html @@ -3,13 +3,15 @@ - + EnTT: entt::poly_base< Poly > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -90,16 +103,16 @@ $(function() {

    Public Member Functions

    template<std::size_t Member, typename... Args> -decltype(autoinvoke (const poly_base &self, Args &&...args) const +decltype(auto) invoke (const poly_base &self, Args &&...args) const  Invokes a function from the static virtual table.
      template<std::size_t Member, typename... Args> -decltype(autoinvoke (poly_base &self, Args &&...args) - Invokes a function from the static virtual table.
    +decltype(auto) invoke (poly_base &self, Args &&...args) + Invokes a function from the static virtual table.
     

    Detailed Description

    -
    template<typename Poly>
    +
    template<typename Poly>
    struct entt::poly_base< Poly >

    Poly base class used to inject functionalities into concepts.

    Template Parameters
    @@ -116,7 +129,7 @@ struct entt::poly_base< Poly >

    Poly base class used to inject func

    -template<typename Poly >
    +template<typename Poly>
    template<std::size_t Member, typename... Args>
    @@ -124,19 +137,19 @@ template<std::size_t Member, typename... Args> +inlinenodiscard
    - + - + - +
    decltype(auto) entt::poly_base< Poly >::invoke decltype(auto) entt::poly_base< Poly >::invoke (const poly_base< Poly > & self, const poly_base< Poly > & self,
    Args &&... args ) constArgs &&... args ) const
    -inline
    @@ -168,7 +181,7 @@ template<std::size_t Member, typename... Args>
    -template<typename Poly >
    +template<typename Poly>
    template<std::size_t Member, typename... Args>
    @@ -176,24 +189,24 @@ template<std::size_t Member, typename... Args> +inlinenodiscard
    - + - + - +
    decltype(auto) entt::poly_base< Poly >::invoke decltype(auto) entt::poly_base< Poly >::invoke (poly_base< Poly > & self, poly_base< Poly > & self,
    Args &&... args )Args &&... args )
    -inline
    -

    Invokes a function from the static virtual table.

    +

    Invokes a function from the static virtual table.

    Template Parameters
    @@ -208,7 +221,7 @@ template<std::size_t Member, typename... Args>
    MemberIndex of the function to invoke.
    -
    Returns
    The return value of the invoked function, if any.
    +
    Returns
    The return value of the invoked function, if any.

    Definition at line 151 of file poly.hpp.

    @@ -220,7 +233,8 @@ template<std::size_t Member, typename... Args>
    +
    diff --git a/structentt_1_1poly__inspector-members.html b/structentt_1_1poly__inspector-members.html index 9c2ae8e9d..79af489ea 100644 --- a/structentt_1_1poly__inspector-members.html +++ b/structentt_1_1poly__inspector-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::poly_inspector Member List
    @@ -87,7 +100,8 @@ $(function() {
    +
    diff --git a/structentt_1_1poly__inspector.html b/structentt_1_1poly__inspector.html index dd5b5339a..2bbd4be59 100644 --- a/structentt_1_1poly__inspector.html +++ b/structentt_1_1poly__inspector.html @@ -3,13 +3,15 @@ - + EnTT: entt::poly_inspector Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,17 +102,17 @@ $(function() { - - + + - + - - + +

    Public Member Functions

    template<typename Type >
     operator Type && () const
    template<typename Type>
     operator Type && () const
     Generic conversion operator (definition only).
     
    template<std::size_t Member, typename... Args>
    poly_inspector invoke (Args &&...args) const
    poly_inspector invoke (Args &&...args) const
     Dummy invocation function (definition only).
     
    template<std::size_t Member, typename... Args>
    poly_inspector invoke (Args &&...args)
     Dummy invocation function (definition only).
    poly_inspector invoke (Args &&...args)
     Dummy invocation function (definition only).
     

    Detailed Description

    @@ -114,17 +127,25 @@ Public Member Functions
    template<std::size_t Member, typename... Args>
    + + + + + +
    - +
    poly_inspector entt::poly_inspector::invoke (Args &&... args)Args &&... args)
    +
    +nodiscard
    -

    Dummy invocation function (definition only).

    +

    Dummy invocation function (definition only).

    Template Parameters
    @@ -138,7 +159,7 @@ template<std::size_t Member, typename... Args>
    MemberIndex of the function to invoke.
    -
    Returns
    A poly inspector convertible to any type.
    +
    Returns
    A poly inspector convertible to any type.
    @@ -149,14 +170,22 @@ template<std::size_t Member, typename... Args>
    template<std::size_t Member, typename... Args>
    + + + + + +
    - +
    poly_inspector entt::poly_inspector::invoke (Args &&... args)Args &&... args) const
    +
    +nodiscard

    Dummy invocation function (definition only).

    @@ -183,12 +212,12 @@ template<std::size_t Member, typename... Args>
    -template<typename Type >
    +template<typename Type>
    - +
    entt::poly_inspector::operator Type && ()) const
    @@ -210,7 +239,8 @@ template< +
    diff --git a/structentt_1_1process__adaptor-members.html b/structentt_1_1process__adaptor-members.html index 418c170fb..233345213 100644 --- a/structentt_1_1process__adaptor-members.html +++ b/structentt_1_1process__adaptor-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::process_adaptor< Func, Delta > Member List
    @@ -103,7 +116,8 @@ $(function() {
    + diff --git a/structentt_1_1process__adaptor.html b/structentt_1_1process__adaptor.html index df3af4878..9127379eb 100644 --- a/structentt_1_1process__adaptor.html +++ b/structentt_1_1process__adaptor.html @@ -3,13 +3,15 @@ - + EnTT: entt::process_adaptor< Func, Delta > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Member Functions | @@ -114,10 +127,10 @@ Collaboration diagram for entt::process_adaptor< Func, Delta >:

    Public Member Functions

    template<typename... Args> - process_adaptor (Args &&...args) + process_adaptor (Args &&...args)  Constructs a process adaptor from a lambda or a functor.
      -void update (const Delta delta, void *data) +void update (const Delta delta, void *data)  Updates a process and its internal state if required.
      - Public Member Functions inherited from entt::process< process_adaptor< Func, Delta >, Delta > @@ -182,15 +195,14 @@ Additional Inherited Members  

    Detailed Description

    -
    template<typename Func, typename Delta>
    +
    template<typename Func, typename Delta>
    struct entt::process_adaptor< Func, Delta >

    Adaptor for lambdas and functors to turn them into processes.

    Lambdas and functors can't be used directly with a scheduler for they are not properly defined processes with managed life cycles.
    This class helps in filling the gap and turning lambdas and functors into full featured processes usable by a scheduler.

    The signature of the function call operator should be equivalent to the following:

    -
    void(Delta delta, void *data, auto succeed, auto fail);
    -
    void succeed() noexcept
    Terminates a process with success if it's still alive.
    Definition process.hpp:123
    -
    void fail() noexcept
    Terminates a process with errors if it's still alive.
    Definition process.hpp:135
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    +
    void(Delta delta, void *data, auto succeed, auto fail);
    + +

    Where:

    • delta is the elapsed time.
    • @@ -199,7 +211,7 @@ struct entt::process_adaptor< Func, Delta >

    Adaptor for lambdas an

  • fail is a function to call when a process terminates with errors.
  • The signature of the function call operator of both succeed and fail is equivalent to the following:

    -
    void();
    +
    void();

    Usually users shouldn't worry about creating adaptors. A scheduler will create them internally each and avery time a lambda or a functor is used as a process.

    See also
    process
    @@ -220,7 +232,7 @@ struct entt::process_adaptor< Func, Delta >

    Adaptor for lambdas an

    -template<typename Func , typename Delta >
    +template<typename Func, typename Delta>
    template<typename... Args>
    @@ -228,15 +240,15 @@ template<typename... Args> +inline
    - + - +
    entt::process_adaptor< Func, Delta >::process_adaptor entt::process_adaptor< Func, Delta >::process_adaptor (Args &&... args)Args &&... args)
    -inline
    @@ -266,25 +278,25 @@ template<typename... Args>
    -template<typename Func , typename Delta >
    +template<typename Func, typename Delta>
    +inline
    - + - + - +
    void entt::process_adaptor< Func, Delta >::update void entt::process_adaptor< Func, Delta >::update (const Delta delta, const Delta delta,
    void * data )void * data )
    -inline
    @@ -308,7 +320,8 @@ template< +
    diff --git a/structentt_1_1radix__sort-members.html b/structentt_1_1radix__sort-members.html index d88ad0221..11365b187 100644 --- a/structentt_1_1radix__sort-members.html +++ b/structentt_1_1radix__sort-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::radix_sort< Bit, N > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1radix__sort.html b/structentt_1_1radix__sort.html index 84153fdcd..681c9b102 100644 --- a/structentt_1_1radix__sort.html +++ b/structentt_1_1radix__sort.html @@ -3,13 +3,15 @@ - + EnTT: entt::radix_sort< Bit, N > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,8 +102,8 @@ $(function() { - - + +

    Public Member Functions

    template<typename It , typename Getter = identity>
    void operator() (It first, It last, Getter getter=Getter{}) const
    template<typename It, typename Getter = identity>
    void operator() (It first, It last, Getter getter=Getter{}) const
     Sorts the elements in a range.
     
    @@ -115,30 +128,30 @@ struct entt::radix_sort< Bit, N >

    Function object for performing L

    template<std::size_t Bit, std::size_t N>
    -template<typename It , typename Getter = identity>
    +template<typename It, typename Getter = identity>
    +inline
    - + - + - + - +
    void entt::radix_sort< Bit, N >::operator() void entt::radix_sort< Bit, N >::operator() (It first, It first,
    It last, It last,
    Getter getter = Getter{} ) constGetter getter = Getter{} ) const
    -inline
    @@ -172,7 +185,8 @@ template< +
    diff --git a/structentt_1_1reactive.html b/structentt_1_1reactive.html index f061f3d11..6ce90d985 100644 --- a/structentt_1_1reactive.html +++ b/structentt_1_1reactive.html @@ -3,13 +3,15 @@ - + EnTT: entt::reactive Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::reactive Struct Referencefinal
    +
    entt::reactive Struct Referencefinal
    @@ -86,14 +99,15 @@ $(function() {

    Detailed Description

    Empty value type for reactive storage types.

    -

    Definition at line 233 of file fwd.hpp.

    +

    Definition at line 232 of file fwd.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1resource__loader-members.html b/structentt_1_1resource__loader-members.html index a97a27130..ee66e5401 100644 --- a/structentt_1_1resource__loader-members.html +++ b/structentt_1_1resource__loader-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::resource_loader< Type > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1resource__loader.html b/structentt_1_1resource__loader.html index c37514e67..b9efcb90b 100644 --- a/structentt_1_1resource__loader.html +++ b/structentt_1_1resource__loader.html @@ -3,13 +3,15 @@ - + EnTT: entt::resource_loader< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,19 +103,19 @@ $(function() { - +

    Public Types

    using result_type = std::shared_ptr<Type>
    using result_type = std::shared_ptr<Type>
     Result type.
     
    - +

    Public Member Functions

    template<typename... Args>
    result_type operator() (Args &&...args) const
    result_type operator() (Args &&...args) const
     Constructs a shared pointer to a resource from its arguments.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::resource_loader< Type >

    Transparent loader for shared resources.

    Template Parameters
    @@ -119,10 +132,10 @@ struct entt::resource_loader< Type >

    Transparent loader for shared

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::resource_loader< Type >::result_type = std::shared_ptr<Type>using entt::resource_loader< Type >::result_type = std::shared_ptr<Type>
    @@ -140,7 +153,7 @@ template<
    +template<typename Type>
    template<typename... Args>
    @@ -148,15 +161,15 @@ template<typename... Args> +inline
    - + - +
    result_type entt::resource_loader< Type >::operator() result_type entt::resource_loader< Type >::operator() (Args &&... args)Args &&... args) const
    -inline
    @@ -187,7 +200,8 @@ template<typename... Args>
    +
    diff --git a/structentt_1_1scoped__connection-members.html b/structentt_1_1scoped__connection-members.html index 44b76d724..41c350797 100644 --- a/structentt_1_1scoped__connection-members.html +++ b/structentt_1_1scoped__connection-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::scoped_connection Member List
    @@ -94,7 +107,8 @@ $(function() {
    +
    diff --git a/structentt_1_1scoped__connection.html b/structentt_1_1scoped__connection.html index 7b6cd0982..731af440d 100644 --- a/structentt_1_1scoped__connection.html +++ b/structentt_1_1scoped__connection.html @@ -3,13 +3,15 @@ - + EnTT: entt::scoped_connection Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -90,35 +103,35 @@ $(function() {

    Public Member Functions

    scoped_connection ()=defaultscoped_connection ()=default  Default constructor.
      - scoped_connection (const connection &other) + scoped_connection (const connection &other)  Constructs a scoped connection from a basic connection.
      scoped_connection (const scoped_connection &)=deletescoped_connection (const scoped_connection &)=delete  Default copy constructor, deleted on purpose.
      - scoped_connection (scoped_connection &&other) noexceptscoped_connection (scoped_connection &&other) noexcept  Move constructor.
       ~scoped_connection ()  Automatically breaks the link on destruction.
      -scoped_connectionoperator= (const scoped_connection &)=delete +scoped_connectionoperator= (const scoped_connection &)=delete  Default copy assignment operator, deleted on purpose.
      -scoped_connectionoperator= (scoped_connection &&other) noexcept +scoped_connectionoperator= (scoped_connection &&other) noexcept  Move assignment operator.
      -scoped_connectionoperator= (connection other) +scoped_connectionoperator= (connection other)  Acquires a connection.
      - operator bool () const noexceptoperator bool () const noexcept  Checks whether a scoped connection is properly initialized.
      -void release () +void release ()  Breaks the connection.
      @@ -141,13 +154,13 @@ Public Member Functions entt::scoped_connection::scoped_connection ( - const connection & other) + const connection & other) -inline +inline
    @@ -182,7 +195,7 @@ Public Member Functions -inlinenoexcept +inlinenoexcept
    @@ -211,13 +224,13 @@ Public Member Functions entt::scoped_connection::~scoped_connection ( - ) + ) -inline +inline
    @@ -239,15 +252,15 @@ Public Member Functions - + - +
    entt::scoped_connection::operator bool entt::scoped_connection::operator bool ()) const
    -inlineexplicitnoexcept +inlineexplicitnodiscardnoexcept
    @@ -277,7 +290,7 @@ Public Member Functions -inline +inline
    @@ -307,13 +320,13 @@ Public Member Functions scoped_connection & entt::scoped_connection::operator= ( - const scoped_connection & ) + const scoped_connection & ) -delete +delete
    @@ -341,7 +354,7 @@ Public Member Functions -inlinenoexcept +inlinenoexcept
    @@ -369,15 +382,15 @@ Public Member Functions - + - +
    void entt::scoped_connection::release void entt::scoped_connection::release ())
    -inline +inline
    @@ -394,7 +407,8 @@ Public Member Functions
    +
    diff --git a/structentt_1_1sigh__helper.html b/structentt_1_1sigh__helper.html index f96fcd5df..4ea0a2189 100644 --- a/structentt_1_1sigh__helper.html +++ b/structentt_1_1sigh__helper.html @@ -3,13 +3,15 @@ - + EnTT: entt::sigh_helper<... > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::sigh_helper<... > Struct Template Reference
    @@ -85,14 +98,15 @@ $(function() {
    template<typename...>
    struct entt::sigh_helper<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 143 of file helper.hpp.

    +

    Definition at line 144 of file helper.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4-members.html b/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4-members.html index 5dde7b23d..2ebe97adc 100644 --- a/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4-members.html +++ b/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::sigh_helper< Registry, Type > Member List
    @@ -92,7 +105,8 @@ $(function() {
    + diff --git a/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html b/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html index d8d6435df..242e25307 100644 --- a/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html +++ b/structentt_1_1sigh__helper_3_01Registry_00_01Type_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::sigh_helper< Registry, Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    -
    entt::sigh_helper< Registry, Type > Struct Template Referencefinal
    +
    entt::sigh_helper< Registry, Type > Struct Template Referencefinal
    @@ -110,45 +123,45 @@ Collaboration diagram for entt::sigh_helper< Registry, Type >:
    - + - +

    Public Types

    using registry_type = Registry
    using registry_type = Registry
     Registry type.
     
    - Public Types inherited from entt::sigh_helper< Registry >
    using registry_type = Registry
    using registry_type = Registry
     Registry type.
     
    - + - - + + - - + + - - + + - - + + - +

    Public Member Functions

     sigh_helper (registry_type &ref, const id_type id=type_hash< Type >::value())
     sigh_helper (registry_type &ref, const id_type id=type_hash< Type >::value())
     Constructs a helper for a given registry.
     
    template<auto Candidate, typename... Args>
    auto on_construct (Args &&...args)
    template<auto Candidate, typename... Args>
    auto on_construct (Args &&...args)
     Forwards the call to on_construct on the underlying storage.
     
    template<auto Candidate, typename... Args>
    auto on_update (Args &&...args)
    template<auto Candidate, typename... Args>
    auto on_update (Args &&...args)
     Forwards the call to on_update on the underlying storage.
     
    template<auto Candidate, typename... Args>
    auto on_destroy (Args &&...args)
    template<auto Candidate, typename... Args>
    auto on_destroy (Args &&...args)
     Forwards the call to on_destroy on the underlying storage.
     
    - Public Member Functions inherited from entt::sigh_helper< Registry >
     sigh_helper (registry_type &ref)
     Constructs a helper for a given registry.
     
    template<typename Type >
    auto with (const id_type id=type_hash< Type >::value()) noexcept
    template<typename Type>
    auto with (const id_type id=type_hash< Type >::value()) noexcept
     Binds a properly initialized helper to a given signal type.
     
    registry_typeregistry () noexcept
    registry_typeregistry () noexcept
     Returns a reference to the underlying registry.
     

    Detailed Description

    -
    template<typename Registry, typename Type>
    +
    template<typename Registry, typename Type>
    struct entt::sigh_helper< Registry, Type >

    Signal connection helper for registries.

    Template Parameters
    @@ -158,7 +171,7 @@ struct entt::sigh_helper< Registry, Type >

    Signal connection helpe -

    Definition at line 190 of file helper.hpp.

    +

    Definition at line 191 of file helper.hpp.

    Member Typedef Documentation

    ◆ registry_type

    @@ -166,17 +179,17 @@ struct entt::sigh_helper< Registry, Type >

    Signal connection helpe

    -template<typename Registry , typename Type >
    +template<typename Registry, typename Type>
    - +
    using entt::sigh_helper< Registry, Type >::registry_type = Registryusing entt::sigh_helper< Registry, Type >::registry_type = Registry

    Registry type.

    -

    Definition at line 192 of file helper.hpp.

    +

    Definition at line 193 of file helper.hpp.

    @@ -187,25 +200,25 @@ template<
    +template<typename Registry, typename Type>
    +inline
    - + - + - +
    entt::sigh_helper< Registry, Type >::sigh_helper entt::sigh_helper< Registry, Type >::sigh_helper (registry_type & ref, registry_type & ref,
    const id_type id = type_hash<Type>::value() )const id_type id = type_hash<Type>::value() )
    -inline
    @@ -219,7 +232,7 @@ template<Definition at line 199 of file helper.hpp.

    +

    Definition at line 200 of file helper.hpp.

    @@ -230,23 +243,23 @@ template<
    +template<typename Registry, typename Type>
    -template<auto Candidate, typename... Args>
    +template<auto Candidate, typename... Args> +inline
    - + - +
    auto entt::sigh_helper< Registry, Type >::on_construct auto entt::sigh_helper< Registry, Type >::on_construct (Args &&... args)Args &&... args)
    -inline
    @@ -267,7 +280,7 @@ template<
    Returns
    This helper.
    -

    Definition at line 211 of file helper.hpp.

    +

    Definition at line 212 of file helper.hpp.

    @@ -277,23 +290,23 @@ template<
    +template<typename Registry, typename Type>
    -template<auto Candidate, typename... Args>
    +template<auto Candidate, typename... Args> +inline
    - + - +
    auto entt::sigh_helper< Registry, Type >::on_destroy auto entt::sigh_helper< Registry, Type >::on_destroy (Args &&... args)Args &&... args)
    -inline
    @@ -314,7 +327,7 @@ template<
    Returns
    This helper.
    -

    Definition at line 237 of file helper.hpp.

    +

    Definition at line 238 of file helper.hpp.

    @@ -324,23 +337,23 @@ template<
    +template<typename Registry, typename Type>
    -template<auto Candidate, typename... Args>
    +template<auto Candidate, typename... Args> +inline
    - + - +
    auto entt::sigh_helper< Registry, Type >::on_update auto entt::sigh_helper< Registry, Type >::on_update (Args &&... args)Args &&... args)
    -inline
    @@ -361,7 +374,7 @@ template<
    Returns
    This helper.
    -

    Definition at line 224 of file helper.hpp.

    +

    Definition at line 225 of file helper.hpp.

    @@ -371,7 +384,8 @@ template< + diff --git a/structentt_1_1sigh__helper_3_01Registry_01_4-members.html b/structentt_1_1sigh__helper_3_01Registry_01_4-members.html index 0371044f2..b7886993c 100644 --- a/structentt_1_1sigh__helper_3_01Registry_01_4-members.html +++ b/structentt_1_1sigh__helper_3_01Registry_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::sigh_helper< Registry > Member List
    @@ -88,7 +101,8 @@ $(function() {
    + diff --git a/structentt_1_1sigh__helper_3_01Registry_01_4.html b/structentt_1_1sigh__helper_3_01Registry_01_4.html index db448ee57..19d2941bd 100644 --- a/structentt_1_1sigh__helper_3_01Registry_01_4.html +++ b/structentt_1_1sigh__helper_3_01Registry_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::sigh_helper< Registry > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -100,7 +113,7 @@ Inheritance diagram for entt::sigh_helper< Registry >:
    - +

    Public Types

    using registry_type = Registry
    using registry_type = Registry
     Registry type.
     
    @@ -109,16 +122,16 @@ Public Member Functions - - + + - +
     sigh_helper (registry_type &ref)
     Constructs a helper for a given registry.
     
    template<typename Type >
    auto with (const id_type id=type_hash< Type >::value()) noexcept
    template<typename Type>
    auto with (const id_type id=type_hash< Type >::value()) noexcept
     Binds a properly initialized helper to a given signal type.
     
    registry_typeregistry () noexcept
    registry_typeregistry () noexcept
     Returns a reference to the underlying registry.
     

    Detailed Description

    -
    template<typename Registry>
    +
    template<typename Registry>
    struct entt::sigh_helper< Registry >

    Signal connection helper for registries.

    Template Parameters
    @@ -127,7 +140,7 @@ struct entt::sigh_helper< Registry >

    Signal connection helper for -

    Definition at line 150 of file helper.hpp.

    +

    Definition at line 151 of file helper.hpp.

    Member Typedef Documentation

    ◆ registry_type

    @@ -135,17 +148,17 @@ struct entt::sigh_helper< Registry >

    Signal connection helper for

    -template<typename Registry >
    +template<typename Registry>
    - +
    using entt::sigh_helper< Registry >::registry_type = Registryusing entt::sigh_helper< Registry >::registry_type = Registry

    Registry type.

    -

    Definition at line 152 of file helper.hpp.

    +

    Definition at line 153 of file helper.hpp.

    @@ -156,13 +169,13 @@ template<
    +template<typename Registry>
    @@ -31,23 +33,33 @@
    - + @@ -170,7 +183,7 @@ template< -inline +inline
    entt::sigh_helper< Registry >::sigh_helper entt::sigh_helper< Registry >::sigh_helper ( registry_type & ref)
    @@ -194,21 +207,21 @@ template<
    +template<typename Registry>
    +inlinenodiscardnoexcept
    - + - +
    registry_type & entt::sigh_helper< Registry >::registry registry_type & entt::sigh_helper< Registry >::registry ())
    -inlinenoexcept
    @@ -216,7 +229,7 @@ template<
    Returns
    A reference to the underlying registry.
    -

    Definition at line 176 of file helper.hpp.

    +

    Definition at line 177 of file helper.hpp.

    @@ -226,23 +239,23 @@ template<
    +template<typename Registry>
    -template<typename Type >
    +template<typename Type> +inlinenoexcept
    - + - +
    auto entt::sigh_helper< Registry >::with auto entt::sigh_helper< Registry >::with (const id_type id = type_hash<Type>::value())const id_type id = type_hash<Type>::value())
    -inlinenoexcept
    @@ -262,7 +275,7 @@ template<
    Returns
    A helper for a given registry and signal type.
    -

    Definition at line 168 of file helper.hpp.

    +

    Definition at line 169 of file helper.hpp.

    @@ -272,7 +285,8 @@ template< + diff --git a/structentt_1_1size__of.html b/structentt_1_1size__of.html index 97e98e16a..0b13d3f48 100644 --- a/structentt_1_1size__of.html +++ b/structentt_1_1size__of.html @@ -3,13 +3,15 @@ - + EnTT: entt::size_of< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::size_of< Type, typename > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::size_of< Type, typename >:
    [legend]

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::size_of< Type, typename >

    A type-only sizeof wrapper that returns 0 where sizeof complains.

    Template Parameters
    @@ -120,7 +133,8 @@ struct entt::size_of< Type, typename >

    A type-only sizeof

    + diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html index 11baa3f42..7e21581b2 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::size_of< Type, std::void_t< decltype(sizeof(Type))> > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::size_of< Type, std::void_t< decltype(sizeof(Type))> > Struct Template Reference
    -

    A type-only sizeof wrapper that returns 0 where sizeof complains. +

    A type-only sizeof wrapper that returns 0 where sizeof complains. More...

    #include <type_traits.hpp>

    @@ -88,9 +101,11 @@ Inheritance diagram for entt::size_of< Type, std::void_t< decltype(sizeof(
    Inheritance graph
    - - - + + + + +
    [legend]
    @@ -98,17 +113,19 @@ Collaboration diagram for entt::size_of< Type, std::void_t< decltype(sizeo
    Collaboration graph
    - - - + + + + +
    [legend]

    Detailed Description

    -
    template<typename Type>
    -struct entt::size_of< Type, std::void_t< decltype(sizeof(Type))> >

    A type-only sizeof wrapper that returns 0 where sizeof complains.

    +
    template<typename Type>
    +struct entt::size_of< Type, std::void_t< decltype(sizeof(Type))> >

    A type-only sizeof wrapper that returns 0 where sizeof complains.

    Template Parameters
    - +
    TypeThe type of which to return the size.
    TypeThe type of which to return the size.
    @@ -120,7 +137,8 @@ struct entt::size_of< Type, std::void_t< decltype(sizeof(Type))> > +
    diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map index e870b8f44..9b0a01931 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 index 7c4438bf8..0d417cec4 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.md5 @@ -1 +1 @@ -d400a474d1877a2bbef30d0e354dae29 \ No newline at end of file +175b8350af2aaba28ca5e00066dd381a \ No newline at end of file diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.png b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__coll__graph.png index fb74a8ec2afbeafd23c8abbf28e05b26f454b55e..91635599323fbbd8c565bb5426bfd7677e3900c5 100644 GIT binary patch literal 4213 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 LNkvXXu0mjf_=6m@ literal 2557 zcmb_edpOgJ8%JuQF_+^Mt>`EcO3Nk6t*`q*jnWTu8!3!rRBnfIo0?oUX~S?_>sVpi z$wD`hjWM$`HuNLHhN#Uo`sw_h-}C%_|Nox%dEd|TUjBIB=Y8JK^J31sJA&mkc!*wN7r=wq4Jkd%q34f?XW}sqa6eysfrSN@{nLGhpj=t7N|P<%5g%YF&LJ zJMU*ppNikgt~f!s+KeqIjx;z`ab7`v=N)6Y+juMoXuLgP{mKOkk+%!3%6DkO z#wgt7N2Y1#%gWs}m@Ehy>uH0lj#dOK1hCoXmf zq}}mL#nTr>aGwBCiZ}c1^m%ix;KnQ`p445|POpjh*$=fuwG8=&*f>FjW$KJ`xz8Jw zlp`SPd{1WZ%Cz9h{TOKYFP$(Uu!J7fwQV!Ps^|_jE<(SL^g-;=z@VtfRV(vs&3P|* z^2dNTFktu7!{BxW)5O@heebU7Qm}rXHC=CAv_>Q#e9v;IO3BH>uapIS9OC)0tH%c?lIQEW@X9XNy*w7AGC&ukFAbZv2 z;SPF2bJwo9(Q*&34?lUb`W#+i=a~|Ts;WBT+XYFMJZ7mzUQgEW6c;j<36W6OCgih< zU*&VX^muvIt=^d5avu@9vsp!Z@_ZntS*EU_ag!a@ zQT!XmyV+~EG!PIWm2MoN;_e;A$Yh&cISq?*MV=ftQKzA`Kd9+_XcmSBtCX=o++&Z@ zRekpxg>jj?&L9B0beO#dh;6Tdn8fmbi zKBobxQrUc)JoFn!xnS1P{_p0LOGPx`&uf}Y*lVWYNz5XDeEnfKa^XQtUlVMf2Z$kE zxnu6{V=&6Ij+&yC`~RVU>FsrMw|tC5ZrEFh2T7E$DgP+XoT%l#Rz{F6oyKYFQ}pf3ncWEQEKykYziH zG;bWfci|@)_UWc}ZEsn2j4g$^_yv|osxlkKK32k;dcFqs~`EcyYsV6>K7ND)4 z&`vIVj<=%|{R0hM!mJ^r&FqJOp>gKbW7^qcmN6HsUI)UtzY3#u?D7qh&)sSFWXiIu zFAY4j>&ItFWZ56V@6>cA3KigGty&KzX}>%CSR4cz2>Q=z{>@Wb7OxZm&`{cp)c-rl zdb8rny3%aMr)?T!8Jn=%zt6wul^jf|XgK!UG_5*hn`13VeJ?LD)!R*)P=e`nNY=`{ zpeyVjSiiM9*)v-6A4r0N;FjbK)6tgLu!@oOi`5{-{Z8SK%PBM(?SAFklK+|DAN=oM z15JtSB&$BYwes!Z{!!$i>E@0jPiD|T9cnI7uQSA?a08be+t-tP03{Eojz*d$u6i8z z4lu(LQ-m*xWW+jGG$bT2vQCVKB`CI~)PXb;9H>e^`^G9CZdJ^1me4nntw`2za=^_{ z{dH=@t$1p~Q!p>g^sM9iZ$`2l^Oa$OLeU~al6shx=4G5)txDmOw-UgBuhZmpfsojb zSP9xlucaWU#w!ywYLyrxUMf8k+s=av$eE{ex7H)|(sai0B2RoJY0%$eg{6(UFBxiS z^H=kj*8JqFfZEw{QOw%QypOJASby`ootytgaMcqP{vG4ZUW16`+67S+=dg6eQb=wGucW)y`G z-yRNqTyx}#5bpdD$0&O2NwoWP;wUDcUZoNd&`3eo8H`_qrnZ|M4LK>&;CE#s-{)5F zA~%#HN?)tfC(<~`*19pIx9-Ni|gsw(?#i8G@^WD&< z(I;`x%D)=9l5Rpj43>1pHD`|^XRCOYZ{}Q~vlL3=#64$)tqapbu2t;`sy}I-^k6jj z0H?EjXpxW@==Z+#^?2f(`bM!4F8EC8=SJpGbH_->GY&5nKQWu547~si$W*=8csj`n zg*!yc4So|Luhcm%c@8sADs<@5c~n!m*JE14U&5{NF}qacU;q!fzRE`w3|TZ?d4!`c z%|>|l^iGCa;BAU_>t+5?c`Rrx>J671#W5+;^*M5!2P!bPJqhu*HU6&;W}6vuCBOuq z8c`CTy1P-!;^X4= D-3t9v diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map index e870b8f44..9b0a01931 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 index 7c4438bf8..0d417cec4 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -d400a474d1877a2bbef30d0e354dae29 \ No newline at end of file +175b8350af2aaba28ca5e00066dd381a \ No newline at end of file diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.png b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4__inherit__graph.png index fb74a8ec2afbeafd23c8abbf28e05b26f454b55e..91635599323fbbd8c565bb5426bfd7677e3900c5 100644 GIT binary patch literal 4213 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 LNkvXXu0mjf_=6m@ literal 2557 zcmb_edpOgJ8%JuQF_+^Mt>`EcO3Nk6t*`q*jnWTu8!3!rRBnfIo0?oUX~S?_>sVpi z$wD`hjWM$`HuNLHhN#Uo`sw_h-}C%_|Nox%dEd|TUjBIB=Y8JK^J31sJA&mkc!*wN7r=wq4Jkd%q34f?XW}sqa6eysfrSN@{nLGhpj=t7N|P<%5g%YF&LJ zJMU*ppNikgt~f!s+KeqIjx;z`ab7`v=N)6Y+juMoXuLgP{mKOkk+%!3%6DkO z#wgt7N2Y1#%gWs}m@Ehy>uH0lj#dOK1hCoXmf zq}}mL#nTr>aGwBCiZ}c1^m%ix;KnQ`p445|POpjh*$=fuwG8=&*f>FjW$KJ`xz8Jw zlp`SPd{1WZ%Cz9h{TOKYFP$(Uu!J7fwQV!Ps^|_jE<(SL^g-;=z@VtfRV(vs&3P|* z^2dNTFktu7!{BxW)5O@heebU7Qm}rXHC=CAv_>Q#e9v;IO3BH>uapIS9OC)0tH%c?lIQEW@X9XNy*w7AGC&ukFAbZv2 z;SPF2bJwo9(Q*&34?lUb`W#+i=a~|Ts;WBT+XYFMJZ7mzUQgEW6c;j<36W6OCgih< zU*&VX^muvIt=^d5avu@9vsp!Z@_ZntS*EU_ag!a@ zQT!XmyV+~EG!PIWm2MoN;_e;A$Yh&cISq?*MV=ftQKzA`Kd9+_XcmSBtCX=o++&Z@ zRekpxg>jj?&L9B0beO#dh;6Tdn8fmbi zKBobxQrUc)JoFn!xnS1P{_p0LOGPx`&uf}Y*lVWYNz5XDeEnfKa^XQtUlVMf2Z$kE zxnu6{V=&6Ij+&yC`~RVU>FsrMw|tC5ZrEFh2T7E$DgP+XoT%l#Rz{F6oyKYFQ}pf3ncWEQEKykYziH zG;bWfci|@)_UWc}ZEsn2j4g$^_yv|osxlkKK32k;dcFqs~`EcyYsV6>K7ND)4 z&`vIVj<=%|{R0hM!mJ^r&FqJOp>gKbW7^qcmN6HsUI)UtzY3#u?D7qh&)sSFWXiIu zFAY4j>&ItFWZ56V@6>cA3KigGty&KzX}>%CSR4cz2>Q=z{>@Wb7OxZm&`{cp)c-rl zdb8rny3%aMr)?T!8Jn=%zt6wul^jf|XgK!UG_5*hn`13VeJ?LD)!R*)P=e`nNY=`{ zpeyVjSiiM9*)v-6A4r0N;FjbK)6tgLu!@oOi`5{-{Z8SK%PBM(?SAFklK+|DAN=oM z15JtSB&$BYwes!Z{!!$i>E@0jPiD|T9cnI7uQSA?a08be+t-tP03{Eojz*d$u6i8z z4lu(LQ-m*xWW+jGG$bT2vQCVKB`CI~)PXb;9H>e^`^G9CZdJ^1me4nntw`2za=^_{ z{dH=@t$1p~Q!p>g^sM9iZ$`2l^Oa$OLeU~al6shx=4G5)txDmOw-UgBuhZmpfsojb zSP9xlucaWU#w!ywYLyrxUMf8k+s=av$eE{ex7H)|(sai0B2RoJY0%$eg{6(UFBxiS z^H=kj*8JqFfZEw{QOw%QypOJASby`ootytgaMcqP{vG4ZUW16`+67S+=dg6eQb=wGucW)y`G z-yRNqTyx}#5bpdD$0&O2NwoWP;wUDcUZoNd&`3eo8H`_qrnZ|M4LK>&;CE#s-{)5F zA~%#HN?)tfC(<~`*19pIx9-Ni|gsw(?#i8G@^WD&< z(I;`x%D)=9l5Rpj43>1pHD`|^XRCOYZ{}Q~vlL3=#64$)tqapbu2t;`sy}I-^k6jj z0H?EjXpxW@==Z+#^?2f(`bM!4F8EC8=SJpGbH_->GY&5nKQWu547~si$W*=8csj`n zg*!yc4So|Luhcm%c@8sADs<@5c~n!m*JE14U&5{NF}qacU;q!fzRE`w3|TZ?d4!`c z%|>|l^iGCa;BAU_>t+5?c`Rrx>J671#W5+;^*M5!2P!bPJqhu*HU6&;W}6vuCBOuq z8c`CTy1P-!;^X4= D-3t9v diff --git a/structentt_1_1std__sort-members.html b/structentt_1_1std__sort-members.html index 37fd06d79..d363fb761 100644 --- a/structentt_1_1std__sort-members.html +++ b/structentt_1_1std__sort-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::std_sort Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1std__sort.html b/structentt_1_1std__sort.html index 45806c0e3..793f6a965 100644 --- a/structentt_1_1std__sort.html +++ b/structentt_1_1std__sort.html @@ -3,13 +3,15 @@ - + EnTT: entt::std_sort Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -89,8 +102,8 @@ $(function() { - - + +

    Public Member Functions

    template<typename It , typename Compare = std::less<>, typename... Args>
    void operator() (It first, It last, Compare compare=Compare{}, Args &&...args) const
    template<typename It, typename Compare = std::less<>, typename... Args>
    void operator() (It first, It last, Compare compare=Compare{}, Args &&...args) const
     Sorts the elements in a range.
     
    @@ -107,35 +120,35 @@ Public Member Functions
    -template<typename It , typename Compare = std::less<>, typename... Args>
    +template<typename It, typename Compare = std::less<>, typename... Args>
    +inline
    - + - + - + - + - +
    void entt::std_sort::operator() void entt::std_sort::operator() (It first, It first,
    It last, It last,
    Compare compare = Compare{}, Compare compare = Compare{},
    Args &&... args ) constArgs &&... args ) const
    -inline
    @@ -170,7 +183,8 @@ template< +
    diff --git a/structentt_1_1storage__for-members.html b/structentt_1_1storage__for-members.html index 099c1796e..a27ac03c6 100644 --- a/structentt_1_1storage__for-members.html +++ b/structentt_1_1storage__for-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::storage_for< Type, Entity, Allocator > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1storage__for.html b/structentt_1_1storage__for.html index dc36ee4a4..7fe511e2c 100644 --- a/structentt_1_1storage__for.html +++ b/structentt_1_1storage__for.html @@ -3,13 +3,15 @@ - + EnTT: entt::storage_for< Type, Entity, Allocator > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -86,12 +99,12 @@ $(function() { - +

    Public Types

    using type = constness_as_t<storage_type_t<std::remove_const_t<Type>, Entity, Allocator>, Type>
    using type = constness_as_t<storage_type_t<std::remove_const_t<Type>, Entity, Allocator>, Type>
     Type-to-storage conversion result.
     

    Detailed Description

    -
    template<typename Type, typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
    +
    template<typename Type, typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
    struct entt::storage_for< Type, Entity, Allocator >

    Type-to-storage conversion utility that preserves constness.

    Template Parameters
    @@ -101,7 +114,7 @@ struct entt::storage_for< Type, Entity, Allocator >

    Type-to-storag -

    Definition at line 260 of file fwd.hpp.

    +

    Definition at line 259 of file fwd.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -109,17 +122,17 @@ struct entt::storage_for< Type, Entity, Allocator >

    Type-to-storag

    -template<typename Type , typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
    +template<typename Type, typename Entity = entity, typename Allocator = std::allocator<std::remove_const_t<Type>>>
    TypeStorage value type, eventually const.
    - +
    using entt::storage_for< Type, Entity, Allocator >::type = constness_as_t<storage_type_t<std::remove_const_t<Type>, Entity, Allocator>, Type>using entt::storage_for< Type, Entity, Allocator >::type = constness_as_t<storage_type_t<std::remove_const_t<Type>, Entity, Allocator>, Type>

    Type-to-storage conversion result.

    -

    Definition at line 262 of file fwd.hpp.

    +

    Definition at line 261 of file fwd.hpp.

    @@ -129,7 +142,8 @@ template< +
    diff --git a/structentt_1_1storage__type-members.html b/structentt_1_1storage__type-members.html index 3297d5b6c..16e1ade0f 100644 --- a/structentt_1_1storage__type-members.html +++ b/structentt_1_1storage__type-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::storage_type< Type, Entity, Allocator, typename > Member List
    @@ -81,11 +94,12 @@ $(function() {

    This is the complete list of members for entt::storage_type< Type, Entity, Allocator, typename >, including all inherited members.

    - +
    type typedefentt::storage_type< Type, Entity, Allocator, typename >
    type typedefentt::storage_type< Type, Entity, Allocator, typename >
    +
    diff --git a/structentt_1_1storage__type.html b/structentt_1_1storage__type.html index eed42f6b8..cf515dee1 100644 --- a/structentt_1_1storage__type.html +++ b/structentt_1_1storage__type.html @@ -3,13 +3,15 @@ - + EnTT: entt::storage_type< Type, Entity, Allocator, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - - - + + +

    Public Types

    using type = sigh_mixin < basic_storage<Type, Entity, Allocator> >
     Type-to-storage conversion result.
     
    using type = sigh_mixin<basic_storage<Type, Entity, Allocator>>
     Type-to-storage conversion result.
     

    Detailed Description

    -
    template<typename Type, typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
    +
    template<typename Type, typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
    struct entt::storage_type< Type, Entity, Allocator, typename >

    Provides a common way to define storage types.

    Template Parameters
    @@ -105,25 +118,25 @@ struct entt::storage_type< Type, Entity, Allocator, typename >

    Pro -

    Definition at line 227 of file fwd.hpp.

    +

    Definition at line 226 of file fwd.hpp.

    Member Typedef Documentation

    - -

    ◆ type

    + +

    ◆ type

    -template<typename Type , typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
    +template<typename Type, typename Entity = entity, typename Allocator = std::allocator<Type>, typename = void>
    - +
    using entt::storage_type< Type, Entity, Allocator, typename >::type = sigh_mixin < basic_storage<Type, Entity, Allocator> >using entt::storage_type< Type, Entity, Allocator, typename >::type = sigh_mixin<basic_storage<Type, Entity, Allocator>>

    Type-to-storage conversion result.

    -

    Definition at line 229 of file fwd.hpp.

    +

    Definition at line 228 of file fwd.hpp.

    @@ -133,7 +146,8 @@ template< +
    diff --git a/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4-members.html b/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4-members.html index 5432037be..2eabe5472 100644 --- a/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4-members.html +++ b/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::storage_type< reactive, Entity, Allocator > Member List
    @@ -81,11 +94,13 @@ $(function() {

    This is the complete list of members for entt::storage_type< reactive, Entity, Allocator >, including all inherited members.

    - + +
    type typedefentt::storage_type< reactive, Entity, Allocator >
    type typedefentt::storage_type< reactive, Entity, Allocator >
    type typedefentt::storage_type< reactive, Entity, Allocator >
    +
    diff --git a/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html b/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html index 35f236f0a..19856774b 100644 --- a/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html +++ b/structentt_1_1storage__type_3_01reactive_00_01Entity_00_01Allocator_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::storage_type< reactive, Entity, Allocator > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -86,12 +99,15 @@ $(function() { - - - + + + + + +

    Public Types

    using type = reactive_mixin < basic_storage<reactive, Entity, Allocator> >
     Type-to-storage conversion result.
     
    using type = reactive_mixin<basic_storage<reactive, Entity, Allocator>>
     Type-to-storage conversion result.
     
    using type
     Type-to-storage conversion result.
     

    Detailed Description

    -
    template<typename Entity, typename Allocator>
    +
    template<typename Entity, typename Allocator>
    struct entt::storage_type< reactive, Entity, Allocator >

    @ brief Partial specialization for reactive storage types.

    Template Parameters
    @@ -100,25 +116,43 @@ struct entt::storage_type< reactive, Entity, Allocator >

    @ brief P -

    Definition at line 241 of file fwd.hpp.

    +

    Definition at line 240 of file fwd.hpp.

    Member Typedef Documentation

    - -

    ◆ type

    + +

    ◆ type [1/2]

    -
    -template<typename Entity , typename Allocator >
    EntityA valid entity type.
    - +
    using entt::storage_type< reactive, Entity, Allocator >::type = reactive_mixin < basic_storage<reactive, Entity, Allocator> >using entt::storage_type< reactive, Entity, Allocator, typename >::type

    Type-to-storage conversion result.

    -

    Definition at line 243 of file fwd.hpp.

    +

    Definition at line 228 of file fwd.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<typename Entity, typename Allocator>
    + + + + +
    using entt::storage_type< reactive, Entity, Allocator >::type = reactive_mixin<basic_storage<reactive, Entity, Allocator>>
    +
    + +

    Type-to-storage conversion result.

    + +

    Definition at line 242 of file fwd.hpp.

    @@ -128,7 +162,8 @@ template< +
    diff --git a/structentt_1_1tombstone__t-members.html b/structentt_1_1tombstone__t-members.html index 9138d1f37..47c69b59b 100644 --- a/structentt_1_1tombstone__t-members.html +++ b/structentt_1_1tombstone__t-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::tombstone_t Member List
    @@ -89,7 +102,8 @@ $(function() {
    +
    diff --git a/structentt_1_1tombstone__t.html b/structentt_1_1tombstone__t.html index 9017186c7..3f1ec9e0a 100644 --- a/structentt_1_1tombstone__t.html +++ b/structentt_1_1tombstone__t.html @@ -3,13 +3,15 @@ - + EnTT: entt::tombstone_t Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Member Functions | @@ -82,36 +95,34 @@ $(function() {
    -

    Tombstone object for all identifiers.
    - +

    Tombstone object for all identifiers. More...

    #include <entity.hpp>

    - - + + - + - + - - + + - - + +

    Public Member Functions

    template<typename Entity >
    constexpr operator Entity () const noexcept
    template<typename Entity>
    constexpr operator Entity () const noexcept
     Converts the tombstone object to identifiers of any type.
     
    constexpr bool operator== (const tombstone_t other) const noexcept
    constexpr bool operator== (const tombstone_t other) const noexcept
     Compares two tombstone objects.
     
    constexpr bool operator!= (const tombstone_t other) const noexcept
    constexpr bool operator!= (const tombstone_t other) const noexcept
     Compares two tombstone objects.
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity) const noexcept
    template<typename Entity>
    constexpr bool operator== (const Entity entity) const noexcept
     Compares a tombstone object and an identifier of any type.
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity) const noexcept
    template<typename Entity>
    constexpr bool operator!= (const Entity entity) const noexcept
     Compares a tombstone object and an identifier of any type.
     

    Detailed Description

    -

    Tombstone object for all identifiers.
    -

    +

    Tombstone object for all identifiers.

    Definition at line 284 of file entity.hpp.

    Member Function Documentation

    @@ -121,21 +132,21 @@ Public Member Functions
    -template<typename Entity >
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr entt::tombstone_t::operator Entity entt::tombstone_t::operator Entity ()) const
    -inlineconstexprnoexcept
    @@ -159,21 +170,21 @@ template<
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr bool entt::tombstone_t::operator!= bool entt::tombstone_t::operator!= (const Entity entity)const Entity entity) const
    -inlineconstexprnoexcept
    @@ -239,21 +250,21 @@ template<
    +template<typename Entity>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr bool entt::tombstone_t::operator== bool entt::tombstone_t::operator== (const Entity entity)const Entity entity) const
    -inlineconstexprnoexcept
    @@ -319,7 +330,8 @@ template< +
    diff --git a/structentt_1_1type__hash-members.html b/structentt_1_1type__hash-members.html index c2f0fba6a..93ec12c3f 100644 --- a/structentt_1_1type__hash-members.html +++ b/structentt_1_1type__hash-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_hash< Type, typename > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__hash.html b/structentt_1_1type__hash.html index 3ad17f003..76e38c43d 100644 --- a/structentt_1_1type__hash.html +++ b/structentt_1_1type__hash.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_hash< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::type_hash< Type, typename > Struct Template Referencefinal
    +
    entt::type_hash< Type, typename > Struct Template Referencefinal
    @@ -90,18 +103,18 @@ $(function() { - - + +

    Public Member Functions

    constexpr operator id_type () const noexcept
     Returns the numeric representation of a given type.
    constexpr operator id_type () const noexcept
     Returns the numeric representation of a given type.
     
    - +

    Static Public Member Functions

    static constexpr id_type value () noexcept
    static constexpr id_type value () noexcept
     Returns the numeric representation of a given type.
     

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::type_hash< Type, typename >

    Type hash.

    Template Parameters
    @@ -118,27 +131,27 @@ struct entt::type_hash< Type, typename >

    Type hash.

    -template<typename Type , typename = void>
    +template<typename Type, typename = void>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr entt::type_hash< Type, typename >::operator id_type entt::type_hash< Type, typename >::operator id_type ()) const
    -inlineconstexprnoexcept
    -

    Returns the numeric representation of a given type.

    -
    Returns
    The numeric representation of the given type.
    +

    Returns the numeric representation of a given type.

    +
    Returns
    The numeric representation of the given type.

    Definition at line 107 of file type_info.hpp.

    @@ -150,21 +163,21 @@ template<
    +template<typename Type, typename = void>
    +inlinestaticnodiscardconstexprnoexcept
    - + - +
    static constexpr id_type entt::type_hash< Type, typename >::value static constexpr id_type entt::type_hash< Type, typename >::value ())
    -inlinestaticconstexprnoexcept
    @@ -182,7 +195,8 @@ template< +
    diff --git a/structentt_1_1type__identity-members.html b/structentt_1_1type__identity-members.html index f9314b06a..baa7ec067 100644 --- a/structentt_1_1type__identity-members.html +++ b/structentt_1_1type__identity-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_identity< Type > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__identity.html b/structentt_1_1type__identity.html index d8e362f80..537cdc727 100644 --- a/structentt_1_1type__identity.html +++ b/structentt_1_1type__identity.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_identity< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = Type
    using type = Type
     Identity type.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::type_identity< Type >

    Identity type trait.

    Useful to establish non-deduced contexts in template argument deduction (waiting for C++20) or to provide types through function arguments.

    Template Parameters
    @@ -112,10 +125,10 @@ struct entt::type_identity< Type >

    Identity type trait.

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::type_identity< Type >::type = Typeusing entt::type_identity< Type >::type = Type
    @@ -132,7 +145,8 @@ template< +
    diff --git a/structentt_1_1type__index-members.html b/structentt_1_1type__index-members.html index 36b369262..2d0e8d7e2 100644 --- a/structentt_1_1type__index-members.html +++ b/structentt_1_1type__index-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_index< Type, typename > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__index.html b/structentt_1_1type__index.html index 519630358..3f04e6738 100644 --- a/structentt_1_1type__index.html +++ b/structentt_1_1type__index.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_index< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::type_index< Type, typename > Struct Template Referencefinal
    +
    entt::type_index< Type, typename > Struct Template Referencefinal
    @@ -90,18 +103,18 @@ $(function() { - - + +

    Public Member Functions

    constexpr operator id_type () const noexcept
     Returns the sequential identifier of a given type.
    constexpr operator id_type () const noexcept
     Returns the sequential identifier of a given type.
     
    - +

    Static Public Member Functions

    static id_type value () noexcept
    static id_type value () noexcept
     Returns the sequential identifier of a given type.
     

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::type_index< Type, typename >

    Type sequential identifier.

    Template Parameters
    @@ -118,27 +131,27 @@ struct entt::type_index< Type, typename >

    Type sequential identifi

    -template<typename Type , typename = void>
    +template<typename Type, typename = void>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr entt::type_index< Type, typename >::operator id_type entt::type_index< Type, typename >::operator id_type ()) const
    -inlineconstexprnoexcept
    -

    Returns the sequential identifier of a given type.

    -
    Returns
    The sequential identifier of a given type.
    +

    Returns the sequential identifier of a given type.

    +
    Returns
    The sequential identifier of a given type.

    Definition at line 82 of file type_info.hpp.

    @@ -150,21 +163,21 @@ template<
    +template<typename Type, typename = void>
    +inlinestaticnodiscardnoexcept
    - + - +
    static id_type entt::type_index< Type, typename >::value static id_type entt::type_index< Type, typename >::value ())
    -inlinestaticnoexcept
    @@ -182,7 +195,8 @@ template< +
    diff --git a/structentt_1_1type__info-members.html b/structentt_1_1type__info-members.html index 415618fe9..f3dcc621e 100644 --- a/structentt_1_1type__info-members.html +++ b/structentt_1_1type__info-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_info Member List
    @@ -88,7 +101,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__info.html b/structentt_1_1type__info.html index 7154d3ece..dab9ce556 100644 --- a/structentt_1_1type__info.html +++ b/structentt_1_1type__info.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_info Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::type_info Struct Referencefinal
    +
    entt::type_info Struct Referencefinal
    @@ -89,17 +102,17 @@ $(function() { - - + + - + - + - +

    Public Member Functions

    template<typename Type >
    constexpr type_info (std::in_place_type_t< Type >) noexcept
    template<typename Type>
    constexpr type_info (std::in_place_type_t< Type >) noexcept
     Constructs a type info object for a given type.
     
    constexpr id_type index () const noexcept
    constexpr id_type index () const noexcept
     Type index.
     
    constexpr id_type hash () const noexcept
    constexpr id_type hash () const noexcept
     Type hash.
     
    constexpr std::string_view name () const noexcept
    constexpr std::string_view name () const noexcept
     Type name.
     
    @@ -114,21 +127,21 @@ Public Member Functions
    -template<typename Type >
    +template<typename Type>
    +inlineconstexprnoexcept
    - + - +
    constexpr entt::type_info::type_info entt::type_info::type_info (std::in_place_type_t< Type > )std::in_place_type_t< Type > )
    -inlineconstexprnoexcept
    @@ -242,7 +255,8 @@ template< +
    diff --git a/structentt_1_1type__list-members.html b/structentt_1_1type__list-members.html index 51524fd42..79bf79221 100644 --- a/structentt_1_1type__list-members.html +++ b/structentt_1_1type__list-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list< Type > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list.html b/structentt_1_1type__list.html index 17123990c..d44f43335 100644 --- a/structentt_1_1type__list.html +++ b/structentt_1_1type__list.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list< Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,13 +103,13 @@ $(function() { - +

    Public Types

    using type = type_list
    using type = type_list
     Type list type.
     
    - +

    Static Public Attributes

    static constexpr auto size = sizeof...(Type)
    static constexpr auto size = sizeof...(Type)
     Compile-time number of elements in the type list.
     
    @@ -110,7 +123,7 @@ struct entt::type_list< Type >

    A class to use to push around lists -

    Definition at line 110 of file type_traits.hpp.

    +

    Definition at line 111 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -121,14 +134,14 @@ struct entt::type_list< Type >

    A class to use to push around lists template<typename... Type>

    - +
    using entt::type_list< Type >::type = type_listusing entt::type_list< Type >::type = type_list

    Type list type.

    -

    Definition at line 112 of file type_traits.hpp.

    +

    Definition at line 113 of file type_traits.hpp.

    @@ -145,19 +158,19 @@ template<typename... Type>
    - +
    constexpr auto entt::type_list< Type >::size = sizeof...(Type)auto entt::type_list< Type >::size = sizeof...(Type)
    -staticconstexpr +staticconstexpr

    Compile-time number of elements in the type list.

    -

    Definition at line 114 of file type_traits.hpp.

    +

    Definition at line 115 of file type_traits.hpp.

    @@ -167,7 +180,8 @@ template<typename... Type> + diff --git a/structentt_1_1type__list__cat.html b/structentt_1_1type__list__cat.html index 49f4b3822..8553aad27 100644 --- a/structentt_1_1type__list__cat.html +++ b/structentt_1_1type__list__cat.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_cat<... > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_cat<... > Struct Template Reference
    @@ -85,14 +98,15 @@ $(function() {
    template<typename...>
    struct entt::type_list_cat<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 215 of file type_traits.hpp.

    +

    Definition at line 216 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html index 1bcf5d048..796d37499 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type
    using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type
     A type list composed by the types of all the type lists.
     
    @@ -105,7 +118,7 @@ struct entt::type_list_cat< type_list< Type... >, type_list< Other.. -

    Definition at line 231 of file type_traits.hpp.

    +

    Definition at line 232 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -116,14 +129,14 @@ struct entt::type_list_cat< type_list< Type... >, type_list< Other.. template<typename... Type, typename... Other, typename... List>
    - +
    using entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type = typename type_list_cat<type_list<Type..., Other...>, List...>::typeusing entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type = typename type_list_cat<type_list<Type..., Other...>, List...>::type

    A type list composed by the types of all the type lists.

    -

    Definition at line 233 of file type_traits.hpp.

    +

    Definition at line 234 of file type_traits.hpp.

    @@ -133,7 +146,8 @@ template<typename... Type, typename... Other, typename... List> + diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html index 925ee154e..23ad3490e 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html index 01c959b87..bec2471cf 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_cat< type_list< Type... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html index 3a6e4e506..fe0bb02e1 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_cat< type_list< Type... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = type_list<Type...>
    using type = type_list<Type...>
     A type list composed by the types of all the type lists.
     
    @@ -103,7 +116,7 @@ struct entt::type_list_cat< type_list< Type... > >

    Concatena -

    Definition at line 241 of file type_traits.hpp.

    +

    Definition at line 242 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -114,14 +127,14 @@ struct entt::type_list_cat< type_list< Type... > >

    Concatena template<typename... Type> - +
    using entt::type_list_cat< type_list< Type... > >::type = type_list<Type...>using entt::type_list_cat< type_list< Type... > >::type = type_list<Type...>

    A type list composed by the types of all the type lists.

    -

    Definition at line 243 of file type_traits.hpp.

    +

    Definition at line 244 of file type_traits.hpp.

    @@ -131,7 +144,8 @@ template<typename... Type> + diff --git a/structentt_1_1type__list__cat_3_4-members.html b/structentt_1_1type__list__cat_3_4-members.html index 138c577c8..fc7e59c90 100644 --- a/structentt_1_1type__list__cat_3_4-members.html +++ b/structentt_1_1type__list__cat_3_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_cat<> Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__cat_3_4.html b/structentt_1_1type__list__cat_3_4.html index f3b2c236e..1b9c01503 100644 --- a/structentt_1_1type__list__cat_3_4.html +++ b/structentt_1_1type__list__cat_3_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_cat<> Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,14 +102,14 @@ $(function() { - +

    Public Types

    using type = type_list<>
    using type = type_list<>
     A type list composed by the types of all the type lists.
     

    Detailed Description

    Concatenates multiple type lists.

    -

    Definition at line 219 of file type_traits.hpp.

    +

    Definition at line 220 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -105,14 +118,14 @@ Public Types

    A type list composed by the types of all the type lists.

    -

    Definition at line 221 of file type_traits.hpp.

    +

    Definition at line 222 of file type_traits.hpp.

    @@ -122,7 +135,8 @@ Public Types
    +
    diff --git a/structentt_1_1type__list__contains.html b/structentt_1_1type__list__contains.html index 64cbe428d..abdf73711 100644 --- a/structentt_1_1type__list__contains.html +++ b/structentt_1_1type__list__contains.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_contains< List, Type > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_contains< List, Type > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Provides the member constant value to true if a type list contains a given type, false otherwise. More...

    Detailed Description

    -
    template<typename List, typename Type>
    +
    template<typename List, typename Type>
    struct entt::type_list_contains< List, Type >

    Provides the member constant value to true if a type list contains a given type, false otherwise.

    Template Parameters
    @@ -92,14 +105,15 @@ struct entt::type_list_contains< List, Type >

    Provides the member -

    Definition at line 295 of file type_traits.hpp.

    +

    Definition at line 296 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html b/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html index 50937406e..50709dea7 100644 --- a/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html +++ b/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::type_list_contains< type_list< Type... >, Other > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::type_list_contains< type_list< Type... >, Other > Struct Template Reference
    -

    Provides the member constant value to true if a type list contains a given type, false otherwise. +

    Provides the member constant value to true if a type list contains a given type, false otherwise. More...

    #include <type_traits.hpp>

    @@ -104,8 +117,8 @@ Collaboration diagram for entt::type_list_contains< type_list< Type... >
    [legend]

    Detailed Description

    -
    template<typename... Type, typename Other>
    -struct entt::type_list_contains< type_list< Type... >, Other >

    Provides the member constant value to true if a type list contains a given type, false otherwise.

    +
    template<typename... Type, typename Other>
    +struct entt::type_list_contains< type_list< Type... >, Other >

    Provides the member constant value to true if a type list contains a given type, false otherwise.

    Template Parameters
    @@ -114,14 +127,15 @@ struct entt::type_list_contains< type_list< Type... >, Other > -

    Definition at line 303 of file type_traits.hpp.

    +

    Definition at line 304 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1type__list__diff.html b/structentt_1_1type__list__diff.html index e15194e3f..fccc6fef2 100644 --- a/structentt_1_1type__list__diff.html +++ b/structentt_1_1type__list__diff.html @@ -3,13 +3,15 @@ - +EnTT: entt::type_list_diff<... > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    TypeTypes provided by the type list.
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::type_list_diff<... > Struct Template Reference
    @@ -85,14 +98,15 @@ $(function() {
    template<typename...>
    struct entt::type_list_diff<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 316 of file type_traits.hpp.

    +

    Definition at line 317 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html index 1d81f2400..3f23ff223 100644 --- a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_diff< type_list< Type... >, type_list< Other... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html index 7550d01a3..ef28b019f 100644 --- a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_diff< type_list< Type... >, type_list< Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>
    using type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>
     A type list that is the difference between the two type lists.
     
    @@ -104,7 +117,7 @@ struct entt::type_list_diff< type_list< Type... >, type_list< Other. -

    Definition at line 324 of file type_traits.hpp.

    +

    Definition at line 325 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -115,14 +128,14 @@ struct entt::type_list_diff< type_list< Type... >, type_list< Other. template<typename... Type, typename... Other>
    - +
    using entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>using entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>

    A type list that is the difference between the two type lists.

    -

    Definition at line 326 of file type_traits.hpp.

    +

    Definition at line 327 of file type_traits.hpp.

    @@ -132,7 +145,8 @@ template<typename... Type, typename... Other> + diff --git a/structentt_1_1type__list__element.html b/structentt_1_1type__list__element.html index 2e002850e..c871a6b7d 100644 --- a/structentt_1_1type__list__element.html +++ b/structentt_1_1type__list__element.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_element< size_t, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::type_list_element< size_t, typename > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<std::size_t, typename>
    +
    template<std::size_t, typename>
    struct entt::type_list_element< size_t, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 119 of file type_traits.hpp.

    +

    Definition at line 120 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html index 37fbd75e8..beb33c966 100644 --- a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_element< 0u, type_list< First, Other... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html index 767d1029e..3ae70d64c 100644 --- a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_element< 0u, type_list< First, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = First
    using type = First
     Searched type.
     

    Detailed Description

    -
    template<typename First, typename... Other>
    +
    template<typename First, typename... Other>
    struct entt::type_list_element< 0u, type_list< First, Other... > >

    Provides compile-time indexed access to the types of a type list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::type_list_element< 0u, type_list< First, Other... > > -

    Definition at line 137 of file type_traits.hpp.

    +

    Definition at line 138 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::type_list_element< 0u, type_list< First, Other... > >
    -template<typename First , typename... Other>
    +template<typename First, typename... Other>
    - +
    using entt::type_list_element< 0u, type_list< First, Other... > >::type = Firstusing entt::type_list_element< 0u, type_list< First, Other... > >::type = First

    Searched type.

    -

    Definition at line 139 of file type_traits.hpp.

    +

    Definition at line 140 of file type_traits.hpp.

    @@ -132,7 +145,8 @@ template< +
    diff --git a/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html index 05f451ff9..e9bfd13f8 100644 --- a/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_element< Index, type_list< First, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_element< Index, type_list< First, Other... > > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::type_list_element< Index, type_list< First
    [legend]

    Detailed Description

    -
    template<std::size_t Index, typename First, typename... Other>
    +
    template<std::size_t Index, typename First, typename... Other>
    struct entt::type_list_element< Index, type_list< First, Other... > >

    Provides compile-time indexed access to the types of a type list.

    Template Parameters
    @@ -115,14 +128,15 @@ struct entt::type_list_element< Index, type_list< First, Other... > > -

    Definition at line 128 of file type_traits.hpp.

    +

    Definition at line 129 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1type__list__index.html b/structentt_1_1type__list__index.html index c26e36cd0..3edfd285b 100644 --- a/structentt_1_1type__list__index.html +++ b/structentt_1_1type__list__index.html @@ -3,13 +3,15 @@ - +EnTT: entt::type_list_index< typename, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::type_list_index< typename, typename > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<typename, typename>
    +
    template<typename, typename>
    struct entt::type_list_index< typename, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 152 of file type_traits.hpp.

    +

    Definition at line 153 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html index 18a8829fb..b8f3dedb9 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_index< Type, type_list< First, Other... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html index f01c50efe..5c5c4cb89 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01First_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_index< Type, type_list< First, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 1u + type_list_index<Type, type_list<Other...>>::value
    static constexpr value_type value = 1u + type_list_index<Type, type_list<Other...>>::value
     Compile-time position of the given type in the sublist.
     

    Detailed Description

    -
    template<typename Type, typename First, typename... Other>
    +
    template<typename Type, typename First, typename... Other>
    struct entt::type_list_index< Type, type_list< First, Other... > >

    Provides compile-time type access to the types of a type list.

    Template Parameters
    @@ -112,7 +125,7 @@ struct entt::type_list_index< Type, type_list< First, Other... > > -

    Definition at line 161 of file type_traits.hpp.

    +

    Definition at line 162 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -120,17 +133,17 @@ struct entt::type_list_index< Type, type_list< First, Other... > >
    -template<typename Type , typename First , typename... Other>
    +template<typename Type, typename First, typename... Other>
    - +
    using entt::type_list_index< Type, type_list< First, Other... > >::value_type = std::size_tusing entt::type_list_index< Type, type_list< First, Other... > >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 163 of file type_traits.hpp.

    +

    Definition at line 164 of file type_traits.hpp.

    @@ -141,25 +154,25 @@ template<
    -template<typename Type , typename First , typename... Other>
    +template<typename Type, typename First, typename... Other>
    +staticconstexpr
    - +
    constexpr value_type entt::type_list_index< Type, type_list< First, Other... > >::value = 1u + type_list_index<Type, type_list<Other...>>::valuevalue_type entt::type_list_index< Type, type_list< First, Other... > >::value = 1u + type_list_index<Type, type_list<Other...>>::value
    -staticconstexpr

    Compile-time position of the given type in the sublist.

    -

    Definition at line 165 of file type_traits.hpp.

    +

    Definition at line 166 of file type_traits.hpp.

    @@ -169,7 +182,8 @@ template< +
    diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html index 8952685ac..d9dc9d7a6 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_index< Type, type_list< Type, Other... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html index 2176512e5..5522e1972 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_index< Type, type_list< Type, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 0u
    static constexpr value_type value = 0u
     Compile-time position of the given type in the sublist.
     

    Detailed Description

    -
    template<typename Type, typename... Other>
    +
    template<typename Type, typename... Other>
    struct entt::type_list_index< Type, type_list< Type, Other... > >

    Provides compile-time type access to the types of a type list.

    Template Parameters
    @@ -111,7 +124,7 @@ struct entt::type_list_index< Type, type_list< Type, Other... > > -

    Definition at line 174 of file type_traits.hpp.

    +

    Definition at line 175 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -119,17 +132,17 @@ struct entt::type_list_index< Type, type_list< Type, Other... > >
    -template<typename Type , typename... Other>
    +template<typename Type, typename... Other>
    - +
    using entt::type_list_index< Type, type_list< Type, Other... > >::value_type = std::size_tusing entt::type_list_index< Type, type_list< Type, Other... > >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 177 of file type_traits.hpp.

    +

    Definition at line 178 of file type_traits.hpp.

    @@ -140,25 +153,25 @@ template<
    -template<typename Type , typename... Other>
    +template<typename Type, typename... Other>
    +staticconstexpr
    - +
    constexpr value_type entt::type_list_index< Type, type_list< Type, Other... > >::value = 0uvalue_type entt::type_list_index< Type, type_list< Type, Other... > >::value = 0u
    -staticconstexpr

    Compile-time position of the given type in the sublist.

    -

    Definition at line 179 of file type_traits.hpp.

    +

    Definition at line 180 of file type_traits.hpp.

    @@ -168,7 +181,8 @@ template< +
    diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4-members.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4-members.html index 02661c6db..e52dd8801 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4-members.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_index< Type, type_list<> > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html index 970b0a91c..4a2815aa4 100644 --- a/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html +++ b/structentt_1_1type__list__index_3_01Type_00_01type__list_3_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_index< Type, type_list<> > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 0u
    static constexpr value_type value = 0u
     Compile-time position of the given type in the sublist.
     

    Detailed Description

    -
    template<typename Type>
    +
    template<typename Type>
    struct entt::type_list_index< Type, type_list<> >

    Provides compile-time type access to the types of a type list.

    Template Parameters
    @@ -110,7 +123,7 @@ struct entt::type_list_index< Type, type_list<> >

    Provides c -

    Definition at line 187 of file type_traits.hpp.

    +

    Definition at line 188 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -118,17 +131,17 @@ struct entt::type_list_index< Type, type_list<> >

    Provides c

    -template<typename Type >
    +template<typename Type>
    - +
    using entt::type_list_index< Type, type_list<> >::value_type = std::size_tusing entt::type_list_index< Type, type_list<> >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 189 of file type_traits.hpp.

    +

    Definition at line 190 of file type_traits.hpp.

    @@ -139,25 +152,25 @@ template<
    +template<typename Type>
    +staticconstexpr
    - +
    constexpr value_type entt::type_list_index< Type, type_list<> >::value = 0uvalue_type entt::type_list_index< Type, type_list<> >::value = 0u
    -staticconstexpr

    Compile-time position of the given type in the sublist.

    -

    Definition at line 191 of file type_traits.hpp.

    +

    Definition at line 192 of file type_traits.hpp.

    @@ -167,7 +180,8 @@ template< +
    diff --git a/structentt_1_1type__list__transform.html b/structentt_1_1type__list__transform.html index 45121f145..22d983658 100644 --- a/structentt_1_1type__list__transform.html +++ b/structentt_1_1type__list__transform.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_transform< typename, class > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_transform< typename, class > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<typename, template< typename... > class>
    +
    template<typename, template< typename... > class>
    struct entt::type_list_transform< typename, class >

    Primary template isn't defined on purpose.

    -

    Definition at line 338 of file type_traits.hpp.

    +

    Definition at line 339 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html b/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html index e53516b25..691a8e48b 100644 --- a/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html +++ b/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_transform< exclude_t< Type... >, Op > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html b/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html index 4f4f85750..71a2e98b0 100644 --- a/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html +++ b/structentt_1_1type__list__transform_3_01exclude__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_transform< exclude_t< Type... >, Op > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = exclude_t<typename Op<Type>::type...>
    using type = exclude_t<typename Op<Type>::type...>
     Resulting exclude list after applying the transform function.
     

    Detailed Description

    -
    template<typename... Type, template< typename... > class Op>
    +
    template<typename... Type, template< typename... > class Op>
    struct entt::type_list_transform< exclude_t< Type... >, Op >

    Applies a given function to an exclude list and generate a new list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::type_list_transform< exclude_t< Type... >, Op >

    -

    Definition at line 204 of file fwd.hpp.

    +

    Definition at line 203 of file fwd.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::type_list_transform< exclude_t< Type... >, Op >

    -template<typename... Type, template< typename... > class Op>
    +template<typename... Type, template< typename... > class Op>
    - +
    using entt::type_list_transform< exclude_t< Type... >, Op >::type = exclude_t<typename Op<Type>::type...>using entt::type_list_transform< exclude_t< Type... >, Op >::type = exclude_t<typename Op<Type>::type...>

    Resulting exclude list after applying the transform function.

    -

    Definition at line 206 of file fwd.hpp.

    +

    Definition at line 205 of file fwd.hpp.

    @@ -132,7 +145,8 @@ template<typename... Type, +
    diff --git a/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html b/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html index eb2197d65..c7eee264b 100644 --- a/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html +++ b/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_transform< get_t< Type... >, Op > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html b/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html index 697817c03..2364dd29a 100644 --- a/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html +++ b/structentt_1_1type__list__transform_3_01get__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_transform< get_t< Type... >, Op > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = get_t<typename Op<Type>::type...>
    using type = get_t<typename Op<Type>::type...>
     Resulting get list after applying the transform function.
     

    Detailed Description

    -
    template<typename... Type, template< typename... > class Op>
    +
    template<typename... Type, template< typename... > class Op>
    struct entt::type_list_transform< get_t< Type... >, Op >

    Applies a given function to a get list and generate a new list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::type_list_transform< get_t< Type... >, Op >

    App -

    Definition at line 193 of file fwd.hpp.

    +

    Definition at line 192 of file fwd.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::type_list_transform< get_t< Type... >, Op >

    App

    -template<typename... Type, template< typename... > class Op>
    +template<typename... Type, template< typename... > class Op>
    - +
    using entt::type_list_transform< get_t< Type... >, Op >::type = get_t<typename Op<Type>::type...>using entt::type_list_transform< get_t< Type... >, Op >::type = get_t<typename Op<Type>::type...>

    Resulting get list after applying the transform function.

    -

    Definition at line 195 of file fwd.hpp.

    +

    Definition at line 194 of file fwd.hpp.

    @@ -132,7 +145,8 @@ template<typename... Type, +
    diff --git a/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html b/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html index ac4452f8e..7aea4ce32 100644 --- a/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html +++ b/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_transform< owned_t< Type... >, Op > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html b/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html index 9bd60bf37..32c936439 100644 --- a/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html +++ b/structentt_1_1type__list__transform_3_01owned__t_3_01Type_8_8_8_01_4_00_01Op_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_transform< owned_t< Type... >, Op > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = owned_t<typename Op<Type>::type...>
    using type = owned_t<typename Op<Type>::type...>
     Resulting owned list after applying the transform function.
     

    Detailed Description

    -
    template<typename... Type, template< typename... > class Op>
    +
    template<typename... Type, template< typename... > class Op>
    struct entt::type_list_transform< owned_t< Type... >, Op >

    Applies a given function to an owned list and generate a new list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::type_list_transform< owned_t< Type... >, Op >

    A -

    Definition at line 215 of file fwd.hpp.

    +

    Definition at line 214 of file fwd.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::type_list_transform< owned_t< Type... >, Op >

    A

    -template<typename... Type, template< typename... > class Op>
    +template<typename... Type, template< typename... > class Op>
    - +
    using entt::type_list_transform< owned_t< Type... >, Op >::type = owned_t<typename Op<Type>::type...>using entt::type_list_transform< owned_t< Type... >, Op >::type = owned_t<typename Op<Type>::type...>

    Resulting owned list after applying the transform function.

    -

    Definition at line 217 of file fwd.hpp.

    +

    Definition at line 216 of file fwd.hpp.

    @@ -132,7 +145,8 @@ template<typename... Type, +
    diff --git a/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html b/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html index 73f44c001..32d6538ee 100644 --- a/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html +++ b/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_transform< type_list< Type... >, Op > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html b/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html index 42957264d..cba23a798 100644 --- a/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html +++ b/structentt_1_1type__list__transform_3_01type__list_3_01Type_8_8_8_01_4_00_01Op_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_transform< type_list< Type... >, Op > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = type_list<typename Op<Type>::type...>
    using type = type_list<typename Op<Type>::type...>
     Resulting type list after applying the transform function.
     

    Detailed Description

    -
    template<typename... Type, template< typename... > class Op>
    +
    template<typename... Type, template< typename... > class Op>
    struct entt::type_list_transform< type_list< Type... >, Op >

    Applies a given function to a type list and generate a new list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::type_list_transform< type_list< Type... >, Op >

    -

    Definition at line 346 of file type_traits.hpp.

    +

    Definition at line 347 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,17 +125,17 @@ struct entt::type_list_transform< type_list< Type... >, Op >

    -template<typename... Type, template< typename... > class Op>
    +template<typename... Type, template< typename... > class Op>
    - +
    using entt::type_list_transform< type_list< Type... >, Op >::type = type_list<typename Op<Type>::type...>using entt::type_list_transform< type_list< Type... >, Op >::type = type_list<typename Op<Type>::type...>

    Resulting type list after applying the transform function.

    -

    Definition at line 348 of file type_traits.hpp.

    +

    Definition at line 350 of file type_traits.hpp.

    @@ -132,7 +145,8 @@ template<typename... Type, +
    diff --git a/structentt_1_1type__list__unique-members.html b/structentt_1_1type__list__unique-members.html index eb73130d5..46f78e4c9 100644 --- a/structentt_1_1type__list__unique-members.html +++ b/structentt_1_1type__list__unique-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_list_unique< List > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__list__unique.html b/structentt_1_1type__list__unique.html index 997042670..1bff12e54 100644 --- a/structentt_1_1type__list__unique.html +++ b/structentt_1_1type__list__unique.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_list_unique< List > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type = typename internal::type_list_unique<List>::type
    using type = typename internal::type_list_unique<List>::type
     A type list without duplicate types.
     

    Detailed Description

    -
    template<typename List>
    +
    template<typename List>
    struct entt::type_list_unique< List >

    Removes duplicates types from a type list.

    Template Parameters
    @@ -103,7 +116,7 @@ struct entt::type_list_unique< List >

    Removes duplicates types fro -

    Definition at line 276 of file type_traits.hpp.

    +

    Definition at line 277 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -111,17 +124,17 @@ struct entt::type_list_unique< List >

    Removes duplicates types fro

    -template<typename List >
    +template<typename List>
    - +
    using entt::type_list_unique< List >::type = typename internal::type_list_unique<List>::typeusing entt::type_list_unique< List >::type = typename internal::type_list_unique<List>::type

    A type list without duplicate types.

    -

    Definition at line 278 of file type_traits.hpp.

    +

    Definition at line 279 of file type_traits.hpp.

    @@ -131,7 +144,8 @@ template< +
    diff --git a/structentt_1_1type__name-members.html b/structentt_1_1type__name-members.html index bb5129419..780bb95a0 100644 --- a/structentt_1_1type__name-members.html +++ b/structentt_1_1type__name-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::type_name< Type, typename > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1type__name.html b/structentt_1_1type__name.html index babb46d1a..aae0d45c2 100644 --- a/structentt_1_1type__name.html +++ b/structentt_1_1type__name.html @@ -3,13 +3,15 @@ - + EnTT: entt::type_name< Type, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    -
    entt::type_name< Type, typename > Struct Template Referencefinal
    +
    entt::type_name< Type, typename > Struct Template Referencefinal
    @@ -90,18 +103,18 @@ $(function() { - - + +

    Public Member Functions

    constexpr operator std::string_view () const noexcept
     Returns the name of a given type.
    constexpr operator std::string_view () const noexcept
     Returns the name of a given type.
     
    - +

    Static Public Member Functions

    static constexpr std::string_view value () noexcept
    static constexpr std::string_view value () noexcept
     Returns the name of a given type.
     

    Detailed Description

    -
    template<typename Type, typename = void>
    +
    template<typename Type, typename = void>
    struct entt::type_name< Type, typename >

    Type name.

    Template Parameters
    @@ -118,27 +131,27 @@ struct entt::type_name< Type, typename >

    Type name.

    -template<typename Type , typename = void>
    +template<typename Type, typename = void>
    +inlinenodiscardconstexprnoexcept
    - + - +
    constexpr entt::type_name< Type, typename >::operator std::string_view entt::type_name< Type, typename >::operator std::string_view ()) const
    -inlineconstexprnoexcept
    -

    Returns the name of a given type.

    -
    Returns
    The name of the given type.
    +

    Returns the name of a given type.

    +
    Returns
    The name of the given type.

    Definition at line 127 of file type_info.hpp.

    @@ -150,21 +163,21 @@ template<
    +template<typename Type, typename = void>
    +inlinestaticnodiscardconstexprnoexcept
    - + - +
    static constexpr std::string_view entt::type_name< Type, typename >::value static constexpr std::string_view entt::type_name< Type, typename >::value ())
    -inlinestaticconstexprnoexcept
    @@ -182,7 +195,8 @@ template< +
    diff --git a/structentt_1_1undirected__tag.html b/structentt_1_1undirected__tag.html index a3820dd17..f244f11dc 100644 --- a/structentt_1_1undirected__tag.html +++ b/structentt_1_1undirected__tag.html @@ -3,13 +3,15 @@ - + EnTT: entt::undirected_tag Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::undirected_tag Struct Reference
    @@ -113,7 +126,8 @@ Collaboration diagram for entt::undirected_tag:
    +
    diff --git a/structentt_1_1value__list-members.html b/structentt_1_1value__list-members.html index 5ca7bee66..7dfc3f1a2 100644 --- a/structentt_1_1value__list-members.html +++ b/structentt_1_1value__list-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list< Value > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list.html b/structentt_1_1value__list.html index 08ecfa611..b37c1f2f7 100644 --- a/structentt_1_1value__list.html +++ b/structentt_1_1value__list.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list< Value > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,13 +103,13 @@ $(function() { - +

    Public Types

    using type = value_list
    using type = value_list
     Value list type.
     
    - +

    Static Public Attributes

    static constexpr auto size = sizeof...(Value)
    static constexpr auto size = sizeof...(Value)
     Compile-time number of elements in the value list.
     
    @@ -110,7 +123,7 @@ struct entt::value_list< Value >

    A class to use to push around lis -

    Definition at line 364 of file type_traits.hpp.

    +

    Definition at line 366 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -121,14 +134,14 @@ struct entt::value_list< Value >

    A class to use to push around lis template<auto... Value> - +
    using entt::value_list< Value >::type = value_listusing entt::value_list< Value >::type = value_list

    Value list type.

    -

    Definition at line 366 of file type_traits.hpp.

    +

    Definition at line 368 of file type_traits.hpp.

    @@ -145,19 +158,19 @@ template<auto... Value> - +
    constexpr auto entt::value_list< Value >::size = sizeof...(Value)auto entt::value_list< Value >::size = sizeof...(Value)
    -staticconstexpr +staticconstexpr

    Compile-time number of elements in the value list.

    -

    Definition at line 368 of file type_traits.hpp.

    +

    Definition at line 370 of file type_traits.hpp.

    @@ -167,7 +180,8 @@ template<auto... Value> + diff --git a/structentt_1_1value__list__cat.html b/structentt_1_1value__list__cat.html index d94d259e7..b9964d654 100644 --- a/structentt_1_1value__list__cat.html +++ b/structentt_1_1value__list__cat.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_cat<... > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_cat<... > Struct Template Reference
    @@ -85,14 +98,15 @@ $(function() {
    template<typename...>
    struct entt::value_list_cat<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 479 of file type_traits.hpp.

    +

    Definition at line 481 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html index a2799b9dd..708e555b8 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type
    using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type
     A value list composed by the values of all the value lists.
     
    @@ -105,7 +118,7 @@ struct entt::value_list_cat< value_list< Value... >, value_list< Oth -

    Definition at line 495 of file type_traits.hpp.

    +

    Definition at line 497 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -116,14 +129,14 @@ struct entt::value_list_cat< value_list< Value... >, value_list< Oth template<auto... Value, auto... Other, typename... List>
    - +
    using entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type = typename value_list_cat<value_list<Value..., Other...>, List...>::typeusing entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type = typename value_list_cat<value_list<Value..., Other...>, List...>::type

    A value list composed by the values of all the value lists.

    -

    Definition at line 497 of file type_traits.hpp.

    +

    Definition at line 499 of file type_traits.hpp.

    @@ -133,7 +146,8 @@ template<auto... Value, auto... Other, typename... List> + diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html index cf946df86..21a5837ff 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html index 6a488ef8a..242800713 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_cat< value_list< Value... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html index eae94366f..2326f1c7b 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_cat< value_list< Value... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = value_list<Value...>
    using type = value_list<Value...>
     A value list composed by the values of all the value lists.
     
    @@ -103,7 +116,7 @@ struct entt::value_list_cat< value_list< Value... > >

    Concat -

    Definition at line 505 of file type_traits.hpp.

    +

    Definition at line 507 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -114,14 +127,14 @@ struct entt::value_list_cat< value_list< Value... > >

    Concat template<auto... Value> - +
    using entt::value_list_cat< value_list< Value... > >::type = value_list<Value...>using entt::value_list_cat< value_list< Value... > >::type = value_list<Value...>

    A value list composed by the values of all the value lists.

    -

    Definition at line 507 of file type_traits.hpp.

    +

    Definition at line 509 of file type_traits.hpp.

    @@ -131,7 +144,8 @@ template<auto... Value> + diff --git a/structentt_1_1value__list__cat_3_4-members.html b/structentt_1_1value__list__cat_3_4-members.html index 2df58e43b..1952c40f7 100644 --- a/structentt_1_1value__list__cat_3_4-members.html +++ b/structentt_1_1value__list__cat_3_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_cat<> Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__cat_3_4.html b/structentt_1_1value__list__cat_3_4.html index efc5d65c2..2c96f0c71 100644 --- a/structentt_1_1value__list__cat_3_4.html +++ b/structentt_1_1value__list__cat_3_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_cat<> Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,14 +102,14 @@ $(function() { - +

    Public Types

    using type = value_list<>
    using type = value_list<>
     A value list composed by the values of all the value lists.
     

    Detailed Description

    Concatenates multiple value lists.

    -

    Definition at line 483 of file type_traits.hpp.

    +

    Definition at line 485 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -105,14 +118,14 @@ Public Types

    A value list composed by the values of all the value lists.

    -

    Definition at line 485 of file type_traits.hpp.

    +

    Definition at line 487 of file type_traits.hpp.

    @@ -122,7 +135,8 @@ Public Types
    +
    diff --git a/structentt_1_1value__list__contains.html b/structentt_1_1value__list__contains.html index a3e913072..d0ff5ffa4 100644 --- a/structentt_1_1value__list__contains.html +++ b/structentt_1_1value__list__contains.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_contains< List, Value > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_contains< List, Value > Struct Template Reference
    @@ -82,7 +95,7 @@ $(function() {

    Provides the member constant value to true if a value list contains a given value, false otherwise. More...

    Detailed Description

    -
    template<typename List, auto Value>
    +
    template<typename List, auto Value>
    struct entt::value_list_contains< List, Value >

    Provides the member constant value to true if a value list contains a given value, false otherwise.

    Template Parameters
    @@ -92,14 +105,15 @@ struct entt::value_list_contains< List, Value >

    Provides the membe -

    Definition at line 556 of file type_traits.hpp.

    +

    Definition at line 558 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html b/structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html index 99c2756cb..050d72a84 100644 --- a/structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html +++ b/structentt_1_1value__list__contains_3_01value__list_3_01Value_8_8_8_01_4_00_01Other_01_4.html @@ -3,13 +3,15 @@ - +EnTT: entt::value_list_contains< value_list< Value... >, Other > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::value_list_contains< value_list< Value... >, Other > Struct Template Reference
    -

    Provides the member constant value to true if a value list contains a given value, false otherwise. +

    Provides the member constant value to true if a value list contains a given value, false otherwise. More...

    #include <type_traits.hpp>

    @@ -104,8 +117,8 @@ Collaboration diagram for entt::value_list_contains< value_list< Value...
    [legend]

    Detailed Description

    -
    template<auto... Value, auto Other>
    -struct entt::value_list_contains< value_list< Value... >, Other >

    Provides the member constant value to true if a value list contains a given value, false otherwise.

    +
    template<auto... Value, auto Other>
    +struct entt::value_list_contains< value_list< Value... >, Other >

    Provides the member constant value to true if a value list contains a given value, false otherwise.

    Template Parameters
    @@ -114,14 +127,15 @@ struct entt::value_list_contains< value_list< Value... >, Other > -

    Definition at line 564 of file type_traits.hpp.

    +

    Definition at line 566 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1value__list__diff.html b/structentt_1_1value__list__diff.html index b9d9bda4b..1990b1c12 100644 --- a/structentt_1_1value__list__diff.html +++ b/structentt_1_1value__list__diff.html @@ -3,13 +3,15 @@ - +EnTT: entt::value_list_diff<... > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    ValueValues provided by the value list.
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::value_list_diff<... > Struct Template Reference
    @@ -85,14 +98,15 @@ $(function() {
    template<typename...>
    struct entt::value_list_diff<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 577 of file type_traits.hpp.

    +

    Definition at line 579 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4-members.html index 83497e1de..32758fc65 100644 --- a/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_diff< value_list< Value... >, value_list< Other... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html index c8f216453..d33c81103 100644 --- a/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__diff_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_diff< value_list< Value... >, value_list< Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,7 +102,7 @@ $(function() { - +

    Public Types

    using type = value_list_cat_t<std::conditional_t<value_list_contains_v<value_list<Other...>, Value>, value_list<>, value_list<Value>>...>
    using type = value_list_cat_t<std::conditional_t<value_list_contains_v<value_list<Other...>, Value>, value_list<>, value_list<Value>>...>
     A value list that is the difference between the two value lists.
     
    @@ -104,7 +117,7 @@ struct entt::value_list_diff< value_list< Value... >, value_list< Ot -

    Definition at line 585 of file type_traits.hpp.

    +

    Definition at line 587 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -115,14 +128,14 @@ struct entt::value_list_diff< value_list< Value... >, value_list< Ot template<auto... Value, auto... Other>
    - +
    using entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type = value_list_cat_t<std::conditional_t<value_list_contains_v<value_list<Other...>, Value>, value_list<>, value_list<Value>>...>using entt::value_list_diff< value_list< Value... >, value_list< Other... > >::type = value_list_cat_t<std::conditional_t<value_list_contains_v<value_list<Other...>, Value>, value_list<>, value_list<Value>>...>

    A value list that is the difference between the two value lists.

    -

    Definition at line 587 of file type_traits.hpp.

    +

    Definition at line 589 of file type_traits.hpp.

    @@ -132,7 +145,8 @@ template<auto... Value, auto... Other> + diff --git a/structentt_1_1value__list__element.html b/structentt_1_1value__list__element.html index d3ccde682..d70f4ddf5 100644 --- a/structentt_1_1value__list__element.html +++ b/structentt_1_1value__list__element.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_element< size_t, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::value_list_element< size_t, typename > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<std::size_t, typename>
    +
    template<std::size_t, typename>
    struct entt::value_list_element< size_t, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 373 of file type_traits.hpp.

    +

    Definition at line 375 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html index 58dc37618..20e513f75 100644 --- a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_element< 0u, value_list< Value, Other... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index 019260bd6..6eb5391f0 100644 --- a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_element< 0u, value_list< Value, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using type = decltype(Value)
    using type = decltype(Value)
     Searched type.
     
    - +

    Static Public Attributes

    static constexpr auto value = Value
    static constexpr auto value = Value
     Searched value.
     

    Detailed Description

    -
    template<auto Value, auto... Other>
    +
    template<auto Value, auto... Other>
    struct entt::value_list_element< 0u, value_list< Value, Other... > >

    Provides compile-time indexed access to the types of a type list.

    Template Parameters
    @@ -111,7 +124,7 @@ struct entt::value_list_element< 0u, value_list< Value, Other... > > -

    Definition at line 391 of file type_traits.hpp.

    +

    Definition at line 393 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -119,17 +132,17 @@ struct entt::value_list_element< 0u, value_list< Value, Other... > >
    -template<auto Value, auto... Other>
    +template<auto Value, auto... Other>
    - +
    using entt::value_list_element< 0u, value_list< Value, Other... > >::type = decltype(Value)using entt::value_list_element< 0u, value_list< Value, Other... > >::type = decltype(Value)

    Searched type.

    -

    Definition at line 393 of file type_traits.hpp.

    +

    Definition at line 395 of file type_traits.hpp.

    @@ -140,25 +153,25 @@ template<
    -template<auto Value, auto... Other>
    +template<auto Value, auto... Other>
    +staticconstexpr
    - +
    constexpr auto entt::value_list_element< 0u, value_list< Value, Other... > >::value = Valueauto entt::value_list_element< 0u, value_list< Value, Other... > >::value = Value
    -staticconstexpr

    Searched value.

    -

    Definition at line 395 of file type_traits.hpp.

    +

    Definition at line 397 of file type_traits.hpp.

    @@ -168,7 +181,8 @@ template< +
    diff --git a/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index c9f2c9cc5..8cfefc405 100644 --- a/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_element< Index, value_list< Value, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_element< Index, value_list< Value, Other... > > Struct Template Reference
    @@ -104,7 +117,7 @@ Collaboration diagram for entt::value_list_element< Index, value_list< Val
    [legend]

    Detailed Description

    -
    template<std::size_t Index, auto Value, auto... Other>
    +
    template<std::size_t Index, auto Value, auto... Other>
    struct entt::value_list_element< Index, value_list< Value, Other... > >

    Provides compile-time indexed access to the values of a value list.

    Template Parameters
    @@ -115,14 +128,15 @@ struct entt::value_list_element< Index, value_list< Value, Other... > & -

    Definition at line 382 of file type_traits.hpp.

    +

    Definition at line 384 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: + diff --git a/structentt_1_1value__list__index.html b/structentt_1_1value__list__index.html index 6628edffd..b0e5af969 100644 --- a/structentt_1_1value__list__index.html +++ b/structentt_1_1value__list__index.html @@ -3,13 +3,15 @@ - +EnTT: entt::value_list_index< auto, typename > Struct Template Reference + + @@ -23,7 +25,7 @@ @@ -31,23 +33,33 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    entt::value_list_index< auto, typename > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<auto, typename>
    +
    template<auto, typename>
    struct entt::value_list_index< auto, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 416 of file type_traits.hpp.

    +

    Definition at line 418 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html index 5489a8558..58854ab9d 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_index< Value, value_list< First, Other... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    +
    diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html index f07cce194..05667ce87 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01First_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_index< Value, value_list< First, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 1u + value_list_index<Value, value_list<Other...>>::value
    static constexpr value_type value = 1u + value_list_index<Value, value_list<Other...>>::value
     Compile-time position of the given value in the sublist.
     

    Detailed Description

    -
    template<auto Value, auto First, auto... Other>
    +
    template<auto Value, auto First, auto... Other>
    struct entt::value_list_index< Value, value_list< First, Other... > >

    Provides compile-time type access to the values of a value list.

    Template Parameters
    @@ -112,7 +125,7 @@ struct entt::value_list_index< Value, value_list< First, Other... > > -

    Definition at line 425 of file type_traits.hpp.

    +

    Definition at line 427 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -120,17 +133,17 @@ struct entt::value_list_index< Value, value_list< First, Other... > >
    -template<auto Value, auto First, auto... Other>
    +template<auto Value, auto First, auto... Other>
    - +
    using entt::value_list_index< Value, value_list< First, Other... > >::value_type = std::size_tusing entt::value_list_index< Value, value_list< First, Other... > >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 427 of file type_traits.hpp.

    +

    Definition at line 429 of file type_traits.hpp.

    @@ -141,25 +154,25 @@ template<
    -template<auto Value, auto First, auto... Other>
    +template<auto Value, auto First, auto... Other>
    +staticconstexpr
    - +
    constexpr value_type entt::value_list_index< Value, value_list< First, Other... > >::value = 1u + value_list_index<Value, value_list<Other...>>::valuevalue_type entt::value_list_index< Value, value_list< First, Other... > >::value = 1u + value_list_index<Value, value_list<Other...>>::value
    -staticconstexpr

    Compile-time position of the given value in the sublist.

    -

    Definition at line 429 of file type_traits.hpp.

    +

    Definition at line 431 of file type_traits.hpp.

    @@ -169,7 +182,8 @@ template< +
    diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html index bc4c81c93..ed8af25aa 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_index< Value, value_list< Value, Other... > > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index c336a2bc7..f2c19d8d8 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_index< Value, value_list< Value, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 0u
    static constexpr value_type value = 0u
     Compile-time position of the given value in the sublist.
     

    Detailed Description

    -
    template<auto Value, auto... Other>
    +
    template<auto Value, auto... Other>
    struct entt::value_list_index< Value, value_list< Value, Other... > >

    Provides compile-time type access to the values of a value list.

    Template Parameters
    @@ -111,7 +124,7 @@ struct entt::value_list_index< Value, value_list< Value, Other... > > -

    Definition at line 438 of file type_traits.hpp.

    +

    Definition at line 440 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -119,17 +132,17 @@ struct entt::value_list_index< Value, value_list< Value, Other... > >
    -template<auto Value, auto... Other>
    +template<auto Value, auto... Other>
    - +
    using entt::value_list_index< Value, value_list< Value, Other... > >::value_type = std::size_tusing entt::value_list_index< Value, value_list< Value, Other... > >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 441 of file type_traits.hpp.

    +

    Definition at line 443 of file type_traits.hpp.

    @@ -140,25 +153,25 @@ template<
    -template<auto Value, auto... Other>
    +template<auto Value, auto... Other>
    +staticconstexpr
    - +
    constexpr value_type entt::value_list_index< Value, value_list< Value, Other... > >::value = 0uvalue_type entt::value_list_index< Value, value_list< Value, Other... > >::value = 0u
    -staticconstexpr

    Compile-time position of the given value in the sublist.

    -

    Definition at line 443 of file type_traits.hpp.

    +

    Definition at line 445 of file type_traits.hpp.

    @@ -168,7 +181,8 @@ template< +
    diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4-members.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4-members.html index 257c721e3..25dfab0d1 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4-members.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_index< Value, value_list<> > Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html index 7c8e1f41d..e3d059eef 100644 --- a/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html +++ b/structentt_1_1value__list__index_3_01Value_00_01value__list_3_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_index< Value, value_list<> > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -90,18 +103,18 @@ $(function() { - +

    Public Types

    using value_type = std::size_t
    using value_type = std::size_t
     Unsigned integer type.
     
    - +

    Static Public Attributes

    static constexpr value_type value = 0u
    static constexpr value_type value = 0u
     Compile-time position of the given type in the sublist.
     

    Detailed Description

    -
    template<auto Value>
    +
    template<auto Value>
    struct entt::value_list_index< Value, value_list<> >

    Provides compile-time type access to the values of a value list.

    Template Parameters
    @@ -110,7 +123,7 @@ struct entt::value_list_index< Value, value_list<> >

    Provide -

    Definition at line 451 of file type_traits.hpp.

    +

    Definition at line 453 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ value_type

    @@ -118,17 +131,17 @@ struct entt::value_list_index< Value, value_list<> >

    Provide

    -template<auto Value>
    +template<auto Value>
    - +
    using entt::value_list_index< Value, value_list<> >::value_type = std::size_tusing entt::value_list_index< Value, value_list<> >::value_type = std::size_t

    Unsigned integer type.

    -

    Definition at line 453 of file type_traits.hpp.

    +

    Definition at line 455 of file type_traits.hpp.

    @@ -139,25 +152,25 @@ template<
    +template<auto Value>
    +staticconstexpr
    - +
    constexpr value_type entt::value_list_index< Value, value_list<> >::value = 0uvalue_type entt::value_list_index< Value, value_list<> >::value = 0u
    -staticconstexpr

    Compile-time position of the given type in the sublist.

    -

    Definition at line 455 of file type_traits.hpp.

    +

    Definition at line 457 of file type_traits.hpp.

    @@ -167,7 +180,8 @@ template< +
    diff --git a/structentt_1_1value__list__unique.html b/structentt_1_1value__list__unique.html index a2af1df88..d19a99b63 100644 --- a/structentt_1_1value__list__unique.html +++ b/structentt_1_1value__list__unique.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_unique< typename > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_unique< typename > Struct Template Reference
    @@ -82,17 +95,18 @@ $(function() {

    Primary template isn't defined on purpose. More...

    Detailed Description

    -
    template<typename>
    +
    template<typename>
    struct entt::value_list_unique< typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 519 of file type_traits.hpp.

    +

    Definition at line 521 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html index b6b5a295c..58d2a7cfa 100644 --- a/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_unique< value_list< Value, Other... > > Member List
    @@ -85,7 +98,8 @@ $(function() {
    + diff --git a/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index 36389a252..53f1c1ca9 100644 --- a/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__unique_3_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_unique< value_list< Value, Other... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Types | @@ -89,12 +102,12 @@ $(function() { - +

    Public Types

    using type
    using type
     A value list without duplicate types.
     

    Detailed Description

    -
    template<auto Value, auto... Other>
    +
    template<auto Value, auto... Other>
    struct entt::value_list_unique< value_list< Value, Other... > >

    Removes duplicates values from a value list.

    Template Parameters
    @@ -104,7 +117,7 @@ struct entt::value_list_unique< value_list< Value, Other... > > -

    Definition at line 527 of file type_traits.hpp.

    +

    Definition at line 529 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -112,23 +125,25 @@ struct entt::value_list_unique< value_list< Value, Other... > >
    -template<auto Value, auto... Other>
    +template<auto Value, auto... Other>
    - +
    using entt::value_list_unique< value_list< Value, Other... > >::typeusing entt::value_list_unique< value_list< Value, Other... > >::type
    Initial value:
    std::conditional_t<
    -
    ((Value == Other) || ...),
    -
    typename value_list_unique<value_list<Other...>>::type,
    -
    value_list_cat_t<value_list<Value>, typename value_list_unique<value_list<Other...>>::type>>
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::conditional_t<((Value==Other)||...), typename value_list_unique< value_list< Other... > >::type, value_list_cat_t< value_list< Value >, typename value_list_unique< value_list< Other... > >::type > > type
    A value list without duplicate types.
    +
    ((Value == Other) || ...),
    +
    typename value_list_unique<value_list<Other...>>::type,
    + +
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.
    +
    std::conditional_t<((Value==Other)||...), typename value_list_unique< value_list< Other... > >::type, value_list_cat_t< value_list< Value >, typename value_list_unique< value_list< Other... > >::type > > type
    A value list without duplicate types.
    +
    Primary template isn't defined on purpose.
    +
    A class to use to push around lists of constant values, nothing more.

    A value list without duplicate types.

    -

    Definition at line 529 of file type_traits.hpp.

    +

    Definition at line 531 of file type_traits.hpp.

    @@ -138,7 +153,8 @@ template< +
    diff --git a/structentt_1_1value__list__unique_3_01value__list_3_4_01_4-members.html b/structentt_1_1value__list__unique_3_01value__list_3_4_01_4-members.html index af2ab735a..8049c72b5 100644 --- a/structentt_1_1value__list__unique_3_01value__list_3_4_01_4-members.html +++ b/structentt_1_1value__list__unique_3_01value__list_3_4_01_4-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    entt::value_list_unique< value_list<> > Member List
    @@ -85,7 +98,8 @@ $(function() {
    +
    diff --git a/structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html b/structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html index 44e90d331..48cb582d6 100644 --- a/structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html +++ b/structentt_1_1value__list__unique_3_01value__list_3_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: entt::value_list_unique< value_list<> > Struct Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    Public Types | @@ -89,14 +102,14 @@ $(function() { - +

    Public Types

    using type = value_list<>
    using type = value_list<>
     A value list without duplicate types.
     

    Detailed Description

    Removes duplicates values from a value list.

    -

    Definition at line 537 of file type_traits.hpp.

    +

    Definition at line 539 of file type_traits.hpp.

    Member Typedef Documentation

    ◆ type

    @@ -105,14 +118,14 @@ Public Types

    A value list without duplicate types.

    -

    Definition at line 539 of file type_traits.hpp.

    +

    Definition at line 541 of file type_traits.hpp.

    @@ -122,7 +135,8 @@ Public Types
    +
    diff --git a/structentt_1_1y__combinator-members.html b/structentt_1_1y__combinator-members.html index 27424caba..8c3e5fd3a 100644 --- a/structentt_1_1y__combinator-members.html +++ b/structentt_1_1y__combinator-members.html @@ -3,13 +3,15 @@ - + EnTT: Member List + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    entt::y_combinator< Func > Member List
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/structentt_1_1y__combinator.html b/structentt_1_1y__combinator.html index 3fd969312..9cce2b2da 100644 --- a/structentt_1_1y__combinator.html +++ b/structentt_1_1y__combinator.html @@ -3,13 +3,15 @@ - + EnTT: entt::y_combinator< Func > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    Public Member Functions | @@ -89,20 +102,20 @@ $(function() { - + - + - - + +

    Public Member Functions

    constexpr y_combinator (Func recursive) noexcept(std::is_nothrow_move_constructible_v< Func >)
    constexpr y_combinator (Func recursive) noexcept(std::is_nothrow_move_constructible_v< Func >)
     Constructs a y-combinator from a given function.
     
    template<typename... Args>
    constexpr decltype(autooperator() (Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)
    constexpr decltype(auto) operator() (Args &&...args) const noexcept(std::is_nothrow_invocable_v< Func, const y_combinator &, Args... >)
     Invokes a y-combinator and therefore its underlying function.
     
    template<typename... Args>
    constexpr decltype(autooperator() (Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)
     Invokes a y-combinator and therefore its underlying function.
    constexpr decltype(auto) operator() (Args &&...args) noexcept(std::is_nothrow_invocable_v< Func, y_combinator &, Args... >)
     Invokes a y-combinator and therefore its underlying function.
     

    Detailed Description

    -
    template<typename Func>
    +
    template<typename Func>
    struct entt::y_combinator< Func >

    Basic implementation of a y-combinator.

    Template Parameters
    @@ -119,13 +132,13 @@ struct entt::y_combinator< Func >

    Basic implementation of a y-comb

    -template<typename Func >
    +template<typename Func>
    @@ -31,23 +33,33 @@
    - + @@ -133,7 +146,7 @@ template< -inlineconstexprnoexcept +inlineconstexprnoexcept
    constexpr entt::y_combinator< Func >::y_combinator entt::y_combinator< Func >::y_combinator ( Func recursive)
    @@ -157,7 +170,7 @@ template<
    +template<typename Func>
    template<typename... Args>
    @@ -165,15 +178,15 @@ template<typename... Args> +inlineconstexprnoexcept
    - + - +
    constexpr decltype(auto) entt::y_combinator< Func >::operator() decltype(auto) entt::y_combinator< Func >::operator() (Args &&... args)Args &&... args) const
    -inlineconstexprnoexcept
    @@ -203,7 +216,7 @@ template<typename... Args>
    -template<typename Func >
    +template<typename Func>
    template<typename... Args>
    @@ -211,20 +224,20 @@ template<typename... Args> +inlineconstexprnoexcept
    - + - +
    constexpr decltype(auto) entt::y_combinator< Func >::operator() decltype(auto) entt::y_combinator< Func >::operator() (Args &&... args)Args &&... args)
    -inlineconstexprnoexcept
    -

    Invokes a y-combinator and therefore its underlying function.

    +

    Invokes a y-combinator and therefore its underlying function.

    Template Parameters
    @@ -237,7 +250,7 @@ template<typename... Args>
    ArgsTypes of arguments to use to invoke the underlying function.
    -
    Returns
    Return value of the underlying function, if any.
    +
    Returns
    Return value of the underlying function, if any.

    Definition at line 91 of file utility.hpp.

    @@ -249,7 +262,8 @@ template<typename... Args>
    + diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html index 3b5357470..2cb13617d 100644 --- a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_element< Index, entt::compressed_pair< First, Second > > Struct Template Reference + + @@ -23,7 +25,7 @@
    -
    EnTT 3.14.0 +
    EnTT 3.15.0
    - + + +
    +
    std::tuple_element< Index, entt::compressed_pair< First, Second > > Struct Template Reference
    @@ -122,7 +135,8 @@ struct std::tuple_element< Index, entt::compressed_pair< First, Second >
    +
    diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html index 440e3e507..175427178 100644 --- a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_element< Index, entt::type_list< Type... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    std::tuple_element< Index, entt::type_list< Type... > > Struct Template Reference
    @@ -101,14 +114,15 @@ Collaboration diagram for std::tuple_element< Index, entt::type_list< Type

    Detailed Description

    template<std::size_t Index, typename... Type>
    struct std::tuple_element< Index, entt::type_list< Type... > >
    -

    Definition at line 911 of file type_traits.hpp.

    +

    Definition at line 913 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    +
    diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html index 575d2163e..361f8a02d 100644 --- a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_element< Index, entt::value_list< Value... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + +
    +
    std::tuple_element< Index, entt::value_list< Value... > > Struct Template Reference
    @@ -101,14 +114,15 @@ Collaboration diagram for std::tuple_element< Index, entt::value_list< Val

    Detailed Description

    template<std::size_t Index, auto... Value>
    struct std::tuple_element< Index, entt::value_list< Value... > >
    -

    Definition at line 917 of file type_traits.hpp.

    +

    Definition at line 919 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html index 468aa34d7..68111306d 100644 --- a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_size< entt::compressed_pair< First, Second > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    std::tuple_size< entt::compressed_pair< First, Second > > Struct Template Reference
    @@ -121,7 +134,8 @@ struct std::tuple_size< entt::compressed_pair< First, Second > > +
    diff --git a/structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html b/structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html index 592dfaf85..82980f5de 100644 --- a/structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html +++ b/structstd_1_1tuple__size_3_01entt_1_1type__list_3_01Type_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_size< entt::type_list< Type... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    std::tuple_size< entt::type_list< Type... > > Struct Template Reference
    @@ -101,14 +114,15 @@ Collaboration diagram for std::tuple_size< entt::type_list< Type... > &

    Detailed Description

    template<typename... Type>
    struct std::tuple_size< entt::type_list< Type... > >
    -

    Definition at line 908 of file type_traits.hpp.

    +

    Definition at line 910 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html b/structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html index 39068120f..65f227c50 100644 --- a/structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html +++ b/structstd_1_1tuple__size_3_01entt_1_1value__list_3_01Value_8_8_8_01_4_01_4.html @@ -3,13 +3,15 @@ - + EnTT: std::tuple_size< entt::value_list< Value... > > Struct Template Reference + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,23 +33,33 @@
    - + + + +
    std::tuple_size< entt::value_list< Value... > > Struct Template Reference
    @@ -101,14 +114,15 @@ Collaboration diagram for std::tuple_size< entt::value_list< Value... >

    Detailed Description

    template<auto... Value>
    struct std::tuple_size< entt::value_list< Value... > >
    -

    Definition at line 914 of file type_traits.hpp.

    +

    Definition at line 916 of file type_traits.hpp.


    The documentation for this struct was generated from the following file:
    + diff --git a/table_8hpp_source.html b/table_8hpp_source.html index f2893e9d2..948c200a7 100644 --- a/table_8hpp_source.html +++ b/table_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/container/table.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); }); +
    table.hpp
    @@ -96,7 +104,7 @@ $(function() { codefold.init(0); });
    11#include "fwd.hpp"
    12
    13namespace entt {
    -
    14
    +
    14
    16namespace internal {
    17
    18template<typename... It>
    @@ -127,7 +135,7 @@ $(function() { codefold.init(0); });
    43 }
    44
    45 constexpr table_iterator operator++(int) noexcept {
    -
    46 table_iterator orig = *this;
    +
    46 const table_iterator orig = *this;
    47 return ++(*this), orig;
    48 }
    49
    @@ -136,7 +144,7 @@ $(function() { codefold.init(0); });
    52 }
    53
    54 constexpr table_iterator operator--(int) noexcept {
    -
    55 table_iterator orig = *this;
    +
    55 const table_iterator orig = *this;
    56 return operator--(), orig;
    57 }
    58
    @@ -218,301 +226,303 @@ $(function() { codefold.init(0); });
    134}
    135
    136} // namespace internal
    -
    148template<typename... Container>
    +
    138
    +
    148template<typename... Container>
    - -
    150 using container_type = std::tuple<Container...>;
    + +
    150 using container_type = std::tuple<Container...>;
    151
    152public:
    154 using size_type = std::size_t;
    -
    156 using iterator = internal::table_iterator<typename Container::iterator...>;
    -
    158 using const_iterator = internal::table_iterator<typename Container::const_iterator...>;
    -
    160 using reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>;
    -
    162 using const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>;
    -
    163
    -
    - -
    166 : payload{} {
    -
    167 }
    +
    156 using difference_type = std::ptrdiff_t;
    +
    158 using iterator = internal::table_iterator<typename Container::iterator...>;
    +
    160 using const_iterator = internal::table_iterator<typename Container::const_iterator...>;
    +
    162 using reverse_iterator = internal::table_iterator<typename Container::reverse_iterator...>;
    +
    164 using const_reverse_iterator = internal::table_iterator<typename Container::const_reverse_iterator...>;
    +
    165
    +
    + +
    168 : payload{} {
    +
    169 }
    -
    168
    -
    - -
    174 : payload{container...} {
    -
    175 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    -
    176 }
    +
    170
    +
    +
    175 explicit basic_table(const Container &...container) noexcept
    +
    176 : payload{container...} {
    +
    177 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    +
    178 }
    -
    177
    -
    - -
    183 : payload{std::move(container)...} {
    -
    184 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    -
    185 }
    +
    179
    +
    +
    184 explicit basic_table(Container &&...container) noexcept
    +
    185 : payload{std::move(container)...} {
    +
    186 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    +
    187 }
    -
    186
    -
    188 basic_table(const basic_table &) = delete;
    -
    189
    -
    - -
    195 : payload{std::move(other.payload)} {}
    +
    188
    +
    190 basic_table(const basic_table &) = delete;
    +
    191
    +
    +
    196 basic_table(basic_table &&other) noexcept
    +
    197 : payload{std::move(other.payload)} {}
    -
    196
    -
    202 template<typename Allocator>
    -
    -
    203 explicit basic_table(const Allocator &allocator)
    -
    204 : payload{Container{allocator}...} {}
    +
    198
    +
    204 template<typename Allocator>
    +
    +
    205 explicit basic_table(const Allocator &allocator)
    +
    206 : payload{Container{allocator}...} {}
    -
    205
    -
    212 template<class Allocator>
    -
    -
    213 basic_table(const Container &...container, const Allocator &allocator) noexcept
    -
    214 : payload{Container{container, allocator}...} {
    -
    215 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    -
    216 }
    +
    207
    +
    214 template<class Allocator>
    +
    +
    215 basic_table(const Container &...container, const Allocator &allocator) noexcept
    +
    216 : payload{Container{container, allocator}...} {
    +
    217 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    +
    218 }
    -
    217
    -
    224 template<class Allocator>
    -
    - -
    226 : payload{Container{std::move(container), allocator}...} {
    -
    227 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    -
    228 }
    +
    219
    +
    226 template<class Allocator>
    +
    +
    227 basic_table(Container &&...container, const Allocator &allocator) noexcept
    +
    228 : payload{Container{std::move(container), allocator}...} {
    +
    229 ENTT_ASSERT((((std::get<Container>(payload).size() * sizeof...(Container)) == (std::get<Container>(payload).size() + ...)) && ...), "Unexpected container size");
    +
    230 }
    -
    229
    -
    236 template<class Allocator>
    -
    - -
    238 : payload{Container{std::move(std::get<Container>(other.payload)), allocator}...} {}
    +
    231
    +
    238 template<class Allocator>
    +
    +
    239 basic_table(basic_table &&other, const Allocator &allocator)
    +
    240 : payload{Container{std::move(std::get<Container>(other.payload)), allocator}...} {}
    -
    239
    -
    241 ~basic_table() = default;
    -
    242
    - -
    248
    -
    - -
    255 swap(other);
    -
    256 return *this;
    -
    257 }
    +
    241
    +
    243 ~basic_table() = default;
    +
    244
    + +
    250
    +
    +
    256 basic_table &operator=(basic_table &&other) noexcept {
    +
    257 swap(other);
    +
    258 return *this;
    +
    259 }
    -
    258
    -
    -
    263 void swap(basic_table &other) noexcept {
    -
    264 using std::swap;
    -
    265 swap(payload, other.payload);
    -
    266 }
    +
    260
    +
    +
    265 void swap(basic_table &other) noexcept {
    +
    266 using std::swap;
    +
    267 swap(payload, other.payload);
    +
    268 }
    -
    267
    -
    -
    276 void reserve(const size_type cap) {
    -
    277 (std::get<Container>(payload).reserve(cap), ...);
    -
    278 }
    +
    269
    +
    +
    278 void reserve(const size_type cap) {
    +
    279 (std::get<Container>(payload).reserve(cap), ...);
    +
    280 }
    -
    279
    -
    - -
    286 return std::get<0>(payload).capacity();
    -
    287 }
    +
    281
    +
    +
    287 [[nodiscard]] size_type capacity() const noexcept {
    +
    288 return std::get<0>(payload).capacity();
    +
    289 }
    -
    288
    -
    - -
    291 (std::get<Container>(payload).shrink_to_fit(), ...);
    -
    292 }
    +
    290
    +
    + +
    293 (std::get<Container>(payload).shrink_to_fit(), ...);
    +
    294 }
    -
    293
    -
    - -
    299 return std::get<0>(payload).size();
    -
    300 }
    +
    295
    +
    +
    300 [[nodiscard]] size_type size() const noexcept {
    +
    301 return std::get<0>(payload).size();
    +
    302 }
    -
    301
    -
    - -
    307 return std::get<0>(payload).empty();
    -
    308 }
    +
    303
    +
    +
    308 [[nodiscard]] bool empty() const noexcept {
    +
    309 return std::get<0>(payload).empty();
    +
    310 }
    -
    309
    -
    - -
    318 return {std::get<Container>(payload).cbegin()...};
    -
    319 }
    +
    311
    +
    +
    319 [[nodiscard]] const_iterator cbegin() const noexcept {
    +
    320 return {std::get<Container>(payload).cbegin()...};
    +
    321 }
    -
    320
    -
    - -
    323 return cbegin();
    -
    324 }
    +
    322
    +
    +
    324 [[nodiscard]] const_iterator begin() const noexcept {
    +
    325 return cbegin();
    +
    326 }
    -
    325
    -
    - -
    328 return {std::get<Container>(payload).begin()...};
    -
    329 }
    +
    327
    +
    +
    329 [[nodiscard]] iterator begin() noexcept {
    +
    330 return {std::get<Container>(payload).begin()...};
    +
    331 }
    -
    330
    -
    - -
    336 return {std::get<Container>(payload).cend()...};
    -
    337 }
    +
    332
    +
    +
    337 [[nodiscard]] const_iterator cend() const noexcept {
    +
    338 return {std::get<Container>(payload).cend()...};
    +
    339 }
    -
    338
    -
    - -
    341 return cend();
    -
    342 }
    +
    340
    +
    +
    342 [[nodiscard]] const_iterator end() const noexcept {
    +
    343 return cend();
    +
    344 }
    -
    343
    -
    - -
    346 return {std::get<Container>(payload).end()...};
    -
    347 }
    +
    345
    +
    +
    347 [[nodiscard]] iterator end() noexcept {
    +
    348 return {std::get<Container>(payload).end()...};
    +
    349 }
    -
    348
    -
    - -
    357 return {std::get<Container>(payload).crbegin()...};
    -
    358 }
    +
    350
    +
    +
    358 [[nodiscard]] const_reverse_iterator crbegin() const noexcept {
    +
    359 return {std::get<Container>(payload).crbegin()...};
    +
    360 }
    -
    359
    -
    - -
    362 return crbegin();
    -
    363 }
    +
    361
    +
    +
    363 [[nodiscard]] const_reverse_iterator rbegin() const noexcept {
    +
    364 return crbegin();
    +
    365 }
    -
    364
    -
    - -
    367 return {std::get<Container>(payload).rbegin()...};
    -
    368 }
    +
    366
    +
    +
    368 [[nodiscard]] reverse_iterator rbegin() noexcept {
    +
    369 return {std::get<Container>(payload).rbegin()...};
    +
    370 }
    -
    369
    -
    - -
    376 return {std::get<Container>(payload).crend()...};
    -
    377 }
    +
    371
    +
    +
    377 [[nodiscard]] const_reverse_iterator crend() const noexcept {
    +
    378 return {std::get<Container>(payload).crend()...};
    +
    379 }
    -
    378
    -
    - -
    381 return crend();
    -
    382 }
    +
    380
    +
    +
    382 [[nodiscard]] const_reverse_iterator rend() const noexcept {
    +
    383 return crend();
    +
    384 }
    -
    383
    -
    - -
    386 return {std::get<Container>(payload).rend()...};
    -
    387 }
    +
    385
    +
    +
    387 [[nodiscard]] reverse_iterator rend() noexcept {
    +
    388 return {std::get<Container>(payload).rend()...};
    +
    389 }
    -
    388
    -
    395 template<typename... Args>
    -
    -
    396 std::tuple<typename Container::value_type &...> emplace(Args &&...args) {
    -
    397 if constexpr(sizeof...(Args) == 0u) {
    -
    398 return std::forward_as_tuple(std::get<Container>(payload).emplace_back()...);
    -
    399 } else {
    -
    400 return std::forward_as_tuple(std::get<Container>(payload).emplace_back(std::forward<Args>(args))...);
    -
    401 }
    -
    402 }
    +
    390
    +
    397 template<typename... Args>
    +
    +
    398 std::tuple<typename Container::value_type &...> emplace(Args &&...args) {
    +
    399 if constexpr(sizeof...(Args) == 0u) {
    +
    400 return std::forward_as_tuple(std::get<Container>(payload).emplace_back()...);
    +
    401 } else {
    +
    402 return std::forward_as_tuple(std::get<Container>(payload).emplace_back(std::forward<Args>(args))...);
    +
    403 }
    +
    404 }
    -
    403
    -
    - -
    410 const auto diff = pos - begin();
    -
    411 return {std::get<Container>(payload).erase(std::get<Container>(payload).begin() + diff)...};
    -
    412 }
    +
    405
    +
    + +
    412 const auto diff = pos - begin();
    +
    413 return {std::get<Container>(payload).erase(std::get<Container>(payload).begin() + diff)...};
    +
    414 }
    -
    413
    -
    -
    418 void erase(const size_type pos) {
    -
    419 ENTT_ASSERT(pos < size(), "Index out of bounds");
    -
    420 erase(begin() + static_cast<typename const_iterator::difference_type>(pos));
    -
    421 }
    +
    415
    +
    +
    420 void erase(const size_type pos) {
    +
    421 ENTT_ASSERT(pos < size(), "Index out of bounds");
    +
    422 erase(begin() + static_cast<difference_type>(pos));
    +
    423 }
    -
    422
    -
    -
    428 [[nodiscard]] std::tuple<const typename Container::value_type &...> operator[](const size_type pos) const {
    -
    429 ENTT_ASSERT(pos < size(), "Index out of bounds");
    -
    430 return std::forward_as_tuple(std::get<Container>(payload)[pos]...);
    -
    431 }
    +
    424
    +
    +
    430 [[nodiscard]] std::tuple<const typename Container::value_type &...> operator[](const size_type pos) const {
    +
    431 ENTT_ASSERT(pos < size(), "Index out of bounds");
    +
    432 return std::forward_as_tuple(std::get<Container>(payload)[pos]...);
    +
    433 }
    -
    432
    -
    -
    434 [[nodiscard]] std::tuple<typename Container::value_type &...> operator[](const size_type pos) {
    -
    435 ENTT_ASSERT(pos < size(), "Index out of bounds");
    -
    436 return std::forward_as_tuple(std::get<Container>(payload)[pos]...);
    -
    437 }
    +
    434
    +
    +
    436 [[nodiscard]] std::tuple<typename Container::value_type &...> operator[](const size_type pos) {
    +
    437 ENTT_ASSERT(pos < size(), "Index out of bounds");
    +
    438 return std::forward_as_tuple(std::get<Container>(payload)[pos]...);
    +
    439 }
    -
    438
    -
    -
    440 void clear() {
    -
    441 (std::get<Container>(payload).clear(), ...);
    -
    442 }
    +
    440
    +
    +
    442 void clear() {
    +
    443 (std::get<Container>(payload).clear(), ...);
    +
    444 }
    -
    443
    -
    444private:
    -
    445 container_type payload;
    -
    446};
    +
    445
    +
    446private:
    +
    447 container_type payload;
    +
    448};
    -
    447
    -
    448} // namespace entt
    449
    -
    451namespace std {
    -
    452
    -
    453template<typename... Container, typename Allocator>
    -
    454struct uses_allocator<entt::basic_table<Container...>, Allocator>
    -
    455 : std::bool_constant<(std::uses_allocator_v<Container, Allocator> && ...)> {};
    -
    456
    -
    457} // namespace std
    -
    460#endif
    -
    Basic table implementation.
    Definition table.hpp:149
    -
    std::size_t size_type
    Unsigned integer type.
    Definition table.hpp:154
    -
    const_reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:380
    -
    size_type capacity() const noexcept
    Returns the number of rows that a table has currently allocated space for.
    Definition table.hpp:285
    -
    basic_table(basic_table &&other, const Allocator &allocator)
    Allocator-extended move constructor.
    Definition table.hpp:237
    -
    size_type size() const noexcept
    Returns the number of rows in a table.
    Definition table.hpp:298
    +
    450} // namespace entt
    +
    451
    +
    453namespace std {
    +
    454
    +
    455template<typename... Container, typename Allocator>
    +
    456struct uses_allocator<entt::basic_table<Container...>, Allocator>
    +
    457 : std::bool_constant<(std::uses_allocator_v<Container, Allocator> && ...)> {};
    +
    458
    +
    459} // namespace std
    +
    461
    +
    462#endif
    + + +
    const_reverse_iterator rend() const noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:382
    +
    size_type capacity() const noexcept
    Returns the number of rows that a table has currently allocated space for.
    Definition table.hpp:287
    +
    basic_table(basic_table &&other, const Allocator &allocator)
    Allocator-extended move constructor.
    Definition table.hpp:239
    +
    size_type size() const noexcept
    Returns the number of rows in a table.
    Definition table.hpp:300
    basic_table & operator=(const basic_table &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    std::tuple< const typename Container::value_type &... > operator[](const size_type pos) const
    Returns the row data at specified location.
    Definition table.hpp:428
    -
    const_iterator end() const noexcept
    Returns an iterator to the end.
    Definition table.hpp:340
    -
    iterator end() noexcept
    Returns an iterator to the end.
    Definition table.hpp:345
    -
    reverse_iterator rend() noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:385
    -
    void swap(basic_table &other) noexcept
    Exchanges the contents with those of a given table.
    Definition table.hpp:263
    -
    const_iterator begin() const noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:322
    -
    internal::table_iterator< typename Container::iterator... > iterator
    Input iterator type.
    Definition table.hpp:156
    -
    reverse_iterator rbegin() noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:366
    +
    std::tuple< const typename Container::value_type &... > operator[](const size_type pos) const
    Returns the row data at specified location.
    Definition table.hpp:430
    +
    const_iterator end() const noexcept
    Returns an iterator to the end.
    Definition table.hpp:342
    +
    iterator end() noexcept
    Returns an iterator to the end.
    Definition table.hpp:347
    +
    reverse_iterator rend() noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:387
    +
    void swap(basic_table &other) noexcept
    Exchanges the contents with those of a given table.
    Definition table.hpp:265
    +
    const_iterator begin() const noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:324
    +
    internal::table_iterator< typename Container::iterator... > iterator
    Definition table.hpp:158
    +
    reverse_iterator rbegin() noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:368
    ~basic_table()=default
    Default destructor.
    -
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:375
    -
    bool empty() const noexcept
    Checks whether a table is empty.
    Definition table.hpp:306
    -
    basic_table()
    Default constructor.
    Definition table.hpp:165
    -
    iterator erase(const_iterator pos)
    Removes a row from a table.
    Definition table.hpp:409
    -
    void shrink_to_fit()
    Requests the removal of unused capacity.
    Definition table.hpp:290
    -
    basic_table(const Container &...container, const Allocator &allocator) noexcept
    Copy constructs the underlying containers using a given allocator.
    Definition table.hpp:213
    -
    const_reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:361
    -
    basic_table & operator=(basic_table &&other) noexcept
    Move assignment operator.
    Definition table.hpp:254
    -
    void clear()
    Clears a table.
    Definition table.hpp:440
    -
    basic_table(Container &&...container, const Allocator &allocator) noexcept
    Move constructs the underlying containers using a given allocator.
    Definition table.hpp:225
    -
    void erase(const size_type pos)
    Removes a row from a table.
    Definition table.hpp:418
    +
    const_reverse_iterator crend() const noexcept
    Returns a reverse iterator to the end.
    Definition table.hpp:377
    +
    bool empty() const noexcept
    Checks whether a table is empty.
    Definition table.hpp:308
    +
    basic_table()
    Default constructor.
    Definition table.hpp:167
    +
    iterator erase(const_iterator pos)
    Removes a row from a table.
    Definition table.hpp:411
    +
    void shrink_to_fit()
    Requests the removal of unused capacity.
    Definition table.hpp:292
    +
    basic_table(const Container &...container, const Allocator &allocator) noexcept
    Copy constructs the underlying containers using a given allocator.
    Definition table.hpp:215
    +
    const_reverse_iterator rbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:363
    +
    basic_table & operator=(basic_table &&other) noexcept
    Move assignment operator.
    Definition table.hpp:256
    +
    void clear()
    Clears a table.
    Definition table.hpp:442
    +
    basic_table(Container &&...container, const Allocator &allocator) noexcept
    Move constructs the underlying containers using a given allocator.
    Definition table.hpp:227
    +
    void erase(const size_type pos)
    Removes a row from a table.
    Definition table.hpp:420
    basic_table(const basic_table &)=delete
    Default copy constructor, deleted on purpose.
    -
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:356
    -
    internal::table_iterator< typename Container::reverse_iterator... > reverse_iterator
    Reverse iterator type.
    Definition table.hpp:160
    -
    void reserve(const size_type cap)
    Increases the capacity of a table.
    Definition table.hpp:276
    -
    iterator begin() noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:327
    -
    basic_table(basic_table &&other) noexcept
    Move constructor.
    Definition table.hpp:194
    -
    basic_table(const Container &...container) noexcept
    Copy constructs the underlying containers.
    Definition table.hpp:173
    -
    basic_table(const Allocator &allocator)
    Constructs the underlying containers using a given allocator.
    Definition table.hpp:203
    -
    basic_table(Container &&...container) noexcept
    Move constructs the underlying containers.
    Definition table.hpp:182
    -
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:317
    -
    std::tuple< typename Container::value_type &... > operator[](const size_type pos)
    Returns the row data at specified location.
    Definition table.hpp:434
    -
    internal::table_iterator< typename Container::const_iterator... > const_iterator
    Constant input iterator type.
    Definition table.hpp:158
    -
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    Definition table.hpp:335
    -
    std::tuple< typename Container::value_type &... > emplace(Args &&...args)
    Appends a row to the end of a table.
    Definition table.hpp:396
    -
    internal::table_iterator< typename Container::const_reverse_iterator... > const_reverse_iterator
    Constant reverse iterator type.
    Definition table.hpp:162
    +
    const_reverse_iterator crbegin() const noexcept
    Returns a reverse iterator to the beginning.
    Definition table.hpp:358
    +
    internal::table_iterator< typename Container::reverse_iterator... > reverse_iterator
    Definition table.hpp:162
    +
    void reserve(const size_type cap)
    Increases the capacity of a table.
    Definition table.hpp:278
    +
    iterator begin() noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:329
    +
    basic_table(basic_table &&other) noexcept
    Move constructor.
    Definition table.hpp:196
    +
    basic_table(const Container &...container) noexcept
    Copy constructs the underlying containers.
    Definition table.hpp:175
    +
    basic_table(const Allocator &allocator)
    Constructs the underlying containers using a given allocator.
    Definition table.hpp:205
    +
    basic_table(Container &&...container) noexcept
    Move constructs the underlying containers.
    Definition table.hpp:184
    +
    const_iterator cbegin() const noexcept
    Returns an iterator to the beginning.
    Definition table.hpp:319
    +
    std::tuple< typename Container::value_type &... > operator[](const size_type pos)
    Returns the row data at specified location.
    Definition table.hpp:436
    +
    internal::table_iterator< typename Container::const_iterator... > const_iterator
    Definition table.hpp:160
    +
    const_iterator cend() const noexcept
    Returns an iterator to the end.
    Definition table.hpp:337
    +
    std::tuple< typename Container::value_type &... > emplace(Args &&...args)
    Appends a row to the end of a table.
    Definition table.hpp:398
    +
    internal::table_iterator< typename Container::const_reverse_iterator... > const_reverse_iterator
    Definition table.hpp:164
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    +
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator>(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    @@ -520,7 +530,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/tabs.css b/tabs.css index 6c21d61c9..7fa4268a4 100644 --- a/tabs.css +++ b/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#364D7C;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_b.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255, 255, 255, 0.9);color:#283A5D;outline:0}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:white}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_b.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_s.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent white transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:white;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555555;background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:white;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_b.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:white}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/template_8hpp_source.html b/template_8hpp_source.html index 24a2d11bf..f3635ad39 100644 --- a/template_8hpp_source.html +++ b/template_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/meta/template.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    template.hpp
    @@ -91,15 +99,15 @@ $(function() { codefold.init(0); });
    6#include "../core/type_traits.hpp"
    7
    8namespace entt {
    -
    9
    +
    9
    11template<template<typename...> class>
    -
    13
    -
    19template<template<typename...> class Clazz, typename... Args>
    +
    13
    +
    19template<template<typename...> class Clazz, typename... Args>
    26
    @@ -107,14 +115,16 @@ $(function() { codefold.init(0); });
    28
    29#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    Utility class to disambiguate class templates.
    Definition template.hpp:12
    +
    meta_class_template_tag< Clazz > class_type
    Wrapped class template.
    Definition template.hpp:22
    +
    type_list< Args... > args_type
    List of template arguments.
    Definition template.hpp:24
    Traits class template to be specialized to enable support for meta template information.
    -
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +
    diff --git a/tuple_8hpp_source.html b/tuple_8hpp_source.html index 56a8e0911..12fa2d7a2 100644 --- a/tuple_8hpp_source.html +++ b/tuple_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/tuple.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    tuple.hpp
    @@ -91,76 +99,71 @@ $(function() { codefold.init(0); });
    6#include <utility>
    7
    8namespace entt {
    -
    9
    -
    11namespace internal {
    -
    12
    -
    13template<typename>
    -
    14struct is_tuple_impl: std::false_type {};
    -
    15
    -
    16template<typename... Args>
    -
    17struct is_tuple_impl<std::tuple<Args...>>: std::true_type {};
    -
    18
    -
    19} // namespace internal
    -
    27template<typename Type>
    -
    28struct is_tuple: internal::is_tuple_impl<std::remove_cv_t<Type>> {};
    -
    29
    -
    34template<typename Type>
    -
    35inline constexpr bool is_tuple_v = is_tuple<Type>::value;
    -
    36
    -
    44template<typename Type>
    -
    -
    45constexpr decltype(auto) unwrap_tuple(Type &&value) noexcept {
    -
    46 if constexpr(std::tuple_size_v<std::remove_reference_t<Type>> == 1u) {
    -
    47 return std::get<0>(std::forward<Type>(value));
    -
    48 } else {
    -
    49 return std::forward<Type>(value);
    -
    50 }
    -
    51}
    +
    9
    +
    15template<typename Type>
    +
    16struct is_tuple: std::false_type {};
    +
    17
    +
    22template<typename... Args>
    +
    23struct is_tuple<std::tuple<Args...>>: std::true_type {};
    +
    24
    +
    29template<typename Type>
    +
    30inline constexpr bool is_tuple_v = is_tuple<Type>::value;
    +
    31
    +
    39template<typename Type>
    +
    +
    40constexpr decltype(auto) unwrap_tuple(Type &&value) noexcept {
    +
    41 if constexpr(std::tuple_size_v<std::remove_reference_t<Type>> == 1u) {
    +
    42 return std::get<0>(std::forward<Type>(value));
    +
    43 } else {
    +
    44 return std::forward<Type>(value);
    +
    45 }
    +
    46}
    -
    52
    -
    57template<typename Func>
    -
    -
    58struct forward_apply: private Func {
    -
    64 template<typename... Args>
    -
    -
    65 constexpr forward_apply(Args &&...args) noexcept(std::is_nothrow_constructible_v<Func, Args...>)
    -
    66 : Func{std::forward<Args>(args)...} {}
    +
    47
    +
    52template<typename Func>
    +
    +
    53struct forward_apply: private Func {
    +
    59 template<typename... Args>
    +
    +
    60 constexpr forward_apply(Args &&...args) noexcept(std::is_nothrow_constructible_v<Func, Args...>)
    +
    61 : Func{std::forward<Args>(args)...} {}
    -
    67
    -
    74 template<typename Type>
    -
    -
    75 constexpr decltype(auto) operator()(Type &&args) noexcept(noexcept(std::apply(std::declval<Func &>(), args))) {
    -
    76 return std::apply(static_cast<Func &>(*this), std::forward<Type>(args));
    -
    77 }
    +
    62
    +
    69 template<typename Type>
    +
    +
    70 constexpr decltype(auto) operator()(Type &&args) noexcept(noexcept(std::apply(std::declval<Func &>(), args))) {
    +
    71 return std::apply(static_cast<Func &>(*this), std::forward<Type>(args));
    +
    72 }
    -
    78
    -
    80 template<typename Type>
    -
    -
    81 constexpr decltype(auto) operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval<const Func &>(), args))) {
    -
    82 return std::apply(static_cast<const Func &>(*this), std::forward<Type>(args));
    -
    83 }
    +
    73
    +
    75 template<typename Type>
    +
    +
    76 constexpr decltype(auto) operator()(Type &&args) const noexcept(noexcept(std::apply(std::declval<const Func &>(), args))) {
    +
    77 return std::apply(static_cast<const Func &>(*this), std::forward<Type>(args));
    +
    78 }
    -
    84};
    +
    79};
    -
    85
    -
    90template<typename Func>
    - -
    92
    -
    93} // namespace entt
    -
    94
    -
    95#endif
    +
    80
    +
    85template<typename Func>
    + +
    87
    +
    88} // namespace entt
    +
    89
    +
    90#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr bool is_tuple_v
    Helper variable template.
    Definition tuple.hpp:35
    +
    constexpr bool is_tuple_v
    Helper variable template.
    Definition tuple.hpp:30
    forward_apply(Func) -> forward_apply< std::remove_reference_t< std::remove_cv_t< Func > > >
    Deduction guide.
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    constexpr decltype(auto) unwrap_tuple(Type &&value) noexcept
    Utility function to unwrap tuples of a single element.
    Definition tuple.hpp:45
    -
    Utility class to forward-and-apply tuple objects.
    Definition tuple.hpp:58
    -
    constexpr forward_apply(Args &&...args) noexcept(std::is_nothrow_constructible_v< Func, Args... >)
    Constructs a forward-and-apply object.
    Definition tuple.hpp:65
    -
    Provides the member constant value to true if a given type is a tuple, false otherwise.
    Definition tuple.hpp:28
    +
    constexpr decltype(auto) unwrap_tuple(Type &&value) noexcept
    Utility function to unwrap tuples of a single element.
    Definition tuple.hpp:40
    +
    Utility class to forward-and-apply tuple objects.
    Definition tuple.hpp:53
    +
    constexpr decltype(auto) operator()(Type &&args) noexcept(noexcept(std::apply(std::declval< Func & >(), args)))
    Forwards and applies the arguments with the underlying function.
    Definition tuple.hpp:70
    +
    constexpr forward_apply(Args &&...args) noexcept(std::is_nothrow_constructible_v< Func, Args... >)
    Constructs a forward-and-apply object.
    Definition tuple.hpp:60
    +
    Provides the member constant value to true if a given type is a tuple, false otherwise.
    Definition tuple.hpp:16
    +
    diff --git a/type__info_8hpp_source.html b/type__info_8hpp_source.html index 8df6701ce..7d8cf7a55 100644 --- a/type__info_8hpp_source.html +++ b/type__info_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/core/type_info.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    type_info.hpp
    @@ -95,11 +103,11 @@ $(function() { codefold.init(0); });
    10#include "hashed_string.hpp"
    11
    12namespace entt {
    -
    13
    +
    13
    15namespace internal {
    16
    17struct ENTT_API type_index final {
    -
    18 [[nodiscard]] static id_type next() noexcept {
    +
    18 [[nodiscard]] static id_type next() noexcept {
    19 static ENTT_MAYBE_ATOMIC(id_type) value{};
    20 return value++;
    21 }
    @@ -108,7 +116,7 @@ $(function() { codefold.init(0); });
    24template<typename Type>
    25[[nodiscard]] constexpr auto stripped_type_name() noexcept {
    26#if defined ENTT_PRETTY_FUNCTION
    -
    27 std::string_view pretty_function{static_cast<const char *>(ENTT_PRETTY_FUNCTION)};
    +
    27 const std::string_view pretty_function{static_cast<const char *>(ENTT_PRETTY_FUNCTION)};
    28 auto first = pretty_function.find_first_not_of(' ', pretty_function.find_first_of(ENTT_PRETTY_FUNCTION_PREFIX) + 1);
    29 auto value = pretty_function.substr(first, pretty_function.find_last_of(ENTT_PRETTY_FUNCTION_SUFFIX) - first);
    30 return value;
    @@ -130,14 +138,14 @@ $(function() { codefold.init(0); });
    46}
    47
    48template<typename Type, auto = stripped_type_name<Type>().find_first_of('.')>
    -
    49[[nodiscard]] constexpr id_type type_hash(int) noexcept {
    +
    49[[nodiscard]] constexpr id_type type_hash(int) noexcept {
    50 constexpr auto stripped = stripped_type_name<Type>();
    51 constexpr auto value = hashed_string::value(stripped.data(), stripped.size());
    52 return value;
    53}
    54
    55template<typename Type>
    -
    56[[nodiscard]] id_type type_hash(char) noexcept {
    +
    56[[nodiscard]] id_type type_hash(char) noexcept {
    57 static const auto value = [](const auto stripped) {
    58 return hashed_string::value(stripped.data(), stripped.size());
    59 }(stripped_type_name<Type>());
    @@ -145,65 +153,66 @@ $(function() { codefold.init(0); });
    61}
    62
    63} // namespace internal
    +
    65
    70template<typename Type, typename = void>
    -
    71struct ENTT_API type_index final {
    +
    71struct ENTT_API type_index final {
    -
    76 [[nodiscard]] static id_type value() noexcept {
    -
    77 static const id_type value = internal::type_index::next();
    -
    78 return value;
    +
    76 [[nodiscard]] static id_type value() noexcept {
    +
    77 static const id_type value = internal::type_index::next();
    +
    78 return value;
    79 }
    -
    80
    +
    80
    -
    82 [[nodiscard]] constexpr operator id_type() const noexcept {
    -
    83 return value();
    +
    82 [[nodiscard]] constexpr operator id_type() const noexcept {
    +
    83 return value();
    84 }
    85};
    -
    86
    +
    86
    91template<typename Type, typename = void>
    - +
    92struct type_hash final {
    97#if defined ENTT_PRETTY_FUNCTION
    -
    98 [[nodiscard]] static constexpr id_type value() noexcept {
    +
    98 [[nodiscard]] static constexpr id_type value() noexcept {
    99 return internal::type_hash<Type>(0);
    100#else
    -
    101 [[nodiscard]] static constexpr id_type value() noexcept {
    +
    101 [[nodiscard]] static constexpr id_type value() noexcept {
    103#endif
    104 }
    -
    105
    +
    105
    -
    107 [[nodiscard]] constexpr operator id_type() const noexcept {
    +
    107 [[nodiscard]] constexpr operator id_type() const noexcept {
    108 return value();
    109 }
    110};
    -
    111
    +
    111
    116template<typename Type, typename = void>
    - +
    117struct type_name final {
    122 [[nodiscard]] static constexpr std::string_view value() noexcept {
    123 return internal::type_name<Type>(0);
    124 }
    -
    125
    +
    125
    127 [[nodiscard]] constexpr operator std::string_view() const noexcept {
    -
    128 return value();
    +
    128 return value();
    129 }
    130};
    -
    131
    +
    131
    - +
    133struct type_info final {
    138 template<typename Type>
    139 // NOLINTBEGIN(modernize-use-transparent-functors)
    @@ -213,19 +222,19 @@ $(function() { codefold.init(0); });
    143 alias{type_name<std::remove_cv_t<std::remove_reference_t<Type>>>::value()} {}
    144 // NOLINTEND(modernize-use-transparent-functors)
    -
    145
    +
    145
    -
    150 [[nodiscard]] constexpr id_type index() const noexcept {
    +
    150 [[nodiscard]] constexpr id_type index() const noexcept {
    151 return seq;
    152 }
    -
    153
    +
    153
    -
    158 [[nodiscard]] constexpr id_type hash() const noexcept {
    +
    158 [[nodiscard]] constexpr id_type hash() const noexcept {
    159 return identifier;
    160 }
    -
    161
    +
    161
    166 [[nodiscard]] constexpr std::string_view name() const noexcept {
    167 return alias;
    @@ -233,73 +242,73 @@ $(function() { codefold.init(0); });
    169
    170private:
    -
    171 id_type seq;
    -
    172 id_type identifier;
    +
    171 id_type seq;
    +
    172 id_type identifier;
    173 std::string_view alias;
    174};
    -
    175
    +
    175
    -
    182[[nodiscard]] inline constexpr bool operator==(const type_info &lhs, const type_info &rhs) noexcept {
    -
    183 return lhs.hash() == rhs.hash();
    +
    182[[nodiscard]] constexpr bool operator==(const type_info &lhs, const type_info &rhs) noexcept {
    +
    183 return lhs.hash() == rhs.hash();
    184}
    -
    185
    +
    185
    -
    192[[nodiscard]] inline constexpr bool operator!=(const type_info &lhs, const type_info &rhs) noexcept {
    -
    193 return !(lhs == rhs);
    +
    192[[nodiscard]] constexpr bool operator!=(const type_info &lhs, const type_info &rhs) noexcept {
    +
    193 return !(lhs == rhs);
    194}
    -
    195
    +
    195
    -
    202[[nodiscard]] inline constexpr bool operator<(const type_info &lhs, const type_info &rhs) noexcept {
    -
    203 return lhs.index() < rhs.index();
    +
    202[[nodiscard]] constexpr bool operator<(const type_info &lhs, const type_info &rhs) noexcept {
    +
    203 return lhs.index() < rhs.index();
    204}
    -
    205
    +
    205
    -
    213[[nodiscard]] inline constexpr bool operator<=(const type_info &lhs, const type_info &rhs) noexcept {
    -
    214 return !(rhs < lhs);
    +
    213[[nodiscard]] constexpr bool operator<=(const type_info &lhs, const type_info &rhs) noexcept {
    +
    214 return !(rhs < lhs);
    215}
    -
    216
    +
    216
    -
    224[[nodiscard]] inline constexpr bool operator>(const type_info &lhs, const type_info &rhs) noexcept {
    -
    225 return rhs < lhs;
    +
    224[[nodiscard]] constexpr bool operator>(const type_info &lhs, const type_info &rhs) noexcept {
    +
    225 return rhs < lhs;
    226}
    -
    227
    +
    227
    -
    235[[nodiscard]] inline constexpr bool operator>=(const type_info &lhs, const type_info &rhs) noexcept {
    -
    236 return !(lhs < rhs);
    +
    235[[nodiscard]] constexpr bool operator>=(const type_info &lhs, const type_info &rhs) noexcept {
    +
    236 return !(lhs < rhs);
    237}
    -
    238
    +
    238
    250template<typename Type>
    - +
    251[[nodiscard]] const type_info &type_id() noexcept {
    252 if constexpr(std::is_same_v<Type, std::remove_cv_t<std::remove_reference_t<Type>>>) {
    -
    253 static type_info instance{std::in_place_type<Type>};
    +
    253 static const type_info instance{std::in_place_type<Type>};
    254 return instance;
    255 } else {
    - +
    257 }
    258}
    -
    259
    +
    259
    261template<typename Type>
    -
    -
    262[[nodiscard]] const type_info &type_id(Type &&) noexcept {
    - -
    264}
    +
    262// NOLINTNEXTLINE(cppcoreguidelines-missing-std-forward)
    +
    +
    263[[nodiscard]] const type_info &type_id(Type &&) noexcept {
    + +
    265}
    -
    265
    -
    266} // namespace entt
    -
    267
    -
    268#endif
    +
    266
    +
    267} // namespace entt
    +
    268
    +
    269#endif
    EnTT default namespace.
    Definition dense_map.hpp:22
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:14
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition fwd.hpp:29
    constexpr bool operator<=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator<(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    @@ -321,7 +330,8 @@ $(function() { codefold.init(0); });
    +
    diff --git a/version_8h_source.html b/version_8h_source.html index ce0c1fe90..71187ad5e 100644 --- a/version_8h_source.html +++ b/version_8h_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/config/version.h Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    version.h
    @@ -88,23 +96,24 @@ $(function() { codefold.init(0); });
    3
    4#include "macro.h"
    5
    -
    6// NOLINTBEGIN(cppcoreguidelines-macro-usage)
    +
    6// NOLINTBEGIN(cppcoreguidelines-macro-*,modernize-macro-*)
    7
    8#define ENTT_VERSION_MAJOR 3
    -
    9#define ENTT_VERSION_MINOR 14
    +
    9#define ENTT_VERSION_MINOR 15
    10#define ENTT_VERSION_PATCH 0
    11
    12#define ENTT_VERSION \
    13 ENTT_XSTR(ENTT_VERSION_MAJOR) \
    14 "." ENTT_XSTR(ENTT_VERSION_MINOR) "." ENTT_XSTR(ENTT_VERSION_PATCH)
    15
    -
    16// NOLINTEND(cppcoreguidelines-macro-usage)
    +
    16// NOLINTEND(cppcoreguidelines-macro-*,modernize-macro-*)
    17
    18#endif
    +
    diff --git a/view_8hpp_source.html b/view_8hpp_source.html index e04c3897d..0a37e8378 100644 --- a/view_8hpp_source.html +++ b/view_8hpp_source.html @@ -3,13 +3,15 @@ - + EnTT: src/entt/entity/view.hpp Source File + + @@ -23,7 +25,7 @@ -
    EnTT 3.14.0 +
    EnTT 3.15.0
    @@ -31,18 +33,23 @@
    - + + @@ -79,6 +86,7 @@ $(function() { codefold.init(0); });
    +
    view.hpp
    @@ -99,920 +107,957 @@ $(function() { codefold.init(0); });
    14#include "fwd.hpp"
    15
    16namespace entt {
    -
    17
    +
    17
    19namespace internal {
    20
    -
    21template<typename Type>
    -
    22const Type *view_placeholder() {
    -
    23 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    -
    24 static const Type placeholder{};
    -
    25 return &placeholder;
    -
    26}
    -
    27
    -
    28template<typename It, typename Entity>
    -
    29[[nodiscard]] bool all_of(It first, const It last, const Entity entt) noexcept {
    -
    30 for(; (first != last) && (*first)->contains(entt); ++first) {}
    -
    31 return first == last;
    -
    32}
    -
    33
    -
    34template<typename It, typename Entity>
    -
    35[[nodiscard]] bool none_of(It first, const It last, const Entity entt) noexcept {
    -
    36 for(; (first != last) && !(*first)->contains(entt); ++first) {}
    -
    37 return first == last;
    -
    38}
    -
    39
    -
    40template<typename It>
    -
    41[[nodiscard]] bool fully_initialized(It first, const It last) noexcept {
    -
    42 for(const auto *placeholder = view_placeholder<std::remove_const_t<std::remove_pointer_t<typename std::iterator_traits<It>::value_type>>>(); (first != last) && *first != placeholder; ++first) {}
    -
    43 return first == last;
    -
    44}
    -
    45
    -
    46template<typename Result, typename View, typename Other, std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs>
    -
    47[[nodiscard]] Result view_pack(const View &view, const Other &other, std::index_sequence<GLhs...>, std::index_sequence<ELhs...>, std::index_sequence<GRhs...>, std::index_sequence<ERhs...>) {
    -
    48 Result elem{};
    -
    49 // friend-initialization, avoid multiple calls to refresh
    -
    50 elem.pools = {view.template storage<GLhs>()..., other.template storage<GRhs>()...};
    -
    51 elem.filter = {view.template storage<sizeof...(GLhs) + ELhs>()..., other.template storage<sizeof...(GRhs) + ERhs>()...};
    -
    52 elem.refresh();
    -
    53 return elem;
    -
    54}
    -
    55
    -
    56template<typename Type, std::size_t Get, std::size_t Exclude>
    -
    57class view_iterator final {
    -
    58 template<typename, typename...>
    -
    59 friend class extended_view_iterator;
    +
    21template<typename... Type>
    +
    22// NOLINTNEXTLINE(misc-redundant-expression)
    +
    23static constexpr bool tombstone_check_v = ((sizeof...(Type) == 1u) && ... && (Type::storage_policy == deletion_policy::in_place));
    +
    24
    +
    25template<typename Type>
    +
    26const Type *view_placeholder() {
    +
    27 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    +
    28 static const Type placeholder{};
    +
    29 return &placeholder;
    +
    30}
    +
    31
    +
    32template<typename It, typename Entity>
    +
    33[[nodiscard]] bool all_of(It first, const It last, const Entity entt) noexcept {
    +
    34 for(; (first != last) && (*first)->contains(entt); ++first) {}
    +
    35 return first == last;
    +
    36}
    +
    37
    +
    38template<typename It, typename Entity>
    +
    39[[nodiscard]] bool none_of(It first, const It last, const Entity entt) noexcept {
    +
    40 for(; (first != last) && !(*first)->contains(entt); ++first) {}
    +
    41 return first == last;
    +
    42}
    +
    43
    +
    44template<typename It>
    +
    45[[nodiscard]] bool fully_initialized(It first, const It last, const std::remove_pointer_t<typename std::iterator_traits<It>::value_type> *placeholder) noexcept {
    +
    46 for(; (first != last) && *first != placeholder; ++first) {}
    +
    47 return first == last;
    +
    48}
    +
    49
    +
    50template<typename Result, typename View, typename Other, std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs>
    +
    51[[nodiscard]] Result view_pack(const View &view, const Other &other, std::index_sequence<GLhs...>, std::index_sequence<ELhs...>, std::index_sequence<GRhs...>, std::index_sequence<ERhs...>) {
    +
    52 Result elem{};
    +
    53 // friend-initialization, avoid multiple calls to refresh
    +
    54 elem.pools = {view.template storage<GLhs>()..., other.template storage<GRhs>()...};
    +
    55 auto filter_or_placeholder = [placeholder = elem.placeholder](auto *value) { return (value == nullptr) ? placeholder : value; };
    +
    56 elem.filter = {filter_or_placeholder(view.template storage<sizeof...(GLhs) + ELhs>())..., filter_or_placeholder(other.template storage<sizeof...(GRhs) + ERhs>())...};
    +
    57 elem.refresh();
    +
    58 return elem;
    +
    59}
    60
    -
    61 using iterator_type = typename Type::const_iterator;
    -
    62 using iterator_traits = std::iterator_traits<iterator_type>;
    -
    63
    -
    64 [[nodiscard]] bool valid(const typename iterator_traits::value_type entt) const noexcept {
    -
    65 return ((Get != 1u) || (entt != tombstone))
    -
    66 && internal::all_of(pools.begin(), pools.begin() + index, entt) && internal::all_of(pools.begin() + index + 1, pools.end(), entt)
    -
    67 && internal::none_of(filter.begin(), filter.end(), entt);
    -
    68 }
    -
    69
    -
    70 void seek_next() {
    -
    71 for(constexpr iterator_type sentinel{}; it != sentinel && !valid(*it); ++it) {}
    -
    72 }
    -
    73
    -
    74public:
    -
    75 using value_type = typename iterator_traits::value_type;
    -
    76 using pointer = typename iterator_traits::pointer;
    -
    77 using reference = typename iterator_traits::reference;
    -
    78 using difference_type = typename iterator_traits::difference_type;
    -
    79 using iterator_category = std::forward_iterator_tag;
    -
    80
    -
    81 constexpr view_iterator() noexcept
    -
    82 : it{},
    -
    83 pools{},
    -
    84 filter{},
    -
    85 index{} {}
    -
    86
    -
    87 view_iterator(iterator_type first, std::array<const Type *, Get> value, std::array<const Type *, Exclude> excl, const std::size_t idx) noexcept
    -
    88 : it{first},
    -
    89 pools{value},
    -
    90 filter{excl},
    -
    91 index{idx} {
    -
    92 seek_next();
    -
    93 }
    -
    94
    -
    95 view_iterator &operator++() noexcept {
    -
    96 ++it;
    -
    97 seek_next();
    -
    98 return *this;
    +
    61template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
    +
    62class view_iterator final {
    +
    63 template<typename, typename...>
    +
    64 friend class extended_view_iterator;
    +
    65
    +
    66 using iterator_type = typename Type::const_iterator;
    +
    67 using iterator_traits = std::iterator_traits<iterator_type>;
    +
    68
    +
    69 [[nodiscard]] bool valid(const typename iterator_traits::value_type entt) const noexcept {
    +
    70 return (!Checked || (entt != tombstone))
    +
    71 && ((Get == 1u) || (internal::all_of(pools.begin(), pools.begin() + index, entt) && internal::all_of(pools.begin() + index + 1, pools.end(), entt)))
    +
    72 && ((Exclude == 0u) || internal::none_of(filter.begin(), filter.end(), entt));
    +
    73 }
    +
    74
    +
    75 void seek_next() {
    +
    76 for(constexpr iterator_type sentinel{}; it != sentinel && !valid(*it); ++it) {}
    +
    77 }
    +
    78
    +
    79public:
    +
    80 using value_type = typename iterator_traits::value_type;
    +
    81 using pointer = typename iterator_traits::pointer;
    +
    82 using reference = typename iterator_traits::reference;
    +
    83 using difference_type = typename iterator_traits::difference_type;
    +
    84 using iterator_category = std::forward_iterator_tag;
    +
    85
    +
    86 constexpr view_iterator() noexcept
    +
    87 : it{},
    +
    88 pools{},
    +
    89 filter{},
    +
    90 index{} {}
    +
    91
    +
    92 view_iterator(iterator_type first, std::array<const Type *, Get> value, std::array<const Type *, Exclude> excl, const std::size_t idx) noexcept
    +
    93 : it{first},
    +
    94 pools{value},
    +
    95 filter{excl},
    +
    96 index{static_cast<difference_type>(idx)} {
    +
    97 ENTT_ASSERT((Get != 1u) || (Exclude != 0u) || pools[0u]->policy() == deletion_policy::in_place, "Non in-place storage view iterator");
    +
    98 seek_next();
    99 }
    100
    -
    101 view_iterator operator++(int) noexcept {
    -
    102 view_iterator orig = *this;
    -
    103 return ++(*this), orig;
    -
    104 }
    -
    105
    -
    106 [[nodiscard]] pointer operator->() const noexcept {
    -
    107 return &*it;
    -
    108 }
    -
    109
    -
    110 [[nodiscard]] reference operator*() const noexcept {
    -
    111 return *operator->();
    -
    112 }
    -
    113
    -
    114 template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    -
    115 friend constexpr bool operator==(const view_iterator<LhsType, LhsArgs...> &, const view_iterator<RhsType, RhsArgs...> &) noexcept;
    -
    116
    -
    117private:
    -
    118 iterator_type it;
    -
    119 std::array<const Type *, Get> pools;
    -
    120 std::array<const Type *, Exclude> filter;
    -
    121 std::size_t index;
    -
    122};
    -
    123
    -
    124template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    -
    125[[nodiscard]] constexpr bool operator==(const view_iterator<LhsType, LhsArgs...> &lhs, const view_iterator<RhsType, RhsArgs...> &rhs) noexcept {
    -
    126 return lhs.it == rhs.it;
    -
    127}
    -
    128
    -
    129template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    -
    130[[nodiscard]] constexpr bool operator!=(const view_iterator<LhsType, LhsArgs...> &lhs, const view_iterator<RhsType, RhsArgs...> &rhs) noexcept {
    -
    131 return !(lhs == rhs);
    -
    132}
    -
    133
    -
    134template<typename It, typename... Get>
    -
    135class extended_view_iterator final {
    -
    136 template<std::size_t... Index>
    -
    137 [[nodiscard]] auto dereference(std::index_sequence<Index...>) const noexcept {
    -
    138 return std::tuple_cat(std::make_tuple(*it), static_cast<Get *>(const_cast<constness_as_t<typename Get::base_type, Get> *>(std::get<Index>(it.pools)))->get_as_tuple(*it)...);
    -
    139 }
    -
    140
    -
    141public:
    -
    142 using iterator_type = It;
    -
    143 using value_type = decltype(std::tuple_cat(std::make_tuple(*std::declval<It>()), std::declval<Get>().get_as_tuple({})...));
    -
    144 using pointer = input_iterator_pointer<value_type>;
    -
    145 using reference = value_type;
    -
    146 using difference_type = std::ptrdiff_t;
    -
    147 using iterator_category = std::input_iterator_tag;
    -
    148 using iterator_concept = std::forward_iterator_tag;
    -
    149
    -
    150 constexpr extended_view_iterator()
    -
    151 : it{} {}
    -
    152
    -
    153 extended_view_iterator(iterator_type from)
    -
    154 : it{from} {}
    +
    101 view_iterator &operator++() noexcept {
    +
    102 ++it;
    +
    103 seek_next();
    +
    104 return *this;
    +
    105 }
    +
    106
    +
    107 view_iterator operator++(int) noexcept {
    +
    108 const view_iterator orig = *this;
    +
    109 return ++(*this), orig;
    +
    110 }
    +
    111
    +
    112 [[nodiscard]] pointer operator->() const noexcept {
    +
    113 return &*it;
    +
    114 }
    +
    115
    +
    116 [[nodiscard]] reference operator*() const noexcept {
    +
    117 return *operator->();
    +
    118 }
    +
    119
    +
    120 template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    +
    121 friend constexpr bool operator==(const view_iterator<LhsType, LhsArgs...> &, const view_iterator<RhsType, RhsArgs...> &) noexcept;
    +
    122
    +
    123private:
    +
    124 iterator_type it;
    +
    125 std::array<const Type *, Get> pools;
    +
    126 std::array<const Type *, Exclude> filter;
    +
    127 difference_type index;
    +
    128};
    +
    129
    +
    130template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    +
    131[[nodiscard]] constexpr bool operator==(const view_iterator<LhsType, LhsArgs...> &lhs, const view_iterator<RhsType, RhsArgs...> &rhs) noexcept {
    +
    132 return lhs.it == rhs.it;
    +
    133}
    +
    134
    +
    135template<typename LhsType, auto... LhsArgs, typename RhsType, auto... RhsArgs>
    +
    136[[nodiscard]] constexpr bool operator!=(const view_iterator<LhsType, LhsArgs...> &lhs, const view_iterator<RhsType, RhsArgs...> &rhs) noexcept {
    +
    137 return !(lhs == rhs);
    +
    138}
    +
    139
    +
    140template<typename It, typename... Get>
    +
    141class extended_view_iterator final {
    +
    142 template<std::size_t... Index>
    +
    143 [[nodiscard]] auto dereference(std::index_sequence<Index...>) const noexcept {
    +
    144 return std::tuple_cat(std::make_tuple(*it), static_cast<Get *>(const_cast<constness_as_t<typename Get::base_type, Get> *>(std::get<Index>(it.pools)))->get_as_tuple(*it)...);
    +
    145 }
    +
    146
    +
    147public:
    +
    148 using iterator_type = It;
    +
    149 using value_type = decltype(std::tuple_cat(std::make_tuple(*std::declval<It>()), std::declval<Get>().get_as_tuple({})...));
    +
    150 using pointer = input_iterator_pointer<value_type>;
    +
    151 using reference = value_type;
    +
    152 using difference_type = std::ptrdiff_t;
    +
    153 using iterator_category = std::input_iterator_tag;
    +
    154 using iterator_concept = std::forward_iterator_tag;
    155
    -
    156 extended_view_iterator &operator++() noexcept {
    -
    157 return ++it, *this;
    -
    158 }
    -
    159
    -
    160 extended_view_iterator operator++(int) noexcept {
    -
    161 extended_view_iterator orig = *this;
    -
    162 return ++(*this), orig;
    -
    163 }
    -
    164
    -
    165 [[nodiscard]] reference operator*() const noexcept {
    -
    166 return dereference(std::index_sequence_for<Get...>{});
    -
    167 }
    -
    168
    -
    169 [[nodiscard]] pointer operator->() const noexcept {
    -
    170 return operator*();
    -
    171 }
    -
    172
    -
    173 [[nodiscard]] constexpr iterator_type base() const noexcept {
    -
    174 return it;
    -
    175 }
    -
    176
    -
    177 template<typename... Lhs, typename... Rhs>
    -
    178 friend bool constexpr operator==(const extended_view_iterator<Lhs...> &, const extended_view_iterator<Rhs...> &) noexcept;
    -
    179
    -
    180private:
    -
    181 It it;
    -
    182};
    -
    183
    -
    184template<typename... Lhs, typename... Rhs>
    -
    185[[nodiscard]] constexpr bool operator==(const extended_view_iterator<Lhs...> &lhs, const extended_view_iterator<Rhs...> &rhs) noexcept {
    -
    186 return lhs.it == rhs.it;
    -
    187}
    -
    188
    -
    189template<typename... Lhs, typename... Rhs>
    -
    190[[nodiscard]] constexpr bool operator!=(const extended_view_iterator<Lhs...> &lhs, const extended_view_iterator<Rhs...> &rhs) noexcept {
    -
    191 return !(lhs == rhs);
    -
    192}
    -
    193
    -
    194} // namespace internal
    -
    215template<typename, typename, typename>
    -
    216class basic_view;
    -
    217
    -
    225template<typename Type, std::size_t Get, std::size_t Exclude>
    -
    - -
    227 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    -
    228
    -
    229 template<typename Return, typename View, typename Other, std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs>
    -
    230 friend Return internal::view_pack(const View &, const Other &, std::index_sequence<GLhs...>, std::index_sequence<ELhs...>, std::index_sequence<GRhs...>, std::index_sequence<ERhs...>);
    -
    231
    -
    232 [[nodiscard]] auto offset() const noexcept {
    -
    233 ENTT_ASSERT(index != Get, "Invalid view");
    -
    234 return (pools[index]->policy() == deletion_policy::swap_only) ? pools[index]->free_list() : pools[index]->size();
    -
    235 }
    -
    236
    -
    237 void unchecked_refresh() noexcept {
    -
    238 index = 0u;
    -
    239
    -
    240 if constexpr(Get > 1u) {
    -
    241 for(size_type pos{1u}; pos < Get; ++pos) {
    -
    242 if(pools[pos]->size() < pools[index]->size()) {
    -
    243 index = pos;
    -
    244 }
    -
    245 }
    -
    246 }
    -
    247 }
    -
    248
    -
    249protected:
    -
    251 basic_common_view() noexcept {
    -
    252 for(size_type pos{}; pos < Exclude; ++pos) {
    -
    253 filter[pos] = internal::view_placeholder<Type>();
    -
    254 }
    -
    255 }
    -
    256
    -
    257 basic_common_view(std::array<const Type *, Get> value, std::array<const Type *, Exclude> excl) noexcept
    -
    258 : pools{value},
    -
    259 filter{excl},
    -
    260 index{Get} {
    -
    261 unchecked_refresh();
    +
    156 constexpr extended_view_iterator()
    +
    157 : it{} {}
    +
    158
    +
    159 extended_view_iterator(iterator_type from)
    +
    160 : it{from} {}
    +
    161
    +
    162 extended_view_iterator &operator++() noexcept {
    +
    163 return ++it, *this;
    +
    164 }
    +
    165
    +
    166 extended_view_iterator operator++(int) noexcept {
    +
    167 const extended_view_iterator orig = *this;
    +
    168 return ++(*this), orig;
    +
    169 }
    +
    170
    +
    171 [[nodiscard]] reference operator*() const noexcept {
    +
    172 return dereference(std::index_sequence_for<Get...>{});
    +
    173 }
    +
    174
    +
    175 [[nodiscard]] pointer operator->() const noexcept {
    +
    176 return operator*();
    +
    177 }
    +
    178
    +
    179 [[nodiscard]] constexpr iterator_type base() const noexcept {
    +
    180 return it;
    +
    181 }
    +
    182
    +
    183 template<typename... Lhs, typename... Rhs>
    +
    184 friend bool constexpr operator==(const extended_view_iterator<Lhs...> &, const extended_view_iterator<Rhs...> &) noexcept;
    +
    185
    +
    186private:
    +
    187 It it;
    +
    188};
    +
    189
    +
    190template<typename... Lhs, typename... Rhs>
    +
    191[[nodiscard]] constexpr bool operator==(const extended_view_iterator<Lhs...> &lhs, const extended_view_iterator<Rhs...> &rhs) noexcept {
    +
    192 return lhs.it == rhs.it;
    +
    193}
    +
    194
    +
    195template<typename... Lhs, typename... Rhs>
    +
    196[[nodiscard]] constexpr bool operator!=(const extended_view_iterator<Lhs...> &lhs, const extended_view_iterator<Rhs...> &rhs) noexcept {
    +
    197 return !(lhs == rhs);
    +
    198}
    +
    199
    +
    200} // namespace internal
    +
    202
    +
    221template<typename, typename, typename>
    +
    222class basic_view;
    +
    223
    +
    232template<typename Type, bool Checked, std::size_t Get, std::size_t Exclude>
    +
    + +
    234 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    +
    235
    +
    236 template<typename Return, typename View, typename Other, std::size_t... GLhs, std::size_t... ELhs, std::size_t... GRhs, std::size_t... ERhs>
    +
    237 friend Return internal::view_pack(const View &, const Other &, std::index_sequence<GLhs...>, std::index_sequence<ELhs...>, std::index_sequence<GRhs...>, std::index_sequence<ERhs...>);
    +
    238
    +
    239 [[nodiscard]] auto offset() const noexcept {
    +
    240 ENTT_ASSERT(index != Get, "Invalid view");
    +
    241 return (pools[index]->policy() == deletion_policy::swap_only) ? pools[index]->free_list() : pools[index]->size();
    +
    242 }
    +
    243
    +
    244 void unchecked_refresh() noexcept {
    +
    245 index = 0u;
    +
    246
    +
    247 if constexpr(Get > 1u) {
    +
    248 for(size_type pos{1u}; pos < Get; ++pos) {
    +
    249 if(pools[pos]->size() < pools[index]->size()) {
    +
    250 index = pos;
    +
    251 }
    +
    252 }
    +
    253 }
    +
    254 }
    +
    255
    +
    256protected:
    +
    258 basic_common_view() noexcept {
    +
    259 for(size_type pos{}, last = filter.size(); pos < last; ++pos) {
    +
    260 filter[pos] = placeholder;
    +
    261 }
    262 }
    263
    -
    264 [[nodiscard]] const Type *pool_at(const std::size_t pos) const noexcept {
    -
    265 return pools[pos];
    -
    266 }
    -
    267
    -
    268 [[nodiscard]] const Type *storage(const std::size_t pos) const noexcept {
    -
    269 if(pos < Get) {
    -
    270 return pools[pos];
    -
    271 }
    -
    272
    -
    273 if(const auto idx = pos - Get; filter[idx] != internal::view_placeholder<Type>()) {
    -
    274 return filter[idx];
    -
    275 }
    -
    276
    -
    277 return nullptr;
    -
    278 }
    -
    279
    -
    280 void storage(const std::size_t pos, const Type *elem) noexcept {
    -
    281 ENTT_ASSERT(elem != nullptr, "Unexpected element");
    -
    282
    -
    283 if(pos < Get) {
    -
    284 pools[pos] = elem;
    -
    285 refresh();
    -
    286 } else {
    -
    287 filter[pos - Get] = elem;
    -
    288 }
    -
    289 }
    -
    290
    -
    291 [[nodiscard]] bool none_of(const typename Type::entity_type entt) const noexcept {
    -
    292 return internal::none_of(filter.begin(), filter.end(), entt);
    -
    293 }
    -
    294
    -
    295 void use(const std::size_t pos) noexcept {
    -
    296 index = (index != Get) ? pos : Get;
    -
    297 }
    -
    300public:
    -
    302 using common_type = Type;
    -
    304 using entity_type = typename Type::entity_type;
    -
    306 using size_type = std::size_t;
    -
    308 using iterator = internal::view_iterator<common_type, Get, Exclude>;
    -
    309
    -
    - -
    312 size_type pos = static_cast<size_type>(index != Get) * Get;
    -
    313 for(; pos < Get && pools[pos] != nullptr; ++pos) {}
    -
    314
    -
    315 if(pos == Get) {
    -
    316 unchecked_refresh();
    -
    317 }
    -
    318 }
    +
    264 basic_common_view(std::array<const Type *, Get> value, std::array<const Type *, Exclude> excl) noexcept
    +
    265 : pools{value},
    +
    266 filter{excl},
    +
    267 index{Get} {
    +
    268 unchecked_refresh();
    +
    269 }
    +
    270
    +
    271 [[nodiscard]] const Type *pool_at(const std::size_t pos) const noexcept {
    +
    272 return pools[pos];
    +
    273 }
    +
    274
    +
    275 void pool_at(const std::size_t pos, const Type *elem) noexcept {
    +
    276 ENTT_ASSERT(elem != nullptr, "Unexpected element");
    +
    277 pools[pos] = elem;
    +
    278 refresh();
    +
    279 }
    +
    280
    +
    281 [[nodiscard]] const Type *filter_at(const std::size_t pos) const noexcept {
    +
    282 return (filter[pos] == placeholder) ? nullptr : filter[pos];
    +
    283 }
    +
    284
    +
    285 void filter_at(const std::size_t pos, const Type *elem) noexcept {
    +
    286 ENTT_ASSERT(elem != nullptr, "Unexpected element");
    +
    287 filter[pos] = elem;
    +
    288 }
    +
    289
    +
    290 [[nodiscard]] bool none_of(const typename Type::entity_type entt) const noexcept {
    +
    291 return internal::none_of(filter.begin(), filter.end(), entt);
    +
    292 }
    +
    293
    +
    294 void use(const std::size_t pos) noexcept {
    +
    295 index = (index != Get) ? pos : Get;
    +
    296 }
    +
    298
    +
    299public:
    +
    301 using common_type = Type;
    +
    303 using entity_type = typename Type::entity_type;
    +
    305 using size_type = std::size_t;
    +
    307 using difference_type = std::ptrdiff_t;
    +
    309 using iterator = internal::view_iterator<common_type, Checked, Get, Exclude>;
    +
    310
    +
    +
    312 void refresh() noexcept {
    +
    313 size_type pos = static_cast<size_type>(index != Get) * Get;
    +
    314 for(; pos < Get && pools[pos] != nullptr; ++pos) {}
    +
    315
    +
    316 if(pos == Get) {
    +
    317 unchecked_refresh();
    +
    318 }
    +
    319 }
    -
    319
    -
    - -
    325 return (index != Get) ? pools[index] : nullptr;
    -
    326 }
    +
    320
    +
    +
    325 [[nodiscard]] const common_type *handle() const noexcept {
    +
    326 return (index != Get) ? pools[index] : nullptr;
    +
    327 }
    -
    327
    -
    - -
    333 return (index != Get) ? offset() : size_type{};
    -
    334 }
    +
    328
    +
    +
    333 [[nodiscard]] size_type size_hint() const noexcept {
    +
    334 return (index != Get) ? offset() : size_type{};
    +
    335 }
    -
    335
    -
    - -
    344 return (index != Get) ? iterator{pools[index]->end() - static_cast<typename iterator::difference_type>(offset()), pools, filter, index} : iterator{};
    -
    345 }
    +
    336
    +
    +
    344 [[nodiscard]] iterator begin() const noexcept {
    +
    345 return (index != Get) ? iterator{pools[index]->end() - static_cast<difference_type>(offset()), pools, filter, index} : iterator{};
    +
    346 }
    -
    346
    -
    - -
    352 return (index != Get) ? iterator{pools[index]->end(), pools, filter, index} : iterator{};
    -
    353 }
    +
    347
    +
    +
    352 [[nodiscard]] iterator end() const noexcept {
    +
    353 return (index != Get) ? iterator{pools[index]->end(), pools, filter, index} : iterator{};
    +
    354 }
    -
    354
    -
    - -
    361 const auto it = begin();
    -
    362 return it != end() ? *it : null;
    -
    363 }
    +
    355
    +
    +
    361 [[nodiscard]] entity_type front() const noexcept {
    +
    362 const auto it = begin();
    +
    363 return it != end() ? *it : null;
    +
    364 }
    -
    364
    -
    - -
    371 if(index != Get) {
    -
    372 auto it = pools[index]->rbegin();
    -
    373 const auto last = it + static_cast<typename iterator::difference_type>(offset());
    -
    374 for(; it != last && !contains(*it); ++it) {}
    -
    375 return it == last ? null : *it;
    -
    376 }
    -
    377
    -
    378 return null;
    -
    379 }
    +
    365
    +
    +
    371 [[nodiscard]] entity_type back() const noexcept {
    +
    372 if(index != Get) {
    +
    373 auto it = pools[index]->rbegin();
    +
    374 const auto last = it + static_cast<difference_type>(offset());
    +
    375 for(const auto idx = static_cast<difference_type>(index); it != last && !(internal::all_of(pools.begin(), pools.begin() + idx, *it) && internal::all_of(pools.begin() + idx + 1, pools.end(), *it) && internal::none_of(filter.begin(), filter.end(), *it)); ++it) {}
    +
    376 return it == last ? null : *it;
    +
    377 }
    +
    378
    +
    379 return null;
    +
    380 }
    -
    380
    -
    -
    387 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    -
    388 return contains(entt) ? iterator{pools[index]->find(entt), pools, filter, index} : end();
    -
    389 }
    +
    381
    +
    +
    388 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    +
    389 return contains(entt) ? iterator{pools[index]->find(entt), pools, filter, index} : end();
    +
    390 }
    -
    390
    -
    -
    395 [[nodiscard]] explicit operator bool() const noexcept {
    -
    396 return (index != Get) && internal::fully_initialized(filter.begin(), filter.end());
    -
    397 }
    +
    391
    +
    +
    396 [[nodiscard]] explicit operator bool() const noexcept {
    +
    397 return (index != Get) && internal::fully_initialized(filter.begin(), filter.end(), placeholder);
    +
    398 }
    -
    398
    -
    -
    404 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    -
    405 return (index != Get)
    -
    406 && internal::all_of(pools.begin(), pools.end(), entt)
    -
    407 && internal::none_of(filter.begin(), filter.end(), entt)
    -
    408 && pools[index]->index(entt) < offset();
    -
    409 }
    +
    399
    +
    +
    405 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    +
    406 return (index != Get)
    +
    407 && internal::all_of(pools.begin(), pools.end(), entt)
    +
    408 && internal::none_of(filter.begin(), filter.end(), entt)
    +
    409 && pools[index]->index(entt) < offset();
    +
    410 }
    -
    410
    -
    411private:
    -
    412 std::array<const common_type *, Get> pools{};
    -
    413 std::array<const common_type *, Exclude> filter{};
    -
    414 size_type index{Get};
    -
    415};
    +
    411
    +
    412private:
    +
    413 std::array<const common_type *, Get> pools{};
    +
    414 std::array<const common_type *, Exclude> filter{};
    +
    415 const common_type *placeholder{internal::view_placeholder<common_type>()};
    +
    416 size_type index{Get};
    +
    417};
    -
    416
    -
    429template<typename... Get, typename... Exclude>
    -
    -
    430class basic_view<get_t<Get...>, exclude_t<Exclude...>, std::enable_if_t<(sizeof...(Get) != 0u)>>
    -
    431 : public basic_common_view<std::common_type_t<typename Get::base_type..., typename Exclude::base_type...>, sizeof...(Get), sizeof...(Exclude)> {
    -
    432 using base_type = basic_common_view<std::common_type_t<typename Get::base_type..., typename Exclude::base_type...>, sizeof...(Get), sizeof...(Exclude)>;
    -
    433
    -
    434 template<typename Type>
    -
    435 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Get::element_type..., typename Exclude::element_type...>>;
    -
    436
    -
    437 template<std::size_t... Index>
    -
    438 [[nodiscard]] auto get(const typename base_type::entity_type entt, std::index_sequence<Index...>) const noexcept {
    -
    439 return std::tuple_cat(storage<Index>()->get_as_tuple(entt)...);
    -
    440 }
    +
    418
    +
    431template<typename... Get, typename... Exclude>
    +
    +
    432class basic_view<get_t<Get...>, exclude_t<Exclude...>, std::enable_if_t<(sizeof...(Get) != 0u)>>
    +
    433 : public basic_common_view<std::common_type_t<typename Get::base_type...>, internal::tombstone_check_v<Get...>, sizeof...(Get), sizeof...(Exclude)> {
    +
    434 using base_type = basic_common_view<std::common_type_t<typename Get::base_type...>, internal::tombstone_check_v<Get...>, sizeof...(Get), sizeof...(Exclude)>;
    +
    435
    +
    436 template<std::size_t Index>
    +
    437 using element_at = type_list_element_t<Index, type_list<Get..., Exclude...>>;
    +
    438
    +
    439 template<typename Type>
    +
    440 static constexpr std::size_t index_of = type_list_index_v<std::remove_const_t<Type>, type_list<typename Get::element_type..., typename Exclude::element_type...>>;
    441
    -
    442 template<std::size_t Curr, std::size_t Other, typename... Args>
    -
    443 [[nodiscard]] auto dispatch_get(const std::tuple<typename base_type::entity_type, Args...> &curr) const {
    -
    444 if constexpr(Curr == Other) {
    -
    445 return std::forward_as_tuple(std::get<Args>(curr)...);
    -
    446 } else {
    -
    447 return storage<Other>()->get_as_tuple(std::get<0>(curr));
    -
    448 }
    -
    449 }
    -
    450
    -
    451 template<std::size_t Curr, typename Func, std::size_t... Index>
    -
    452 void each(Func &func, std::index_sequence<Index...>) const {
    -
    453 static constexpr bool tombstone_check_required = ((sizeof...(Get) == 1u) && ... && (Get::storage_policy == deletion_policy::in_place));
    -
    454
    -
    455 for(const auto curr: storage<Curr>()->each()) {
    -
    456 if(const auto entt = std::get<0>(curr); (!tombstone_check_required || (entt != tombstone)) && ((Curr == Index || base_type::pool_at(Index)->contains(entt)) && ...) && base_type::none_of(entt)) {
    -
    457 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    -
    458 std::apply(func, std::tuple_cat(std::make_tuple(entt), dispatch_get<Curr, Index>(curr)...));
    -
    459 } else {
    -
    460 std::apply(func, std::tuple_cat(dispatch_get<Curr, Index>(curr)...));
    -
    461 }
    -
    462 }
    -
    463 }
    -
    464 }
    -
    465
    -
    466 template<typename Func, std::size_t... Index>
    -
    467 void pick_and_each(Func &func, std::index_sequence<Index...> seq) const {
    -
    468 if(const auto *view = base_type::handle(); view != nullptr) {
    -
    469 ((view == base_type::pool_at(Index) ? each<Index>(func, seq) : void()), ...);
    -
    470 }
    -
    471 }
    -
    472
    -
    473public:
    - - - - -
    483 using iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>;
    -
    484
    -
    - -
    487 : base_type{} {}
    +
    442 template<std::size_t... Index>
    +
    443 [[nodiscard]] auto get(const typename base_type::entity_type entt, std::index_sequence<Index...>) const noexcept {
    +
    444 return std::tuple_cat(storage<Index>()->get_as_tuple(entt)...);
    +
    445 }
    +
    446
    +
    447 template<std::size_t Curr, std::size_t Other, typename... Args>
    +
    448 [[nodiscard]] auto dispatch_get(const std::tuple<typename base_type::entity_type, Args...> &curr) const {
    +
    449 if constexpr(Curr == Other) {
    +
    450 return std::forward_as_tuple(std::get<Args>(curr)...);
    +
    451 } else {
    +
    452 return storage<Other>()->get_as_tuple(std::get<0>(curr));
    +
    453 }
    +
    454 }
    +
    455
    +
    456 template<std::size_t Curr, typename Func, std::size_t... Index>
    +
    457 void each(Func &func, std::index_sequence<Index...>) const {
    +
    458 for(const auto curr: storage<Curr>()->each()) {
    +
    459 if(const auto entt = std::get<0>(curr); (!internal::tombstone_check_v<Get...> || (entt != tombstone)) && ((Curr == Index || base_type::pool_at(Index)->contains(entt)) && ...) && base_type::none_of(entt)) {
    +
    460 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    +
    461 std::apply(func, std::tuple_cat(std::make_tuple(entt), dispatch_get<Curr, Index>(curr)...));
    +
    462 } else {
    +
    463 std::apply(func, std::tuple_cat(dispatch_get<Curr, Index>(curr)...));
    +
    464 }
    +
    465 }
    +
    466 }
    +
    467 }
    +
    468
    +
    469 template<typename Func, std::size_t... Index>
    +
    470 void pick_and_each(Func &func, std::index_sequence<Index...> seq) const {
    +
    471 if(const auto *view = base_type::handle(); view != nullptr) {
    +
    472 ((view == base_type::pool_at(Index) ? each<Index>(func, seq) : void()), ...);
    +
    473 }
    +
    474 }
    +
    475
    +
    476public:
    + + + +
    484 using difference_type = std::ptrdiff_t;
    + +
    488 using iterable = iterable_adaptor<internal::extended_view_iterator<iterator, Get...>>;
    +
    489
    +
    +
    491 basic_view() noexcept
    +
    492 : base_type{} {}
    -
    488
    -
    - -
    495 : base_type{{&value...}, {&excl...}} {
    -
    496 }
    +
    493
    +
    +
    499 basic_view(Get &...value, Exclude &...excl) noexcept
    +
    500 : base_type{{&value...}, {&excl...}} {
    +
    501 }
    -
    497
    -
    -
    503 basic_view(std::tuple<Get &...> value, std::tuple<Exclude &...> excl = {}) noexcept
    -
    504 : basic_view{std::make_from_tuple<basic_view>(std::tuple_cat(value, excl))} {}
    +
    502
    +
    +
    508 basic_view(std::tuple<Get &...> value, std::tuple<Exclude &...> excl = {}) noexcept
    +
    509 : basic_view{std::make_from_tuple<basic_view>(std::tuple_cat(value, excl))} {}
    -
    505
    -
    510 template<typename Type>
    -
    -
    511 void use() noexcept {
    - -
    513 }
    +
    510
    +
    515 template<typename Type>
    +
    +
    516 void use() noexcept {
    + +
    518 }
    -
    514
    -
    519 template<std::size_t Index>
    -
    -
    520 void use() noexcept {
    -
    521 base_type::use(Index);
    -
    522 }
    +
    519
    +
    524 template<std::size_t Index>
    +
    +
    525 void use() noexcept {
    +
    526 base_type::use(Index);
    +
    527 }
    -
    523
    -
    529 template<typename Type>
    -
    - -
    531 return storage<index_of<Type>>();
    -
    532 }
    +
    528
    +
    534 template<typename Type>
    +
    +
    535 [[nodiscard]] auto *storage() const noexcept {
    +
    536 return storage<index_of<Type>>();
    +
    537 }
    -
    533
    -
    539 template<std::size_t Index>
    -
    - -
    541 using type = type_list_element_t<Index, type_list<Get..., Exclude...>>;
    -
    542 return static_cast<type *>(const_cast<constness_as_t<common_type, type> *>(base_type::storage(Index)));
    -
    543 }
    +
    538
    +
    544 template<std::size_t Index>
    +
    +
    545 [[nodiscard]] auto *storage() const noexcept {
    +
    546 if constexpr(Index < sizeof...(Get)) {
    +
    547 return static_cast<element_at<Index> *>(const_cast<constness_as_t<common_type, element_at<Index>> *>(base_type::pool_at(Index)));
    +
    548 } else {
    +
    549 return static_cast<element_at<Index> *>(const_cast<constness_as_t<common_type, element_at<Index>> *>(base_type::filter_at(Index - sizeof...(Get))));
    +
    550 }
    +
    551 }
    -
    544
    -
    550 template<typename Type>
    -
    -
    551 void storage(Type &elem) noexcept {
    - -
    553 }
    +
    552
    +
    558 template<typename Type>
    +
    +
    559 void storage(Type &elem) noexcept {
    + +
    561 }
    -
    554
    -
    561 template<std::size_t Index, typename Type>
    -
    -
    562 void storage(Type &elem) noexcept {
    -
    563 static_assert(std::is_convertible_v<Type &, type_list_element_t<Index, type_list<Get..., Exclude...>> &>, "Unexpected type");
    -
    564 base_type::storage(Index, &elem);
    -
    565 }
    +
    562
    +
    569 template<std::size_t Index, typename Type>
    +
    +
    570 void storage(Type &elem) noexcept {
    +
    571 static_assert(std::is_convertible_v<Type &, element_at<Index> &>, "Unexpected type");
    +
    572
    +
    573 if constexpr(Index < sizeof...(Get)) {
    +
    574 base_type::pool_at(Index, &elem);
    +
    575 } else {
    +
    576 base_type::filter_at(Index - sizeof...(Get), &elem);
    +
    577 }
    +
    578 }
    -
    566
    -
    -
    572 [[nodiscard]] decltype(auto) operator[](const entity_type entt) const {
    -
    573 return get(entt);
    -
    574 }
    +
    579
    +
    +
    585 [[nodiscard]] decltype(auto) operator[](const entity_type entt) const {
    +
    586 return get(entt);
    +
    587 }
    -
    575
    -
    583 template<typename Type, typename... Other>
    -
    -
    584 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    - -
    586 }
    +
    588
    +
    596 template<typename Type, typename... Other>
    +
    +
    597 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    598 return get<index_of<Type>, index_of<Other>...>(entt);
    +
    599 }
    -
    587
    -
    594 template<std::size_t... Index>
    -
    -
    595 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    596 if constexpr(sizeof...(Index) == 0) {
    -
    597 return get(entt, std::index_sequence_for<Get...>{});
    -
    598 } else if constexpr(sizeof...(Index) == 1) {
    -
    599 return (storage<Index>()->get(entt), ...);
    -
    600 } else {
    -
    601 return std::tuple_cat(storage<Index>()->get_as_tuple(entt)...);
    -
    602 }
    -
    603 }
    +
    600
    +
    607 template<std::size_t... Index>
    +
    +
    608 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    609 if constexpr(sizeof...(Index) == 0) {
    +
    610 return get(entt, std::index_sequence_for<Get...>{});
    +
    611 } else if constexpr(sizeof...(Index) == 1) {
    +
    612 return (storage<Index>()->get(entt), ...);
    +
    613 } else {
    +
    614 return std::tuple_cat(storage<Index>()->get_as_tuple(entt)...);
    +
    615 }
    +
    616 }
    -
    604
    -
    620 template<typename Func>
    -
    -
    621 void each(Func func) const {
    -
    622 pick_and_each(func, std::index_sequence_for<Get...>{});
    -
    623 }
    -
    -
    624
    +
    617
    +
    633 template<typename Func>
    - -
    635 return iterable{base_type::begin(), base_type::end()};
    +
    634 void each(Func func) const {
    +
    635 pick_and_each(func, std::index_sequence_for<Get...>{});
    636 }
    -
    637
    -
    645 template<typename... OGet, typename... OExclude>
    -
    - -
    647 return internal::view_pack<basic_view<get_t<Get..., OGet...>, exclude_t<Exclude..., OExclude...>>>(
    -
    648 *this, other, std::index_sequence_for<Get...>{}, std::index_sequence_for<Exclude...>{}, std::index_sequence_for<OGet...>{}, std::index_sequence_for<OExclude...>{});
    +
    637
    +
    +
    647 [[nodiscard]] iterable each() const noexcept {
    +
    649 }
    -
    650};
    +
    650
    +
    657 template<typename OGet>
    +
    +
    658 [[nodiscard]] std::enable_if_t<std::is_base_of_v<common_type, OGet>, basic_view<get_t<Get..., OGet>, exclude_t<Exclude...>>> operator|(OGet &other) const noexcept {
    +
    659 return *this | basic_view<get_t<OGet>, exclude_t<>>{other};
    +
    660 }
    -
    651
    -
    658template<typename Type, deletion_policy Policy>
    -
    - -
    660 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    -
    661
    -
    662protected:
    -
    664 basic_storage_view() noexcept = default;
    -
    665
    -
    666 basic_storage_view(const Type *value) noexcept
    -
    667 : leading{value} {
    -
    668 ENTT_ASSERT(leading->policy() == Policy, "Unexpected storage policy");
    -
    669 }
    -
    672public:
    -
    674 using common_type = Type;
    -
    676 using entity_type = typename common_type::entity_type;
    -
    678 using size_type = std::size_t;
    -
    680 using iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, 1u, 0u>, typename common_type::iterator>;
    -
    682 using reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>;
    -
    683
    -
    - -
    689 return leading;
    -
    690 }
    +
    661
    +
    669 template<typename... OGet, typename... OExclude>
    +
    +
    670 [[nodiscard]] auto operator|(const basic_view<get_t<OGet...>, exclude_t<OExclude...>> &other) const noexcept {
    +
    671 return internal::view_pack<basic_view<get_t<Get..., OGet...>, exclude_t<Exclude..., OExclude...>>>(
    +
    672 *this, other, std::index_sequence_for<Get...>{}, std::index_sequence_for<Exclude...>{}, std::index_sequence_for<OGet...>{}, std::index_sequence_for<OExclude...>{});
    +
    673 }
    -
    691
    -
    697 template<typename..., deletion_policy Pol = Policy>
    -
    -
    698 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, size_type> size() const noexcept {
    -
    699 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    700 return leading ? leading->size() : size_type{};
    -
    701 } else {
    -
    702 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    -
    703 return leading ? leading->free_list() : size_type{};
    -
    704 }
    -
    705 }
    +
    674};
    -
    706
    -
    712 template<typename..., deletion_policy Pol = Policy>
    -
    -
    713 [[nodiscard]] std::enable_if_t<Pol == deletion_policy::in_place, size_type> size_hint() const noexcept {
    -
    714 return leading ? leading->size() : size_type{};
    -
    715 }
    +
    675
    +
    682template<typename Type, deletion_policy Policy>
    +
    + +
    684 static_assert(std::is_same_v<std::remove_const_t<std::remove_reference_t<Type>>, Type>, "Unexpected type");
    +
    685
    +
    686protected:
    +
    688 basic_storage_view() noexcept = default;
    +
    689
    +
    690 basic_storage_view(const Type *value) noexcept
    +
    691 : leading{value} {
    +
    692 ENTT_ASSERT(leading->policy() == Policy, "Unexpected storage policy");
    +
    693 }
    +
    695
    +
    696public:
    +
    698 using common_type = Type;
    +
    700 using entity_type = typename common_type::entity_type;
    +
    702 using size_type = std::size_t;
    +
    704 using difference_type = std::ptrdiff_t;
    +
    706 using iterator = std::conditional_t<Policy == deletion_policy::in_place, internal::view_iterator<common_type, true, 1u, 0u>, typename common_type::iterator>;
    +
    708 using reverse_iterator = std::conditional_t<Policy == deletion_policy::in_place, void, typename common_type::reverse_iterator>;
    +
    709
    +
    +
    714 [[nodiscard]] const common_type *handle() const noexcept {
    +
    715 return leading;
    +
    716 }
    -
    716
    -
    722 template<typename..., deletion_policy Pol = Policy>
    -
    -
    723 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, bool> empty() const noexcept {
    -
    724 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    725 return !leading || leading->empty();
    -
    726 } else {
    -
    727 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    -
    728 return !leading || (leading->free_list() == 0u);
    -
    729 }
    -
    730 }
    +
    717
    +
    723 template<typename..., deletion_policy Pol = Policy>
    +
    +
    724 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, size_type> size() const noexcept {
    +
    725 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    726 return leading ? leading->size() : size_type{};
    +
    727 } else {
    +
    728 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    +
    729 return leading ? leading->free_list() : size_type{};
    +
    730 }
    +
    731 }
    -
    731
    +
    732
    +
    738 template<typename..., deletion_policy Pol = Policy>
    - -
    740 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    741 return leading ? leading->begin() : iterator{};
    -
    742 } else if constexpr(Policy == deletion_policy::swap_only) {
    -
    743 return leading ? (leading->end() - leading->free_list()) : iterator{};
    -
    744 } else {
    -
    745 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    746 return leading ? iterator{leading->begin(), {leading}, {}, 0u} : iterator{};
    -
    747 }
    -
    748 }
    +
    739 [[nodiscard]] std::enable_if_t<Pol == deletion_policy::in_place, size_type> size_hint() const noexcept {
    +
    740 return leading ? leading->size() : size_type{};
    +
    741 }
    -
    749
    -
    - - -
    756 return leading ? leading->end() : iterator{};
    -
    757 } else {
    -
    758 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    759 return leading ? iterator{leading->end(), {leading}, {}, 0u} : iterator{};
    -
    760 }
    -
    761 }
    +
    742
    +
    748 template<typename..., deletion_policy Pol = Policy>
    +
    +
    749 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, bool> empty() const noexcept {
    +
    750 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    751 return !leading || leading->empty();
    +
    752 } else {
    +
    753 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    +
    754 return !leading || (leading->free_list() == 0u);
    +
    755 }
    +
    756 }
    -
    762
    -
    771 template<typename..., deletion_policy Pol = Policy>
    -
    -
    772 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, reverse_iterator> rbegin() const noexcept {
    -
    773 return leading ? leading->rbegin() : reverse_iterator{};
    +
    757
    +
    +
    765 [[nodiscard]] iterator begin() const noexcept {
    +
    766 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    767 return leading ? leading->begin() : iterator{};
    +
    768 } else if constexpr(Policy == deletion_policy::swap_only) {
    +
    769 return leading ? (leading->end() - static_cast<difference_type>(leading->free_list())) : iterator{};
    +
    770 } else {
    +
    771 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    +
    772 return leading ? iterator{leading->begin(), {leading}, {}, 0u} : iterator{};
    +
    773 }
    774 }
    -
    775
    -
    783 template<typename..., deletion_policy Pol = Policy>
    -
    -
    784 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, reverse_iterator> rend() const noexcept {
    -
    785 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    786 return leading ? leading->rend() : reverse_iterator{};
    -
    787 } else {
    -
    788 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    -
    789 return leading ? (leading->rbegin() + leading->free_list()) : reverse_iterator{};
    -
    790 }
    -
    791 }
    +
    775
    +
    +
    780 [[nodiscard]] iterator end() const noexcept {
    +
    781 if constexpr(Policy == deletion_policy::swap_and_pop || Policy == deletion_policy::swap_only) {
    +
    782 return leading ? leading->end() : iterator{};
    +
    783 } else {
    +
    784 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    +
    785 return leading ? iterator{leading->end(), {leading}, {}, 0u} : iterator{};
    +
    786 }
    +
    787 }
    -
    792
    +
    788
    +
    797 template<typename..., deletion_policy Pol = Policy>
    - -
    799 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    800 return empty() ? null : *leading->begin();
    -
    801 } else if constexpr(Policy == deletion_policy::swap_only) {
    -
    802 return empty() ? null : *(leading->end() - leading->free_list());
    -
    803 } else {
    -
    804 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    805 const auto it = begin();
    -
    806 return (it == end()) ? null : *it;
    -
    807 }
    -
    808 }
    +
    798 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, reverse_iterator> rbegin() const noexcept {
    +
    799 return leading ? leading->rbegin() : reverse_iterator{};
    +
    800 }
    -
    809
    -
    - - -
    817 return empty() ? null : *leading->rbegin();
    -
    818 } else {
    -
    819 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    820
    -
    821 if(leading) {
    -
    822 auto it = leading->rbegin();
    -
    823 const auto last = leading->rend();
    -
    824 for(; (it != last) && (*it == tombstone); ++it) {}
    -
    825 return it == last ? null : *it;
    -
    826 }
    -
    827
    -
    828 return null;
    -
    829 }
    -
    830 }
    +
    801
    +
    809 template<typename..., deletion_policy Pol = Policy>
    +
    +
    810 [[nodiscard]] std::enable_if_t<Pol != deletion_policy::in_place, reverse_iterator> rend() const noexcept {
    +
    811 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    812 return leading ? leading->rend() : reverse_iterator{};
    +
    813 } else {
    +
    814 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    +
    815 return leading ? (leading->rbegin() + static_cast<difference_type>(leading->free_list())) : reverse_iterator{};
    +
    816 }
    +
    817 }
    -
    831
    -
    -
    838 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    -
    839 if constexpr(Policy == deletion_policy::swap_and_pop) {
    -
    840 return leading ? leading->find(entt) : iterator{};
    -
    841 } else if constexpr(Policy == deletion_policy::swap_only) {
    -
    842 const auto it = leading ? leading->find(entt) : iterator{};
    -
    843 return leading && (static_cast<size_type>(it.index()) < leading->free_list()) ? it : iterator{};
    +
    818
    +
    +
    824 [[nodiscard]] entity_type front() const noexcept {
    +
    825 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    826 return empty() ? null : *leading->begin();
    +
    827 } else if constexpr(Policy == deletion_policy::swap_only) {
    +
    828 return empty() ? null : *(leading->end() - static_cast<difference_type>(leading->free_list()));
    +
    829 } else {
    +
    830 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    +
    831 const auto it = begin();
    +
    832 return (it == end()) ? null : *it;
    +
    833 }
    +
    834 }
    +
    +
    835
    +
    +
    841 [[nodiscard]] entity_type back() const noexcept {
    +
    842 if constexpr(Policy == deletion_policy::swap_and_pop || Policy == deletion_policy::swap_only) {
    +
    843 return empty() ? null : *leading->rbegin();
    844 } else {
    -
    845 const auto it = leading ? leading->find(entt) : typename common_type::iterator{};
    -
    846 return iterator{it, {leading}, {}, 0u};
    -
    847 }
    -
    848 }
    -
    -
    849
    -
    -
    854 [[nodiscard]] explicit operator bool() const noexcept {
    -
    855 return (leading != nullptr);
    +
    845 static_assert(Policy == deletion_policy::in_place, "Unexpected storage policy");
    +
    846
    +
    847 if(leading) {
    +
    848 auto it = leading->rbegin();
    +
    849 const auto last = leading->rend();
    +
    850 for(; (it != last) && (*it == tombstone); ++it) {}
    +
    851 return it == last ? null : *it;
    +
    852 }
    +
    853
    +
    854 return null;
    +
    855 }
    856 }
    -
    857
    -
    -
    863 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    - -
    865 return leading && leading->contains(entt);
    -
    866 } else {
    -
    867 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    -
    868 return leading && leading->contains(entt) && (leading->index(entt) < leading->free_list());
    -
    869 }
    -
    870 }
    +
    857
    +
    +
    864 [[nodiscard]] iterator find(const entity_type entt) const noexcept {
    +
    865 if constexpr(Policy == deletion_policy::swap_and_pop) {
    +
    866 return leading ? leading->find(entt) : iterator{};
    +
    867 } else if constexpr(Policy == deletion_policy::swap_only) {
    +
    868 const auto it = leading ? leading->find(entt) : iterator{};
    +
    869 return leading && (static_cast<size_type>(it.index()) < leading->free_list()) ? it : iterator{};
    +
    870 } else {
    +
    871 return leading ? iterator{leading->find(entt), {leading}, {}, 0u} : iterator{};
    +
    872 }
    +
    873 }
    -
    871
    -
    872private:
    -
    873 const common_type *leading{};
    -
    874};
    +
    874
    +
    +
    879 [[nodiscard]] explicit operator bool() const noexcept {
    +
    880 return (leading != nullptr);
    +
    881 }
    -
    875
    -
    886template<typename Get>
    -
    - -
    888 : public basic_storage_view<typename Get::base_type, Get::storage_policy> {
    - -
    890
    -
    891public:
    - - - - - -
    903 using iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>;
    -
    904
    -
    - -
    907 : base_type{} {}
    +
    882
    +
    +
    888 [[nodiscard]] bool contains(const entity_type entt) const noexcept {
    +
    889 if constexpr(Policy == deletion_policy::swap_and_pop || Policy == deletion_policy::in_place) {
    +
    890 return leading && leading->contains(entt);
    +
    891 } else {
    +
    892 static_assert(Policy == deletion_policy::swap_only, "Unexpected storage policy");
    +
    893 return leading && leading->contains(entt) && (leading->index(entt) < leading->free_list());
    +
    894 }
    +
    895 }
    -
    908
    -
    - -
    914 : base_type{&value} {
    -
    915 }
    +
    896
    +
    897private:
    +
    898 const common_type *leading{};
    +
    899};
    -
    916
    -
    -
    921 basic_view(std::tuple<Get &> value, std::tuple<> = {}) noexcept
    -
    922 : basic_view{std::get<0>(value)} {}
    +
    900
    +
    911template<typename Get>
    +
    + +
    913 : public basic_storage_view<typename Get::base_type, Get::storage_policy> {
    + +
    915
    +
    916public:
    + + + +
    924 using difference_type = std::ptrdiff_t;
    + + +
    930 using iterable = std::conditional_t<Get::storage_policy == deletion_policy::in_place, iterable_adaptor<internal::extended_view_iterator<iterator, Get>>, decltype(std::declval<Get>().each())>;
    +
    931
    +
    +
    933 basic_view() noexcept
    +
    934 : base_type{} {}
    -
    923
    -
    929 template<typename Type = typename Get::element_type>
    -
    - -
    931 static_assert(std::is_same_v<std::remove_const_t<Type>, typename Get::element_type>, "Invalid element type");
    -
    932 return storage<0>();
    -
    933 }
    +
    935
    +
    +
    940 basic_view(Get &value) noexcept
    +
    941 : base_type{&value} {
    +
    942 }
    -
    934
    -
    940 template<std::size_t Index>
    -
    - -
    942 static_assert(Index == 0u, "Index out of bounds");
    -
    943 return static_cast<Get *>(const_cast<constness_as_t<common_type, Get> *>(base_type::handle()));
    -
    944 }
    +
    943
    +
    +
    948 basic_view(std::tuple<Get &> value, std::tuple<> = {}) noexcept
    +
    949 : basic_view{std::get<0>(value)} {}
    -
    945
    -
    -
    950 void storage(Get &elem) noexcept {
    - -
    952 }
    +
    950
    +
    956 template<typename Type = typename Get::element_type>
    +
    +
    957 [[nodiscard]] auto *storage() const noexcept {
    +
    958 static_assert(std::is_same_v<std::remove_const_t<Type>, typename Get::element_type>, "Invalid element type");
    +
    959 return storage<0>();
    +
    960 }
    -
    953
    -
    959 template<std::size_t Index>
    -
    -
    960 void storage(Get &elem) noexcept {
    -
    961 static_assert(Index == 0u, "Index out of bounds");
    -
    962 *this = basic_view{elem};
    -
    963 }
    -
    -
    964
    -
    - -
    970 return storage();
    +
    961
    +
    967 template<std::size_t Index>
    +
    +
    968 [[nodiscard]] auto *storage() const noexcept {
    +
    969 static_assert(Index == 0u, "Index out of bounds");
    +
    970 return static_cast<Get *>(const_cast<constness_as_t<common_type, Get> *>(base_type::handle()));
    971 }
    -
    972
    -
    -
    978 [[nodiscard]] decltype(auto) operator[](const entity_type entt) const {
    -
    979 return storage()->get(entt);
    -
    980 }
    +
    972
    +
    +
    977 void storage(Get &elem) noexcept {
    +
    978 storage<0>(elem);
    +
    979 }
    -
    981
    -
    988 template<typename Elem>
    -
    -
    989 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    990 static_assert(std::is_same_v<std::remove_const_t<Elem>, typename Get::element_type>, "Invalid element type");
    -
    991 return get<0>(entt);
    -
    992 }
    +
    980
    +
    986 template<std::size_t Index>
    +
    +
    987 void storage(Get &elem) noexcept {
    +
    988 static_assert(Index == 0u, "Index out of bounds");
    +
    989 *this = basic_view{elem};
    +
    990 }
    -
    993
    -
    1000 template<std::size_t... Index>
    -
    -
    1001 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    1002 if constexpr(sizeof...(Index) == 0) {
    -
    1003 return storage()->get_as_tuple(entt);
    -
    1004 } else {
    -
    1005 return storage<Index...>()->get(entt);
    -
    1006 }
    +
    991
    +
    +
    996 [[nodiscard]] Get *operator->() const noexcept {
    +
    997 return storage();
    +
    998 }
    +
    +
    999
    +
    +
    1005 [[nodiscard]] decltype(auto) operator[](const entity_type entt) const {
    +
    1006 return storage()->get(entt);
    1007 }
    -
    1008
    -
    1024 template<typename Func>
    -
    -
    1025 void each(Func func) const {
    -
    1026 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    -
    1027 for(const auto pack: each()) {
    -
    1028 std::apply(func, pack);
    -
    1029 }
    -
    1030 } else if constexpr(Get::storage_policy == deletion_policy::swap_and_pop || Get::storage_policy == deletion_policy::swap_only) {
    -
    1031 if constexpr(std::is_void_v<typename Get::value_type>) {
    -
    1032 for(size_type pos = base_type::size(); pos; --pos) {
    -
    1033 func();
    -
    1034 }
    -
    1035 } else {
    -
    1036 if(const auto len = base_type::size(); len != 0u) {
    -
    1037 for(auto last = storage()->end(), first = last - len; first != last; ++first) {
    -
    1038 func(*first);
    -
    1039 }
    -
    1040 }
    -
    1041 }
    -
    1042 } else {
    -
    1043 static_assert(Get::storage_policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    1044
    -
    1045 for(const auto pack: each()) {
    -
    1046 std::apply([&func](const auto, auto &&...elem) { func(std::forward<decltype(elem)>(elem)...); }, pack);
    -
    1047 }
    -
    1048 }
    -
    1049 }
    +
    1008
    +
    1015 template<typename Elem>
    +
    +
    1016 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    1017 static_assert(std::is_same_v<std::remove_const_t<Elem>, typename Get::element_type>, "Invalid element type");
    +
    1018 return get<0>(entt);
    +
    1019 }
    -
    1050
    -
    - -
    1061 if constexpr(Get::storage_policy == deletion_policy::swap_and_pop || Get::storage_policy == deletion_policy::swap_only) {
    -
    1062 return base_type::handle() ? storage()->each() : iterable{};
    -
    1063 } else {
    -
    1064 static_assert(Get::storage_policy == deletion_policy::in_place, "Unexpected storage policy");
    -
    1065 return iterable{base_type::begin(), base_type::end()};
    -
    1066 }
    -
    1067 }
    +
    1020
    +
    1027 template<std::size_t... Index>
    +
    +
    1028 [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    1029 if constexpr(sizeof...(Index) == 0) {
    +
    1030 return storage()->get_as_tuple(entt);
    +
    1031 } else {
    +
    1032 return storage<Index...>()->get(entt);
    +
    1033 }
    +
    1034 }
    -
    1068
    -
    1076 template<typename... OGet, typename... OExclude>
    -
    - -
    1078 return internal::view_pack<basic_view<get_t<Get, OGet...>, exclude_t<OExclude...>>>(
    -
    1079 *this, other, std::index_sequence_for<Get>{}, std::index_sequence_for<>{}, std::index_sequence_for<OGet...>{}, std::index_sequence_for<OExclude...>{});
    -
    1080 }
    +
    1035
    +
    1051 template<typename Func>
    +
    +
    1052 void each(Func func) const {
    +
    1053 if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    +
    1054 for(const auto pack: each()) {
    +
    1055 std::apply(func, pack);
    +
    1056 }
    +
    1057 } else if constexpr(Get::storage_policy == deletion_policy::swap_and_pop || Get::storage_policy == deletion_policy::swap_only) {
    +
    1058 if constexpr(std::is_void_v<typename Get::value_type>) {
    +
    1059 for(size_type pos = base_type::size(); pos; --pos) {
    +
    1060 func();
    +
    1061 }
    +
    1062 } else {
    +
    1063 if(const auto len = static_cast<difference_type>(base_type::size()); len != 0) {
    +
    1064 for(auto last = storage()->end(), first = last - len; first != last; ++first) {
    +
    1065 func(*first);
    +
    1066 }
    +
    1067 }
    +
    1068 }
    +
    1069 } else {
    +
    1070 static_assert(Get::storage_policy == deletion_policy::in_place, "Unexpected storage policy");
    +
    1071
    +
    1072 for(const auto pack: each()) {
    +
    1073 std::apply([&func](const auto, auto &&...elem) { func(std::forward<decltype(elem)>(elem)...); }, pack);
    +
    1074 }
    +
    1075 }
    +
    1076 }
    -
    1081};
    +
    1077
    +
    +
    1087 [[nodiscard]] iterable each() const noexcept {
    +
    1088 if constexpr(Get::storage_policy == deletion_policy::swap_and_pop || Get::storage_policy == deletion_policy::swap_only) {
    +
    1089 return base_type::handle() ? storage()->each() : iterable{};
    +
    1090 } else {
    +
    1091 static_assert(Get::storage_policy == deletion_policy::in_place, "Unexpected storage policy");
    + +
    1093 }
    +
    1094 }
    -
    1082
    -
    1088template<typename... Type>
    - -
    1090
    -
    1096template<typename... Get, typename... Exclude>
    -
    1097basic_view(std::tuple<Get &...>, std::tuple<Exclude &...> = {}) -> basic_view<get_t<Get...>, exclude_t<Exclude...>>;
    -
    1098
    -
    1099} // namespace entt
    -
    1100
    -
    1101#endif
    -
    Basic storage view implementation.
    Definition view.hpp:226
    -
    size_type size_hint() const noexcept
    Estimates the number of entities iterated by the view.
    Definition view.hpp:332
    -
    void refresh() noexcept
    Updates the internal leading view if required.
    Definition view.hpp:311
    -
    Type common_type
    Common type among all storage types.
    Definition view.hpp:302
    -
    const common_type * handle() const noexcept
    Returns the leading storage of a view, if any.
    Definition view.hpp:324
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a view contains an entity.
    Definition view.hpp:404
    -
    iterator begin() const noexcept
    Returns an iterator to the first entity of the view.
    Definition view.hpp:343
    -
    entity_type back() const noexcept
    Returns the last entity of the view, if any.
    Definition view.hpp:370
    -
    entity_type front() const noexcept
    Returns the first entity of the view, if any.
    Definition view.hpp:360
    -
    std::size_t size_type
    Unsigned integer type.
    Definition view.hpp:306
    -
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the view.
    Definition view.hpp:351
    -
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition view.hpp:387
    -
    internal::view_iterator< common_type, Get, Exclude > iterator
    Forward iterator type.
    Definition view.hpp:308
    -
    typename Type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:304
    -
    Basic storage view implementation.
    Definition view.hpp:659
    -
    entity_type front() const noexcept
    Returns the first entity of the view, if any.
    Definition view.hpp:798
    -
    std::enable_if_t< Pol !=deletion_policy::in_place, bool > empty() const noexcept
    Checks whether a view is empty.
    Definition view.hpp:723
    -
    std::conditional_t< Policy==deletion_policy::in_place, void, typename common_type::reverse_iterator > reverse_iterator
    Reverse iterator type.
    Definition view.hpp:682
    -
    entity_type back() const noexcept
    Returns the last entity of the view, if any.
    Definition view.hpp:815
    -
    bool contains(const entity_type entt) const noexcept
    Checks if a view contains an entity.
    Definition view.hpp:863
    -
    std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > rend() const noexcept
    Returns an iterator that is past the last entity of the reversed view.
    Definition view.hpp:784
    -
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the view.
    Definition view.hpp:754
    -
    std::conditional_t< Policy==deletion_policy::in_place, internal::view_iterator< common_type, 1u, 0u >, typename common_type::iterator > iterator
    Random access iterator type.
    Definition view.hpp:680
    -
    std::enable_if_t< Pol==deletion_policy::in_place, size_type > size_hint() const noexcept
    Estimates the number of entities iterated by the view.
    Definition view.hpp:713
    -
    std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > rbegin() const noexcept
    Returns an iterator to the first entity of the reversed view.
    Definition view.hpp:772
    -
    std::enable_if_t< Pol !=deletion_policy::in_place, size_type > size() const noexcept
    Returns the number of entities that have the given element.
    Definition view.hpp:698
    -
    std::size_t size_type
    Unsigned integer type.
    Definition view.hpp:678
    -
    typename common_type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:676
    -
    iterator begin() const noexcept
    Returns an iterator to the first entity of the view.
    Definition view.hpp:739
    -
    const common_type * handle() const noexcept
    Returns the leading storage of a view, if any.
    Definition view.hpp:688
    -
    Type common_type
    Common type among all storage types.
    Definition view.hpp:674
    -
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition view.hpp:838
    -
    Storage implementation.
    Definition storage.hpp:230
    -
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:639
    -
    basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept
    Constructs a view from a storage class.
    Definition view.hpp:921
    -
    typename base_type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:895
    -
    auto operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
    Combines two views in a more specific one.
    Definition view.hpp:1077
    -
    basic_view(Get &value) noexcept
    Constructs a view from a storage class.
    Definition view.hpp:913
    -
    void storage(Get &elem) noexcept
    Assigns a storage to a view.
    Definition view.hpp:960
    -
    Get * operator->() const noexcept
    Returns a pointer to the underlying storage.
    Definition view.hpp:969
    -
    typename base_type::common_type common_type
    Common type among all storage types.
    Definition view.hpp:893
    -
    typename base_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition view.hpp:901
    -
    typename base_type::iterator iterator
    Random access iterator type.
    Definition view.hpp:899
    -
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition view.hpp:930
    -
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition view.hpp:906
    -
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition view.hpp:1025
    -
    iterable each() const noexcept
    Returns an iterable object to use to visit a view.
    Definition view.hpp:1060
    -
    void storage(Get &elem) noexcept
    Assigns a storage to a view.
    Definition view.hpp:950
    -
    typename base_type::size_type size_type
    Unsigned integer type.
    Definition view.hpp:897
    -
    std::conditional_t< Get::storage_policy==deletion_policy::in_place, iterable_adaptor< internal::extended_view_iterator< iterator, Get > >, decltype(std::declval< Get >().each())> iterable
    Iterable view type.
    Definition view.hpp:903
    -
    decltype(auto) get(const entity_type entt) const
    Returns the element assigned to the given entity.
    Definition view.hpp:989
    - -
    typename base_type::common_type common_type
    Common type among all storage types.
    Definition view.hpp:475
    -
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition view.hpp:486
    -
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition view.hpp:621
    -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition view.hpp:595
    - - -
    auto operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
    Combines two views in a more specific one.
    Definition view.hpp:646
    - -
    iterable each() const noexcept
    Returns an iterable object to use to visit a view.
    Definition view.hpp:634
    -
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition view.hpp:584
    -
    void use() noexcept
    Forces a view to use a given element to drive iterations.
    Definition view.hpp:511
    -
    basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept
    Constructs a view from a set of storage classes.
    Definition view.hpp:503
    -
    basic_view(Get &...value, Exclude &...excl) noexcept
    Constructs a view from a set of storage classes.
    Definition view.hpp:494
    -
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition view.hpp:530
    - -
    View implementation.
    Definition fwd.hpp:42
    +
    1095
    +
    1102 template<typename OGet>
    +
    +
    1103 [[nodiscard]] std::enable_if_t<std::is_base_of_v<common_type, OGet>, basic_view<get_t<Get, OGet>, exclude_t<>>> operator|(OGet &other) const noexcept {
    +
    1104 return *this | basic_view<get_t<OGet>, exclude_t<>>{other};
    +
    1105 }
    +
    +
    1106
    +
    1114 template<typename... OGet, typename... OExclude>
    +
    +
    1115 [[nodiscard]] auto operator|(const basic_view<get_t<OGet...>, exclude_t<OExclude...>> &other) const noexcept {
    +
    1116 return internal::view_pack<basic_view<get_t<Get, OGet...>, exclude_t<OExclude...>>>(
    +
    1117 *this, other, std::index_sequence_for<Get>{}, std::index_sequence_for<>{}, std::index_sequence_for<OGet...>{}, std::index_sequence_for<OExclude...>{});
    +
    1118 }
    +
    +
    1119};
    +
    +
    1120
    +
    1126template<typename... Type>
    + +
    1128
    +
    1134template<typename... Get, typename... Exclude>
    +
    1135basic_view(std::tuple<Get &...>, std::tuple<Exclude &...> = {}) -> basic_view<get_t<Get...>, exclude_t<Exclude...>>;
    +
    1136
    +
    1137} // namespace entt
    +
    1138
    +
    1139#endif
    +
    Basic storage view implementation.
    Definition view.hpp:233
    +
    iterator begin() const noexcept
    Returns an iterator to the first entity of the view.
    Definition view.hpp:344
    +
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition view.hpp:388
    +
    typename Type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:303
    +
    const common_type * handle() const noexcept
    Returns the leading storage of a view, if any.
    Definition view.hpp:325
    +
    size_type size_hint() const noexcept
    Estimates the number of entities iterated by the view.
    Definition view.hpp:333
    +
    bool contains(const entity_type entt) const noexcept
    Checks if a view contains an entity.
    Definition view.hpp:405
    +
    entity_type back() const noexcept
    Returns the last entity of the view, if any.
    Definition view.hpp:371
    +
    void refresh() noexcept
    Updates the internal leading view if required.
    Definition view.hpp:312
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition view.hpp:307
    +
    entity_type front() const noexcept
    Returns the first entity of the view, if any.
    Definition view.hpp:361
    +
    internal::view_iterator< common_type, Checked, Get, Exclude > iterator
    Forward iterator type.
    Definition view.hpp:309
    +
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the view.
    Definition view.hpp:352
    +
    Type common_type
    Common type among all storage types.
    Definition view.hpp:301
    +
    std::size_t size_type
    Unsigned integer type.
    Definition view.hpp:305
    +
    Basic storage view implementation.
    Definition view.hpp:683
    +
    entity_type front() const noexcept
    Returns the first entity of the view, if any.
    Definition view.hpp:824
    +
    std::enable_if_t< Pol !=deletion_policy::in_place, bool > empty() const noexcept
    Checks whether a view is empty.
    Definition view.hpp:749
    +
    std::conditional_t< Policy==deletion_policy::in_place, void, typename common_type::reverse_iterator > reverse_iterator
    Reverse iterator type.
    Definition view.hpp:708
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition view.hpp:704
    +
    entity_type back() const noexcept
    Returns the last entity of the view, if any.
    Definition view.hpp:841
    +
    bool contains(const entity_type entt) const noexcept
    Checks if a view contains an entity.
    Definition view.hpp:888
    +
    std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > rend() const noexcept
    Returns an iterator that is past the last entity of the reversed view.
    Definition view.hpp:810
    +
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the view.
    Definition view.hpp:780
    +
    std::enable_if_t< Pol==deletion_policy::in_place, size_type > size_hint() const noexcept
    Estimates the number of entities iterated by the view.
    Definition view.hpp:739
    +
    std::conditional_t< Policy==deletion_policy::in_place, internal::view_iterator< common_type, true, 1u, 0u >, typename common_type::iterator > iterator
    Random access iterator type.
    Definition view.hpp:706
    +
    std::enable_if_t< Pol !=deletion_policy::in_place, reverse_iterator > rbegin() const noexcept
    Returns an iterator to the first entity of the reversed view.
    Definition view.hpp:798
    +
    std::enable_if_t< Pol !=deletion_policy::in_place, size_type > size() const noexcept
    Returns the number of entities that have the given element.
    Definition view.hpp:724
    +
    std::size_t size_type
    Unsigned integer type.
    Definition view.hpp:702
    +
    typename common_type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:700
    +
    iterator begin() const noexcept
    Returns an iterator to the first entity of the view.
    Definition view.hpp:765
    +
    const common_type * handle() const noexcept
    Returns the leading storage of a view, if any.
    Definition view.hpp:714
    +
    Type common_type
    Common type among all storage types.
    Definition view.hpp:698
    +
    iterator find(const entity_type entt) const noexcept
    Finds an entity.
    Definition view.hpp:864
    +
    const value_type & get(const entity_type entt) const noexcept
    Returns the object assigned to an entity.
    Definition storage.hpp:648
    +
    iterable each() noexcept
    Returns an iterable object to use to visit a storage.
    Definition storage.hpp:762
    +
    std::tuple< const value_type & > get_as_tuple(const entity_type entt) const noexcept
    Returns the object assigned to an entity as a tuple.
    Definition storage.hpp:662
    +
    basic_view(std::tuple< Get & > value, std::tuple<>={}) noexcept
    Constructs a view from a storage class.
    Definition view.hpp:948
    +
    typename base_type::entity_type entity_type
    Underlying entity identifier.
    Definition view.hpp:920
    +
    auto operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
    Combines two views in a more specific one.
    Definition view.hpp:1115
    +
    basic_view(Get &value) noexcept
    Constructs a view from a storage class.
    Definition view.hpp:940
    +
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition view.hpp:924
    +
    void storage(Get &elem) noexcept
    Assigns a storage to a view.
    Definition view.hpp:987
    +
    Get * operator->() const noexcept
    Returns a pointer to the underlying storage.
    Definition view.hpp:996
    +
    typename base_type::common_type common_type
    Common type among all storage types.
    Definition view.hpp:918
    +
    typename base_type::reverse_iterator reverse_iterator
    Reverse iterator type.
    Definition view.hpp:928
    +
    typename base_type::iterator iterator
    Random access iterator type.
    Definition view.hpp:926
    +
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition view.hpp:957
    +
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition view.hpp:933
    +
    std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get, OGet >, exclude_t<> > > operator|(OGet &other) const noexcept
    Combines a view and a storage in more specific view.
    Definition view.hpp:1103
    +
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition view.hpp:1052
    +
    iterable each() const noexcept
    Returns an iterable object to use to visit a view.
    Definition view.hpp:1087
    +
    void storage(Get &elem) noexcept
    Assigns a storage to a view.
    Definition view.hpp:977
    +
    typename base_type::size_type size_type
    Unsigned integer type.
    Definition view.hpp:922
    +
    std::conditional_t< Get::storage_policy==deletion_policy::in_place, iterable_adaptor< internal::extended_view_iterator< iterator, Get > >, decltype(std::declval< Get >().each())> iterable
    Iterable view type.
    Definition view.hpp:930
    +
    decltype(auto) get(const entity_type entt) const
    Returns the element assigned to the given entity.
    Definition view.hpp:1016
    + +
    typename base_type::common_type common_type
    Common type among all storage types.
    Definition view.hpp:478
    +
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition view.hpp:491
    +
    void each(Func func) const
    Iterates entities and elements and applies the given function object to them.
    Definition view.hpp:634
    +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition view.hpp:608
    + + +
    std::enable_if_t< std::is_base_of_v< common_type, OGet >, basic_view< get_t< Get..., OGet >, exclude_t< Exclude... > > > operator|(OGet &other) const noexcept
    Combines a view and a storage in more specific view.
    Definition view.hpp:658
    +
    auto operator|(const basic_view< get_t< OGet... >, exclude_t< OExclude... > > &other) const noexcept
    Combines two views in a more specific one.
    Definition view.hpp:670
    + + +
    iterable each() const noexcept
    Returns an iterable object to use to visit a view.
    Definition view.hpp:647
    +
    decltype(auto) get(const entity_type entt) const
    Returns the elements assigned to the given entity.
    Definition view.hpp:597
    +
    iterable_adaptor< internal::extended_view_iterator< iterator, Get... > > iterable
    Iterable view type.
    Definition view.hpp:488
    +
    void use() noexcept
    Forces a view to use a given element to drive iterations.
    Definition view.hpp:516
    +
    basic_view(std::tuple< Get &... > value, std::tuple< Exclude &... > excl={}) noexcept
    Constructs a view from a set of storage classes.
    Definition view.hpp:508
    +
    basic_view(Get &...value, Exclude &...excl) noexcept
    Constructs a view from a set of storage classes.
    Definition view.hpp:499
    +
    auto * storage() const noexcept
    Returns the storage for a given element type, if any.
    Definition view.hpp:535
    + +
    View implementation.
    Definition fwd.hpp:47
    EnTT default namespace.
    Definition dense_map.hpp:22
    basic_view(Type &...storage) -> basic_view< get_t< Type... >, exclude_t<> >
    Deduction guide.
    -
    constexpr Type make_obj_using_allocator(const Allocator &allocator, Args &&...args)
    Uses-allocator construction utility (waiting for C++20).
    Definition memory.hpp:219
    -
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    +
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    constexpr null_t null
    Compile-time constant for null entities.
    Definition entity.hpp:375
    -
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:278
    -
    constexpr bool is_applicable_v
    Helper variable template.
    +
    constexpr std::size_t type_list_index_v
    Helper variable template.
    +
    basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
    Alias declaration for the most common use case.
    Definition fwd.hpp:277
    +
    constexpr bool is_applicable_v
    Helper variable template.
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition entity.hpp:384
    -
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:168
    -
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed elements.
    Definition fwd.hpp:167
    +
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    deletion_policy
    Storage deletion policy.
    Definition fwd.hpp:17
    -
    @ swap_only
    Swap-only deletion policy.
    -
    @ swap_and_pop
    Swap-and-pop deletion policy.
    -
    @ in_place
    In-place deletion policy.
    +
    @ swap_only
    Swap-only deletion policy.
    Definition fwd.hpp:23
    +
    @ swap_and_pop
    Swap-and-pop deletion policy.
    Definition fwd.hpp:19
    +
    @ in_place
    In-place deletion policy.
    Definition fwd.hpp:21
    constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    constexpr bool operator==(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
    Compares two hashed strings.
    -
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:76
    -
    Alias for exclusion lists.
    Definition fwd.hpp:141
    -
    Alias for lists of observed elements.
    Definition fwd.hpp:158
    +
    basic_storage< Type > storage
    Alias declaration for the most common use case.
    Definition fwd.hpp:78
    +
    Alias for exclusion lists.
    Definition fwd.hpp:140
    +
    Alias for lists of observed elements.
    Definition fwd.hpp:157
    Utility class to create an iterable object from a pair of iterators.
    Definition iterator.hpp:141
    -
    A class to use to push around lists of types, nothing more.
    +
    A class to use to push around lists of types, nothing more.
    +