openMSX
Classes | Namespaces | Functions
view.hh File Reference
#include "semiregular.hh"
#include <algorithm>
#include <cassert>
#include <functional>
#include <iterator>
#include <tuple>
#include <type_traits>
#include <utility>
Include dependency graph for view.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  view::detail::Drop< Range >
 
class  view::detail::DropBack< Range >
 
class  view::detail::Reverse< Range >
 
class  view::detail::TransformIterator< Iterator, UnaryOp >
 
class  view::detail::Transform< Range, UnaryOp >
 
class  view::detail::FilteredIterator< Iterator, Sentinel, Predicate >
 
class  view::detail::Filter< Range, Predicate >
 
class  view::detail::TakeIterator< Iterator, Sentinel >
 
class  view::detail::Take< Range >
 
class  view::detail::Zip< CHECK_ALL, RangesTuple, Is >
 

Namespaces

namespace  view
 
namespace  view::detail
 

Functions

template<typename Iterator >
constexpr Iterator view::detail::safe_next (Iterator first, Iterator last, size_t n, std::input_iterator_tag)
 
template<typename Iterator >
constexpr Iterator view::detail::safe_next (Iterator first, Iterator last, size_t n, std::random_access_iterator_tag)
 
template<typename Iterator >
constexpr Iterator view::detail::safe_prev (Iterator first, Iterator last, size_t n, std::bidirectional_iterator_tag)
 
template<typename Iterator >
constexpr Iterator view::detail::safe_prev (Iterator first, Iterator last, size_t n, std::random_access_iterator_tag)
 
template<typename... Ts>
std::tuple< decltype(std::begin(std::declval< Ts >()))... > view::detail::iterators_tuple_helper (const std::tuple< Ts... > &)
 
template<typename... Ts>
std::tuple< decltype(*std::begin(std::declval< Ts >()))... > view::detail::iterators_deref_tuple_helper (const std::tuple< Ts... > &)
 
template<typename RangesTuple , size_t ... Is>
Zip< true, RangesTuple, Is... > view::detail::zip (RangesTuple &&ranges, std::index_sequence< Is... >)
 
template<typename RangesTuple , size_t ... Is>
Zip< false, RangesTuple, Is... > view::detail::zip_equal (RangesTuple &&ranges, std::index_sequence< Is... >)
 
template<typename Range >
constexpr auto view::drop (Range &&range, size_t n)
 
template<typename Range >
constexpr auto view::drop_back (Range &&range, size_t n)
 
template<typename Range >
constexpr auto view::reverse (Range &&range)
 
template<typename Range , typename UnaryOp >
constexpr auto view::transform (Range &&range, UnaryOp op)
 
template<typename Map >
constexpr auto view::keys (Map &&map)
 
template<typename Map >
constexpr auto view::values (Map &&map)
 
template<typename ForwardRange , typename Predicate >
auto view::filter (ForwardRange &&range, Predicate pred)
 
template<typename ForwardRange >
constexpr auto view::take (ForwardRange &&range, size_t n)
 
template<typename ... Ranges>
auto view::zip (Ranges &&... ranges)
 
template<typename ... Ranges>
auto view::zip_equal (Ranges &&... ranges)