![]() |
Plasma Engine
2.0
|
This class uses delegates to define a range of values that can be enumerated using a forward iterator. More...
#include <RangeView.h>
Classes | |
struct | ConstIterator |
Const iterator, don't use directly, use ranged based for loops or call begin() end(). More... | |
struct | Iterator |
Iterator, don't use directly, use ranged based for loops or call begin() end(). More... | |
Public Types | |
using | BeginCallback = plDelegate<IteratorType()> |
using | EndCallback = plDelegate<IteratorType()> |
using | NextCallback = plDelegate<void(IteratorType&)> |
using | ValueCallback = plDelegate<ValueType(const IteratorType&)> |
Public Member Functions | |
PL_ALWAYS_INLINE | plRangeView (BeginCallback begin, EndCallback end, NextCallback next, ValueCallback value) |
Initializes the plRangeView with the delegates used to enumerate the range. | |
Iterator | begin () |
Iterator | end () |
ConstIterator | begin () const |
ConstIterator | end () const |
ConstIterator | cbegin () const |
ConstIterator | cend () const |
Friends | |
struct | Iterator |
struct | ConstIterator |
This class uses delegates to define a range of values that can be enumerated using a forward iterator.
Can be used to create a contiguous view to elements of a certain type without the need for them to actually exist in the same space or format. Think of IEnumerable in c# using composition via plDelegate instead of derivation. ValueType defines the value type we are iterating over and IteratorType is the internal key to identify an element. An example that creates a RangeView of strings that are stored in a linear array of structs.