Commit Graph

  • 518bbc651e sparse_set/storage: * try_emplace returns a basic iterator * try_erase accepts a basic iterator (prepare for an even faster remove/erase/clear/whatever) Michele Caini 2022-01-25 15:11:01 +01:00
  • ffd1d97e03 natvis: updated container.natvis to use the right names Michele Caini 2022-01-28 14:05:41 +01:00
  • e503d431f1 doc: minor changes Michele Caini 2022-01-28 14:00:54 +01:00
  • 49a066714a test: minor changes Michele Caini 2022-01-28 14:00:33 +01:00
  • 7eec610d21 container: * dense_hash_map -> dense_map * dense_hash_set -> dense_set Michele Caini 2022-01-21 15:40:32 +01:00
  • 530507c36b meta: some compile-time checks to avoid subtle runtime errors Michele Caini 2022-01-27 22:49:35 +01:00
  • 4d2584d8fc doc: added home hearth to the links page Michele Caini 2022-01-25 18:09:37 +01:00
  • 0f5057920e doc: added gaia-ecs to the list of similar projects Michele Caini 2022-01-25 18:00:06 +01:00
  • a98000cf3b test: I am the winner of the best error message ever but I remain humble :) Michele Caini 2022-01-25 14:56:00 +01:00
  • 0cec8de164 dense_hash_map/set: suppress warnings due to integral conversions Michele Caini 2022-01-25 09:09:37 +01:00
  • 1caa8d923d sparse_set/storage: iterator's ::index returns the right offset Michele Caini 2022-01-23 13:05:45 +01:00
  • 4fa51f8c52 type_traits: removed is_iterator_type[_v], it may be ambiguous and cause errors Michele Caini 2022-01-22 16:59:17 +01:00
  • a8be765aa8 registry: disable optimizations based on is_iterator_type, free pools allow to implement them on the user side and more efficiently when needed Michele Caini 2022-01-22 16:52:45 +01:00
  • d2d35d490a doc: updated entity.md Michele Caini 2022-01-21 23:19:22 +01:00
  • 26ba137424 registry: template ::storage support to const qualified types Michele Caini 2022-01-21 11:37:19 +01:00
  • e6006663ec registry: remove [[nodiscard]] from the template ::storage method Michele Caini 2022-01-21 11:08:07 +01:00
  • 74eb2772b6 natvis: support standalone registry context Michele Caini 2022-01-20 15:58:32 +01:00
  • 3878a696af registry: standalone context type (close #575) Michele Caini 2022-01-20 09:37:31 +01:00
  • 49ac34c405 doc: avoid confusion with context variables Michele Caini 2022-01-19 16:02:04 +01:00
  • a7d4a980ba *: more consistent policy for final classes Michele Caini 2022-01-19 12:41:50 +01:00
  • 2196db562e registry:: non-template storage(id) returns an iterator rather than a naked pointer Michele Caini 2022-01-19 12:15:22 +01:00
  • 2ad3e0ed4c hashed_string: updated natvis representation Michele Caini 2022-01-19 09:30:35 +01:00
  • 6e03fe77ae doc: updated copyright Michele Caini 2022-01-19 07:43:58 +01:00
  • af8ec7b5dd registry: remove/erase dispatch based on the iterator type Michele Caini 2022-01-18 08:30:43 +01:00
  • 7fa29e7341 registry: strict check on storage types to prevent subtle bugs in case of errors Michele Caini 2022-01-18 07:45:03 +01:00
  • 9c6950d163 hashed_string: I managed to crash clang but I remain humble and try to help it :) Michele Caini 2022-01-17 14:02:02 +01:00
  • 5d4cbfe8e7 hashed_string: make it work with vs toolset v141 Michele Caini 2022-01-17 13:49:11 +01:00
  • 4747422110 *: added a bunch of final here and there Michele Caini 2022-01-17 13:43:55 +01:00
  • 7d1416ac74 hashed_string: store size information (close #824) Michele Caini 2022-01-17 08:25:56 +01:00
  • 2efaa7af7b *: allocator aware classes fail to compile if allocator's value type and container's value type differ Michele Caini 2022-01-15 16:48:33 +01:00
  • 68e259870f sparse_set/storage: * support ::erase suppression * support ::emplace with invalid entities when suppressed * support ::erase/::remove with invalid entities when suppressed Michele Caini 2022-01-15 00:48:07 +01:00
  • 29c2c94784 doc: suppress warnings from doc generation Michele Caini 2022-01-15 00:45:35 +01:00
  • 3f2e1d078f sparse_set/storage: replace the whole try_insert machinery with a force_back parameter to try_emplace Michele Caini 2022-01-15 00:44:47 +01:00
  • 0a259da05a sparse_set: opaque insert always appends elements Michele Caini 2022-01-14 14:06:41 +01:00
  • 1b22fe6de2 storage: insert for non-empty types always appends elements Michele Caini 2022-01-13 15:01:06 +01:00
  • 9b700c3bd2 natvis: removed count filter from sparse set, it makes it harder to debug internal issues Michele Caini 2022-01-13 15:00:34 +01:00
  • 3b72e30c36 sparse_set: use the right iterator in the catch branch of insert Michele Caini 2022-01-13 14:44:27 +01:00
  • 9eba103de9 storage: insert for empty types always appends elements Michele Caini 2022-01-13 14:05:33 +01:00
  • ecadee3876 sparse_set: added basic virtual try_insert (insert does not use it yet) Michele Caini 2022-01-13 13:47:22 +01:00
  • 699f9105ae storage: arguments are always ignored for empty types Michele Caini 2022-01-13 13:41:32 +01:00
  • 8a19e8dafe storage: support chained constructors i.e. parent-to-child propagation Michele Caini 2022-01-13 12:00:15 +01:00
  • 588c056205 sparse_set/storage: minor changes, more tests Michele Caini 2022-01-11 22:56:22 +01:00
  • 866a7fb641 natvis: added info about the sparse array of a sparse set Michele Caini 2022-01-11 18:18:41 +01:00
  • a5fe42268f test: cleanup Michele Caini 2022-01-11 08:15:09 +01:00
  • 0bd6816bdd sparse_set: pop_at(pos) -> try_erase(entt) (prepare for inhibited deletions) Michele Caini 2022-01-11 08:06:20 +01:00
  • 1c6670c7a1 sparse_set: merge ::swap_and_pop and ::in_place_pop Michele Caini 2022-01-10 22:55:46 +01:00
  • 699a0eb934 sigh_storage_mixin: * always check the owner in debug * fixed a test that doesn't invoke bind Michele Caini 2022-01-10 17:22:34 +01:00
  • 72440ab937 sigh_storage_mixin: always trigger an emplace request notification (in sync with unbalanced destroy) Michele Caini 2022-01-10 00:23:18 +01:00
  • 9ad807bd58 storage: doc cleanup Michele Caini 2022-01-10 00:16:10 +01:00
  • 9fb1970ac0 sparse_set/storage: rollback ::policy(pol), incompatible with views Michele Caini 2022-01-09 16:15:47 +01:00
  • 48dfac2588 storage: * also support (in theory) fancy pointers * removed the internal ::construct function Michele Caini 2022-01-09 15:06:41 +01:00
  • c6d3714e6f sparse_set: also support (in theory) fancy pointers Michele Caini 2022-01-09 15:06:17 +01:00
  • 1345c257c3 storage: make final virtual functions private (moving towards private-only hooks) Michele Caini 2022-01-09 14:42:56 +01:00
  • 19112a8f27 storage: cleanup Michele Caini 2022-01-09 14:25:41 +01:00
  • e0979fcf3f sparse_set/storage: make empty virtual functions private (moving towards private-only hooks) Michele Caini 2022-01-08 16:14:54 +01:00
  • d514ecbd5e doc: updated documentation about deletion policies Michele Caini 2022-01-08 14:36:04 +01:00
  • a53dbb6950 registry: deletion policy is checked at runtime for groups since we can change it dynamically now Michele Caini 2022-01-08 14:34:21 +01:00
  • a03b88e0eb dense_hash_[map/set]: suppress super annoying warnings Michele Caini 2022-01-07 14:07:35 +01:00
  • 4472eb1c40 updated TODO file Michele Caini 2022-01-06 00:23:58 +01:00
  • 3443987127 meta: meta_type::invoke also searches into the base types for a candidate function Michele Caini 2022-01-04 14:55:30 +01:00
  • c73a79fd42 view: cleanup Michele Caini 2022-01-03 21:32:44 +01:00
  • dedbe3d431 storage: make shrink_to_size check for tombstones only when needed Michele Caini 2022-01-03 21:29:22 +01:00
  • 87ef713a17 dense_hash_[map/set]: cleanup Michele Caini 2022-01-03 21:17:37 +01:00
  • 4ba8ac4fa1 sparse_set: opaque emplace/insert return (eventually invalid) iterators to the inserted elements Michele Caini 2022-01-02 17:21:21 +01:00
  • e74e0531bd sparse_set/storage: minor changes Michele Caini 2022-01-01 17:16:48 +01:00
  • b67cb4bd1f sparse_set/storage: minor changes to make it easier to read for the future me :) Michele Caini 2022-01-01 17:09:34 +01:00
  • 22628c9ac4 sparse_set/storage: prepare them for a faster and opaque ::insert Michele Caini 2021-12-31 15:12:17 +01:00
  • 4dd0862fad runtime_view: * added ::iterate and ::exclude member functions to attach pools at runtime * removed vector-based constructor * removed basic_registry<...>::runtime_view member function * updated benchmarks accordingly (also reviewed them as a whole just because) Michele Caini 2021-12-30 14:41:05 +01:00
  • 0ec57fbb8d sparse_set: removed redundant check Michele Caini 2021-12-30 14:38:51 +01:00
  • 19ab584d32 doc: updated FAQs Michele Caini 2021-12-29 16:34:26 +01:00
  • 97fe978d14 runtime_view: removed redundant validity check Michele Caini 2021-12-29 00:25:11 +01:00
  • 2a74c7d897 runtime_view: support to all types of sparse set Michele Caini 2021-12-28 09:28:41 +01:00
  • cdf9c2fc6f registry: ctx internal review Michele Caini 2021-12-27 16:18:17 +01:00
  • 235f84a0d4 registry: minor changes Michele Caini 2021-12-27 15:55:35 +01:00
  • ccaa490a2f registry: removed unnecessary dispatching from non-const try_ctx Michele Caini 2021-12-27 15:54:49 +01:00
  • 8eaf11b510 sparse_set: added the possibility to change the deletion policy at runtime Michele Caini 2021-12-27 15:08:42 +01:00
  • 57a5faa448 sparse_set: updated doc Michele Caini 2021-12-26 23:31:36 +01:00
  • be87191d0a sparse_set: * opaque emplace returns bool * opaque insert returnes the number of entities actually emplaced Michele Caini 2021-12-26 17:04:10 +01:00
  • 40aabe76c7 sparse_set: fixed a throwing case that could leave the set in an inconsistent state Michele Caini 2021-12-26 16:36:30 +01:00
  • 9d304cb35c doc: fixed typo about in_place_delete Michele Caini 2021-12-23 16:30:46 +01:00
  • ee08a4966f doc: updated list of links, added D2R to it too Michele Caini 2021-12-23 14:28:05 +01:00
  • aeca69903e doc: updated similar projects Michele Caini 2021-12-22 17:53:45 +01:00
  • e1b3f2b95a registry: added weak ::storage for opaque cross registry operations Michele Caini 2021-12-22 16:18:24 +01:00
  • 25c7436652 doc: minor changes Michele Caini 2021-12-21 14:10:33 +01:00
  • 771c449621 bump the version number Michele Caini 2021-12-21 13:27:04 +01:00
  • 6fdc43199c API reference v3.9.0 Michele Caini 2021-12-21 13:20:51 +01:00
  • 61ecaa5756 storage: review to avoid code duplication Michele Caini 2021-12-21 08:29:35 +01:00
  • c05dddc56e runtime_view: slightly optimized iterators Michele Caini 2021-12-20 08:33:37 +01:00
  • 8e0747fd50 updated single include file v3.9.0 Michele Caini 2021-12-21 08:32:48 +01:00
  • 1bcc87c916 runtime_view: removed an useless check, slightly improved performance Michele Caini 2021-12-19 09:55:14 +01:00
  • 45797907d3 doc: updated toc in the README file Michele Caini 2021-12-18 17:51:02 +01:00
  • 3498dea486 registry (close #521): * remove visit * added storage_proxy_iterator (input iterator category, modeled as a random access iterator) * added ::storage() (const and non-const) to return an iterable object over all pools Michele Caini 2021-12-17 16:46:52 +01:00
  • a4aab8458b group/storage/view: minor changes Michele Caini 2021-12-17 16:44:42 +01:00
  • 534744d615 iterator: minor changes Michele Caini 2021-12-17 16:43:59 +01:00
  • dc5450b95e view: natvis friendly representation Michele Caini 2021-12-17 15:34:27 +01:00
  • 9e0e276740 dense_hash_set/map: removed unnecessary type members Michele Caini 2021-12-17 12:21:49 +01:00
  • 1c9c02f3ce view: avoid exposing internal details from iterators Michele Caini 2021-12-17 12:19:44 +01:00
  • 7774f9f402 storage: review + avoid exposing internal details from iterators Michele Caini 2021-12-17 12:19:24 +01:00
  • 5607219945 sparse_set: minor changes Michele Caini 2021-12-17 12:18:12 +01:00
  • 69ef3efd2d dense_hash_map/set: avoid exposing internal details from iterators Michele Caini 2021-12-17 12:17:56 +01:00