4 #include <muda/view/view_base.h> 5 #include <muda/viewer/dense.h> 9 template <
bool IsConst,
typename T>
16 using auto_const_t =
typename Base::template auto_const_t<U>;
18 auto_const_t<T>* m_data =
nullptr;
27 using ThisViewer =
typename std::conditional_t<IsConst, ConstViewer, NonConstViewer>;
30 MUDA_GENERIC
VarViewBase() MUDA_NOEXCEPT : m_data(
nullptr) {}
31 MUDA_GENERIC
VarViewBase(auto_const_t<T>* data) MUDA_NOEXCEPT : m_data(data)
35 MUDA_GENERIC auto_const_t<T>* data() MUDA_NOEXCEPT {
return m_data; }
36 MUDA_GENERIC
const T* data()
const MUDA_NOEXCEPT {
return m_data; }
38 MUDA_GENERIC
auto cviewer()
const MUDA_NOEXCEPT
42 MUDA_GENERIC
auto viewer() MUDA_NOEXCEPT {
return ThisViewer{m_data}; }
52 using iterator_category = std::random_access_iterator_tag;
53 using difference_type = size_t;
55 MUDA_GENERIC reference operator*() {
return *data(); }
56 MUDA_GENERIC auto_const_t<T>& operator[](
int i) {
return *data(); }
57 MUDA_GENERIC
const T& operator[](
int i)
const {
return *data(); }
68 void copy_to(T* data)
const;
80 MUDA_GENERIC
auto as_const()
const MUDA_NOEXCEPT
85 void copy_from(
const T* data);
87 void fill(
const T& value);
88 void copy_to(T* data)
const { as_const().copy_to(data); }
105 template <
typename T>
108 template <
typename T>
113 #include "details/var_view.inl" Definition: view_base.h:7
Definition: type_modifier.h:21
Definition: buffer_fwd.h:9
Definition: type_modifier.h:27
Definition: dense_0d.h:83
Definition: buffer_fwd.h:6
Definition: var_view.h:10