|  | 
| using | derived_type = D | 
|  | 
| using | base_type = xconst_iterable<D> | 
|  | 
| using | inner_shape_type = typename base_type::inner_shape_type | 
|  | 
| using | stepper = typename base_type::stepper | 
|  | 
| using | const_stepper = typename base_type::const_stepper | 
|  | 
| using | linear_iterator = typename base_type::linear_iterator | 
|  | 
| using | reverse_linear_iterator = typename base_type::reverse_linear_iterator | 
|  | 
| template<layout_type L> | 
| using | layout_iterator = typename base_type::template layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | const_layout_iterator = typename base_type::template const_layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | reverse_layout_iterator = typename base_type::template reverse_layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | const_reverse_layout_iterator = typename base_type::template const_reverse_layout_iterator<L> | 
|  | 
| template<class S, layout_type L> | 
| using | broadcast_iterator = typename base_type::template broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | const_broadcast_iterator = typename base_type::template const_broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | reverse_broadcast_iterator = typename base_type::template reverse_broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | const_reverse_broadcast_iterator = typename base_type::template const_reverse_broadcast_iterator<S, L> | 
|  | 
| using | iterator = typename base_type::iterator | 
|  | 
| using | const_iterator = typename base_type::const_iterator | 
|  | 
| using | reverse_iterator = typename base_type::reverse_iterator | 
|  | 
| using | const_reverse_iterator = typename base_type::const_reverse_iterator | 
|  | 
| using | derived_type = D | 
|  | 
| using | iterable_types = xiterable_inner_types<D> | 
|  | 
| using | inner_shape_type = typename iterable_types::inner_shape_type | 
|  | 
| using | stepper = typename iterable_types::stepper | 
|  | 
| using | const_stepper = typename iterable_types::const_stepper | 
|  | 
| template<layout_type L> | 
| using | layout_iterator = xiterator<stepper, inner_shape_type*, L> | 
|  | 
| template<layout_type L> | 
| using | const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L> | 
|  | 
| template<layout_type L> | 
| using | reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>> | 
|  | 
| template<layout_type L> | 
| using | const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>> | 
|  | 
| using | linear_iterator = layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_linear_iterator = const_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | reverse_linear_iterator = reverse_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_reverse_linear_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| template<class S, layout_type L> | 
| using | broadcast_iterator = xiterator<stepper, S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | const_broadcast_iterator = xiterator<const_stepper, S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>> | 
|  | 
| template<class S, layout_type L> | 
| using | const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>> | 
|  | 
| using | iterator = layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_iterator = const_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | reverse_iterator = reverse_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_reverse_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major > | 
|  | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| layout_iterator< L > | begin () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| layout_iterator< L > | end () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| reverse_layout_iterator< L > | rbegin () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| reverse_layout_iterator< L > | rend () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| broadcast_iterator< S, L > | begin (const S &shape) noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| broadcast_iterator< S, L > | end (const S &shape) noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| reverse_broadcast_iterator< S, L > | rbegin (const S &shape) noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| reverse_broadcast_iterator< S, L > | rend (const S &shape) noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | begin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | end () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | rbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | rend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept | 
|  | 
|  | 
| template<layout_type L> | 
| auto | begin () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | end () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
|  | 
| template<layout_type L> | 
| auto | rbegin () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rend () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
|  | 
| template<layout_type L, class S> | 
| auto | begin (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | end (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | begin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | end () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | cbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_layout_iterator< L > | cend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | rbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | rend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | crbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| const_reverse_layout_iterator< L > | crend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | cbegin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_broadcast_iterator< S, L > | cend (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | crbegin (const S &shape) const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major, class S> | 
| const_reverse_broadcast_iterator< S, L > | crend (const S &shape) const noexcept | 
|  | 
| template<layout_type L> | 
| auto | begin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | end () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | cbegin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | cend () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | crbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | crend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | end (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| auto | crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| template<layout_type L> | 
| auto | get_cend (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| template<layout_type L, class S> | 
| auto | get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| template<layout_type L, class S> | 
| auto | get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| template<class S> | 
| auto | get_stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| template<class S> | 
| auto | get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  | 
template<class D>
class xt::xiterable< D >
Base class for multidimensional iterable expressions. 
The xiterable class defines the interface for multidimensional expressions that can be iterated.
- Template Parameters
- 
  
    | D | The derived type, i.e. the inheriting class for which xiterable provides the interface. |  
 
Definition at line 151 of file xiterable.hpp.