Skip to content

Commit 3d564d3

Browse files
committed
New issue from Jiang An: "Are exposition-only classes considered specified for the purpose of final?"
1 parent decc799 commit 3d564d3

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

xml/issue4252.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?xml version='1.0' encoding='utf-8' standalone='no'?>
2+
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
3+
4+
<issue num="4252" status="New">
5+
<title>Are exposition-only classes considered specified for the purpose of `final`?</title>
6+
<section><sref ref="[derivation]"/></section>
7+
<submitter>Jiang An</submitter>
8+
<date>28 Apr 2025</date>
9+
<priority>99</priority>
10+
11+
<discussion>
12+
<p>
13+
Currently, iterator and sentinel types of several views are exposition-only in the standard wording,
14+
and none of them is specified to be `final`. These types are arguably required to be non-final due to
15+
<sref ref="[derivation]"/> p4 because it's possible to say they are specified except for names.
16+
<p/>
17+
However, libc++ marks `join_view`'s iterator `final` for some reasons
18+
(<a href="https://reviews.llvm.org/D142811#inline-1383022">https://reviews.llvm.org/D142811#inline-1383022</a>).
19+
Perhaps we should clarify that the `final`-ity of exposition-only class is unspecified.
20+
</p>
21+
</discussion>
22+
23+
<resolution>
24+
<p>
25+
This wording is relative to <paper num="N5008"/>.
26+
</p>
27+
<ol>
28+
29+
<li><p>Modify <sref ref="[derivation]"/> as indicated:</p>
30+
31+
<blockquote>
32+
<p>
33+
-4- All types specified in the C++ standard library shall be non-`final` types unless otherwise specified.
34+
<ins>Exposition-only classes (<sref ref="[expos.only.entity]"/>) are not considered specified for the purpose
35+
of `final`.</ins>
36+
</p>
37+
</blockquote>
38+
</li>
39+
</ol>
40+
</resolution>
41+
42+
</issue>

0 commit comments

Comments
 (0)