Pop Integer Sequence

#include <m3ta/popintegersequence>

Removes a given number of elements from the end of an integer sequence.

Traits

m3ta::PopIntegerSequence
template<std::size_t T_count, typename T_Sequence>
struct PopIntegerSequence;
Template Parameters:
 
  • T_count – Number of elements to remove from the end.
  • T_Sequence – The integer sequence.

Member Types

type

The type m3ta::IntegerSequence resulting of the elements removal.

Aliases

m3ta::PopIntegerSequenceT
template<std::size_t T_count, typename T_Sequence>
using PopIntegerSequenceT =
    typename PopIntegerSequence<T_count, T_Sequence>::type;

template<std::size_t T_count, typename T, T ... T_values>
using PopIntegerPack = PopIntegerSequence<
    T_count,
    IntegerSequence<T, T_values...>
>;

template<std::size_t T_count, typename T, T ... T_values>
using PopIntegerPackT =
    typename PopIntegerPack<T_count, T, T_values ...>::type;

template<std::size_t T_count, std::size_t ... T_values>
using PopIndexPack =
    PopIntegerSequence<
        T_count,
        IndexSequence<T_values...>
    >;

template<std::size_t T_count, std::size_t ... T_values>
using PopIndexPackT =
    typename PopIndexPack<T_count, T_values ...>::type;

Usage Examples

using Type1 = m3ta::PopIndexPackT<
    1,
    0, 1, 2, 4
>; // m3ta::IntegerSequence<std::size_t, 0, 1, 2>
using Type2 = m3ta::PopIntegerSequenceT<
    2,
    m3ta::IntegerSequence<int, 0, 1, 2, 4>
>; // m3ta::IntegerSequence<int, 0, 1>