Skip to content

Commit 89dd8db

Browse files
committed
LWG4376 ABI tag in return type of [simd.mask.unary] is overconstrained
1 parent e70c7cc commit 89dd8db

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

source/numerics.tex

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19966,9 +19966,9 @@
1996619966

1996719967
// \ref{simd.mask.unary}, \tcode{basic_mask} unary operators
1996819968
constexpr basic_mask operator!() const noexcept;
19969-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator+() const noexcept;
19970-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator-() const noexcept;
19971-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator~() const noexcept;
19969+
constexpr @\seebelow@ operator+() const noexcept;
19970+
constexpr @\seebelow@ operator-() const noexcept;
19971+
constexpr @\seebelow@ operator~() const noexcept;
1997219972

1997319973
// \ref{simd.mask.conv}, \tcode{basic_mask} conversions
1997419974
template<class U, class A>
@@ -20179,9 +20179,9 @@
2017920179
\indexlibrarymember{operator~}{basic_mask}
2018020180
\begin{itemdecl}
2018120181
constexpr basic_mask operator!() const noexcept;
20182-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator+() const noexcept;
20183-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator-() const noexcept;
20184-
constexpr basic_vec<@\exposid{integer-from}@<Bytes>, Abi> operator~() const noexcept;
20182+
constexpr @\seebelow@ operator+() const noexcept;
20183+
constexpr @\seebelow@ operator-() const noexcept;
20184+
constexpr @\seebelow@ operator~() const noexcept;
2018520185
\end{itemdecl}
2018620186

2018720187
\begin{itemdescr}
@@ -20193,6 +20193,17 @@
2019320193
A data-parallel object where the $i^\text{th}$ element is initialized to the
2019420194
results of applying \placeholder{op} to \tcode{operator[]($i$)} for all $i$ in
2019520195
the range of \range{0}{size()}.
20196+
20197+
\pnum
20198+
\remarks
20199+
If there exists a vectorizable signed integer type \tcode{I} such that
20200+
\tcode{sizeof(I) == Bytes} is \tcode{true},
20201+
\tcode{operator+}, \tcode{operator-}, and \tcode{operator~}
20202+
return an enabled specialization \tcode{R} of \tcode{basic_vec} such that
20203+
\tcode{R::value_type} denotes \tcode{\exposid{integer-from}<Bytes>} and
20204+
\tcode{R::size() == size()} is \tcode{true}.
20205+
Otherwise,
20206+
these operators are defined as deleted and their return types are unspecified.
2019620207
\end{itemdescr}
2019720208

2019820209
\rSec3[simd.mask.conv]{Conversions}

0 commit comments

Comments
 (0)