好吧,这真的是一件很难的事。
我希望能够通过在给定的一组有效索引处选择参数类型来获取参数包的子集,然后将该参数包用作函数的参数列表。IE:
template <size_t... indices_t>
void func(pack_subset<indices_t..., args_t...>); //incorrect syntax,
//not sure how else to write this
//args_t is predetermined, this
//function is a static member of
//a variadic class template
//For a parameter pack <float, double> and index set 0
void func(float); // <- result of template
我可以获得单个索引的类型,但是一组索引有点困难,尤其是当该组的大小可变时。其语法是:
pack_index<size_t index_t, typename... args>::type
也许我可以将一堆这些串在一起,但我不确定如何扩展 indices_t 以便为列表中的每个值获得一个 pack_index。