Skip to content

Commit d1210c6

Browse files
author
Alexandre Hoffmann
committed
required should work with clang, hopefully....
1 parent 4809115 commit d1210c6

File tree

1 file changed

+72
-72
lines changed

1 file changed

+72
-72
lines changed

include/xtensor/views/xview.hpp

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -517,72 +517,72 @@ namespace xt
517517
const storage_type& storage() const;
518518

519519
template <class T = xexpression_type>
520-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
521-
linear_iterator linear_begin();
520+
linear_iterator linear_begin()
521+
requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
522522

523523
template <class T = xexpression_type>
524-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
525-
linear_iterator linear_end();
524+
linear_iterator linear_end()
525+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
526526

527527
template <class T = xexpression_type>
528-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
529-
const_linear_iterator linear_begin() const;
528+
const_linear_iterator linear_begin() const
529+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
530530

531531
template <class T = xexpression_type>
532-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
533-
const_linear_iterator linear_end() const;
532+
const_linear_iterator linear_end() const
533+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
534534

535535
template <class T = xexpression_type>
536-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
537-
const_linear_iterator linear_cbegin() const;
536+
const_linear_iterator linear_cbegin() const
537+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
538538

539539
template <class T = xexpression_type>
540-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
541-
const_linear_iterator linear_cend() const;
540+
const_linear_iterator linear_cend() const
541+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
542542

543543
template <class T = xexpression_type>
544-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
545-
reverse_linear_iterator linear_rbegin();
544+
reverse_linear_iterator linear_rbegin()
545+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
546546

547547
template <class T = xexpression_type>
548-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
549-
reverse_linear_iterator linear_rend();
548+
reverse_linear_iterator linear_rend()
549+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
550550

551551
template <class T = xexpression_type>
552-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
553-
const_reverse_linear_iterator linear_rbegin() const;
552+
const_reverse_linear_iterator linear_rbegin() const
553+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
554554

555555
template <class T = xexpression_type>
556-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
557-
const_reverse_linear_iterator linear_rend() const;
556+
const_reverse_linear_iterator linear_rend() const
557+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
558558

559559
template <class T = xexpression_type>
560-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
561-
const_reverse_linear_iterator linear_crbegin() const;
560+
const_reverse_linear_iterator linear_crbegin() const
561+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
562562

563563
template <class T = xexpression_type>
564-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
565-
const_reverse_linear_iterator linear_crend() const;
564+
const_reverse_linear_iterator linear_crend() const
565+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
566566

567567
template <class T = xexpression_type>
568-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
569-
const inner_strides_type& strides() const;
568+
const inner_strides_type& strides() const
569+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
570570

571571
template <class T = xexpression_type>
572-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
573-
const inner_strides_type& backstrides() const;
572+
const inner_strides_type& backstrides() const
573+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
574574

575575
template <class T = xexpression_type>
576-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
577-
const_pointer data() const;
576+
const_pointer data() const
577+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
578578

579579
template <class T = xexpression_type>
580-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
581-
pointer data();
580+
pointer data()
581+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
582582

583583
template <class T = xexpression_type>
584-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
585-
std::size_t data_offset() const noexcept;
584+
std::size_t data_offset() const noexcept
585+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>;
586586

587587
template <class It>
588588
inline It data_xbegin_impl(It begin) const noexcept;
@@ -615,8 +615,8 @@ namespace xt
615615
xtl::xclosure_pointer<self_type> operator&() &&;
616616

617617
template <class E, class T = xexpression_type>
618-
requires has_data_interface_concept<T> and contiguous_view_concept<E, S...>
619-
void assign_to(xexpression<E>& e, bool force_resize) const;
618+
void assign_to(xexpression<E>& e, bool force_resize) const
619+
requires has_data_interface_concept<T> and contiguous_view_concept<E, S...>;
620620

621621
template <class E>
622622
using rebind_t = xview<E, S...>;
@@ -632,32 +632,32 @@ namespace xt
632632
using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
633633

634634
template <class align, class simd, class T = xexpression_type>
635-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
636-
void store_simd(size_type i, const simd& e);
635+
void store_simd(size_type i, const simd& e)
636+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
637637

