This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Immediate status.
meta::define_aggregateSection: 21.4.16 [meta.reflection.define.aggregate] Status: Immediate Submitter: Tomasz Kamiński Opened: 2025-11-04 Last modified: 2025-11-04
Priority: Not Prioritized
View other active issues in [meta.reflection.define.aggregate].
View all other issues in [meta.reflection.define.aggregate].
View all issues with Immediate status.
Discussion:
Addresses US 127-190NK is defined as an identifier (see 11.4.1) and should not be compared with code or with string literals in bullet 8.4. Similarly, 9.5.1 should not talk about “character sequence encoded by NK”
[Kona 2025-11-04; approved by LWG. Status changed: New → Immediate.]
Proposed resolution:
This wording is relative to N5014.
Modify 21.4.16 [meta.reflection.define.aggregate] as indicated:
template<reflection_range R = initializer_list<info>> consteval info define_aggregate(info class_type, R&& mdescrs);
-7- […]
-8- Constant When:
- -8.1- […]
- -8.2- […]
- -8.3- […]
- -8.4- for every pair (rK, rL) where K<L, if NK is not ⊥ and NL is not ⊥, then either:
- -8.4.1-
NKNK is not the same identifier as NL or!=NL istrue- -8.4.2-
NKNK is the identifier== u8"_"istrue_(u+005f low line).-9- Effects: Produces an injected declaration D (7.7 [expr.const]) that defines C and has properties as follows:
- -9.1- […]
- -9.2- […]
- -9.3- […]
- -9.4- […]
- -9.5- for every rK, there is corresponding entity MK belonging to the class scope of D with the following properties: K<L, if NK is not ⊥ and NL is not ⊥, then either:
- -9.5.1- if NK is ⊥, MK is an unnamed bit-field. Otherwise, MK is a non-static data member whose name is the identifier
determined by the character sequence encoded byNKin UTF-8.- -9.5.2- […]
- -9.5.3- […]
- -9.5.4- […]
- -9.5.5- […]
- -9.6- […]