I have done something similar using Boost.MPL and Boost.Fusion: compute the type sequence using the MPL facilities such as push_back
, then convert it to a fusion::vector
with fusion::as_vector
and MPL adaptors. I already had a helper to convert a fusion::vector
to std::tuple
though.