13#ifndef RANGES_V3_DETAIL_SATISFY_BOOST_RANGE_HPP
14#define RANGES_V3_DETAIL_SATISFY_BOOST_RANGE_HPP
23#ifndef RANGES_DOXYGEN_INVOKED
28 template<
typename T,
typename U>
33 template<
typename T,
typename U>
48#define RANGES_SATISFY_BOOST_RANGE(view_name) \
51 template<typename... Ts> \
52 struct range_mutable_iterator< \
54 ::meta::if_c<(bool)::ranges::common_range<view_name<Ts...>>>> \
56 using type = ::ranges::iterator_t<view_name<Ts...>>; \
58 template<typename... Ts> \
59 struct range_const_iterator< \
61 ::meta::if_c<(bool)::ranges::common_range<view_name<Ts...> const>>> \
63 using type = ::ranges::iterator_t<view_name<Ts...> const>; \
65 template<typename... Ts> \
66 struct range_value<view_name<Ts...>> \
68 using type = ::ranges::range_value_t<view_name<Ts...>>; \
70 template<typename... Ts> \
71 struct range_size<view_name<Ts...>> \
72 : ::meta::if_c<(bool)::ranges::common_range<view_name<Ts...>>, \
73 ::meta::defer<::ranges::range_size_t, view_name<Ts...>>, \
76 template<typename... Ts> \
77 struct range_size<view_name<Ts...> const> \
78 : ::meta::if_c<(bool)::ranges::common_range<view_name<Ts...> const>, \
79 ::meta::defer<::ranges::range_size_t, view_name<Ts...> const>, \
84#define RANGES_SATISFY_BOOST_RANGE(view_name)
Boost Range specialisation point, for making Boost ranges out of range-v3 views.
Definition satisfy_boost_range.hpp:34
Boost Range specialisation point, for making Boost ranges out of range-v3 views.
Definition satisfy_boost_range.hpp:29
Boost Range specialisation point, for making Boost ranges out of range-v3 views.
Definition satisfy_boost_range.hpp:44
Boost Range specialisation point, for making Boost ranges out of range-v3 views.
Definition satisfy_boost_range.hpp:39