|  | 
| using | base_type = xcontainer<D> | 
|  | 
| using | storage_type = typename base_type::storage_type | 
|  | 
| using | value_type = typename base_type::value_type | 
|  | 
| using | reference = typename base_type::reference | 
|  | 
| using | const_reference = typename base_type::const_reference | 
|  | 
| using | pointer = typename base_type::pointer | 
|  | 
| using | const_pointer = typename base_type::const_pointer | 
|  | 
| using | size_type = typename base_type::size_type | 
|  | 
| using | shape_type = typename base_type::shape_type | 
|  | 
| using | strides_type = typename base_type::strides_type | 
|  | 
| using | inner_shape_type = typename base_type::inner_shape_type | 
|  | 
| using | inner_strides_type = typename base_type::inner_strides_type | 
|  | 
| using | inner_backstrides_type = typename base_type::inner_backstrides_type | 
|  | 
| using | derived_type = D | 
|  | 
| using | inner_types = xcontainer_inner_types<D> | 
|  | 
| using | storage_type = typename inner_types::storage_type | 
|  | 
| using | allocator_type = allocator_type_t<std::decay_t<storage_type>> | 
|  | 
| using | value_type = typename storage_type::value_type | 
|  | 
| using | reference = typename inner_types::reference | 
|  | 
| using | const_reference = typename inner_types::const_reference | 
|  | 
| using | pointer = typename storage_type::pointer | 
|  | 
| using | const_pointer = typename storage_type::const_pointer | 
|  | 
| using | size_type = typename inner_types::size_type | 
|  | 
| using | difference_type = typename storage_type::difference_type | 
|  | 
| using | simd_value_type = xt_simd::simd_type<value_type> | 
|  | 
| using | bool_load_type = xt::bool_load_type<value_type> | 
|  | 
| using | shape_type = typename inner_types::shape_type | 
|  | 
| using | strides_type = typename inner_types::strides_type | 
|  | 
| using | backstrides_type = typename inner_types::backstrides_type | 
|  | 
| using | inner_shape_type = typename inner_types::inner_shape_type | 
|  | 
| using | inner_strides_type = typename inner_types::inner_strides_type | 
|  | 
| using | inner_backstrides_type = typename inner_types::inner_backstrides_type | 
|  | 
| using | iterable_base = xcontiguous_iterable<D> | 
|  | 
| using | stepper = typename iterable_base::stepper | 
|  | 
| using | const_stepper = typename iterable_base::const_stepper | 
|  | 
| using | accessible_base = xaccessible<D> | 
|  | 
| using | data_alignment = xt_simd::container_alignment_t<storage_type> | 
|  | 
| using | simd_type = xt_simd::simd_type<value_type> | 
|  | 
| using | linear_iterator = typename iterable_base::linear_iterator | 
|  | 
| using | const_linear_iterator = typename iterable_base::const_linear_iterator | 
|  | 
| using | reverse_linear_iterator = typename iterable_base::reverse_linear_iterator | 
|  | 
| using | const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator | 
|  | 
| template<class requested_type> | 
| using | simd_return_type = xt_simd::simd_return_type<value_type, requested_type> | 
|  | 
| using | container_iterator = linear_iterator | 
|  | 
| using | const_container_iterator = const_linear_iterator | 
|  | 
| using | derived_type = D | 
|  | 
| using | inner_types = xcontainer_inner_types<D> | 
|  | 
| using | iterable_base = xiterable<D> | 
|  | 
| using | stepper = typename iterable_base::stepper | 
|  | 
| using | const_stepper = typename iterable_base::const_stepper | 
|  | 
| template<layout_type L> | 
| using | layout_iterator = typename iterable_base::template layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | const_layout_iterator = typename iterable_base::template const_layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L> | 
|  | 
| template<layout_type L> | 
| using | const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L> | 
|  | 
| template<class S, layout_type L> | 
| using | broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L> | 
|  | 
| template<class S, layout_type L> | 
| using | const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L> | 
|  | 
| using | linear_traits = detail::linear_iterator_traits<D> | 
|  | 
| using | linear_iterator = typename linear_traits::linear_iterator | 
|  | 
| using | const_linear_iterator = typename linear_traits::const_linear_iterator | 
|  | 
| using | reverse_linear_iterator = typename linear_traits::reverse_linear_iterator | 
|  | 
| using | const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator | 
|  | 
| template<layout_type L, class It1, class It2> | 
| using | select_iterator_impl = std::conditional_t<L == static_layout, It1, It2> | 
|  | 
| template<layout_type L> | 
| using | select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>> | 
|  | 
| template<layout_type L> | 
| using | select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>> | 
|  | 
| template<layout_type L> | 
| using | select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>> | 
|  | 
| template<layout_type L> | 
| using | select_const_reverse_iterator | 
|  | 
| using | iterator = select_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_iterator = select_const_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major > | 
|  | 
| using | const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major > | 
|  | 
|  | 
| template<class... Args> | 
| reference | operator() (Args... args) | 
|  | 
| template<class... Args> | 
| const_reference | operator() (Args... args) const | 
|  | 
| template<class... Args> | 
| reference | unchecked (Args... args) | 
|  | 
| template<class... Args> | 
| const_reference | unchecked (Args... args) const | 
|  | 
| template<class It> | 
| reference | element (It first, It last) | 
|  | 
| template<class It> | 
| const_reference | element (It first, It last) const | 
|  | 
| template<class S> | 
| stepper | stepper_begin (const S &shape) noexcept | 
|  | 
| template<class S> | 
| stepper | stepper_end (const S &shape, layout_type l) noexcept | 
|  | 
| template<class S> | 
| const_stepper | stepper_begin (const S &shape) const noexcept | 
|  | 
| template<class S> | 
| const_stepper | stepper_end (const S &shape, layout_type l) const noexcept | 
|  | 
| template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size> | 
| container_simd_return_type_t< storage_type, value_type, requested_type > | load_simd (size_type i) const | 
|  | 
| template<class... Args> | 
| reference | at (Args... args) | 
|  | 
| template<class S> | 
| disable_integral_t< S, reference > | operator[] (const S &index) | 
|  | 
| template<class I> | 
| reference | operator[] (std::initializer_list< I > index) | 
|  | 
| reference | operator[] (size_type i) | 
|  | 
| reference | back () | 
|  | Returns a reference to the last element of the expression. 
 | 
