|  | 
| template<class E> | 
| self_type & | operator= (const xexpression< E > &e) | 
|  | 
| template<class E> | 
| disable_xexpression< E, self_type > & | operator= (const E &e) | 
|  | 
| template<class... Args> | 
| reference | operator() (size_type idx0, size_type idx1, Args... args) | 
|  | 
| template<class S> | 
| disable_integral_t< S, reference > | operator[] (const S &index) | 
|  | 
| template<class OI> | 
| reference | operator[] (std::initializer_list< OI > index) | 
|  | 
| template<class It> | 
| reference | element (It first, It last) | 
|  | 
| template<class... Args> | 
| const_reference | operator() (size_type idx0, size_type idx1, Args... args) const | 
|  | 
| template<class S> | 
| disable_integral_t< S, const_reference > | operator[] (const S &index) const | 
|  | 
| template<class OI> | 
| const_reference | operator[] (std::initializer_list< OI > index) const | 
|  | 
| template<class It> | 
| const_reference | element (It first, It last) const | 
|  | 
| template<class ST> | 
| stepper | stepper_begin (const ST &shape) | 
|  | 
| template<class ST> | 
| stepper | stepper_end (const ST &shape, layout_type) | 
|  | 
| template<class ST> | 
| const_stepper | stepper_begin (const ST &shape) const | 
|  | 
| template<class ST> | 
| const_stepper | stepper_end (const ST &shape, layout_type) const | 
|  | 
| template<class E> | 
| rebind_t< E > | build_index_view (E &&e) const | 
|  | 
|  | 
| template<class CTA, class I2> | 
|  | xindex_view (CTA &&e, I2 &&indices) noexcept | 
|  | Constructs an xindex_view, selecting the indices specified by indices. 
 | 
|  | 
|  | 
| size_type | size () const noexcept | 
|  | Returns the size of the xindex_view. 
 | 
|  | 
| size_type | dimension () const noexcept | 
|  | Returns the number of dimensions of the xindex_view. 
 | 
|  | 
| const inner_shape_type & | shape () const noexcept | 
|  | Returns the shape of the xindex_view. 
 | 
|  | 
| size_type | shape (size_type index) const | 
|  | Returns the i-th dimension of the expression. 
 | 
|  | 
| layout_type | layout () const noexcept | 
|  | 
| bool | is_contiguous () const noexcept | 
|  | 
|  | 
| template<class T> | 
| void | fill (const T &value) | 
|  | Fills the view with the given value. 
 | 
|  | 
| reference | operator() (size_type idx=size_type(0)) | 
|  | Returns a reference to the element at the specified position in the xindex_view. 
 | 
|  | 
| reference | unchecked (size_type idx) | 
|  | Returns a reference to the element at the specified position in the xindex_view. 
 | 
|  | 
| reference | operator[] (size_type i) | 
|  | 
| const_reference | operator() (size_type idx=size_type(0)) const | 
|  | Returns a constant reference to the element at the specified position in the xindex_view. 
 | 
|  | 
| const_reference | unchecked (size_type idx) const | 
|  | Returns a constant reference to the element at the specified position in the xindex_view. 
 | 
|  | 
| const_reference | operator[] (size_type i) const | 
|  | 
| xexpression_type & | expression () noexcept | 
|  | Returns a reference to the underlying expression of the view. 
 | 
|  | 
| const xexpression_type & | expression () const noexcept | 
|  | Returns a constant reference to the underlying expression of the view. 
 | 
|  | 
| template<class... Args> | 
| auto | operator() (size_type, size_type idx1, Args... args) -> reference | 
|  | 
| template<class... Args> | 
| auto | operator() (size_type, size_type idx1, Args... args) const -> const_reference | 
|  | 
| template<class S> | 
| auto | operator[] (const S &index) -> disable_integral_t< S, reference > | 
|  | Returns a reference to the element at the specified position in the container. 
 | 
|  | 
| template<class OI> | 
| auto | operator[] (std::initializer_list< OI > index) -> reference | 
|  | 
| template<class S> | 
| auto | operator[] (const S &index) const -> disable_integral_t< S, const_reference > | 
|  | Returns a constant reference to the element at the specified position in the container. 
 | 
|  | 
| template<class OI> | 
| auto | operator[] (std::initializer_list< OI > index) const -> const_reference | 
|  | 
| template<class It> | 
| auto | element (It first, It) -> reference | 
|  | Returns a reference to the element at the specified position in the xindex_view. 
 | 
|  | 
| template<class It> | 
| auto | element (It first, It) const -> const_reference | 
|  | Returns a reference to the element at the specified position in the xindex_view. 
 | 
|  | 
|  | 
| template<class O> | 
| bool | broadcast_shape (O &shape, bool reuse_cache=false) const | 
|  | Broadcast the shape of the xindex_view to the specified parameter. 
 | 
|  | 
| template<class O> | 
| bool | has_linear_assign (const O &) const noexcept | 
|  | Checks whether the xindex_view can be linearly assigned to an expression with the specified strides. 
 | 
|  | 
| template<class ST> | 
| auto | stepper_begin (const ST &shape) -> stepper | 
|  | 
| template<class ST> | 
| auto | stepper_end (const ST &shape, layout_type) -> stepper | 
|  | 
| template<class ST> | 
| auto | stepper_begin (const ST &shape) const -> const_stepper | 
|  | 
| template<class ST> | 
| auto | stepper_end (const ST &shape, layout_type) const -> const_stepper | 
|  | 
| template<class E> | 
| auto | build_index_view (E &&e) const -> rebind_t< E > | 
|  | 
| derived_type & | assign_xexpression (const xexpression< E > &e) | 
|  | 
| derived_type & | computed_assign (const xexpression< E > &e) | 
|  | 
| derived_type & | scalar_computed_assign (const E &e, F &&f) | 
|  | 
| auto | assign_xexpression (const xexpression< E > &e) -> derived_type & | 
|  | 
| auto | computed_assign (const xexpression< E > &e) -> derived_type & | 
|  | 
| auto | scalar_computed_assign (const E &e, F &&f) -> derived_type & | 
|  | 
| auto | operator= (const xexpression< E > &rhs) -> derived_type & | 
|  | 
| derived_type & | assign_temporary (temporary_type &&) | 
|  | Assigns the temporary tmpto*this.
 | 
|  | 
| auto | assign_xexpression (const xexpression< E > &e) -> derived_type & | 
|  | 
| auto | computed_assign (const xexpression< E > &e) -> derived_type & | 
|  | 
| auto | scalar_computed_assign (const E &e, F &&f) -> derived_type & | 
|  | 
| auto | operator= (const xexpression< E > &rhs) -> derived_type & | 
|  | 
| disable_xexpression< E, derived_type & > | operator+= (const E &) | 
|  | 
| derived_type & | operator+= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator-= (const E &) | 
|  | 
| derived_type & | operator-= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator*= (const E &) | 
|  | 
| derived_type & | operator*= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator/= (const E &) | 
|  | 
| derived_type & | operator/= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator%= (const E &) | 
|  | 
| derived_type & | operator%= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator&= (const E &) | 
|  | 
| derived_type & | operator&= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator|= (const E &) | 
|  | 
| derived_type & | operator|= (const xexpression< E > &) | 
|  | 
| disable_xexpression< E, derived_type & > | operator^= (const E &) | 
|  | 
| derived_type & | operator^= (const xexpression< E > &) | 
|  | 
| derived_type & | assign (const xexpression< E > &) | 
|  | 
| derived_type & | plus_assign (const xexpression< E > &) | 
|  | 
| derived_type & | minus_assign (const xexpression< E > &) | 
|  | 
| derived_type & | multiplies_assign (const xexpression< E > &) | 
|  | 
| derived_type & | divides_assign (const xexpression< E > &) | 
|  | 
| derived_type & | modulus_assign (const xexpression< E > &) | 
|  | 
| derived_type & | bit_and_assign (const xexpression< E > &) | 
|  | 
| derived_type & | bit_or_assign (const xexpression< E > &) | 
|  | 
| derived_type & | bit_xor_assign (const xexpression< E > &) | 
|  | 
| auto | operator+= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Adds the scalar eto*this.
 | 
|  | 
| auto | operator-= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Subtracts the scalar efrom*this.
 | 
|  | 
| auto | operator*= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Multiplies *thiswith the scalare.
 | 
|  | 
| auto | operator/= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Divides *thisby the scalare.
 | 
|  | 
| auto | operator%= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the remainder of *thisafter division by the scalare.
 | 
|  | 
| auto | operator&= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise and of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator|= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise or of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator^= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise xor of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator+= (const xexpression< E > &e) -> derived_type & | 
|  | Adds the xexpression eto*this.
 | 
|  | 
| auto | operator-= (const xexpression< E > &e) -> derived_type & | 
|  | Subtracts the xexpression efrom*this.
 | 
|  | 
| auto | operator*= (const xexpression< E > &e) -> derived_type & | 
|  | Multiplies *thiswith the xexpressione.
 | 
|  | 
| auto | operator/= (const xexpression< E > &e) -> derived_type & | 
|  | Divides *thisby the xexpressione.
 | 
|  | 
| auto | operator%= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the remainder of *thisafter division by the xexpressione.
 | 
|  | 
| auto | operator&= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise and of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | operator|= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise or of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | operator^= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise xor of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | operator+= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Adds the scalar eto*this.
 | 
|  | 
| auto | operator+= (const xexpression< E > &e) -> derived_type & | 
|  | Adds the xexpression eto*this.
 | 
|  | 
| auto | operator-= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Subtracts the scalar efrom*this.
 | 
|  | 
| auto | operator-= (const xexpression< E > &e) -> derived_type & | 
|  | Subtracts the xexpression efrom*this.
 | 
|  | 
| auto | operator*= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Multiplies *thiswith the scalare.
 | 
|  | 
| auto | operator*= (const xexpression< E > &e) -> derived_type & | 
|  | Multiplies *thiswith the xexpressione.
 | 
|  | 
| auto | operator/= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Divides *thisby the scalare.
 | 
|  | 
| auto | operator/= (const xexpression< E > &e) -> derived_type & | 
|  | Divides *thisby the xexpressione.
 | 
|  | 
| auto | operator%= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the remainder of *thisafter division by the scalare.
 | 
|  | 
| auto | operator%= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the remainder of *thisafter division by the xexpressione.
 | 
|  | 
| auto | operator&= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise and of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator&= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise and of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | operator|= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise or of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator|= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise or of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | operator^= (const E &e) -> disable_xexpression< E, derived_type & > | 
|  | Computes the bitwise xor of *thisand the scalareand assigns it to*this.
 | 
