VSでも動くパラメーターパックヘルパーを作った
https://gist.github.com/Fuyutsubaki/e798e6c8d9265d020b4d
これ
template<size_t N ,class Func> class drop_functor { template<class F> drop_functor(F&&f); template<class...T> auto operator()(T&&...args); }; template<size_t N,class Func> auto make_drop(Func&&func) ->drop_functor<N, Func>;
N個dropして関数を適用して結果を返すファンクタとそのへルパ
sample
ppl::make_drop<1>(Print{})(1, 2, "3"); //2 3
template<size_t N,class ...T> auto value_at(T&&...args); template<size_t N,class ...T> struct type_at { using type=...; };
パラメータパックからN番目の要素を取り出す
auto c = ppl::value_at<3>(1, 2, 3, "Hi!!", 5);//Hi!!
template<size_t N, class Func> struct take_functor { template<class F> take_functor(F&&func); template<class ...T> auto operator()(T&&...args); }; template<size_t N, class Func> take_functor<N, Func> make_take(Func&&func);
dropのmake版。実装があれなのはVSでコンパイルを通すため