This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118f. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-11-07
(From submission #796.)
Consider:
[[=1]] void f();
constexpr auto R = annotations_of(^^f)[0];
template <std::meta::info> struct TCls {};
R could be exported across module boundaries, which would require TCls<R> to be mangled.
Proposed resolution (approved by CWG 2025-11-07):
Change in 6.7 [basic.link] bullet 16.4 as follows:
- ...
- it is a reflection value (6.9.2 [basic.fundamental]) that represents
- an entity, value, or object that is TU-local,
- an annotation (9.13.12 [dcl.attr.annotation]),
- a direct base class relationship (D, B) (11.7.1 [class.derived.general]) for which either D or B is TU-local, or
- a data member description (T, N, A, W, NUA) (11.4.1 [class.mem.general]) for which T is TU-local.