У меня есть функция main_func
, где я изменяю шаблон paramater pack / variadi c, преобразовывая его в кортеж. После того, как я изменил его, например: original = tuple<int, float, string>
становится modified = tuple<int float>
Я хочу расширить измененный кортеж на другую функцию в примере get_type_vector
, чтобы пакет параметров представлял типы измененного кортежа Args = int, float
.
template<typename... Args>
void main_func()
{
// Modify the parameter pack (which if im correct can only be done by converting to tuple?)
using original = std::tuple<Args...>;
using modified = // something that alters the types of the original tuple
// This is what i want to accomplish
// somehow expand the tuple type like a parameter pack
auto vec = get_type_vector<modified...>()
}
// Returns a vector of type_info
template<typename... Args>
std::vector<type_info> get_type_vector()
{
return { type_info<Args>()... };
}
Можно ли как-то расширить тип кортежа, например, тип пакета параметров? Я нашел примеры, используя std::apply
et c. но для этого требуется, чтобы у вас было значение, а не только определение типа кортежа.