template class EE::UI::Charts::StridedSpan

A non-owning numeric view. Its owner must remain stable for the entire read transaction.

#include <xydatasource.hpp>

template <typename T>
class StridedSpan {
public:
    // construction

    StridedSpan();
    StridedSpan(const T* data, size_t size, size_t strideBytes = sizeof(T));
    StridedSpan(std::span<const T> span);

    template <std::ranges::contiguous_range Range>
    StridedSpan(Range& range);

    // methods

    constexpr size_t size() const;
    constexpr bool empty() const;
    T operator[](size_t index) const;
    constexpr bool contiguous() const;
    constexpr size_t strideBytes() const;
    constexpr const T* data() const;
    std::span<const T> span() const;
};