001
26.11.2009, 21:01 Uhr
0xdeadbeef
Gott (Operator)
|
Dein Beispiel deckt sich grad nicht mit der Deklaration. Wenn ich aber richtig verstehe, was du vorhast, wäre ein std::vector<Ein_beliebiges_tuple> wahrscheinlich die einfachere Lösung.
Ansonsten - bis c++0x mit variadic templates rumkommt, wird das wohl nur von Hand gehen, etwa
C++: |
namespace impl { template<int i, typename T> struct tvec_aux { };
template<typename T> struct tvec_aux<0, T> { typedef std::tr1::tuple<std::vector<std::tr1::tuple_element<0, T>::type> > type; };
template<typename T> struct tvec_aux<1, T> { typedef std::tr1::tuple<std::vector<std::tr1::tuple_element<0, T>::type>, std::vector<std::tr1::tuple_element<1, T>::type> > type; };
template<typename T> struct tvec_aux<2, T> { typedef std::tr1::tuple<std::vector<std::tr1::tuple_element<0, T>::type>, std::vector<std::tr1::tuple_element<1, T>::type>, std::vector<std::tr1::tuple_element<2, T>::type> > type; };
// ... }
template<typename T> struct tuple_vectorizer { typedef impl::tvec_aux<std::tr1::tuple_size<T>::value, T>::type type; };
|
Womöglich ließe sich da mit Boost.PP was drehen, um das über einen Kamm zu scheren. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |