28 Array4(
size_t bound0,
size_t bound1,
size_t bound2,
size_t bound3);
29 Array4(
size_t bound0,
size_t bound1,
size_t bound2,
size_t bound3, T* objects);
50 inline T**
const*
operator[] (
int cuboid)
const;
71 mObjects(bound0 * bound1 * bound2 * bound3),
103 template <
typename T>
109 template <
typename T>
118 template <
typename T>
121 *
this = std::move(other);
124 template <
typename T>
128 mObjects = std::move(other.mObjects);
133 template <
typename T>
inline 139 template <
typename T>
inline 145 template <
typename T>
inline 151 template <
typename T>
inline 157 template <
typename T>
inline 163 template <
typename T>
inline 169 template <
typename T>
172 for (
size_t i3 = 0; i3 <
mBound3; ++i3)
176 for (
size_t i2 = 0; i2 <
mBound2; ++i2)
178 size_t j1 =
mBound1 * (i2 + j2);
180 for (
size_t i1 = 0; i1 <
mBound1; ++i1)
182 size_t j0 =
mBound0 * (i1 + j1);
183 mIndirect3[i3][i2][i1] = &objects[j0];
189 template <
typename T>
std::vector< T ** > mIndirect2
std::vector< T * > mIndirect1
std::vector< T > mObjects
Array4 & operator=(Array4 const &)
void SetPointers(T *objects)
T **const * operator[](int cuboid) const
std::vector< T *** > mIndirect3