Skip to content

P2996R13 <meta>: Reflection #5606

Description

@StephanTLavavej

WG21-P2996R13 <meta>: Reflection
WG21-P3096R12 Function Parameter Reflection
WG21-P3293R3 Splicing A Base Class Subobject
WG21-P3394R4 Annotations For Reflection
WG21-P3491R3 is_string_literal(), define_static_string(), define_static_object(), define_static_array()
WG21-P3560R2 Error Handling In Reflection
WG21-P3795R2 Miscellaneous Reflection Cleanup
WG21-P3856R8 is_structural_type(), is_structural
WG21-P3914R0 Assorted NB Comment Resolutions For Kona 2025 (sections 2.6 and 2.7)
WG21-P3923R0 Additional NB Comment Resolutions For Kona 2025 (section 2.7)
WG21-P4156R0 Rename meta::has_ellipsis_parameter To meta::is_vararg_function
LWG-4316 {can_}substitute specification is ill-formed
LWG-4416 <meta> should include <compare>
LWG-4422 meta::access_context should be a consteval-only type
LWG-4423 meta::data_member_spec allows negative bit-field widths
LWG-4424 meta::define_aggregate should require a class type
LWG-4426 Clarify what meta::reflect_constant_string considers a string literal
LWG-4427 meta::dealias needs to work with things that aren't entities
LWG-4428 Metafunctions should not be defined in terms of constant subexpressions
LWG-4429 meta::alignment_of should exclude data member description of bit-field
LWG-4432 Clarify element initialization for meta::reflect_constant_array
LWG-4433 Incorrect query for C language linkage
LWG-4434 meta::is_accessible does not need to consider incomplete D
LWG-4435 meta::has_identifier doesn't handle all types
LWG-4442 Clarify expr and fn for meta::reflect_object and meta::reflect_function
LWG-4443 Clean up identifier comparisons in meta::define_aggregate
LWG-4449 define_aggregate members must be public
LWG-4478 meta::has_identifier is not specified for annotations
LWG-4483 Multidimensional arrays are not supported by meta::reflect_constant_array and related functions
LWG-4496 Precedes vs Reachable in [meta.reflection]
LWG-4517 data_member_spec should throw for cv-qualified unnamed bit-fields
LWG-4537 Improve define_static_array
LWG-4555 Remove is_consteval_only
LWG-4556 Unclear properties of reflection strings
LWG-4567 Feature-test macro value for apply_result, is_applicable

These are obviously Core papers with major Library impact. (Some were voted in as purely Library papers.)

Feature-test macros:

#define __cpp_lib_define_static 202506L
#define __cpp_lib_is_structural 202603L
#define __cpp_lib_reflection    202603L

INCREASED feature-test macro, note that LWG-4567 increased it to 202506L for WG21-P1317R2 tracked by #5620 and then further increased it to:

#define __cpp_lib_apply 202603L

My VS-PR-738409 taught the IDE about this new extensionless header.

Note: We are not yet accepting PRs for C++26 features.

Metadata

Metadata

Assignees

No one assigned

    Labels

    compilerCompiler work involvedcxx26C++26 feature

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions