[meta.syn] (original) (raw)
The behavior of any function specified in namespace std::meta isimplementation-defined when a reflection of a construct not otherwise specified by this document is provided as an argument.
[Note 1:
Values of type std::meta::infocan represent implementation-specific constructs ([basic.fundamental]).
— _end note_]
[Note 2:
Many of the functions specified in namespace std::metahave semantics that can be affected by the completeness of class types represented by reflection values.
For such functions, for any reflection r such that dealias(r)represents a specialization of a templated class with a reachable definition, the specialization is implicitly instantiated ([temp.inst]).
[Example 1: template<class T> struct X { T mem;};static_assert(size_of(^^X<int>) == sizeof(int)); — _end example_]
— _end note_]