8 template <
class T,
class View,
class Vector >
17 : v_( v ), offset_( offset ), stride_( stride )
23 : view_( view ), offset_( offset ), stride_( stride )
29 return view_ ? ( *view_ )[
idx( i ) ] : ( *v_ )[
idx( i ) ];
34 const auto full_size = view_ ? view_->size() : v_->size();
35 return full_size / stride_ - offset_ / stride_;
41 return offset_ + stride_ * i;
63 :
public vector_view_base< T, const const_vector_view< T >, const std::vector< T > >
104 using base_type::operator[];
108 return base_type::view() ? ( *base_type::view() )[ base_type::idx( i ) ]
109 : ( *base_type::vector() )[ base_type::idx( i ) ];
constexpr vector_view(vector_view *view, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:98
typename base_type::value_type value_type
Definition: vector_view.hpp:69
Definition: vector_view.hpp:9
typename base_type::value_type value_type
Definition: vector_view.hpp:90
size_type size() const noexcept
Definition: vector_view.hpp:32
Definition: vector_view.hpp:85
const T & operator[](size_type i) const
Definition: vector_view.hpp:27
constexpr const_vector_view(const const_vector_view *view, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:77
T & operator[](size_type i)
Definition: vector_view.hpp:106
View * view() noexcept
Definition: vector_view.hpp:49
typename base_type::size_type size_type
Definition: vector_view.hpp:89
constexpr vector_view_base(View *view, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:21
constexpr vector_view(std::vector< T > *v, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:92
constexpr size_type idx(size_type i) const noexcept
Definition: vector_view.hpp:39
Definition: vector_view.hpp:62
typename base_type::size_type size_type
Definition: vector_view.hpp:68
constexpr vector_view_base(Vector *v, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:15
constexpr const_vector_view(const std::vector< T > *v, size_type offset, size_type stride=1) noexcept
Definition: vector_view.hpp:71
typename std::vector< T > ::size_type size_type
Definition: vector_view.hpp:12
T value_type
Definition: vector_view.hpp:13
Vector * vector() noexcept
Definition: vector_view.hpp:44