24 functor_index_iterator<FUNCTOR>,
25 std::invoke_result_t<FUNCTOR, std::size_t>,
26 std::random_access_iterator_tag,
27 std::invoke_result_t<FUNCTOR, std::size_t>
32 using result_type = std::invoke_result_t<FUNCTOR, std::size_t>;
41 : m_functor(
std::move(functor))
50 return m_functor(m_index);
53 constexpr void increment()
58 constexpr void decrement()
81 [[nodiscard]]
constexpr bool equal(
const self_type& rhs)
const
83 return m_index == rhs.m_index;
86 [[nodiscard]]
constexpr bool less_than(
const self_type& rhs)
const
88 return m_index < rhs.m_index;
91 FUNCTOR m_functor = FUNCTOR{};