Title
`define_aggregate` members must be public
Status
wp
Section
[meta.reflection.define.aggregate]
Submitter
Daniel Katz

Created on 2025-11-05.00:00:00 last changed 1 month ago

Messages

Date: 2025-11-11.10:48:55

Proposed resolution:

This wording is relative to N5014.

  1. Modify [meta.reflection.define.aggregate] as indicated:

    template<reflection_range R = initializer_list<info>>
      consteval info define_aggregate(info class_type, R&& mdescrs);
    

    -7- Let C be the class represented by `class_type` and rK be the Kth reflection value in `mdescrs`. […]

    -8- Constant When: […]

    -9- Effects: Produces an injected declaration D ([expr.const]) that defines C and has properties as follows:

    • (9.1) — […]
    • (9.2) — […]
    • (9.3) — […]
    • (9.4) — […]
    • (9.5) — For each rK, there is a corresponding entity MK with public access belonging to the class scope of D with the following properties: […]
    • (9.6) — […]
Date: 2025-11-11.10:48:55

[ Kona 2025-11-08; Status changed: Immediate → WP. ]

Date: 2025-11-05.21:24:55

[ Kona 2025-11-05; approved by LWG. Status changed: New → Immediate. ]

Date: 2025-11-05.00:00:00

The access of members of classes defined by injected declarations produced by evaluations of `std::meta::define_aggregate` is unspecified.

History
Date User Action Args
2025-11-11 10:48:55adminsetmessages: + msg15702
2025-11-11 10:48:55adminsetstatus: immediate -> wp
2025-11-05 21:24:55adminsetmessages: + msg15531
2025-11-05 21:24:55adminsetstatus: new -> immediate
2025-11-05 18:04:30adminsetmessages: + msg15520
2025-11-05 00:00:00admincreate