Skip to content

Commit b0d4109

Browse files
committed
New issue from Matthias Kretz: "std::simd::bit_ceil should not be noexcept"
1 parent 00829d0 commit b0d4109

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

xml/issue4375.xml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?xml version='1.0' encoding='utf-8' standalone='no'?>
2+
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
3+
4+
<issue num="4375" status="New">
5+
<title>`std::simd::bit_ceil` should not be `noexcept`</title>
6+
<section>
7+
<sref ref="[simd.bit]"/>
8+
</section>
9+
<submitter>Matthias Kretz</submitter>
10+
<date>29 Aug 2025</date>
11+
<priority>99</priority>
12+
13+
<discussion>
14+
<p>
15+
`std::simd::bit_ceil` is declared 'noexcept' in <sref ref="[simd.syn]"/> and
16+
<sref ref="[simd.bit]"/>. But
17+
</p>
18+
<ol>
19+
<li><p>`std::bit_ceil` is not 'noexcept' (<sref ref="[bit.syn]"/> and <sref ref="[bit.pow.two]"/>) and</p></li>
20+
<li><p>`std::simd::bit_ceil` has a precondition.</p></li>
21+
</ol>
22+
</discussion>
23+
24+
<resolution>
25+
<p>
26+
This wording is relative to <paper num="N5014"/>.
27+
</p>
28+
29+
<ol>
30+
31+
<li><p>Modify <sref ref="[simd.syn]"/>, header <tt>&lt;simd&gt;</tt> synopsis, as indicated:</p>
32+
33+
<blockquote>
34+
<pre>
35+
namespace std {
36+
[&hellip;]
37+
// <i><sref ref="[simd.bit]"/>, bit manipulation</i>
38+
template&lt;<i>simd-vec-type</i> V&gt; constexpr V byteswap(const V&amp; v) noexcept;
39+
template&lt;<i>simd-vec-type</i> V&gt; constexpr V bit_ceil(const V&amp; v) <del>noexcept</del>;
40+
template&lt;<i>simd-vec-type</i> V&gt; constexpr V bit_floor(const V&amp; v) noexcept;
41+
[&hellip;]
42+
}
43+
</pre>
44+
</blockquote>
45+
46+
</li>
47+
48+
<li><p>Modify <sref ref="[simd.bit]"/> as indicated:</p>
49+
50+
<blockquote>
51+
<pre>
52+
template&lt;<i>simd-vec-type</i> V&gt; constexpr V bit_ceil(const V&amp; v) <del>noexcept</del>;
53+
</pre>
54+
<blockquote>
55+
<p>
56+
-3- <i>Constraints</i>: The type `V::value_type` is an unsigned integer type (<sref ref="[basic.fundamental]"/>).
57+
<p/>
58+
-4- <i>Preconditions</i>: [&hellip;]
59+
<p/>
60+
[&hellip;]
61+
</p>
62+
</blockquote>
63+
</blockquote>
64+
65+
</li>
66+
67+
</ol></resolution>
68+
69+
</issue>

0 commit comments

Comments
 (0)