diff options
Diffstat (limited to 'dev/Kernel/NewKit')
| -rw-r--r-- | dev/Kernel/NewKit/Array.h | 7 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/ArrayList.h | 13 |
2 files changed, 16 insertions, 4 deletions
diff --git a/dev/Kernel/NewKit/Array.h b/dev/Kernel/NewKit/Array.h index f44caae3..aab3ba91 100644 --- a/dev/Kernel/NewKit/Array.h +++ b/dev/Kernel/NewKit/Array.h @@ -24,6 +24,7 @@ namespace Kernel T& operator[](const SizeT& at) { + MUST_PASS(at < this->Count()); return fArray[at]; } @@ -55,4 +56,10 @@ namespace Kernel private: T fArray[N]; }; + + template <typename ValueType> + auto make_list(ValueType val) + { + return Array<ValueType, ARRAY_SIZE(val)>{val}; + } } // namespace Kernel diff --git a/dev/Kernel/NewKit/ArrayList.h b/dev/Kernel/NewKit/ArrayList.h index 88d67daa..6d799ad5 100644 --- a/dev/Kernel/NewKit/ArrayList.h +++ b/dev/Kernel/NewKit/ArrayList.h @@ -14,7 +14,7 @@ namespace Kernel class ArrayList final { public: - explicit ArrayList(T* list) + explicit ArrayList(T* list, SizeT length) : fList(reinterpret_cast<T>(list)) { } @@ -36,6 +36,7 @@ namespace Kernel T& operator[](int index) const { + MUST_PASS(index < this->Count()); return fList[index]; } @@ -44,10 +45,14 @@ namespace Kernel return fList; } - private: - T* fList; + SizeT Count() + { + return fLen; + } - friend class InitHelpers; + private: + T* fList{nullptr}; + SizeT fLen{0}; }; template <typename ValueType> |