|  | 
| reference | front () | 
|  | Returns a reference to the first element of the expression. 
 | 
|  | 
| template<class... Args> | 
| reference | periodic (Args... args) | 
|  | 
| size_type | size () const noexcept | 
|  | Returns the number of element in the container. 
 | 
|  | 
| constexpr size_type | dimension () const noexcept | 
|  | Returns the number of dimensions of the container. 
 | 
|  | 
| constexpr const inner_shape_type & | shape () const noexcept | 
|  | Returns the shape of the container. 
 | 
|  | 
| constexpr const inner_strides_type & | strides () const noexcept | 
|  | Returns the strides of the container. 
 | 
|  | 
| constexpr const inner_backstrides_type & | backstrides () const noexcept | 
|  | Returns the backstrides of the container. 
 | 
|  | 
| template<class T> | 
| void | fill (const T &value) | 
|  | Fills the container with the given value. 
 | 
|  | 
| storage_type & | storage () noexcept | 
|  | Returns a reference to the buffer containing the elements of the container. 
 | 
|  | 
| const storage_type & | storage () const noexcept | 
|  | Returns a constant reference to the buffer containing the elements of the container. 
 | 
|  | 
| pointer | data () noexcept | 
|  | Returns a pointer to the underlying array serving as element storage. 
 | 
|  | 
| const_pointer | data () const noexcept | 
|  | Returns a constant pointer to the underlying array serving as element storage. 
 | 
|  | 
| const size_type | data_offset () const noexcept | 
|  | Returns the offset to the first element in the container. 
 | 
|  | 
| template<class... Args> | 
| auto | operator() (Args... args) -> reference | 
|  | Returns a reference to the element at the specified position in the container. 
 | 
|  | 
| template<class... Args> | 
| auto | operator() (Args... args) const -> const_reference | 
|  | Returns a constant reference to the element at the specified position in the container. 
 | 
|  | 
| template<class... Args> | 
| auto | unchecked (Args... args) -> reference | 
|  | Returns a reference to the element at the specified position in the container. 
 | 
|  | 
| template<class... Args> | 
| auto | unchecked (Args... args) const -> const_reference | 
|  | Returns a constant reference to the element at the specified position in the container. 
 | 
|  | 
| template<class It> | 
| auto | element (It first, It last) -> reference | 
|  | Returns a reference to the element at the specified position in the container. 
 | 
