MUDA
Loading...
Searching...
No Matches
field_entry_viewer_scalar.inl
1namespace muda
2{
3template <bool IsConst, typename T, FieldEntryLayout Layout>
4class FieldEntryViewerBase<IsConst, T, Layout, 1, 1>
5 : public FieldEntryViewerCore<IsConst, T, Layout, 1, 1>
6{
8
9 template <typename U>
10 using auto_const_t = typename Base::template auto_const_t<U>;
11
12 public:
13 using Base::Base;
17
18 MUDA_GENERIC auto as_const() const { return ConstViewer{this->m_core}; }
19 MUDA_GENERIC operator ConstViewer() const { return as_const(); }
20
21 MUDA_GENERIC auto_const_t<T>* data(int i) { return Base::data(i); }
22 MUDA_GENERIC const T* data(int i) const
23 {
24 return remove_const(this)->data(i);
25 }
26
27 MUDA_GENERIC auto_const_t<T>& operator()(int i) { return *data(i); }
28 MUDA_GENERIC const T& operator()(int i) const { return *data(i); }
29};
30
31template <typename T, FieldEntryLayout Layout>
32class CFieldEntryViewer<T, Layout, 1, 1>
33 : public FieldEntryViewerBase<true, T, Layout, 1, 1>
34{
36
37 MUDA_VIEWER_COMMON_NAME(CFieldEntryViewer);
38
39 public:
40 using Base::Base;
44
45 MUDA_GENERIC CFieldEntryViewer(const Base& base)
46 : Base(base)
47 {
48 }
49
50 MUDA_GENERIC auto as_const() const { return *this; }
51 MUDA_GENERIC operator ConstViewer() const { return as_const(); }
52
53 using Base::operator();
54};
55
56template <typename T, FieldEntryLayout Layout>
57class FieldEntryViewer<T, Layout, 1, 1>
58 : public FieldEntryViewerBase<false, T, Layout, 1, 1>
59{
61
62 MUDA_VIEWER_COMMON_NAME(FieldEntryViewer);
63
64 public:
65 using Base::Base;
69
70 MUDA_GENERIC FieldEntryViewer(const Base& base)
71 : Base(base)
72 {
73 }
74
75 MUDA_GENERIC auto as_const() const { return ConstViewer{Base::as_const()}; }
76
77 MUDA_GENERIC operator ConstViewer() const { return as_const(); }
78
79 using Base::operator();
80};
81} // namespace muda
Definition field_entry_viewer_scalar.inl:34
Definition field_entry_viewer_matrix.inl:52
Definition field_entry_viewer_scalar.inl:59
Definition field_entry_viewer_scalar.inl:6
Definition field_entry_viewer_matrix.inl:5
Definition field_entry_viewer.h:42
Definition field_entry_viewer_matrix.inl:77