Предположим, у меня есть boost::mpl::vector
«myvec
», определяется, например, как это:Как преобразовать boost :: mpl :: vector в другой boost :: mpl :: vector?
using myvec = boost::mpl::vector<int, double, double>;
Теперь я хочу, чтобы определить другой тип, myvecex, который преобразует каждый myvec
элемент в std::tuple
с добавлением строки. Я хочу, чтобы получить тип, определенный как это:
using myvecex = boost::mpl::vector<std::tuple<int, std::string>,
std::tuple<double, std::string>,
std::tuple<double, std::string> >;
Но я не хочу повторять себе и имя всех членов вектора. Вместо этого я хочу определить тип шаблона , где я каким-то образом поставил бы логику преобразования каждого типа элемента в кортеж.
using myvecex2 = some_smart_template<myvec>;
static_assert(std::is_same<myvecex, myvecex2>::value);
Возможно ли это на C++?