aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/BaseIterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/workloads/BaseIterator.hpp')
-rw-r--r--src/backends/reference/workloads/BaseIterator.hpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backends/reference/workloads/BaseIterator.hpp b/src/backends/reference/workloads/BaseIterator.hpp
index ab6de2b37f..26b0179e71 100644
--- a/src/backends/reference/workloads/BaseIterator.hpp
+++ b/src/backends/reference/workloads/BaseIterator.hpp
@@ -23,6 +23,8 @@ public:
virtual BaseIterator& operator+=(const unsigned int increment) = 0;
virtual BaseIterator& operator-=(const unsigned int increment) = 0;
+
+ virtual BaseIterator& operator[](const unsigned int index) = 0;
};
template<typename IType>
@@ -54,7 +56,7 @@ class TypedIterator : public Base
{
public:
TypedIterator(T* data)
- : m_Iterator(data)
+ : m_Iterator(data), m_Start(data)
{}
TypedIterator& operator++() override
@@ -75,8 +77,15 @@ public:
return *this;
}
+ TypedIterator& operator[](const unsigned int index) override
+ {
+ m_Iterator = m_Start + index;
+ return *this;
+ }
+
protected:
T* m_Iterator;
+ T* m_Start;
};
class QASymm8Decoder : public TypedIterator<const uint8_t, Decoder<float>>