This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Ready status.
Section: 16.4.5.2.1 [namespace.std] Status: Ready Submitter: Tomasz KamiĆski Opened: 2025-11-14 Last modified: 2026-01-16
Priority: 2
View other active issues in [namespace.std].
View all other issues in [namespace.std].
View all issues with Ready status.
Discussion:
The wording in 16.4.5.2.1 [namespace.std] p7 guarantees that reflection of the addressable function can be reliably produced. With the addition of the function parameter name, it is possible to access the parameter name of such functions:
constexpr auto p = parameters_of(^^std::endl)[0]; static_assert( identifier_of(p) == "os" ); // guaranteed?
We should clarify that parameter names used by standard library implementation
remain unspecified, by making result of has_identifier and identifier_of
unspecified on reflection of such parameter.
[2026-01-16; Reflector poll.]
Set priority to 2 after reflector poll.
[2026-01-16; LWG telecon. Move to Ready]
Proposed resolution:
This wording is relative to N5014.
Modify 16.4.5.2.1 [namespace.std], as indicated:
Let F denote a standard library function or function template. Unless F is designated an addressable function, it is unspecified if or how a reflection value designating the associated entity can be formed. For any value
pof typemeta::infothat represents a reflection of a parameter of F, it is unspecified ifhas_identifier(p)returnstrueorfalse, and ifmeta::has_identifier(p)istrue, then theNTMBSproduced bymeta::identifier_of(p)andmeta::u8identifier_of(p)is unspecified.