Michele Caini
f86bc31cbb
meta: shared lookup function to avoid unnecessary casts when searching for a meta constructor
2021-09-13 16:37:58 +02:00
Michele Caini
4a08ca4b5e
meta: minor changes
2021-09-13 14:58:08 +02:00
Michele Caini
e857aa0640
meta: extrapolate can_cast_or_convert
2021-09-13 12:57:06 +02:00
Michele Caini
d3c98ad334
meta_factory: cleanup
2021-09-13 12:56:39 +02:00
Michele Caini
00dadfe14d
meta: reduce the size of instantiated symbols in meta_factory
2021-09-13 12:55:07 +02:00
Michele Caini
f26fa92d47
handle: extended operator==/!=
2021-09-12 18:39:20 +02:00
Michele Caini
7458072df2
hashed_string ( close #781 ):
...
* operator< and operator<=
* operator> and operator>=
2021-09-12 18:26:08 +02:00
Michele Caini
89aa2a1902
*: operator== is not defined as member if unnecessary
2021-09-12 17:52:29 +02:00
Michele Caini
7ab08779dc
type_info: temporarily reintroduce type_info::index for performance reasons
2021-09-10 11:29:05 +02:00
Michele Caini
46b686910b
any:
...
* reintroduced operation::TYPE to avoid fat any types
* added optional req parameter to data
* much faster any_cast
* much faster operator==
* internal review
2021-09-10 11:22:07 +02:00
Michele Caini
940a799207
* : minor changes
2021-09-10 00:04:23 +02:00
Michele Caini
778cee3b27
any:
...
* operator bool doesn't rely on the vtable
* valid but unspecified state after move converts to true
* compare type info objects to avoid future errors if the logic changes
2021-09-09 17:03:36 +02:00
Michele Caini
fb3252732b
type_info: name rollback, hash_code -> hash (why should I introduce a breaking change to match a terrible name from the standard library after all?)
2021-09-09 14:49:39 +02:00
Michele Caini
608f7b75e2
any: avoid creating constexpr variables since constexpr-ness isn't guaranteed
2021-09-09 14:14:58 +02:00
Michele Caini
83853c3dee
any:
...
* ::type() returns the object type if any, type_id<void>() otherwise
* avoid indirection when accessing the type
2021-09-09 14:00:08 +02:00
Michele Caini
8a0343ad6b
any: avoid creating type_info objects if unnecessary
2021-09-09 11:44:36 +02:00
Michele Caini
92d43ce620
core: rename type_seq to type_index
2021-09-09 09:53:29 +02:00
Michele Caini
6943822fed
type_info:
...
* make the API closer to that of std::type_info
* remove the ::seq member function
* rename :.hash to ::hash_code
2021-09-09 09:44:58 +02:00
Michele Caini
aa146c4125
type_info: avoid testing constexpr-ness because older compilers don't guarantee it
2021-09-09 09:04:04 +02:00
Michele Caini
b8ec6babb5
any:
...
* reduced vtable size
* internal rework
2021-09-09 00:40:06 +02:00
Michele Caini
505f4a2b4f
type_info:
...
* constexpr support
* reduce instantiations
* reduce function calls/indirection
2021-09-09 00:20:20 +02:00
Michele Caini
1bb0d017c3
type_info: removed useless friend declaration
2021-09-08 23:43:28 +02:00
Michele Caini
f33ce615d9
meta: suppress warnings due to ignored qualifiers on return types
2021-09-08 11:35:50 +02:00
Michele Caini
0edb49d7c6
core: minor changes
2021-09-08 09:13:54 +02:00
Michele Caini
1fa5a03605
test: code coverage
2021-09-07 17:13:53 +02:00
Michele Caini
fc6bda5cd8
meta: turned an useless function into a constexpr value
2021-09-07 08:54:34 +02:00
Michele Caini
59589b6a71
meta: refine the conversion helper (mostly to please the toolset v141)
2021-09-06 14:51:35 +02:00
Michele Caini
57b0624a0a
storage: suppress warnings for unused variables
2021-09-06 12:29:52 +02:00
Michele Caini
2f22395eea
meta:
...
* a more robust meta_any::allow_cast (reviewed all overloads)
* removed internal meta_info dispatcher to reduce useless instantiations
* reviewed meta_conversion_helper
2021-09-06 10:19:23 +02:00
Michele Caini
21bc8d4dfb
meta: add meta_conv support to references
2021-09-04 11:43:47 +02:00
Michele Caini
2e74fd8196
meta: const correctness
2021-09-04 11:42:03 +02:00
Michele Caini
fee48ab04c
meta: also please toolset v141 :)
2021-09-03 18:55:51 +02:00
Michele Caini
591f885e67
meta: automatic conversion function to underlying type for enums (see #735 )
2021-09-03 18:23:49 +02:00
Michele Caini
ef803016c0
meta: suppress a shadow warning
2021-09-03 17:31:15 +02:00
Michele Caini
bac51045e5
meta: automatic arithmetic conversions (see #735 )
2021-09-03 14:37:52 +02:00
Michele Caini
cb5e9393a4
meta: internal changes
2021-09-03 11:42:20 +02:00
Michele Caini
097509dd2a
view: add operator[] to access (eventually unwrapped) components by entity ( close #775 )
2021-09-02 16:05:46 +02:00
Michele Caini
6cd44248c7
core: added tuple header and unwrap_tuple utility
2021-09-02 15:32:52 +02:00
Michele Caini
1fd61fbcef
meta: added missing [[maybe_unused]] to suppress warnings
2021-09-01 10:06:28 +02:00
Michele Caini
cd2245ef03
doc: fixed typo
2021-09-01 10:03:16 +02:00
Michele Caini
5ddc746915
memory: turn is_power_of_two in a constexpr function
2021-08-31 17:39:47 +02:00
Michele Caini
f7d67067ad
test: increase code coverage
2021-08-30 17:06:31 +02:00
Michele Caini
d1a824f76e
sparse_set/storage: cleanup
2021-08-30 16:53:20 +02:00
Michele Caini
d7b0fc09d7
storage: refine ::release_memory
2021-08-30 16:36:45 +02:00
Michele Caini
2d07a6ec1f
storage:
...
* decouple iterator from allocator
* test iterator aliases to avoid future regressions
* internal changes/rework
2021-08-30 16:18:28 +02:00
Michele Caini
014ba5a7aa
sparse_set:
...
* test iterator aliases to avoid future regressions
* internal changes/rework
2021-08-30 16:09:59 +02:00
Michele Caini
2f12e524dd
config/sparse_set/storage: avoid power-of-two check at config level
2021-08-29 23:27:04 +02:00
Michele Caini
ea6af75e8e
memory: added utility function fast_mod
2021-08-29 23:04:40 +02:00
Michele Caini
a595c6ec6f
memory:
...
* added utility class is_power_of_two
* added variable template is_power_of_two_v
2021-08-29 22:15:33 +02:00
Michele Caini
98f785d199
memory: make to_address [[nodiscard]]
2021-08-29 22:00:05 +02:00