VCCC  2024.05
VisualCamp Common C++ library
input_range.hpp
Go to the documentation of this file.
1 //
2 // Created by yonggyulee on 2023/12/24.
3 //
4 
5 #ifndef VCCC_RANGES_INPUT_RANGE_HPP_
6 #define VCCC_RANGES_INPUT_RANGE_HPP_
7 
8 #include <type_traits>
9 
11 #include "vccc/__ranges/range.hpp"
15 
16 namespace vccc {
17 namespace ranges {
18 namespace detail {
19 
20 template<typename T, bool = has_typename_type<iterator<T>>::value>
21 struct input_range_impl : std::false_type {};
22 
23 template<typename T>
24 struct input_range_impl<T, true>
25  : conjunction<
26  range<T>,
27  input_iterator<iterator_t<T>>
28  > {};
29 
30 } // namespace detail
31 
34 
35 
45 template<typename T>
46 struct input_range : detail::input_range_impl<T> {};
47 
49 
50 } // namespace ranges
51 } // namespace vccc
52 
53 #endif // VCCC_RANGES_INPUT_RANGE_HPP_
Definition: directory.h:12
specifies a range whose iterator type satisfies input_iterator
Definition: input_range.hpp:46