5 #ifndef VCCC_RANGES_RANGE_HPP_
6 #define VCCC_RANGES_RANGE_HPP_
20 struct is_range : std::false_type {};
23 struct is_range<T, true,
24 void_t<decltype(ranges::
begin(std::declval<T&>()))>,
25 void_t<decltype(ranges::end(std::declval<T&>()))>
26 > : std::true_type {};
53 struct range : detail::is_range<T> {};
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
specifies that a type is a range, that is, it provides a begin iterator and an end sentinel
Definition: range.hpp:53