cpp/experimental/meta/P1717

Introduction
This is based on. template class tuple { consteval { int counter = 0; for... (meta::info type : reflexpr(Types)) { auto fragment = __fragment struct { typename(type) unqualid("element_", counter); };   -> fragment; ++counter; } } }; tuple tup;

same as template class tuple { bool element0; char element1; int element2; };

consteval{ ... }
the stuff filled in it is called metaprogram. It is executed where they appear in the translation unit.

typename( meta::info )
The typename of a reflection of a type can be gotten by typename operator.

unqualid
This operator makes a new unqualifiedid. It takes a few arguments, which are concatenated to form the new identifier.

->fragment
This operator sends a request to the compiler. Compiler would inject the fragment.

Class fragments
TODO:

Namespace Fragments
TODO:

Enum Fragment
TODO:

Block Fragments
TODO:

Parameterizing Fragments
TODO:

Nonlocal dependencies
TODO:

Parameter Injection
TODO:

Metaclasses
TODO: