Is it possible to generate a non-type parameter pack given an unrelated input? What I mean is, I would like like to turn this:
template <typename D, size_t... Offsets> struct VecGeneric;
template <typename N, size_t C> struct VecGenericData;
template <typename N, size_t D> struct TVecN;
template <typename N> struct TVecN<N,2> : public VecGeneric<VecGenericData<N,2>,0,1> { };
template <typename N> struct TVecN<N,3> : public VecGeneric<VecGenericData<N,3>,0,1,2> { };
template <typename N> struct TVecN<N,4> : public VecGeneric<VecGenericData<N,4>,0,1,2,3> { };
template <typename N> struct TVecN<N,5> : public VecGeneric<VecGenericData<N,5>,0,1,2,3,4> { };
template <typename N> struct TVecN<N,6> : public VecGeneric<VecGenericData<N,6>,0,1,2,3,4,5> { };
template <typename N> struct TVecN<N,7> : public VecGeneric<VecGenericData<N,7>,0,1,2,3,4,5,6> { };
// ...
Into something like this:
template <typename D, size_t... Offsets> struct VecGeneric;
template <typename N, size_t C> struct VecGenericData;
template <typename N, size_t D> struct TVecN : public VecGeneric<VecGenericData<N,D>,IntPack<D>...> { };