#include #include #include #include #include "test.hpp" template struct N {}; template using sig = int(Ts...); int main() { { using f = sig, N<1>, N<2>, N<3>, N<4>>; using test = pop_back_args_t; using expect = sig, N<1>, N<2>>; CT_ASSERT(std::is_same::value); } { using f = sig, N<1>, N<2>, N<3>, N<4>>; using test = pop_back_args_t; using expect = sig<>; CT_ASSERT(std::is_same::value); } { using f = sig, N<1>, N<2>, N<3>, N<4>>; using test = pop_back_args_t; using expect = sig, N<1>, N<2>, N<3>, N<4>>; CT_ASSERT(std::is_same::value); } { using f = sig, N<1>, N<2>, N<3>, N<4>>; using test = pop_back_args_t; using expect = sig, N<1>, N<2>, N<3>>; CT_ASSERT(std::is_same::value); } }