8#ifndef COLUMNAR_CORE_VECTOR_CONVERT_VIEW_H
9#define COLUMNAR_CORE_VECTOR_CONVERT_VIEW_H
31 template<
typename FunctionType,
typename IteratorType>
50 [[nodiscard]]
decltype(
auto)
operator * ()
const noexcept {
65 template<
typename FunctionType,
typename ViewType>
81 [[nodiscard]]
decltype(
auto)
operator[] (std::size_t
index)
const
84 throw std::out_of_range (
"VectorConvertView::operator[]: index out of range");
an iterator that does converts members using a passed in function
bool operator==(const VectorConvertIterator &that) const noexcept
VectorConvertIterator & operator++() noexcept
VectorConvertIterator(const FunctionType &val_function, IteratorType &&val_iterator)
bool operator!=(const VectorConvertIterator &that) const noexcept
a range view that does converts members using a passed in function
auto begin() const noexcept
auto end() const noexcept
std::size_t size() const noexcept
VectorConvertView(const FunctionType &val_function, const ViewType &val_view) noexcept
VectorConvertIterator(FunctionType &&, IteratorType &&) -> VectorConvertIterator< std::remove_cv_t< FunctionType >, std::remove_cv_t< IteratorType > >
VectorConvertView(FunctionType &&, ViewType &&) -> VectorConvertView< std::remove_cv_t< FunctionType >, std::remove_cv_t< ViewType > >