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);
84 [[nodiscard]]
constexpr bool equal(
const self_type& rhs)
const noexcept
86 return m_index == rhs.m_index;
89 [[nodiscard]]
constexpr bool less_than(
const self_type& rhs)
const noexcept
91 return m_index < rhs.m_index;
94 FUNCTOR m_functor = FUNCTOR{};