638638
template <
639639
class align,
640640
class requested_type = value_type,
641641
std::size_t N = xt_simd::simd_traits<requested_type>::size,
642642
class T = xexpression_type>
643-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
644-
simd_return_type<requested_type> load_simd(size_type i) const;
643+
simd_return_type<requested_type> load_simd(size_type i) const
644+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
645645

646646
template <class T = xexpression_type>
647-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
648-
reference data_element(size_type i);
647+
reference data_element(size_type i)
648+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
649649

650650
template <class T = xexpression_type>
651-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
652-
const_reference data_element(size_type i) const;
651+
const_reference data_element(size_type i) const
652+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
653653

654654
template <class T = xexpression_type>
655-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
656-
reference flat(size_type i);
655+
reference flat(size_type i)
656+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
657657

658658
template <class T = xexpression_type>
659-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
660-
const_reference flat(size_type i) const;
659+
const_reference flat(size_type i) const
660+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>;
661661

662662
private:
663663

@@ -1172,96 +1172,96 @@ namespace xt
11721172

11731173
template <class CT, class... S>
11741174
template <class T>
1175-
requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
11761175
auto xview<CT, S...>::linear_begin() -> linear_iterator
1176+
requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
11771177
{
11781178
return m_e.storage().begin() + data_offset();
11791179
}
11801180

11811181
template <class CT, class... S>
11821182
template <class T>
1183-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
11841183
auto xview<CT, S...>::linear_end() -> linear_iterator
1184+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
11851185
{
11861186
return m_e.storage().begin() + data_offset() + this->size();
11871187
}
11881188

11891189
template <class CT, class... S>
11901190
template <class T>
1191-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
11921191
auto xview<CT, S...>::linear_begin() const -> const_linear_iterator
1192+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
11931193
{
11941194
return linear_cbegin();
11951195
}
11961196

11971197
template <class CT, class... S>
11981198
template <class T>
1199-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12001199
auto xview<CT, S...>::linear_end() const -> const_linear_iterator
1200+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12011201
{
12021202
return linear_cend();
12031203
}
12041204

12051205
template <class CT, class... S>
12061206
template <class T>
1207-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12081207
auto xview<CT, S...>::linear_cbegin() const -> const_linear_iterator
1208+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12091209
{
12101210
return m_e.storage().cbegin() + data_offset();
12111211
}
12121212

12131213
template <class CT, class... S>
12141214
template <class T>
1215-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12161215
auto xview<CT, S...>::linear_cend() const -> const_linear_iterator
1216+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12171217
{
12181218
return m_e.storage().cbegin() + data_offset() + this->size();
12191219
}
12201220

12211221
template <class CT, class... S>
12221222
template <class T>
1223-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12241223
auto xview<CT, S...>::linear_rbegin() -> reverse_linear_iterator
1224+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12251225
{
12261226
return reverse_linear_iterator(linear_end());
12271227
}
12281228

12291229
template <class CT, class... S>
12301230
template <class T>
1231-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12321231
auto xview<CT, S...>::linear_rend() -> reverse_linear_iterator
1232+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12331233
{
12341234
return reverse_linear_iterator(linear_begin());
12351235
}
12361236

12371237
template <class CT, class... S>
12381238
template <class T>
1239-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12401239
auto xview<CT, S...>::linear_rbegin() const -> const_reverse_linear_iterator
1240+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12411241
{
12421242
return linear_crbegin();
12431243
}
12441244

12451245
template <class CT, class... S>
12461246
template <class T>
1247-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12481247
auto xview<CT, S...>::linear_rend() const -> const_reverse_linear_iterator
1248+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12491249
{
12501250
return linear_crend();
12511251
}
12521252

12531253
template <class CT, class... S>
12541254
template <class T>
1255-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12561255
auto xview<CT, S...>::linear_crbegin() const -> const_reverse_linear_iterator
1256+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12571257
{
12581258
return const_reverse_linear_iterator(linear_end());
12591259
}
12601260

