Создание кортежей из списка типов

У меня есть старый код со следующей семантикой:

template <class Columns>
void doThings( Columns&& cols )
{
// internal cols processing..
}

Вызывающая сторона может быть:

doThings( boost::fusion::vector_tie<anyVar1, anyVar2> );
doThings( boost::fusion::vector_tie<anyVar1, anyVar2> );
doThings( boost::fusion::make_tuple());  // etc..

Мне нужно рефакторинг doThings принять список типы? чтобы создать вектор кортежей внутри — скрыть это во внутренней реализации. это будет зависеть от некоторого внутреннего типа.

Например, я хочу сделать что-то вроде этого (список типов уже известен):

template <class Types>
void doThings( Types&& types)
{
// pseudo code
auto internalVt = boost::fusion::vector_tie(types.begin(), types.end(),
[](Type& t)
{
return makeMyType(t);
});
};

// pseudo code
int anyVar1;
char anyVar2[100];

doThings( some_container<anyVar1, anyVar2> );
//or any type
doThings( some_container<int, char[100]> );

Это выполнимо? Как это можно сделать?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]