Commit Graph

2156 Commits

Author SHA1 Message Date
Michele Caini
0cec8de164 dense_hash_map/set: suppress warnings due to integral conversions 2022-01-25 09:09:37 +01:00
Michele Caini
1caa8d923d sparse_set/storage: iterator's ::index returns the right offset 2022-01-23 13:05:45 +01:00
Michele Caini
4fa51f8c52 type_traits: removed is_iterator_type[_v], it may be ambiguous and cause errors 2022-01-22 16:59:17 +01:00
Michele Caini
a8be765aa8 registry: disable optimizations based on is_iterator_type, free pools allow to implement them on the user side and more efficiently when needed 2022-01-22 16:52:45 +01:00
Michele Caini
26ba137424 registry: template ::storage support to const qualified types 2022-01-21 19:00:49 +01:00
Michele Caini
e6006663ec registry: remove [[nodiscard]] from the template ::storage method 2022-01-21 11:08:07 +01:00
Michele Caini
3878a696af registry: standalone context type (close #575) 2022-01-20 09:37:31 +01:00
Michele Caini
a7d4a980ba *: more consistent policy for final classes 2022-01-19 12:41:50 +01:00
Michele Caini
2196db562e registry:: non-template storage(id) returns an iterator rather than a naked pointer 2022-01-19 12:15:22 +01:00
Michele Caini
af8ec7b5dd registry: remove/erase dispatch based on the iterator type 2022-01-18 08:30:43 +01:00
Michele Caini
7fa29e7341 registry: strict check on storage types to prevent subtle bugs in case of errors 2022-01-18 07:45:03 +01:00
Michele Caini
9c6950d163 hashed_string: I managed to crash clang but I remain humble and try to help it :) 2022-01-17 14:02:02 +01:00
Michele Caini
5d4cbfe8e7 hashed_string: make it work with vs toolset v141 2022-01-17 13:49:11 +01:00
Michele Caini
4747422110 *: added a bunch of final here and there 2022-01-17 13:43:55 +01:00
Michele Caini
7d1416ac74 hashed_string: store size information (close #824) 2022-01-17 08:25:56 +01:00
Michele Caini
2efaa7af7b *: allocator aware classes fail to compile if allocator's value type and container's value type differ 2022-01-15 16:48:33 +01:00
Michele Caini
68e259870f sparse_set/storage:
* support ::erase suppression
* support ::emplace with invalid entities when suppressed
* support ::erase/::remove with invalid entities when suppressed
2022-01-15 00:48:07 +01:00
Michele Caini
29c2c94784 doc: suppress warnings from doc generation 2022-01-15 00:45:35 +01:00
Michele Caini
3f2e1d078f sparse_set/storage: replace the whole try_insert machinery with a force_back parameter to try_emplace 2022-01-15 00:44:47 +01:00
Michele Caini
0a259da05a sparse_set: opaque insert always appends elements 2022-01-14 14:06:41 +01:00
Michele Caini
1b22fe6de2 storage: insert for non-empty types always appends elements 2022-01-13 15:01:06 +01:00
Michele Caini
3b72e30c36 sparse_set: use the right iterator in the catch branch of insert 2022-01-13 14:44:27 +01:00
Michele Caini
9eba103de9 storage: insert for empty types always appends elements 2022-01-13 14:05:33 +01:00
Michele Caini
ecadee3876 sparse_set: added basic virtual try_insert (insert does not use it yet) 2022-01-13 13:47:22 +01:00
Michele Caini
699f9105ae storage: arguments are always ignored for empty types 2022-01-13 13:41:32 +01:00
Michele Caini
8a19e8dafe storage: support chained constructors i.e. parent-to-child propagation 2022-01-13 12:00:15 +01:00
Michele Caini
588c056205 sparse_set/storage: minor changes, more tests 2022-01-11 22:56:22 +01:00
Michele Caini
0bd6816bdd sparse_set: pop_at(pos) -> try_erase(entt) (prepare for inhibited deletions) 2022-01-11 08:06:20 +01:00
Michele Caini
1c6670c7a1 sparse_set: merge ::swap_and_pop and ::in_place_pop 2022-01-10 22:55:46 +01:00
Michele Caini
699a0eb934 sigh_storage_mixin:
* always check the owner in debug
* fixed a test that doesn't invoke bind
2022-01-10 17:22:34 +01:00
Michele Caini
72440ab937 sigh_storage_mixin: always trigger an emplace request notification (in sync with unbalanced destroy) 2022-01-10 00:23:18 +01:00
Michele Caini
9ad807bd58 storage: doc cleanup 2022-01-10 00:16:10 +01:00
Michele Caini
9fb1970ac0 sparse_set/storage: rollback ::policy(pol), incompatible with views 2022-01-09 16:15:47 +01:00
Michele Caini
48dfac2588 storage:
* also support (in theory) fancy pointers
* removed the internal ::construct function
2022-01-09 15:06:41 +01:00
Michele Caini
c6d3714e6f sparse_set: also support (in theory) fancy pointers 2022-01-09 15:06:17 +01:00
Michele Caini
1345c257c3 storage: make final virtual functions private (moving towards private-only hooks) 2022-01-09 14:42:56 +01:00
Michele Caini
19112a8f27 storage: cleanup 2022-01-09 14:25:41 +01:00
Michele Caini
e0979fcf3f sparse_set/storage: make empty virtual functions private (moving towards private-only hooks) 2022-01-08 16:14:54 +01:00
Michele Caini
a53dbb6950 registry: deletion policy is checked at runtime for groups since we can change it dynamically now 2022-01-08 14:34:21 +01:00
Michele Caini
a03b88e0eb dense_hash_[map/set]: suppress super annoying warnings 2022-01-07 14:07:35 +01:00
Michele Caini
3443987127 meta: meta_type::invoke also searches into the base types for a candidate function 2022-01-04 14:55:30 +01:00
Michele Caini
c73a79fd42 view: cleanup 2022-01-04 13:53:00 +01:00
Michele Caini
dedbe3d431 storage: make shrink_to_size check for tombstones only when needed 2022-01-03 21:30:53 +01:00
Michele Caini
87ef713a17 dense_hash_[map/set]: cleanup 2022-01-03 21:17:37 +01:00
Michele Caini
4ba8ac4fa1 sparse_set: opaque emplace/insert return (eventually invalid) iterators to the inserted elements 2022-01-02 17:21:21 +01:00
Michele Caini
e74e0531bd sparse_set/storage: minor changes 2022-01-02 16:51:08 +01:00
Michele Caini
b67cb4bd1f sparse_set/storage: minor changes to make it easier to read for the future me :) 2022-01-01 17:09:34 +01:00
Michele Caini
22628c9ac4 sparse_set/storage: prepare them for a faster and opaque ::insert 2021-12-31 17:23:50 +01:00
Michele Caini
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)
2021-12-30 14:41:05 +01:00
Michele Caini
0ec57fbb8d sparse_set: removed redundant check 2021-12-30 14:38:51 +01:00