У меня есть функция с параметром шаблона, которую я знаю как std::tuple
нескольких стандартных контейнеров C++ для разных типов элементов. Как я могу извлечь из этого тип, который является std::tuple
типов элементов?Извлечение кортежа value_type из кортежа контейнеров в C++ 11
Например, предположим, что у меня есть следующие функции
template <typename TupOfCtrs>
void doStuff(const TupOfCtrs& tupOfCtrs) {
using TupOfElements = /*extract a tuple type by applying CtrT::value_type to each container in tupOfCtrs and combining the results into an std::tuple*/;
MyHelperClass<TupOfElements> helper;
}
, и я знаю, что в настоящее время называется так:
std::list<Foo> l {/*...*/};
std::vector<Bar> v {/*...*/};
std::deque<Baz> d {/*...*/};
auto tup = std::make_tuple(l, v, d);
В этом случае, я хочу тип TupOfElements
помощник определяется как std::tuple<Foo, Bar, Baz>
. Обратите внимание, что мне не нужно на самом деле создать кортеж, только чтобы получить его тип.
Как это можно достичь, возможно, используя библиотеку Boost::Fusion?
Awesome, спасибо! :) –