Range-v3
Range algorithms, views, and actions for the Standard Library
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 T >
auto operator() (Rng &&rng, T &&t) const -> insert_result_t< Rng, T > requires range< Rng > &&(!range< T >)&&constructible_from< range_value_t< Rng >, T >
 
template<typename Rng , typename Rng2 >
auto operator() (Rng &&rng, Rng2 &&rng2) const -> insert_result_t< Rng, Rng2 > requires range< Rng > &&range< Rng2 >
 
template<typename Rng , typename T >
auto operator() (Rng &&rng, std::initializer_list< T > rng2) const -> insert_result_t< Rng, std::initializer_list< T > &> requires range< Rng >
 
template<typename Rng , typename I , typename S >
auto operator() (Rng &&rng, I i, S j) const -> insert_result_t< Rng, I, S > requires range< Rng > &&sentinel_for< S, I > &&(!range< S >)
 
template<typename Rng , typename I , typename T >
auto operator() (Rng &&rng, I p, T &&t) const -> insert_result_t< Rng, I, T > requires range< Rng > &&input_iterator< I > &&(!range< T >)&&constructible_from< range_value_t< Rng >, T >
 
template<typename Rng , typename I , typename Rng2 >
auto operator() (Rng &&rng, I p, Rng2 &&rng2) const -> insert_result_t< Rng, I, Rng2 > requires range< Rng > &&input_iterator< I > &&range< Rng2 >
 
template<typename Rng , typename I , typename T >
auto operator() (Rng &&rng, I p, std::initializer_list< T > rng2) const -> insert_result_t< Rng, I, std::initializer_list< T > &> requires range< Rng > &&input_iterator< I >
 
template<typename Rng , typename I , typename N , typename T >
auto operator() (Rng &&rng, I p, N n, T &&t) const -> insert_result_t< Rng, I, N, T > requires range< Rng > &&input_iterator< I > &&integral< N > &&(!range< T >)&&constructible_from< range_value_t< Rng >, T >
 
template<typename Rng , typename P , typename I , typename S >
auto operator() (Rng &&rng, P p, I i, S j) const -> insert_result_t< Rng, P, I, S > requires range< Rng > &&input_iterator< P > &&sentinel_for< S, I > &&(!range< S >)