12611261
template <class CT, class... S>
12621262
template <class T>
1263-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12641263
auto xview<CT, S...>::linear_crend() const -> const_reverse_linear_iterator
1264+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12651265
{
12661266
return const_reverse_linear_iterator(linear_begin());
12671267
}
@@ -1271,8 +1271,8 @@ namespace xt
12711271
*/
12721272
template <class CT, class... S>
12731273
template <class T>
1274-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12751274
inline auto xview<CT, S...>::strides() const -> const inner_strides_type&
1275+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12761276
{
12771277
if (!m_strides_computed)
12781278
{
@@ -1284,8 +1284,8 @@ namespace xt
12841284

12851285
template <class CT, class... S>
12861286
template <class T>
1287-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12881287
inline auto xview<CT, S...>::backstrides() const -> const inner_strides_type&
1288+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
12891289
{
12901290
if (!m_strides_computed)
12911291
{
@@ -1300,16 +1300,16 @@ namespace xt
13001300
*/
13011301
template <class CT, class... S>
13021302
template <class T>
1303-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13041303
inline auto xview<CT, S...>::data() const -> const_pointer
1304+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13051305
{
13061306
return m_e.data();
13071307
}
13081308

13091309
template <class CT, class... S>
13101310
template <class T>
1311-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13121311
inline auto xview<CT, S...>::data() -> pointer
1312+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13131313
{
13141314
return m_e.data();
13151315
}
@@ -1340,8 +1340,8 @@ namespace xt
13401340
*/
13411341
template <class CT, class... S>
13421342
template <class T>
1343-
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13441343
inline std::size_t xview<CT, S...>::data_offset() const noexcept
1344+
requires has_data_interface_concept<T> and strided_view_concept<CT, S...>
13451345
{
13461346
if (!m_strides_computed)
13471347
{
@@ -1457,8 +1457,8 @@ namespace xt
14571457
// Assign to operator enabled for contigous views
14581458
template <class CT, class... S>
14591459
template <class E, class T>
1460-
requires has_data_interface_concept<T> and contiguous_view_concept<E, S...>
14611460
void xview<CT, S...>::assign_to(xexpression<E>& e, bool force_resize) const
1461+
requires has_data_interface_concept<T> and contiguous_view_concept<E, S...>
14621462
{
14631463
auto& de = e.derived_cast();
14641464
de.resize(shape(), force_resize);
@@ -1481,49 +1481,49 @@ namespace xt
14811481

14821482
template <class CT, class... S>
14831483
template <class align, class simd, class T>
1484-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
14851484
inline auto xview<CT, S...>::store_simd(size_type i, const simd& e) -> void
1485+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
14861486
{
14871487
return m_e.template store_simd<xt_simd::unaligned_mode>(data_offset() + i, e);
14881488
}
14891489

14901490
template <class CT, class... S>
14911491
template <class align, class requested_type, std::size_t N, class T>
1492-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
14931492
inline auto xview<CT, S...>::load_simd(size_type i) const -> simd_return_type<requested_type>
1493+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
14941494
{
14951495
return m_e.template load_simd<xt_simd::unaligned_mode, requested_type>(data_offset() + i);
14961496
}
14971497

14981498
template <class CT, class... S>
14991499
template <class T>
1500-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15011500
inline auto xview<CT, S...>::data_element(size_type i) -> reference
1501+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15021502
{
15031503
return m_e.data_element(data_offset() + i);
15041504
}
15051505

15061506
template <class CT, class... S>
15071507
template <class T>
1508-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15091508
inline auto xview<CT, S...>::data_element(size_type i) const -> const_reference
1509+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15101510
{
15111511
return m_e.data_element(data_offset() + i);
15121512
}
15131513

15141514
template <class CT, class... S>
15151515
template <class T>
1516-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15171516
inline auto xview<CT, S...>::flat(size_type i) -> reference
1517+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15181518
{
15191519
XTENSOR_ASSERT(is_contiguous());
15201520
return m_e.flat(data_offset() + i);
15211521
}
15221522

15231523
template <class CT, class... S>
15241524
template <class T>
1525-
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15261525
inline auto xview<CT, S...>::flat(size_type i) const -> const_reference
1526+
requires has_simd_interface_concept<T> and strided_view_concept<CT, S...>
15271527
{
15281528
XTENSOR_ASSERT(is_contiguous());
15291529
return m_e.flat(data_offset() + i);

0 commit comments

Comments
 (0)