Skip to content

Commit 9b2770a

Browse files
committed
[libc++][valarray] Applied [[nodiscard]]
`[[nodiscard]]` should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html
1 parent 979462c commit 9b2770a

File tree

2 files changed

+151
-50
lines changed

2 files changed

+151
-50
lines changed

libcxx/include/valarray

Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,9 @@ public:
396396
_LIBCPP_HIDE_FROM_ABI slice(size_t __start, size_t __size, size_t __stride)
397397
: __start_(__start), __size_(__size), __stride_(__stride) {}
398398

399-
_LIBCPP_HIDE_FROM_ABI size_t start() const { return __start_; }
400-
_LIBCPP_HIDE_FROM_ABI size_t size() const { return __size_; }
401-
_LIBCPP_HIDE_FROM_ABI size_t stride() const { return __stride_; }
399+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t start() const { return __start_; }
400+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t size() const { return __size_; }
401+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t stride() const { return __stride_; }
402402

403403
# if _LIBCPP_STD_VER >= 20
404404

@@ -822,36 +822,41 @@ public:
822822
_LIBCPP_HIDE_FROM_ABI valarray& operator=(const __val_expr<_ValExpr>& __v);
823823

824824
// element access:
825-
_LIBCPP_HIDE_FROM_ABI const value_type& operator[](size_t __i) const {
825+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const value_type& operator[](size_t __i) const {
826826
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__i < size(), "valarray::operator[] index out of bounds");
827827
return __begin_[__i];
828828
}
829829

830-
_LIBCPP_HIDE_FROM_ABI value_type& operator[](size_t __i) {
830+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type& operator[](size_t __i) {
831831
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__i < size(), "valarray::operator[] index out of bounds");
832832
return __begin_[__i];
833833
}
834834

835835
// subset operations:
836-
_LIBCPP_HIDE_FROM_ABI __val_expr<__slice_expr<const valarray&> > operator[](slice __s) const;
837-
_LIBCPP_HIDE_FROM_ABI slice_array<value_type> operator[](slice __s);
838-
_LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](const gslice& __gs) const;
839-
_LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](const gslice& __gs);
836+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__slice_expr<const valarray&> > operator[](slice __s) const;
837+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI slice_array<value_type> operator[](slice __s);
838+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> >
839+
operator[](const gslice& __gs) const;
840+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](const gslice& __gs);
840841
# ifndef _LIBCPP_CXX03_LANG
841-
_LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](gslice&& __gs) const;
842-
_LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](gslice&& __gs);
842+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](gslice&& __gs) const;
843+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](gslice&& __gs);
843844
# endif // _LIBCPP_CXX03_LANG
845+
[[__nodiscard__]]
844846
_LIBCPP_HIDE_FROM_ABI __val_expr<__mask_expr<const valarray&> > operator[](const valarray<bool>& __vb) const;
845-
_LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](const valarray<bool>& __vb);
847+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](const valarray<bool>& __vb);
846848
# ifndef _LIBCPP_CXX03_LANG
849+
[[__nodiscard__]]
847850
_LIBCPP_HIDE_FROM_ABI __val_expr<__mask_expr<const valarray&> > operator[](valarray<bool>&& __vb) const;
848-
_LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](valarray<bool>&& __vb);
851+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](valarray<bool>&& __vb);
849852
# endif // _LIBCPP_CXX03_LANG
853+
[[__nodiscard__]]
850854
_LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](const valarray<size_t>& __vs) const;
851-
_LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](const valarray<size_t>& __vs);
855+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](const valarray<size_t>& __vs);
852856
# ifndef _LIBCPP_CXX03_LANG
857+
[[__nodiscard__]]
853858
_LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](valarray<size_t>&& __vs) const;
854-
_LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](valarray<size_t>&& __vs);
859+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](valarray<size_t>&& __vs);
855860
# endif // _LIBCPP_CXX03_LANG
856861

857862
// unary operators:
@@ -905,16 +910,16 @@ public:
905910
// member functions:
906911
_LIBCPP_HIDE_FROM_ABI void swap(valarray& __v) _NOEXCEPT;
907912

908-
_LIBCPP_HIDE_FROM_ABI size_t size() const { return static_cast<size_t>(__end_ - __begin_); }
913+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t size() const { return static_cast<size_t>(__end_ - __begin_); }
909914

