VCCC  2024.05
VisualCamp Common C++ library
Integer Sequence

Detailed Description

creates custom integer sequence

Typedefs

template<std::size_t N>
using make_rindex_sequence = decltype(internal::rindex_sequence(std::make_index_sequence< N >{}))
 alias of reverse index sequence More...
 
template<typename T , T v, std::size_t N>
using make_same_sequence = decltype(internal::same_sequence< T, v >(std::make_integer_sequence< T, N >{}))
 alias of same integer sequence More...
 
template<std::size_t N>
using make_zero_sequence = make_same_sequence< int, 0, N >
 alias of zero std::size_t sequence More...
 
template<typename T , T begin, T end, T step = 1, T size = (end + (end>0?-1:1) - begin)/step>
using make_range_sequence = decltype(internal::range_sequence< T, begin, step >(std::make_integer_sequence< T,(size >=0 ? size+1 :size)>{}))
 alias of range integer sequence More...
 
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>
using make_index_range_sequence = decltype(internal::range_sequence< std::size_t, begin, step >(std::make_integer_sequence< std::size_t,(size >=0 ? size+1 :size)>{}))
 alias of range index sequence More...
 

Typedef Documentation

◆ make_index_range_sequence

using make_index_range_sequence = decltype(internal::range_sequence<std::size_t, begin, step>(std::make_integer_sequence<std::size_t, (size >= 0 ? size+1 : size)>{}))
See also
make_range_sequence
Template Parameters
beginbegin value
endend value
stepincrement size(default = 1)
sizededuced. change it at your own risk

◆ make_range_sequence

using make_range_sequence = decltype(internal::range_sequence<T, begin, step>(std::make_integer_sequence<T, (size >= 0 ? size+1 : size)>{}))

creates std::integer_sequence<T, begin, begin+step, ... > template values satisfies [begin, end)

Template Parameters
Ttype
beginbegin value
endend value
stepincrement size(default = 1)
sizededuced. change it at your own risk

◆ make_rindex_sequence

using make_rindex_sequence = decltype(internal::rindex_sequence(std::make_index_sequence<N>{}))

creates std::index_sequence<N-1, N-2, ... 0>

Template Parameters
Nsequence length

◆ make_same_sequence

using make_same_sequence = decltype(internal::same_sequence<T, v>(std::make_integer_sequence<T, N>{}))

creates std::integer_sequence<T, v, v, ... v>

Template Parameters
Ttype
vvalue
Nsequence length

◆ make_zero_sequence

creates std::index_sequence<0, 0, ... 0>
note that the type is std::size_t, not int

Template Parameters
Nsequence length