diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:04:38 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:04:38 -0400 |
commit | 54a229c4364a0d15fff7efae8c97a39431122e54 (patch) | |
tree | 04a56c3b0549afd18d2a9cc05342f9f961a5a700 | |
parent | 310be43184c5af1cfe791bb955fd9e70ca861e0f (diff) |
TArray: Add `at()`, and `at_as()`
-rw-r--r-- | context.h | 11 | ||||
-rw-r--r-- | include/pso/TArray.h | 11 |
2 files changed, 20 insertions, 2 deletions
@@ -192,8 +192,12 @@ public: return n * sizeof(T); }; - T &operator[](size_t i) { + T &at(size_t i) { return m_data[i]; + } + + T &operator[](size_t i) { + return at(i); }; T *start() { @@ -210,6 +214,11 @@ public: }; template<typename T2> + T2 &at_as(size_t i) { + return reinterpret_cast<T2>(at(i)); + }; + + template<typename T2> size_t size_as() { return byte_size() / sizeof(T2); }; diff --git a/include/pso/TArray.h b/include/pso/TArray.h index 8dd736b..cefe6c8 100644 --- a/include/pso/TArray.h +++ b/include/pso/TArray.h @@ -23,8 +23,12 @@ public: return n * sizeof(T); }; - T &operator[](size_t i) { + T &at(size_t i) { return m_data[i]; + } + + T &operator[](size_t i) { + return at(i); }; T *start() { @@ -41,6 +45,11 @@ public: }; template<typename T2> + T2 &at_as(size_t i) { + return reinterpret_cast<T2>(at(i)); + }; + + template<typename T2> size_t size_as() { return byte_size() / sizeof(T2); }; |