|  | 
| auto | operator^= (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise xor of *thisand the xexpressioneand assigns it to*this.
 | 
|  | 
| auto | assign (const xexpression< E > &e) -> derived_type & | 
|  | Assigns the xexpression eto*this.
 | 
|  | 
| auto | plus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Adds the xexpression eto*this.
 | 
|  | 
| auto | minus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Subtracts the xexpression eto*this.
 | 
|  | 
| auto | multiplies_assign (const xexpression< E > &e) -> derived_type & | 
|  | Multiplies *thiswith the xexpressione.
 | 
|  | 
| auto | divides_assign (const xexpression< E > &e) -> derived_type & | 
|  | Divides *thisby the xexpressione.
 | 
|  | 
| auto | modulus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the remainder of *thisafter division by the xexpressione.
 | 
|  | 
| auto | bit_and_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise and of eto*this.
 | 
|  | 
| auto | bit_or_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise or of eto*this.
 | 
|  | 
| auto | bit_xor_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise xor of eto*this.
 | 
|  | 
| auto | operator= (const xexpression< E > &e) -> derived_type & | 
|  | 
| auto | assign (const xexpression< E > &e) -> derived_type & | 
|  | Assigns the xexpression eto*this.
 | 
|  | 
| auto | plus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Adds the xexpression eto*this.
 | 
|  | 
| auto | minus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Subtracts the xexpression eto*this.
 | 
|  | 
| auto | multiplies_assign (const xexpression< E > &e) -> derived_type & | 
|  | Multiplies *thiswith the xexpressione.
 | 
|  | 
| auto | divides_assign (const xexpression< E > &e) -> derived_type & | 
|  | Divides *thisby the xexpressione.
 | 
|  | 
| auto | modulus_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the remainder of *thisafter division by the xexpressione.
 | 
|  | 
| auto | bit_and_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise and of eto*this.
 | 
|  | 
| auto | bit_or_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise or of eto*this.
 | 
|  | 
| auto | bit_xor_assign (const xexpression< E > &e) -> derived_type & | 
|  | Computes the bitwise xor of eto*this.
 | 
|  | 
| auto | operator= (const xexpression< E > &e) -> derived_type & | 
|  | 
| const_layout_iterator< L > | begin () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept | 
|  | 
| const_layout_iterator< L > | end () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rbegin () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rend () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept | 
|  | 
| layout_iterator< L > | begin () noexcept | 
|  | 
| broadcast_iterator< S, L > | begin (const S &shape) noexcept | 
|  | 
| const_layout_iterator< L > | begin () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept | 
|  | 
| layout_iterator< L > | end () noexcept | 
|  | 
| broadcast_iterator< S, L > | end (const S &shape) noexcept | 
|  | 
| const_layout_iterator< L > | end () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept | 
|  | 
| reverse_layout_iterator< L > | rbegin () noexcept | 
|  | 
| reverse_broadcast_iterator< S, L > | rbegin (const S &shape) noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rbegin () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept | 
|  | 
| reverse_layout_iterator< L > | rend () noexcept | 
|  | 
| reverse_broadcast_iterator< S, L > | rend (const S &shape) noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rend () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept | 
|  | 
| auto | begin () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| auto | end () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | begin () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| auto | end () noexcept -> layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | rbegin () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | rbegin () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend () noexcept -> reverse_layout_iterator< L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | begin (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| auto | end (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | begin (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| auto | end (const S &shape) noexcept -> broadcast_iterator< S, L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | get_begin (bool end_index) noexcept -> layout_iterator< L > | 
|  | 
| auto | get_end (bool end_index) noexcept -> layout_iterator< L > | 
|  | 
| auto | get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > | 
|  | 
| auto | get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > | 
|  | 
| auto | get_stepper_begin (const S &shape) noexcept -> stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) noexcept -> stepper | 
|  | 
| auto | get_stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  | 
| auto | rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | get_begin (bool end_index) noexcept -> layout_iterator< L > | 
|  | 
| auto | get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > | 
|  | 
| auto | get_end (bool end_index) noexcept -> layout_iterator< L > | 
|  | 
| auto | get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > | 
|  | 
| auto | get_stepper_begin (const S &shape) noexcept -> stepper | 
|  | 
| auto | get_stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) noexcept -> stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  | 
| const_layout_iterator< L > | begin () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept | 
|  | 
| const_layout_iterator< L > | end () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept | 
|  | 
| const_layout_iterator< L > | cbegin () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | cbegin (const S &shape) const noexcept | 
|  | 
| const_layout_iterator< L > | cend () const noexcept | 
|  | 
| const_broadcast_iterator< S, L > | cend (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rbegin () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | rend () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | crbegin () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | crbegin (const S &shape) const noexcept | 
|  | 
| const_reverse_layout_iterator< L > | crend () const noexcept | 
|  | 
| const_reverse_broadcast_iterator< S, L > | crend (const S &shape) const noexcept | 
|  | 
| auto | begin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| auto | end () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | cbegin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| auto | cend () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | begin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| auto | end () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | cbegin () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| auto | cend () const noexcept -> const_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| auto | rbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | crbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | crend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | rbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | rend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | crbegin () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| auto | crend () const noexcept -> const_reverse_layout_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| auto | begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| 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. 
 | 
|  | 
| auto | cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| 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. 
 | 
|  | 
| auto | begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| 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. 
 | 
|  | 
| auto | cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| auto | get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| auto | get_cend (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| auto | get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| auto | get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| auto | get_stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| auto | get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| auto | get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| auto | get_cend (bool end_index) const noexcept -> const_layout_iterator< L > | 
|  | 
| auto | get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > | 
|  | 
| auto | get_stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| auto | get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  |