Commit Graph

1224 Commits

Author SHA1 Message Date
Michele Caini
0500f155e6 delegate: ::instance() -> ::data() 2022-02-02 08:02:03 +01:00
Michele Caini
922bfbf724 test: fixed includes (while trying iwyu) 2022-02-01 23:01:04 +01:00
Michele Caini
eec867bc9e enum:
* remove unused functions
* avoid errors due to narrowing conversions
2022-01-31 08:44:24 +01:00
Michele Caini
5a956d2914 poly: compile-time checks on embedded vtables + code coverage 2022-01-30 16:53:27 +01:00
Michele Caini
e0e29cc363 test: cleanup 2022-01-30 16:52:51 +01:00
Michele Caini
9fc8e03f72 poly: refined fwd file, updated (typed-)tests 2022-01-29 17:32:15 +01:00
Michele Caini
2fbc08b606 test: a handful of minor changes to please all compilers from the CI and remove some lambdas 2022-01-29 11:31:57 +01:00
Michele Caini
e4897f709e test: merge poly tests in a single file, use typed tests to reduce the boilerplate 2022-01-29 10:51:25 +01:00
Michele Caini
84445aa28b test: use gtest typed test suite for enums 2022-01-29 10:50:33 +01:00
Michele Caini
0795f9a9f2 test: separate death tests as suggested in the gtest doc 2022-01-29 10:47:22 +01:00
Michele Caini
a74f0ca370 test: code coverage 2022-01-28 14:06:22 +01:00
Michele Caini
99c2299ed4 test: added missing typename keyword 2022-01-28 14:06:22 +01:00
Michele Caini
39a08f17da sparse_set: clear no longer creates tombstones 2022-01-28 14:06:22 +01:00
Michele Caini
57de1187fc sparse_set/storage:
* reintroduce the swap_and_pop vs in_place_pop split for perf reasons
* rollback to a model with two iterators on virtual functions
* even faster range-erase/clear
2022-01-28 14:06:22 +01:00
Michele Caini
2bba6d4c0d test: code coverage 2022-01-28 14:06:22 +01:00
Michele Caini
2f03b225f7 sparse_set: remove the cursed ::slot function (finally) 2022-01-28 14:06:22 +01:00
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