VCCC  2024.05
VisualCamp Common C++ library
sequence.hpp
Go to the documentation of this file.
1 # /*
2 # * Created by YongGyu Lee on 2020/12/08.
3 # */
4 #
5 # ifndef VCCC_UTILITY_SEQUENCE_HPP
6 # define VCCC_UTILITY_SEQUENCE_HPP
7 #
9 
10 namespace vccc {
11 
14 
23 template <std::size_t N>
25 = decltype(internal::rindex_sequence(std::make_index_sequence<N>{}));
26 
37 template <typename T, T v, std::size_t N>
39 = decltype(internal::same_sequence<T, v>(std::make_integer_sequence<T, N>{}));
40 
49 template <std::size_t N>
51 
52 
66 template <typename T, T begin, T end, T step=1, T size = (end + (end>0?-1:1) - begin)/step>
68 = decltype(internal::range_sequence<T, begin, step>(std::make_integer_sequence<T, (size >= 0 ? size+1 : size)>{}));
69 
80 template <std::size_t begin, std::size_t end, std::size_t step=1, std::size_t size = (end + (end>0?-1:1) - begin)/step>
82 = decltype(internal::range_sequence<std::size_t, begin, step>(std::make_integer_sequence<std::size_t, (size >= 0 ? size+1 : size)>{}));
83 
85 
86 } // namespace vccc
87 
88 # endif // VCCC_UTILITY_SEQUENCE_HPP
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
decltype(internal::range_sequence< T, begin, step >(std::make_integer_sequence< T,(size >=0 ? size+1 :size)>{})) make_range_sequence
alias of range integer sequence
Definition: sequence.hpp:68
decltype(internal::rindex_sequence(std::make_index_sequence< N >{})) make_rindex_sequence
alias of reverse index sequence
Definition: sequence.hpp:25
decltype(internal::range_sequence< std::size_t, begin, step >(std::make_integer_sequence< std::size_t,(size >=0 ? size+1 :size)>{})) make_index_range_sequence
alias of range index sequence
Definition: sequence.hpp:82
make_same_sequence< int, 0, N > make_zero_sequence
alias of zero std::size_t sequence
Definition: sequence.hpp:50
decltype(internal::same_sequence< T, v >(std::make_integer_sequence< T, N >{})) make_same_sequence
alias of same integer sequence
Definition: sequence.hpp:39
Definition: directory.h:12
constexpr auto size(const C &c) -> decltype(c.size())
Definition: size.hpp:16