Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::safe_end_fn Struct Reference

Public Member Functions

template<typename Rng , typename I = decltype(end(std::declval<Rng &>()))>
constexpr meta::if_< std::is_lvalue_reference< Rng >, I, dangling< I > > operator() (Rng &&rng) const
 

Member Function Documentation

template<typename Rng , typename I = decltype(end(std::declval<Rng &>()))>
constexpr meta::if_<std::is_lvalue_reference<Rng>, I, dangling<I> > ranges::v3::safe_end_fn::operator() ( Rng &&  rng) const
Returns
begin(rng) if rng is an lvalue; otherwise, it returns begin(rng) wrapped in ranges::dangling.

References ranges::v3::end.