Skip to content

Commit 7e058a9

Browse files
committed
Set priority and tweak wording of 4422
1 parent 9f0abb7 commit 7e058a9

File tree

1 file changed

+41
-3
lines changed

1 file changed

+41
-3
lines changed

xml/issue4422.xml

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<section><sref ref="[meta.reflection.access.context]"/></section>
77
<submitter>Jakub Jelinek</submitter>
88
<date>20 Oct 2025</date>
9-
<priority>99</priority>
9+
<priority>2</priority>
1010

1111
<discussion>
1212
<p>
@@ -15,6 +15,17 @@ objects, which would make it a consteval-only type. But we don't actually
1515
specify any members, so nothing in the current specification says you can't
1616
persist one until runtime.
1717
</p>
18+
19+
<note>2025-10-23; Reflector poll. Adjust proposed wording.</note>
20+
<p>
21+
Set priority to 2 after reflector poll.
22+
</p>
23+
<p>
24+
Reflector discussion requested that 'non-aggregate' and 'consteval-only' both
25+
be put in paragraph 3, adjacent to 'structural'.
26+
Also added a drive-by editorial change to paragraph 1.
27+
</p>
28+
1829
</discussion>
1930

2031
<resolution>
@@ -28,11 +39,38 @@ This wording is relative to <paper num="N5014"/>.
2839

2940
<blockquote>
3041
<p>-1-
31-
The access_context class is a non-aggregate<ins>, consteval-only</ins> type
32-
that represents a namespace, class, or function from which queries pertaining
42+
The <ins>class</ins> `access_context`
43+
<del>class is a non-aggregate type that</del>
44+
represents a namespace, class, or function from which queries pertaining
3345
to access rules may be performed, as well as the designating class
3446
(<sref ref="[class.access.base]"/>), if any.
3547
</p>
48+
<p>-2-
49+
An `access_context` has an associated scope and designating class.
50+
<blockquote>
51+
<pre>namespace std::meta {
52+
struct access_context {
53+
access_context() = delete;
54+
55+
consteval info scope() const;
56+
consteval info designating_class() const;
57+
58+
static consteval access_context current() noexcept;
59+
static consteval access_context unprivileged() noexcept;
60+
static consteval access_context unchecked() noexcept;
61+
consteval access_context via(info cls) const;
62+
};
63+
}</pre>
64+
</blockquote>
65+
</p>
66+
<p>-3-
67+
`access_context` is a structural<ins>, consteval-only, non-aggregate</ins> type.
68+
Two values `ac1` and `ac2` of type `access_context` are
69+
template-argument-equivalent (<sref ref="[temp.type]"/>) if
70+
`ac1.scope()` and `ac2.scope()` are template-argument-equivalent
71+
and `ac1.designating_class()` and `ac2.designating_class()` are
72+
template-argument-equivalent.
73+
</p>
3674
</blockquote>
3775
</li>
3876
</ol>

0 commit comments

Comments
 (0)