MySQL 9.6.0
Source Code Documentation
projection_views.h File Reference

Experimental API header. More...

#include <cstddef>
#include <iterator>
#include <utility>
#include "mysql/ranges/transform_view.h"

Go to the source code of this file.

Classes

struct  mysql::ranges::detail::Projection_transform< index_tp >
 Function-like class that projects a tuple-like object to the Nth element. More...
 

Namespaces

namespace  mysql
 
namespace  mysql::ranges
 
namespace  mysql::ranges::detail
 

Typedefs

template<std::size_t index_tp, std::input_iterator Source_iterator_tp>
using mysql::ranges::Projection_iterator = Transform_iterator< detail::Projection_transform< index_tp >, Source_iterator_tp >
 Projection iterator adaptor: given an iterator over tuple-like objects, this is an iterator over the Nth component. More...
 
template<std::size_t index_tp, std::ranges::range Source_tp>
using mysql::ranges::Projection_view = Transform_view< detail::Projection_transform< index_tp >, Source_tp >
 Projection view: given a range over tuple-like objects, this is a range over the N'th component of those tuples. More...
 
template<class Value_iterator_t >
using mysql::ranges::Key_iterator = Projection_iterator< 0, Value_iterator_t >
 Iterator adaptor that extracts the first component from tuple-like value types. More...
 
template<class Source_t >
using mysql::ranges::Key_view = Projection_view< 0, Source_t >
 View over the keys of a range of pairs. More...
 
template<class Value_iterator_t >
using mysql::ranges::Mapped_iterator = Projection_iterator< 1, Value_iterator_t >
 Iterator adaptor that extracts the second component from tuple-like value types. More...
 
template<class Source_t >
using mysql::ranges::Mapped_view = Projection_view< 1, Source_t >
 View over the mapped values in a range of pairs. More...
 

Functions

template<std::size_t index_t, std::input_iterator Tuple_iterator_t>
auto mysql::ranges::make_projection_iterator (const Tuple_iterator_t &iterator)
 Factory function to create a Projection_iterator. More...
 
template<std::size_t index_t, std::ranges::range Source_t>
auto mysql::ranges::make_projection_view (const Source_t &source)
 Factory function to create a Projection_view. More...
 
auto mysql::ranges::make_key_iterator (const auto &iterator)
 Factory function to create a new iterator from a given iterator over pairs. More...
 
auto mysql::ranges::make_key_view (const auto &source)
 Factory function to create a new view over the keys in a range of pairs. More...
 
auto mysql::ranges::make_mapped_iterator (const auto &iterator)
 Factory function to create a new iterator from a given iterator over pairs. More...
 
auto mysql::ranges::make_mapped_view (const auto &source)
 Factory function to create a new view over the mapped values in a range of pairs. More...
 

Detailed Description

Experimental API header.