This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of WP status.
meta::define_aggregateSection: 21.4.16 [meta.reflection.define.aggregate] Status: WP Submitter: Tomasz Kamiński Opened: 2025-11-04 Last modified: 2025-11-11
Priority: Not Prioritized
View all other issues in [meta.reflection.define.aggregate].
View all issues with WP 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.]
[Kona 2025-11-08; Status changed: Immediate → WP.]
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- […]