Many types in the standard library have additional meta-data defined in them. For example, all container types have a value_type defined which tells us the type of the items that are stored in the collection. Iterators have tags that tell us to which kind the iterator belongs to.
The problem is that this meta-information is mostly hard-coded. Sometimes this is not enough. For example, when we work with expression templates and other similar template-heavy techniques, it is useful to be able to calculate the meta-information bit by bit while the meta-program is being executed.
Since everything in a TMP program is immutable, we’ll need to use tricks to simulate mutability and step-by-step generation of the type meta-data. In this talk, we will use and explain many new C features like fold expressions, concepts, type lists and index sequences, and the code will extensively use move semantics to generate a cleaner assembly code for type instantiation.
1 view
889
280
2 months ago 00:03:31 1
The Fade Out Line - Phoebe Killdeer and The Short Straws (official video)
1 year ago 00:03:00 1
Srpska olimpijska himna - Srbija navija!!!
2 years ago 00:06:24 1
LENA STAMENKOVIC - RJABINUSKA i AKO JE VREDELO ISTA
4 years ago 00:59:34 1
Ivan Čukić — Compile time type tagging
5 years ago 00:50:55 1
New C++ features for writing DSLs . Ivan Čukić. CoreHard Spring 2019