kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit b05fdecc29a98527ab933b8b1ae293af8d8c71fc
parent 73c5446bd8040f030b87da4392e41643e54b6eeb
Author: samuriddle@gmail.com <samuriddle@gmail.com>
Date:   Sun,  7 Aug 2016 07:17:06 +0300

Add const to expression_iterator and expression_reader

Diffstat:
Minclude/kfr/base/basic_expressions.hpp | 14+++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/kfr/base/basic_expressions.hpp b/include/kfr/base/basic_expressions.hpp @@ -36,8 +36,8 @@ struct expression_iterator constexpr expression_iterator(E1&& e1) : e1(std::forward<E1>(e1)) {} struct iterator { - T operator*() { return get(); } - T get() { return expr.e1(cinput, position, vec_t<T, 1>())[0]; } + T operator*() const { return get(); } + T get() const { return expr.e1(cinput, position, vec_t<T, 1>())[0]; } iterator& operator++() { ++position; @@ -50,11 +50,11 @@ struct expression_iterator return copy; } bool operator!=(const iterator& other) const { return position != other.position; } - expression_iterator& expr; + const expression_iterator& expr; size_t position; }; - iterator begin() { return { *this, 0 }; } - iterator end() { return { *this, e1.size() }; } + iterator begin() const { return { *this, 0 }; } + iterator end() const { return { *this, e1.size() }; } E1 e1; }; } @@ -135,13 +135,13 @@ template <typename T, typename E1> struct expression_reader { constexpr expression_reader(E1&& e1) noexcept : e1(std::forward<E1>(e1)) {} - T read() + T read() const { const T result = e1(cinput, m_position, vec_t<T, 1>()); m_position++; return result; } - size_t m_position = 0; + mutable size_t m_position = 0; E1 e1; }; template <typename T, typename E1>