@@ -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