Range-v3 Range algorithms, views, and actions for the Standard Library |

Public Types | Public Member Functions | List of all members
ranges::insert_fn Struct Reference

## Public Types
template<typename Rng , typename... Args>
using | insert_result_t = decltype(insert(std::declval< Rng >(), std::declval< Args >()...))

## Public Member Functions
template<typename Rng , typename I , typename S >
insert_result_t< Rng, I, S > | operator() (Rng &&rng, I i, S j) const
template<typename Rng , typename I , typename N , typename T >
insert_result_t< Rng, I, N, T > | operator() (Rng &&rng, I p, N n, T &&t) const
template<typename Rng , typename I , typename Rng2 >
insert_result_t< Rng, I, Rng2 > | operator() (Rng &&rng, I p, Rng2 &&rng2) const
template<typename Rng , typename I , typename T >
insert_result_t< Rng, I, std::initializer_list< T > & > | operator() (Rng &&rng, I p, std::initializer_list< T > rng2) const
template<typename Rng , typename I , typename T >
insert_result_t< Rng, I, T > | operator() (Rng &&rng, I p, T &&t) const
template<typename Rng , typename P , typename I , typename S >
insert_result_t< Rng, P, I, S > | operator() (Rng &&rng, P p, I i, S j) const
template<typename Rng , typename Rng2 >
insert_result_t< Rng, Rng2 > | operator() (Rng &&rng, Rng2 &&rng2) const
template<typename Rng , typename T >
insert_result_t< Rng, std::initializer_list< T > & > | operator() (Rng &&rng, std::initializer_list< T > rng2) const
template<typename Rng , typename T >
insert_result_t< Rng, T > | operator() (Rng &&rng, T &&t) const

## Member Function Documentation

## ◆ operator()() [1/9]

template<typename Rng , typename I , typename S >

insert_result_t<Rng, I, S> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | I | i,
|  | S | j
| ) |  | const

Precondition
  requires `range<Rng> && sentinel_for<S, I> && (!range<S>)` //

## ◆ operator()() [2/9]

template<typename Rng , typename I , typename N , typename T >

insert_result_t<Rng, I, N, T> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | I | p,
|  | N | n,
|  | T && | t
| ) |  | const

Precondition
  requires `range<Rng> && input_iterator<I> && integral<N> && (!range<T>) && constructible_from<range_value_t<Rng>, T>`

## ◆ operator()() [3/9]

template<typename Rng , typename I , typename Rng2 >

insert_result_t<Rng, I, Rng2> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | I | p,
|  | Rng2 && | rng2
| ) |  | const

Precondition
  requires `range<Rng> && input_iterator<I> && range<Rng2>`

## ◆ operator()() [4/9]

template<typename Rng , typename I , typename T >

insert_result_t<Rng, I, std::initializer_list<T> &> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | I | p,
|  | std::initializer_list< T > | rng2
| ) |  | const

Precondition
  requires `range<Rng> && input_iterator<I>`

## ◆ operator()() [5/9]

template<typename Rng , typename I , typename T >

insert_result_t<Rng, I, T> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | I | p,
|  | T && | t
| ) |  | const

Precondition
  requires `range<Rng> && input_iterator<I> && (!range<T>) && constructible_from<range_value_t<Rng>, T>`

## ◆ operator()() [6/9]

template<typename Rng , typename P , typename I , typename S >

insert_result_t<Rng, P, I, S> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | P | p,
|  | I | i,
|  | S | j
| ) |  | const

Precondition
  requires `range<Rng> && input_iterator<P> && sentinel_for<S, I> && (!range<S>)` //

## ◆ operator()() [7/9]

template<typename Rng , typename Rng2 >

insert_result_t<Rng, Rng2> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | Rng2 && | rng2
| ) |  | const

Precondition
  requires `range<Rng> && range<Rng2>`

## ◆ operator()() [8/9]

template<typename Rng , typename T >

insert_result_t<Rng, std::initializer_list<T> &> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | std::initializer_list< T > | rng2
| ) |  | const

Precondition
  requires `range<Rng>`

## ◆ operator()() [9/9]

template<typename Rng , typename T >

insert_result_t<Rng, T> ranges::insert_fn::operator() | ( | Rng && | rng,
|  | T && | t
| ) |  | const

Precondition
  requires `range<Rng> && (!range<T>) && constructible_from<range_value_t<Rng>, T>`