summaryrefslogtreecommitdiff
path: root/source/core/slang-array-view.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-array-view.h')
-rw-r--r--source/core/slang-array-view.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/source/core/slang-array-view.h b/source/core/slang-array-view.h
index 56c936073..c67a53337 100644
--- a/source/core/slang-array-view.h
+++ b/source/core/slang-array-view.h
@@ -12,6 +12,8 @@ namespace Slang
class ConstArrayView
{
public:
+ typedef ConstArrayView ThisType;
+
const T* begin() const { return m_buffer; }
const T* end() const { return m_buffer + m_count; }
@@ -70,6 +72,30 @@ namespace Slang
return -1;
}
+ bool operator==(const ThisType& rhs) const
+ {
+ if (&rhs == this)
+ {
+ return true;
+ }
+ const Index count = getCount();
+ if (count != rhs.getCount())
+ {
+ return false;
+ }
+ const T* thisEle = getBuffer();
+ const T* rhsEle = rhs.getBuffer();
+ for (Index i = 0; i < count; ++i)
+ {
+ if (thisEle[i] != rhsEle[i])
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ SLANG_FORCE_INLINE bool operator!=(const ThisType& rhs) const { return !(*this == rhs); }
+
ConstArrayView() :
m_buffer(nullptr),
m_count(0)
@@ -111,6 +137,8 @@ namespace Slang
class ArrayView: public ConstArrayView<T>
{
public:
+ typedef ArrayView ThisType;
+
typedef ConstArrayView<T> Super;
using Super::m_buffer;
@@ -147,6 +175,7 @@ namespace Slang
{
return ArrayView<T>(buffer, count);
}
+
}
#endif