11#ifndef CUBBYFLOW_ARRAY_BASE_HPP
12#define CUBBYFLOW_ARRAY_BASE_HPP
18template <
typename T,
size_t N,
typename DerivedArray>
33 template <
typename...
Args>
36 template <
size_t...
I>
45 template <
size_t M = N>
46 std::enable_if_t<(
M > 0),
size_t>
Width()
const;
48 template <
size_t M = N>
49 std::enable_if_t<(
M > 1),
size_t>
Height()
const;
51 template <
size_t M = N>
52 std::enable_if_t<(
M > 2),
size_t>
Depth()
const;
78 template <
typename...
Args>
81 template <
typename...
Args>
92 template <
typename...
Args>
95 template <
typename...
Args>
115 template <
typename...
Args>
128 template <
typename...
Args>
131 [[
nodiscard]]
size_t IndexInternal(
size_t,
size_t i)
const;
133 template <
size_t...
I>
135 std::index_sequence<I...>)
const;
Definition ArrayBase.hpp:20
Pointer data()
Definition ArrayBase-Impl.hpp:39
bool IsEmpty() const
Definition ArrayBase-Impl.hpp:78
Pointer m_ptr
Definition ArrayBase.hpp:124
ArrayBase()
Definition ArrayBase-Impl.hpp:214
void ClearPtrAndSize()
Definition ArrayBase-Impl.hpp:263
Vector< size_t, N > m_size
Definition ArrayBase.hpp:125
Reference operator[](size_t i)
Definition ArrayBase-Impl.hpp:176
Iterator begin()
Definition ArrayBase-Impl.hpp:90
void SetPtrAndSize(Pointer ptr, size_t ni, Args... args)
Definition ArrayBase-Impl.hpp:250
Reference operator()(size_t i, Args... args)
size_t Length() const
Definition ArrayBase-Impl.hpp:84
Iterator rend()
Definition ArrayBase-Impl.hpp:126
void SwapPtrAndSize(ArrayBase &other)
Definition ArrayBase-Impl.hpp:269
Reference At(size_t i, Args... args)
T * Pointer
Definition ArrayBase.hpp:26
std::enable_if_t<(M > 2), size_t > Depth() const
Definition ArrayBase-Impl.hpp:72
ConstReference operator()(size_t i, Args... args) const
ConstReference At(size_t i, Args... args) const
std::enable_if_t<(M > 0), size_t > Width() const
Definition ArrayBase-Impl.hpp:58
Iterator end()
Definition ArrayBase-Impl.hpp:102
const Vector< size_t, N > & Size() const
Definition ArrayBase-Impl.hpp:51
Reference At(size_t i)
Definition ArrayBase-Impl.hpp:138
std::enable_if_t<(M > 1), size_t > Height() const
Definition ArrayBase-Impl.hpp:65
size_t Index(size_t i) const
Definition ArrayBase-Impl.hpp:17
Iterator rbegin()
Definition ArrayBase-Impl.hpp:114
ArrayBase & operator=(const ArrayBase &other)
Definition ArrayBase-Impl.hpp:232
virtual ~ArrayBase()=default
Definition pybind11Utils.hpp:21
Matrix< T, Rows, 1 > Vector
Definition Matrix.hpp:738