Commit Graph

3860 Commits

Author SHA1 Message Date
Michele Caini
7121da100a test: context aware meta sequence containers 2022-10-13 09:24:20 +02:00
Michele Caini
7bee969ebf test: context aware meta pointers (dereferencing picks the type from the right context) 2022-10-13 09:12:45 +02:00
Michele Caini
4a0a534796 test: context aware forward_as_meta 2022-10-13 09:09:11 +02:00
Michele Caini
a0041d9062 meta: resolve an ambiguity and avoid redundant default ctors (win-win) 2022-10-13 08:59:16 +02:00
Michele Caini
3dd768bb9b meta: context aware meta template 2022-10-12 19:02:30 +02:00
Michele Caini
2a307a681f test: context aware meta prop 2022-10-12 18:30:21 +02:00
Michele Caini
dd1211d021 meta: combine enable_if_t and a meta policy detection utility to avoid API changes 2022-10-12 16:06:25 +02:00
Michele Caini
09a600d68a meta: propagate API changes to the internal functions 2022-10-12 15:36:31 +02:00
Michele Caini
7c25b46513 test: minor changes 2022-10-12 15:14:58 +02:00
Michele Caini
dc42486de8 test: drop redundant using namespace 2022-10-12 14:57:46 +02:00
Michele Caini
36411faf43 test: context aware meta dtor 2022-10-12 14:56:27 +02:00
Michele Caini
a9cd565d65 test: context aware meta conv 2022-10-12 12:49:39 +02:00
Michele Caini
0adbb0ad16 test: context aware meta ctor 2022-10-12 12:43:58 +02:00
Michele Caini
db31f77d63 test: context aware meta func 2022-10-12 12:22:26 +02:00
Michele Caini
c275afef28 test: context aware meta data 2022-10-12 12:16:35 +02:00
Michele Caini
4bad4f3067 test: context aware meta bases 2022-10-12 10:28:41 +02:00
Michele Caini
d2048c037a test: bare minimum tests for meta types from different contexts 2022-10-12 10:04:28 +02:00
Michele Caini
2a39717893 test: add all desired tests for meta context support 2022-10-12 09:59:03 +02:00
Michele Caini
49c2ae0e77 test: context aware meta resolve 2022-10-12 09:58:20 +02:00
Michele Caini
869c18f150 test: prepare to test meta context support 2022-10-12 09:57:58 +02:00
Michele Caini
d79cb5ca98 meta: turn meta_handle into a context aware wrapper 2022-10-11 15:24:23 +02:00
Michele Caini
acc6390312 meta: drop make_meta, unfortunately it doesn't fit well with the context aware design 2022-10-11 14:56:25 +02:00
Michele Caini
2e59fbbccc meta:
* review pending functions to make them context aware if they aren't already
* suppress a meta_associative_container::insert warning (rvalue-to-lvalue binding)
2022-10-11 14:40:16 +02:00
Michele Caini
bec0037797 meta: fully context aware meta_any 2022-10-11 12:20:25 +02:00
Michele Caini
d08c7ddb58 meta: review meta_associative_container::insert/::erase 2022-10-11 12:11:54 +02:00
Michele Caini
696681fefa meta: context aware meta associative container 2022-10-11 11:53:17 +02:00
Michele Caini
5f9faf7a32 meta: context aware meta sequence container 2022-10-11 11:14:22 +02:00
Michele Caini
f160503aaf meta: unroll meta_type::forward_to_bases to return always scoped elements 2022-10-11 11:09:33 +02:00
Michele Caini
b1e9f75a28 meta: meta_type::construct always returns scoped meta_any objects 2022-10-11 11:01:50 +02:00
Michele Caini
91da98353d meta: keep track of the pending changes 2022-10-11 10:28:48 +02:00
Michele Caini
bc86ceb707 meta: drop resolve trampoline function, no longer required 2022-10-10 18:13:59 +02:00
Michele Caini
0baf316e5f meta: add partial support for meta contexts to meta containers 2022-10-10 18:13:20 +02:00
Michele Caini
082605f9d3 meta: prepare meta containers to support context injection 2022-10-10 18:03:30 +02:00
Michele Caini
0fdd7d7a3a meta: meta_any::allow_cast returns a scoped value now 2022-10-10 16:46:43 +02:00
Michele Caini
eee59e6af9 meta: track pending changes as much as possible 2022-10-10 16:46:43 +02:00
Michele Caini
223a8628e3 meta: meta_any::allow_cast propagates the context now 2022-10-10 16:46:42 +02:00
Michele Caini
c0bb603210 meta: meta_any::operator* propagates the context now 2022-10-10 16:46:42 +02:00
Michele Caini
2981d8746a meta: avoid returning contex-less meta_any from meta objects 2022-10-10 16:46:42 +02:00
Michele Caini
c06280894b meta: make internal meta_invoke accept meta contexts and use them properly 2022-10-10 16:46:42 +02:00
Michele Caini
2f2bdcac4d meta:
* make meta_getter use properly meta contexts
* remove the meta context from the argument list of meta setters (not required)
2022-10-10 16:46:42 +02:00
Michele Caini
2739964a1f meta: make meta_dispatch support and use meta contexts 2022-10-10 16:46:42 +02:00
Michele Caini
c3a2a44830 meta: drop useless [[maybe_unused]] 2022-10-10 16:46:42 +02:00
Michele Caini
37a2c3b76c meta: make meta_construct support and use meta contexts 2022-10-10 16:46:42 +02:00
Michele Caini
146a7b2aa3 meta: rollback redundant functions (reduce the number of generated symbols) 2022-10-10 16:46:42 +02:00
Michele Caini
7e093c951f meta:
* use different function names to disambiguate utility calls
* drop base class meta_policy for policies, no longer required
2022-10-10 16:46:42 +02:00
Michele Caini
4901188409 meta: use meta_any context aware constructors if possible 2022-10-10 16:46:42 +02:00
Michele Caini
15d78f80a6 meta: context aware constructors for meta_any 2022-10-10 16:46:42 +02:00
Michele Caini
d61dff45c1 meta: introduce meta_ctx_arg[_t] 2022-10-10 16:46:42 +02:00
Michele Caini
34abddfbbd meta: move the meta context argument to the first slot of the argument lists 2022-10-10 16:46:42 +02:00
Michele Caini
238ebe4e8f meta: try to get around invalid code that msvc accepts happily otherwise 2022-10-10 16:46:42 +02:00