|  | 
| template<class It> | 
| auto | element (It first, It last) const -> const_reference | 
|  | Returns a reference to the element at the specified position in the container. 
 | 
|  | 
| template<class S> | 
| bool | broadcast_shape (S &shape, bool reuse_cache=false) const | 
|  | Broadcast the shape of the container to the specified parameter. 
 | 
|  | 
| template<class S> | 
| bool | has_linear_assign (const S &strides) const noexcept | 
|  | Checks whether the xcontainer can be linearly assigned to an expression with the specified strides. 
 | 
|  | 
| reference | data_element (size_type i) | 
|  | 
| const_reference | data_element (size_type i) const | 
|  | 
| reference | flat (size_type i) | 
|  | Returns a reference to the element at the specified position in the container storage (as if it was one dimensional). 
 | 
|  | 
| const_reference | flat (size_type i) const | 
|  | Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional). 
 | 
|  | 
| template<class align, class simd> | 
| void | store_simd (size_type i, const simd &e) | 
|  | 
| linear_iterator | linear_begin () noexcept | 
|  | 
| linear_iterator | linear_end () noexcept | 
|  | 
| const_linear_iterator | linear_begin () const noexcept | 
|  | 
| const_linear_iterator | linear_end () const noexcept | 
|  | 
| const_linear_iterator | linear_cbegin () const noexcept | 
|  | 
| const_linear_iterator | linear_cend () const noexcept | 
|  | 
| reverse_linear_iterator | linear_rbegin () noexcept | 
|  | 
| reverse_linear_iterator | linear_rend () noexcept | 
|  | 
| const_reverse_linear_iterator | linear_rbegin () const noexcept | 
|  | 
| const_reverse_linear_iterator | linear_rend () const noexcept | 
|  | 
| const_reverse_linear_iterator | linear_crbegin () const noexcept | 
|  | 
| const_reverse_linear_iterator | linear_crend () const noexcept | 
|  | 
| template<class S> | 
| auto | stepper_begin (const S &shape) noexcept -> stepper | 
|  | 
| template<class S> | 
| auto | stepper_end (const S &shape, layout_type l) noexcept -> stepper | 
|  | 
| template<class S> | 
| auto | stepper_begin (const S &shape) const noexcept -> const_stepper | 
|  | 
| template<class S> | 
| auto | stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper | 
|  | 
| template<class alignment, class requested_type, std::size_t N> | 
| auto | load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type > | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_iterator< L > | begin () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_iterator< L > | end () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_iterator< L > | begin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_iterator< L > | end () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_iterator< L > | cbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_iterator< L > | cend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_reverse_iterator< L > | rbegin () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_reverse_iterator< L > | rend () noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_reverse_iterator< L > | rbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_reverse_iterator< L > | rend () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_reverse_iterator< L > | crbegin () const noexcept | 
|  | 
| template<layout_type L = ::xt::layout_type::row_major> | 
| select_const_reverse_iterator< L > | crend () const 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> | 
| 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> | 
| 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, 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 () noexcept -> select_iterator< L > | 
|  | Returns an iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | end () noexcept -> select_iterator< L > | 
|  | Returns an iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | begin () const noexcept -> select_const_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | end () const noexcept -> select_const_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | cbegin () const noexcept -> select_const_iterator< L > | 
|  | Returns a constant iterator to the first element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | cend () const noexcept -> select_const_iterator< L > | 
|  | Returns a constant iterator to the element following the last element of the expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rbegin () noexcept -> select_reverse_iterator< L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rend () noexcept -> select_reverse_iterator< L > | 
|  | Returns an iterator to the element following the last element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rbegin () const noexcept -> select_const_reverse_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | rend () const noexcept -> select_const_reverse_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 -> select_const_reverse_iterator< L > | 
|  | Returns a constant iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L> | 
| auto | crend () const noexcept -> select_const_reverse_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) 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, 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) noexcept -> reverse_broadcast_iterator< S, L > | 
|  | Returns an iterator to the first element of the reversed expression. 
 | 
|  | 
| template<layout_type L, class S> | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| static constexpr layout_type | static_layout = inner_types::layout | 
|  | 
| static constexpr bool | contiguous_layout = static_layout != layout_type::dynamic | 
|  | 
| static constexpr layout_type | static_layout = inner_types::layout | 
|  |