diff options
-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); }; |