1#ifndef SEAD_SAFE_ARRAY_H_
2#define SEAD_SAFE_ARRAY_H_
4#include <basis/seadAssert.h>
5#include <basis/seadTypes.h>
9template <
typename T, s32 N>
17template <
typename T, s32 N>
27 if (
static_cast<u32>(x) <
static_cast<u32>(N))
40 if (x <
static_cast<u32>(N))
53 if (
static_cast<u32>(x) <
static_cast<u32>(N))
66 if (x <
static_cast<u32>(N))
93 for (s32 i = 0; i < N; i++)
102 :
mPtr(buffer + index)
132 s32 getIndex()
const {
return ((uintptr_t)mPtr - (uintptr_t)mStart) /
sizeof(T); }
143 :
mPtr(buffer + index)
173 s32 getIndex()
const {
return ((uintptr_t)mPtr - (uintptr_t)mStart) /
sizeof(T); }
195 if (
static_cast<u32>(x) <=
static_cast<u32>(N))
208 if (
static_cast<u32>(x) <=
static_cast<u32>(N))
226 if (
static_cast<u32>(x) <=
static_cast<u32>(N))
255template <
typename T, s32 N>
282 for (s32 i = 0; i < N; i++)
Definition seadSafeArray.h:140
bool operator!=(const constIterator &rhs) const
Definition seadSafeArray.h:153
const T * mPtr
Definition seadSafeArray.h:177
constIterator(const T *buffer, s32 index=0)
Definition seadSafeArray.h:142
bool operator==(const constIterator &rhs) const
Definition seadSafeArray.h:148
const T & operator*() const
Definition seadSafeArray.h:170
const T * operator->() const
Definition seadSafeArray.h:171
const T * mStart
Definition seadSafeArray.h:176
s32 getIndex() const
Definition seadSafeArray.h:173
constIterator & operator++()
Definition seadSafeArray.h:158
constIterator & operator--()
Definition seadSafeArray.h:164
Definition seadSafeArray.h:99
s32 getIndex() const
Definition seadSafeArray.h:132
bool operator!=(const iterator &rhs) const
Definition seadSafeArray.h:112
iterator & operator++()
Definition seadSafeArray.h:117
T * operator->() const
Definition seadSafeArray.h:130
iterator & operator--()
Definition seadSafeArray.h:123
T & operator*() const
Definition seadSafeArray.h:129
iterator(T *buffer, s32 index=0)
Definition seadSafeArray.h:101
T * mStart
Definition seadSafeArray.h:135
T * mPtr
Definition seadSafeArray.h:136
bool operator==(const iterator &rhs) const
Definition seadSafeArray.h:107
Definition seadSafeArray.h:184
Definition seadSafeArray.h:181
Definition seadSafeArray.h:14
Definition seadSafeArray.h:19
T & back()
Definition seadSafeArray.h:83
reverseConstIterator reverseConstBegin() const
constIterator constEnd() const
Definition seadSafeArray.h:222
constIterator begin() const
Definition seadSafeArray.h:188
reverseConstIterator toReverseConstIterator(s32) const
reverseConstIterator reverseEnd() const
reverseConstIterator reverseBegin() const
const T & operator()(s32) const
T * getBufferPtr()
Definition seadSafeArray.h:88
reverseIterator reverseBegin()
void fill(const T &value)
Definition seadSafeArray.h:91
reverseIterator toReverseIterator(s32)
iterator toIterator(s32 x)
Definition seadSafeArray.h:193
iterator end()
Definition seadSafeArray.h:190
constIterator toIterator(s32 x) const
Definition seadSafeArray.h:206
constexpr u32 getByteSize() const
Definition seadSafeArray.h:87
const T & front() const
Definition seadSafeArray.h:81
constIterator constBegin() const
Definition seadSafeArray.h:220
constIterator toConstIterator(s32 x) const
Definition seadSafeArray.h:224
reverseConstIterator toReverseIterator(s32) const
reverseIterator reverseEnd()
reverseConstIterator reverseConstEnd() const
T mBuffer[N]
Definition seadSafeArray.h:252
T & front()
Definition seadSafeArray.h:80
constexpr T & operator[](s32 x)
Definition seadSafeArray.h:25
const T & back() const
Definition seadSafeArray.h:84
constexpr const T & operator[](s32 x) const
Definition seadSafeArray.h:51
constIterator end() const
Definition seadSafeArray.h:191
iterator begin()
Definition seadSafeArray.h:187
constexpr s32 size() const
Definition seadSafeArray.h:86
const T * getBufferPtr() const
Definition seadSafeArray.h:89
Definition seadSafeArray.h:257
const T & front() const
Definition seadSafeArray.h:270
T & front()
Definition seadSafeArray.h:269
reverseConstIterator reverseConstBegin() const
void fill(const T &value)
Definition seadSafeArray.h:280
iterator toIterator(s32 x)
Definition seadSafeArray.h:299
reverseIterator reverseEnd()
reverseConstIterator reverseBegin() const
reverseIterator toReverseIterator(s32)
constIterator toIterator(s32 x) const
Definition seadSafeArray.h:300
u32 getByteSize() const
Definition seadSafeArray.h:276
const T & operator()(s32) const
T * getBufferPtr()
Definition seadSafeArray.h:277
constIterator constEnd() const
Definition seadSafeArray.h:304
reverseConstIterator toReverseConstIterator(s32) const
T mBuffer[N]
Definition seadSafeArray.h:323
reverseConstIterator toReverseIterator(s32) const
UnsafeArray()
Definition seadSafeArray.h:259
SafeArray< T, N >::reverseConstIterator reverseConstIterator
Definition seadSafeArray.h:290
reverseIterator reverseBegin()
constIterator toConstIterator(s32 x) const
Definition seadSafeArray.h:306
SafeArray< T, N >::iterator iterator
Definition seadSafeArray.h:287
s32 size() const
Definition seadSafeArray.h:275
constIterator end() const
Definition seadSafeArray.h:297
reverseConstIterator reverseEnd() const
iterator end()
Definition seadSafeArray.h:296
const T & back() const
Definition seadSafeArray.h:273
constIterator constBegin() const
Definition seadSafeArray.h:302
const T & operator[](s32 x) const
Definition seadSafeArray.h:264
T & operator[](s32 x)
Definition seadSafeArray.h:263
SafeArray< T, N >::constIterator constIterator
Definition seadSafeArray.h:288
T & back()
Definition seadSafeArray.h:272
iterator begin()
Definition seadSafeArray.h:293
constIterator begin() const
Definition seadSafeArray.h:294
const T * getBufferPtr() const
Definition seadSafeArray.h:278
reverseConstIterator reverseConstEnd() const
SafeArray< T, N >::reverseIterator reverseIterator
Definition seadSafeArray.h:289
Definition seadAssert.h:44
#define SEAD_ASSERT_MSG(condition, format,...)
Definition seadAssert.h:33