From 205187b561c3b31fa931e73e8f7263f0c4b1de41 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Thu, 15 Jun 2017 13:24:25 -0700 Subject: 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. --- source/core/array-view.h | 202 +++++++++++++++++++++++------------------------ 1 file changed, 100 insertions(+), 102 deletions(-) (limited to 'source/core/array-view.h') 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 + class ArrayView { - template - 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 - int IndexOf(const T2 & val) const + template + 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 - int LastIndexOf(const T2 & val) const + template + 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 - int FindFirst(const Func & predicate) const + template + 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 - int FindLast(const Func & predicate) const + template + 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 - ArrayView MakeArrayView(const T & obj) - { - return ArrayView(obj); + return -1; } + }; + + template + ArrayView MakeArrayView(const T & obj) + { + return ArrayView(obj); + } - template - ArrayView MakeArrayView(T * buffer, int count) - { - return ArrayView(buffer, count); - } + template + ArrayView MakeArrayView(T * buffer, int count) + { + return ArrayView(buffer, count); } } + #endif \ No newline at end of file -- cgit v1.2.3