Michele Caini
eedecc07fd
meta: avoid tricks and whatnot with meta_arg_node
2022-09-08 10:28:49 +02:00
Michele Caini
dcea36de7a
meta: try to share common code if possibile
2022-09-07 17:51:11 +02:00
Michele Caini
ed0e3f4435
meta: share common code
2022-09-07 16:17:29 +02:00
Michele Caini
8595e4bd99
meta: review meta containers to further reduce memory usage
2022-09-07 14:58:44 +02:00
Michele Caini
e31b81294d
meta: minor changes for consistency
2022-09-07 14:54:34 +02:00
Michele Caini
ac6e9cf2f0
meta: further reduce the number of instantiations
2022-09-07 14:32:15 +02:00
Michele Caini
dac4ae94c0
meta: further reduce the number of instantiations
2022-09-07 12:48:40 +02:00
Michele Caini
b31b585805
natvis: update meta
2022-09-07 11:33:15 +02:00
Michele Caini
1368c56655
meta: avoid storing meta type nodes by reference in the meta factory
2022-09-07 11:32:49 +02:00
Michele Caini
6cab12a14f
test: code coverage
2022-09-06 23:42:12 +02:00
Michele Caini
924a09a9c5
meta: minor changes (to suppress warnings)
2022-09-06 23:42:12 +02:00
Michele Caini
e4f6293f42
meta: use the hot/cold model with meta_type_node
2022-09-06 23:42:12 +02:00
Michele Caini
f197b32b02
meta: cleanup
2022-09-06 23:42:12 +02:00
Michele Caini
b80ab36418
meta: use the hot/cold model with meta_func_node
2022-09-06 23:42:12 +02:00
Michele Caini
d5588333f7
meta: use the hot/cold model with meta_data_node
2022-09-06 23:42:12 +02:00
Michele Caini
10755275ea
meta: use the hot/cold model with meta_prop_node
2022-09-06 23:42:12 +02:00
Michele Caini
a30cecdf36
meta: use a shared_pointer to void for meta properties
2022-09-06 23:42:12 +02:00
Michele Caini
0068afa06c
meta: cleanup
2022-09-06 23:42:12 +02:00
Michele Caini
38597a6499
meta: hot/cold data to allow copies of meta nodes
2022-09-06 23:42:12 +02:00
Michele Caini
65ee240e8e
meta: add a test (and a fix) for a corner case of meta_reset
2022-09-06 23:42:12 +02:00
Michele Caini
336bcf4d11
test: minor changes
2022-09-06 23:42:12 +02:00
Michele Caini
ed74a4c213
meta: explicit initialization of all values of a meta object
2022-09-06 23:42:12 +02:00
Michele Caini
3e29617da8
doc: meta
2022-09-06 23:42:11 +02:00
Michele Caini
715b3e450f
meta: make meta_factory<...>::type id argument required
2022-09-06 23:42:11 +02:00
Michele Caini
1ab10f3b28
meta: range iterator is an input iterator but models a random access iterator ( close #927 )
2022-09-06 23:42:11 +02:00
Michele Caini
304d8a80be
meta: avoid warnings due to unused variables
2022-09-06 23:42:11 +02:00
Michele Caini
560a3f664e
meta: drop meta_func_node::watermark, compare pointers to invoke instead
2022-09-06 23:42:11 +02:00
Michele Caini
41081204f9
tests: minor changes
2022-09-06 23:42:11 +02:00
Michele Caini
b895dfc901
nativs: review meta after the rework
2022-09-06 23:42:11 +02:00
Michele Caini
93a1d65103
meta: meta_type_node is no longer static
2022-09-06 23:42:11 +02:00
Michele Caini
443d53400d
meta: decouple meta containers and meta_type_node
2022-09-06 23:42:11 +02:00
Michele Caini
9725582089
meta: use insert_or_assign rather than operator[]
2022-09-06 23:42:11 +02:00
Michele Caini
cd2634a5d4
meta: use lvalue refs to meta any to construct meta handles
2022-09-06 23:42:11 +02:00
Michele Caini
798d1a4f9e
meta: add missing template keywords (love you, msvc)
2022-09-06 23:42:11 +02:00
Michele Caini
e13996f68a
meta avoid shadow warnings
2022-09-06 23:42:11 +02:00
Michele Caini
1ee077d511
meta: minor internal changes (try to make all compilers happy)
2022-09-06 23:42:11 +02:00
Michele Caini
ccf301c73d
test: review/minor changes
2022-09-06 23:42:11 +02:00
Michele Caini
461fe715b7
meta: decouple meta_template_node and meta_type_node
2022-09-06 23:42:11 +02:00
Michele Caini
9549bb4f4d
meta: decouple meta_func_node and meta_type_node
2022-09-06 23:42:11 +02:00
Michele Caini
0215722103
meta: decouple meta_data_node and meta_type_node
2022-09-06 23:42:11 +02:00
Michele Caini
7c6606f27e
meta: decouple meta_base_node and meta_type_node
2022-09-06 23:42:11 +02:00
Michele Caini
f0b10965fb
meta: decouple meta_prop_node and meta_type_node
2022-09-06 23:42:10 +02:00
Michele Caini
53f2bb7701
meta: meta_func_node is no longer static
2022-09-06 23:42:10 +02:00
Michele Caini
945e61d668
meta:
...
* meta_prop_node is no longer static
* we can attach multiple properties at different times
* meta property keys are of type id_type only
* removed meta_factory::props (use prop instead)
* meta range returns id and meta object pairs now
* removed mera_prop::key (id returned by meta ranges)
2022-09-06 23:42:10 +02:00
Michele Caini
e74c4bb684
meta: improve internal meta_from_void function
2022-09-06 23:42:10 +02:00
Michele Caini
a8eebcb0e2
meta: make meta_range iterators return an id and meta object pair
2022-09-06 23:42:10 +02:00
Michele Caini
1581aa1cf5
meta: meta_ctor_node is no longer static
2022-09-06 23:42:10 +02:00
Michele Caini
839a2cc86d
meta: removed meta_data::id
2022-09-06 23:42:10 +02:00
Michele Caini
3062114f0c
meta: meta_data_node is no longer static
2022-09-06 23:42:10 +02:00
Michele Caini
ab3abf23ed
meta: avoid allocations for meta_template_node
2022-09-06 23:42:10 +02:00