diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-06-15 13:24:25 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-06-15 13:24:25 -0700 |
| commit | 205187b561c3b31fa931e73e8f7263f0c4b1de41 (patch) | |
| tree | 7bd2cd5ae3c14416b71ef8319ff02ace429d1132 /source/core/array-view.h | |
| parent | 517513645afb8eaf4841e7b7035f1ba3a9c7cd57 (diff) | |
Rename `CoreLib::*` to `Slang`
Getting rid of more namespace complexity and stripping things down to the basics.
This also gets rid of some dead code in the "core" library.
Diffstat (limited to 'source/core/array-view.h')
| -rw-r--r-- | source/core/array-view.h | 202 |
1 files changed, 100 insertions, 102 deletions
diff --git a/source/core/array-view.h b/source/core/array-view.h index 201ef2a79..4e0057cdb 100644 --- a/source/core/array-view.h +++ b/source/core/array-view.h @@ -3,129 +3,127 @@ #include "Exception.h" -namespace CoreLib +namespace Slang { - namespace Basic + template<typename T> + class ArrayView { - template<typename T> - class ArrayView + private: + T * _buffer; + int _count; + int stride; + public: + T* begin() const { - private: - T * _buffer; - int _count; - int stride; - public: - T* begin() const - { - return _buffer; - } - T* end() const - { - return (T*)((char*)_buffer + _count*stride); - } - public: - ArrayView() - { - _buffer = 0; - _count = 0; - } - ArrayView(const T & singleObj) - { - SetData((T*)&singleObj, 1, sizeof(T)); - } - ArrayView(T * buffer, int count) - { - SetData(buffer, count, sizeof(T)); - } - ArrayView(void * buffer, int count, int _stride) - { - SetData(buffer, count, _stride); - } - void SetData(void * buffer, int count, int _stride) - { - this->_buffer = (T*)buffer; - this->_count = count; - this->stride = _stride; - } - inline int GetCapacity() const - { - return _count; - } - inline int Count() const - { - return _count; - } + return _buffer; + } + T* end() const + { + return (T*)((char*)_buffer + _count*stride); + } + public: + ArrayView() + { + _buffer = 0; + _count = 0; + } + ArrayView(const T & singleObj) + { + SetData((T*)&singleObj, 1, sizeof(T)); + } + ArrayView(T * buffer, int count) + { + SetData(buffer, count, sizeof(T)); + } + ArrayView(void * buffer, int count, int _stride) + { + SetData(buffer, count, _stride); + } + void SetData(void * buffer, int count, int _stride) + { + this->_buffer = (T*)buffer; + this->_count = count; + this->stride = _stride; + } + inline int GetCapacity() const + { + return _count; + } + inline int Count() const + { + return _count; + } - inline T & operator [](int id) const - { + inline T & operator [](int id) const + { #if _DEBUG - if (id >= _count || id < 0) - throw IndexOutofRangeException("Operator[]: Index out of Range."); + if (id >= _count || id < 0) + throw IndexOutofRangeException("Operator[]: Index out of Range."); #endif - return *(T*)((char*)_buffer+id*stride); - } + return *(T*)((char*)_buffer+id*stride); + } - inline T* Buffer() const - { - return _buffer; - } + inline T* Buffer() const + { + return _buffer; + } - template<typename T2> - int IndexOf(const T2 & val) const + template<typename T2> + int IndexOf(const T2 & val) const + { + for (int i = 0; i < _count; i++) { - for (int i = 0; i < _count; i++) - { - if (*(T*)((char*)_buffer + i*stride) == val) - return i; - } - return -1; + if (*(T*)((char*)_buffer + i*stride) == val) + return i; } + return -1; + } - template<typename T2> - int LastIndexOf(const T2 & val) const + template<typename T2> + int LastIndexOf(const T2 & val) const + { + for (int i = _count - 1; i >= 0; i--) { - for (int i = _count - 1; i >= 0; i--) - { - if (*(T*)((char*)_buffer + i*stride) == val) - return i; - } - return -1; + if (*(T*)((char*)_buffer + i*stride) == val) + return i; } + return -1; + } - template<typename Func> - int FindFirst(const Func & predicate) const + template<typename Func> + int FindFirst(const Func & predicate) const + { + for (int i = 0; i < _count; i++) { - for (int i = 0; i < _count; i++) - { - if (predicate(_buffer[i])) - return i; - } - return -1; + if (predicate(_buffer[i])) + return i; } + return -1; + } - template<typename Func> - int FindLast(const Func & predicate) const + template<typename Func> + int FindLast(const Func & predicate) const + { + for (int i = _count - 1; i >= 0; i--) { - for (int i = _count - 1; i >= 0; i--) - { - if (predicate(_buffer[i])) - return i; - } - return -1; + if (predicate(_buffer[i])) + return i; } - }; - - template<typename T> - ArrayView<T> MakeArrayView(const T & obj) - { - return ArrayView<T>(obj); + return -1; } + }; + + template<typename T> + ArrayView<T> MakeArrayView(const T & obj) + { + return ArrayView<T>(obj); + } - template<typename T> - ArrayView<T> MakeArrayView(T * buffer, int count) - { - return ArrayView<T>(buffer, count); - } + template<typename T> + ArrayView<T> MakeArrayView(T * buffer, int count) + { + return ArrayView<T>(buffer, count); } } + #endif
\ No newline at end of file |
