diff options
| author | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
|---|---|---|
| committer | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
| commit | 0d8dceea4310fde5706b3ce1c70609d72a38efdf (patch) | |
| tree | c831ef32c2c801a5c5a80401736b52c7b5a528ec /mp/src/public/tier1/utlarray.h | |
| parent | Updated the SDK with the latest code from the TF and HL2 branches. (diff) | |
| download | source-sdk-2013-master.tar.xz source-sdk-2013-master.zip | |
Diffstat (limited to 'mp/src/public/tier1/utlarray.h')
| -rw-r--r-- | mp/src/public/tier1/utlarray.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/mp/src/public/tier1/utlarray.h b/mp/src/public/tier1/utlarray.h index 36850860..ce5ffe8b 100644 --- a/mp/src/public/tier1/utlarray.h +++ b/mp/src/public/tier1/utlarray.h @@ -43,6 +43,8 @@ class CUtlArray : public base_array_t { public: typedef T ElemType_t; + typedef T* iterator; + typedef const T* const_iterator; CUtlArray(); CUtlArray( T* pMemory, size_t count ); @@ -59,6 +61,13 @@ public: T& Random(); const T& Random() const; + // STL compatible member functions. These allow easier use of std::sort + // and they are forward compatible with the C++ 11 range-based for loops. + iterator begin(); + const_iterator begin() const; + iterator end(); + const_iterator end() const; + T* Base(); const T* Base() const; @@ -131,6 +140,30 @@ inline CUtlArray<T, MAX_SIZE>::CUtlArray( CUtlArray const& vec ) } template< typename T, size_t MAX_SIZE > +typename CUtlArray<T, MAX_SIZE>::iterator CUtlArray<T, MAX_SIZE>::begin() +{ + return Base(); +} + +template< typename T, size_t MAX_SIZE > +typename CUtlArray<T, MAX_SIZE>::const_iterator CUtlArray<T, MAX_SIZE>::begin() const +{ + return Base(); +} + +template< typename T, size_t MAX_SIZE > +typename CUtlArray<T, MAX_SIZE>::iterator CUtlArray<T, MAX_SIZE>::end() +{ + return Base() + Count(); +} + +template< typename T, size_t MAX_SIZE > +typename CUtlArray<T, MAX_SIZE>::const_iterator CUtlArray<T, MAX_SIZE>::end() const +{ + return Base() + Count(); +} + +template< typename T, size_t MAX_SIZE > inline T *CUtlArray<T, MAX_SIZE>::Base() { return &m_Memory[0]; |