910-
_LIBCPP_HIDE_FROM_ABI value_type sum() const;
911-
_LIBCPP_HIDE_FROM_ABI value_type min() const;
912-
_LIBCPP_HIDE_FROM_ABI value_type max() const;
915+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type sum() const;
916+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type min() const;
917+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type max() const;
913918

914-
valarray shift(int __i) const;
915-
valarray cshift(int __i) const;
916-
valarray apply(value_type __f(value_type)) const;
917-
valarray apply(value_type __f(const value_type&)) const;
919+
[[__nodiscard__]] valarray shift(int __i) const;
920+
[[__nodiscard__]] valarray cshift(int __i) const;
921+
[[__nodiscard__]] valarray apply(value_type __f(value_type)) const;
922+
[[__nodiscard__]] valarray apply(value_type __f(const value_type&)) const;
918923
void resize(size_t __n, value_type __x = value_type());
919924

920925
private:
@@ -1249,11 +1254,11 @@ public:
12491254

12501255
# endif // _LIBCPP_CXX03_LANG
12511256

1252-
_LIBCPP_HIDE_FROM_ABI size_t start() const { return __1d_.size() ? __1d_[0] : 0; }
1257+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t start() const { return __1d_.size() ? __1d_[0] : 0; }
12531258

1254-
_LIBCPP_HIDE_FROM_ABI valarray<size_t> size() const { return __size_; }
1259+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI valarray<size_t> size() const { return __size_; }
12551260

1256-
_LIBCPP_HIDE_FROM_ABI valarray<size_t> stride() const { return __stride_; }
1261+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI valarray<size_t> stride() const { return __stride_; }
12571262

12581263
private:
12591264
void __init(size_t __start);
@@ -3106,31 +3111,31 @@ operator>=(const typename _Expr::value_type& __x, const _Expr& __y) {
31063111
}
31073112

31083113
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3109-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__abs_expr<typename _Expr::value_type>, _Expr> >
3114+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__abs_expr<typename _Expr::value_type>, _Expr> >
31103115
abs(const _Expr& __x) {
31113116
typedef typename _Expr::value_type value_type;
31123117
typedef _UnaryOp<__abs_expr<value_type>, _Expr> _Op;
31133118
return __val_expr<_Op>(_Op(__abs_expr<value_type>(), __x));
31143119
}
31153120

31163121
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3117-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__acos_expr<typename _Expr::value_type>, _Expr> >
3122+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__acos_expr<typename _Expr::value_type>, _Expr> >
31183123
acos(const _Expr& __x) {
31193124
typedef typename _Expr::value_type value_type;
31203125
typedef _UnaryOp<__acos_expr<value_type>, _Expr> _Op;
31213126
return __val_expr<_Op>(_Op(__acos_expr<value_type>(), __x));
31223127
}
31233128

31243129
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3125-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__asin_expr<typename _Expr::value_type>, _Expr> >
3130+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__asin_expr<typename _Expr::value_type>, _Expr> >
31263131
asin(const _Expr& __x) {
31273132
typedef typename _Expr::value_type value_type;
31283133
typedef _UnaryOp<__asin_expr<value_type>, _Expr> _Op;
31293134
return __val_expr<_Op>(_Op(__asin_expr<value_type>(), __x));
31303135
}
31313136

