読者です 読者をやめる 読者になる 読者になる

VSでも動くパラメーターパックヘルパーを作った

C++

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でコンパイルを通すため