Angenommen, ich habe eine boost::mpl::vector
„myvec
“, wie dies beispielsweise definiert:Wie boost :: mpl :: vector in einen anderen boost :: mpl :: vector?
using myvec = boost::mpl::vector<int, double, double>;
Jetzt möchte ich einen anderen Typ, myvecex definieren, die jedes myvec
Mitglied in std::tuple
mit zusätzlichen String umwandelt. Ich möchte eine Art wie folgt definiert bekommen:
using myvecex = boost::mpl::vector<std::tuple<int, std::string>,
std::tuple<double, std::string>,
std::tuple<double, std::string> >;
Aber ich will nicht wiederholen mich und Namen alle Vektorelemente. Stattdessen möchte ich some_smart_template
Schablonentyp definieren, wo ich irgendwie die Logik der Umwandlung jedes Elementtyps in ein Tupel setzen werde.
using myvecex2 = some_smart_template<myvec>;
static_assert(std::is_same<myvecex, myvecex2>::value);
Ist es in C++ überhaupt machbar?