Michele Caini
37497295fb
sparse_set/storage:
...
* refine the try_erase to make it accept an iterator and a count (easier to work with at the call site)
* added a test for the stable clear
* added a note for future improvements
2022-01-28 14:06:21 +01:00
Michele Caini
49a066714a
test: minor changes
2022-01-28 14:00:33 +01:00
Michele Caini
7eec610d21
container:
...
* dense_hash_map -> dense_map
* dense_hash_set -> dense_set
2022-01-28 13:35:16 +01:00
Michele Caini
a98000cf3b
test: I am the winner of the best error message ever but I remain humble :)
2022-01-25 14:56:00 +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
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
2196db562e
registry:: non-template storage(id) returns an iterator rather than a naked pointer
2022-01-19 12:15:22 +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
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
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
9eba103de9
storage: insert for empty types always appends elements
2022-01-13 14:05:33 +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
a5fe42268f
test: cleanup
2022-01-11 08:15:09 +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
9fb1970ac0
sparse_set/storage: rollback ::policy(pol), incompatible with views
2022-01-09 16:15:47 +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
4ba8ac4fa1
sparse_set: opaque emplace/insert return (eventually invalid) iterators to the inserted elements
2022-01-02 17:21:21 +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
8eaf11b510
sparse_set: added the possibility to change the deletion policy at runtime
2021-12-27 15:08:42 +01:00
Michele Caini
be87191d0a
sparse_set:
...
* opaque emplace returns bool
* opaque insert returnes the number of entities actually emplaced
2021-12-26 17:04:10 +01:00
Michele Caini
40aabe76c7
sparse_set: fixed a throwing case that could leave the set in an inconsistent state
2021-12-26 16:36:30 +01:00
Michele Caini
e1b3f2b95a
registry: added weak ::storage for opaque cross registry operations
2021-12-22 16:21:55 +01:00
Michele Caini
1bcc87c916
runtime_view: removed an useless check, slightly improved performance
2021-12-19 10:25:55 +01:00
Michele Caini
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
2021-12-17 17:05:14 +01:00
Michele Caini
69ef3efd2d
dense_hash_map/set: avoid exposing internal details from iterators
2021-12-17 16:57:10 +01:00
Michele Caini
36c118922b
group/view:
...
* added default constructors to input iterators
* make sure that a default constructed iterator compares equal to end()
2021-12-17 08:39:54 +01:00
Michele Caini
c5cb1d9bcc
storage/view/group:
...
* added extended_storage_iterator and storage<T...>::each function to return an extended iterable object
* use extended_storage_iterator and iterable_adaptor everywhere to avoid code duplication
2021-12-16 12:31:44 +01:00
Michele Caini
db9e59ede1
core: added iterable_adaptor
2021-12-16 12:29:20 +01:00
Michele Caini
cc9b1b0a05
sparse_set: added const_iterator/const_reverse_iterator and cbegin/cend/crbegin/crend
2021-12-16 08:52:13 +01:00
Michele Caini
69ddf4936e
registry: remove the visit overload that also takes an entity
2021-12-14 22:57:10 +01:00
Michele Caini
12d177a6c8
registry: removed ::orphans, use ::each/::orphan instead (no way to further optimize it)
2021-12-13 10:00:32 +01:00
Michele Caini
54717dc7e2
test: minor changes
2021-12-12 17:45:13 +01:00
Michele Caini
631c909abd
group: drop conceptually broken reverse iterators
2021-12-12 17:45:06 +01:00
Michele Caini
b86ffc2370
view: drop conceptually broken reverse iterators
2021-12-12 01:11:20 +01:00
Michele Caini
672c542f99
group: removed ::data, use ::handle<T>().data() and ::storage<T>().data() instead
2021-12-10 09:30:16 +01:00
Michele Caini
f741fe48a1
group: added ::handle to non-owning groups
2021-12-10 08:25:46 +01:00
Michele Caini
8e6439c3d1
group: removed ::raw, use ::storage().raw() instead
2021-12-09 17:49:18 +01:00
Michele Caini
b54d358feb
view: removed ::data for single type views, use ::storage().data() instead
2021-12-09 09:37:17 +01:00
Michele Caini
78baa7b12d
view: removed ::raw for single type views, use ::storage().raw() instead
2021-12-09 09:21:37 +01:00
Michele Caini
52de43e329
registry: removed ::empty<T>(), use ::view<T>().empty() or ::storage<T>().empty() instead
2021-12-09 08:20:34 +01:00
Michele Caini
49ddacaac0
registry: removed ::size<T>(), use ::view<T>().size() or ::storage<T>().size() instead
2021-12-08 15:17:35 +01:00
Michele Caini
f30ea02794
registry:
...
* removed registry::reserve<Component> (use registry.storage<Component>.reserve(v) instead)
* removed registry::capacity<Component> (use registry.storage<Component>.capacity() instead)
* removed registry::shrink_to_fit<Component> (use registry.storage<Component>.shrink_to_fit() instead)
2021-12-05 16:20:14 +01:00