320 using stepper =
typename iterable_base::stepper;
321 using const_stepper =
typename iterable_base::const_stepper;
323 static constexpr layout_type static_layout = inner_types::layout;
325#if defined(_MSC_VER) && _MSC_VER >= 1910
328 template <layout_type L>
330 template <layout_type L>
332 typename iterable_base::const_stepper,
333 typename iterable_base::inner_shape_type*,
335 template <layout_type L>
336 using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>;
337 template <layout_type L>
338 using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>;
340 template <layout_type L>
342 template <layout_type L>
344 template <layout_type L>
346 template <layout_type L>
350 template <
class S, layout_type L>
352 template <
class S, layout_type L>
354 template <
class S, layout_type L>
356 template <
class S, layout_type L>
360 using linear_iterator =
typename linear_traits::linear_iterator;
361 using const_linear_iterator =
typename linear_traits::const_linear_iterator;
362 using reverse_linear_iterator =
typename linear_traits::reverse_linear_iterator;
363 using const_reverse_linear_iterator =
typename linear_traits::const_reverse_linear_iterator;
365 template <layout_type L,
class It1,
class It2>
366 using select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>;
368 template <layout_type L>
370 template <layout_type L>
372 template <layout_type L>
374 template <layout_type L>
377 const_reverse_linear_iterator,
385 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
387 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
390 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
392 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
394 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
396 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
399 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
401 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
404 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
406 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
408 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
410 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
413 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
415 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
418 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
420 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
422 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
424 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
427 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
429 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
432 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
434 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
436 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
438 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL,
class S>
697 return const_layout_iterator<L>(get_stepper_end(get_shape(), L), &get_shape(), end_index);
705 return const_broadcast_iterator<S, L>(get_stepper_begin(shape), shape, end_index);
713 return const_broadcast_iterator<S, L>(get_stepper_end(shape, L), shape, end_index);