19 using auto_const_t =
typename Base::template auto_const_t<U>;
20 auto_const_t<T>* m_data;
27 MUDA_GENERIC
explicit DenseViewerBase(auto_const_t<T>* p) MUDA_NOEXCEPT : m_data(p)
31 MUDA_GENERIC
auto as_const()
const MUDA_NOEXCEPT
36 MUDA_GENERIC
operator ConstViewer()
const MUDA_NOEXCEPT
41 MUDA_GENERIC auto_const_t<T>& operator*() MUDA_NOEXCEPT
47 MUDA_GENERIC auto_const_t<T>* operator->() MUDA_NOEXCEPT
53 MUDA_GENERIC auto_const_t<T>* data() MUDA_NOEXCEPT {
return m_data; }
55 MUDA_GENERIC
const T& operator*()
const MUDA_NOEXCEPT
57 return remove_const(*this).operator*();
60 MUDA_GENERIC
const T* operator->()
const MUDA_NOEXCEPT
62 return remove_const(*this).operator->();
65 MUDA_GENERIC
const T* data()
const MUDA_NOEXCEPT {
return m_data; }
67 MUDA_GENERIC
operator const T&()
const MUDA_NOEXCEPT {
return *m_data; }
70 MUDA_INLINE MUDA_GENERIC
void check()
const MUDA_NOEXCEPT
72 if constexpr(DEBUG_VIEWER)
74 MUDA_KERNEL_ASSERT(m_data,
75 "Dense[%s:%s]: m_data is null",