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