31323137
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3133-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__atan_expr<typename _Expr::value_type>, _Expr> >
3138+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__atan_expr<typename _Expr::value_type>, _Expr> >
31343139
atan(const _Expr& __x) {
31353140
typedef typename _Expr::value_type value_type;
31363141
typedef _UnaryOp<__atan_expr<value_type>, _Expr> _Op;
@@ -3140,15 +3145,15 @@ atan(const _Expr& __x) {
31403145
template <class _Expr1,
31413146
class _Expr2,
31423147
__enable_if_t<__is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value, int> = 0>
3143-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__atan2_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3148+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__atan2_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
31443149
atan2(const _Expr1& __x, const _Expr2& __y) {
31453150
typedef typename _Expr1::value_type value_type;
31463151
typedef _BinaryOp<__atan2_expr<value_type>, _Expr1, _Expr2> _Op;
31473152
return __val_expr<_Op>(_Op(__atan2_expr<value_type>(), __x, __y));
31483153
}
31493154

31503155
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3151-
inline _LIBCPP_HIDE_FROM_ABI
3156+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
31523157
__val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>, _Expr, __scalar_expr<typename _Expr::value_type> > >
31533158
atan2(const _Expr& __x, const typename _Expr::value_type& __y) {
31543159
typedef typename _Expr::value_type value_type;
@@ -3157,7 +3162,7 @@ atan2(const _Expr& __x, const typename _Expr::value_type& __y) {
31573162
}
31583163

31593164
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3160-
inline _LIBCPP_HIDE_FROM_ABI
3165+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
31613166
__val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>, __scalar_expr<typename _Expr::value_type>, _Expr> >
31623167
atan2(const typename _Expr::value_type& __x, const _Expr& __y) {
31633168
typedef typename _Expr::value_type value_type;
@@ -3166,39 +3171,39 @@ atan2(const typename _Expr::value_type& __x, const _Expr& __y) {
31663171
}
31673172

31683173
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3169-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cos_expr<typename _Expr::value_type>, _Expr> >
3174+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cos_expr<typename _Expr::value_type>, _Expr> >
31703175
cos(const _Expr& __x) {
31713176
typedef typename _Expr::value_type value_type;
31723177
typedef _UnaryOp<__cos_expr<value_type>, _Expr> _Op;
31733178
return __val_expr<_Op>(_Op(__cos_expr<value_type>(), __x));
31743179
}
31753180

31763181
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3177-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cosh_expr<typename _Expr::value_type>, _Expr> >
3182+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cosh_expr<typename _Expr::value_type>, _Expr> >
31783183
cosh(const _Expr& __x) {
31793184
typedef typename _Expr::value_type value_type;
31803185
typedef _UnaryOp<__cosh_expr<value_type>, _Expr> _Op;
31813186
return __val_expr<_Op>(_Op(__cosh_expr<value_type>(), __x));
31823187
}
31833188

31843189
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3185-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__exp_expr<typename _Expr::value_type>, _Expr> >
3190+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__exp_expr<typename _Expr::value_type>, _Expr> >
31863191
exp(const _Expr& __x) {
31873192
typedef typename _Expr::value_type value_type;
31883193
typedef _UnaryOp<__exp_expr<value_type>, _Expr> _Op;
31893194
return __val_expr<_Op>(_Op(__exp_expr<value_type>(), __x));
31903195
}
31913196

31923197
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3193-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log_expr<typename _Expr::value_type>, _Expr> >
3198+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log_expr<typename _Expr::value_type>, _Expr> >
31943199
log(const _Expr& __x) {
31953200
typedef typename _Expr::value_type value_type;
31963201
typedef _UnaryOp<__log_expr<value_type>, _Expr> _Op;
31973202
return __val_expr<_Op>(_Op(__log_expr<value_type>(), __x));
31983203
}
31993204

32003205
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3201-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log10_expr<typename _Expr::value_type>, _Expr> >
3206+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log10_expr<typename _Expr::value_type>, _Expr> >
32023207
log10(const _Expr& __x) {
32033208
typedef typename _Expr::value_type value_type;
32043209
typedef _UnaryOp<__log10_expr<value_type>, _Expr> _Op;
@@ -3208,15 +3213,15 @@ log10(const _Expr& __x) {
32083213
template <class _Expr1,
32093214
class _Expr2,
32103215
__enable_if_t<__is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value, int> = 0>
3211-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__pow_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3216+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__pow_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
32123217
pow(const _Expr1& __x, const _Expr2& __y) {
32133218
typedef typename _Expr1::value_type value_type;
32143219
typedef _BinaryOp<__pow_expr<value_type>, _Expr1, _Expr2> _Op;
32153220
return __val_expr<_Op>(_Op(__pow_expr<value_type>(), __x, __y));
32163221
}
32173222

32183223
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3219-
inline _LIBCPP_HIDE_FROM_ABI
3224+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
32203225
__val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>, _Expr, __scalar_expr<typename _Expr::value_type> > >
32213226
pow(const _Expr& __x, const typename _Expr::value_type& __y) {
32223227
typedef typename _Expr::value_type value_type;
@@ -3225,7 +3230,7 @@ pow(const _Expr& __x, const typename _Expr::value_type& __y) {
32253230
}
32263231

32273232
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3228-
inline _LIBCPP_HIDE_FROM_ABI
3233+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
32293234
__val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>, __scalar_expr<typename _Expr::value_type>, _Expr> >
32303235
pow(const typename _Expr::value_type& __x, const _Expr& __y) {
32313236
typedef typename _Expr::value_type value_type;
@@ -3234,62 +3239,62 @@ pow(const typename _Expr::value_type& __x, const _Expr& __y) {
32343239
}
32353240

32363241
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3237-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sin_expr<typename _Expr::value_type>, _Expr> >
3242+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sin_expr<typename _Expr::value_type>, _Expr> >
32383243
sin(const _Expr& __x) {
32393244
typedef typename _Expr::value_type value_type;
32403245
typedef _UnaryOp<__sin_expr<value_type>, _Expr> _Op;
32413246
return __val_expr<_Op>(_Op(__sin_expr<value_type>(), __x));
32423247
}
32433248

32443249
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3245-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sinh_expr<typename _Expr::value_type>, _Expr> >
3250+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sinh_expr<typename _Expr::value_type>, _Expr> >
32463251
sinh(const _Expr& __x) {
32473252
typedef typename _Expr::value_type value_type;
32483253
typedef _UnaryOp<__sinh_expr<value_type>, _Expr> _Op;
32493254
return __val_expr<_Op>(_Op(__sinh_expr<value_type>(), __x));
32503255
}
32513256

32523257
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3253-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sqrt_expr<typename _Expr::value_type>, _Expr> >
3258+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sqrt_expr<typename _Expr::value_type>, _Expr> >
32543259
sqrt(const _Expr& __x) {
32553260
typedef typename _Expr::value_type value_type;
32563261
typedef _UnaryOp<__sqrt_expr<value_type>, _Expr> _Op;
32573262
return __val_expr<_Op>(_Op(__sqrt_expr<value_type>(), __x));
32583263
}
32593264

32603265
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3261-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tan_expr<typename _Expr::value_type>, _Expr> >
3266+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tan_expr<typename _Expr::value_type>, _Expr> >
32623267
tan(const _Expr& __x) {
32633268
typedef typename _Expr::value_type value_type;
32643269
typedef _UnaryOp<__tan_expr<value_type>, _Expr> _Op;
32653270
return __val_expr<_Op>(_Op(__tan_expr<value_type>(), __x));
32663271
}
32673272

32683273
template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3269-
inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tanh_expr<typename _Expr::value_type>, _Expr> >
3274+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tanh_expr<typename _Expr::value_type>, _Expr> >
32703275
tanh(const _Expr& __x) {
32713276
typedef typename _Expr::value_type value_type;
32723277
typedef _UnaryOp<__tanh_expr<value_type>, _Expr> _Op;
32733278
return __val_expr<_Op>(_Op(__tanh_expr<value_type>(), __x));
32743279
}
32753280

32763281
template <class _Tp>
3277-
inline _LIBCPP_HIDE_FROM_ABI _Tp* begin(valarray<_Tp>& __v) {
3282+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _Tp* begin(valarray<_Tp>& __v) {
32783283
return __v.__begin_;
32793284
}
32803285

32813286
template <class _Tp>
3282-
inline _LIBCPP_HIDE_FROM_ABI const _Tp* begin(const valarray<_Tp>& __v) {
3287+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI const _Tp* begin(const valarray<_Tp>& __v) {
32833288
return __v.__begin_;
32843289
}
32853290

32863291
template <class _Tp>
3287-
inline _LIBCPP_HIDE_FROM_ABI _Tp* end(valarray<_Tp>& __v) {
3292+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _Tp* end(valarray<_Tp>& __v) {
32883293
return __v.__end_;
32893294
}
32903295

32913296
template <class _Tp>
3292-
inline _LIBCPP_HIDE_FROM_ABI const _Tp* end(const valarray<_Tp>& __v) {
3297+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI const _Tp* end(const valarray<_Tp>& __v) {
32933298
return __v.__end_;
32943299
}
32953300

0 commit comments

Comments
 (0)