14#ifndef RANGES_V3_RANGE_DANGLING_HPP
15#define RANGES_V3_RANGE_DANGLING_HPP
25#include <range/v3/utility/static_const.hpp>
27#include <range/v3/detail/prologue.hpp>
39 requires not_same_as_<T, dangling>)
47 template(
class R,
class U)(
49 using maybe_dangling_ =
54 template<
typename Rng>
55 using borrowed_iterator_t = detail::maybe_dangling_<Rng, iterator_t<Rng>>;
57 template<
typename Rng>
58 using safe_iterator_t RANGES_DEPRECATED(
59 "Please use ranges::borrowed_iterator_t instead.") = borrowed_iterator_t<Rng>;
65 constexpr T && operator()(T && t)
const noexcept
67 return static_cast<T &&
>(t);
71 using sanitize_fn RANGES_DEPRECATED(
72 "The sanitize function is unneeded and deprecated.") = _sanitize_fn;
76 RANGES_DEPRECATED(
"The sanitize function is unneeded and deprecated.")
77 constexpr auto & sanitize = static_const<_sanitize_fn>::value;
84 using ranges::borrowed_iterator_t;
86 template<
typename Rng>
87 using safe_iterator_t RANGES_DEPRECATED(
88 "Please use ranges::borrowed_iterator_t instead.") = borrowed_iterator_t<Rng>;
92#include <range/v3/detail/epilogue.hpp>
typename detail::_cond< If >::template invoke< Then, Else > conditional_t
Select one type or another depending on a compile-time Boolean.
Definition meta.hpp:1148
A placeholder for an iterator or a sentinel into a range that may no longer be valid.
Definition dangling.hpp:35