Ist es möglich, zum Durchlaufen einer mpl::vector zur Laufzeit ohne Instanziierung der Typen, in den Vektor?

Generell würde ich boost::mpl::for_each<>() durchqueren boost::mpl::vector, aber dies erfordert einen Funktor mit einer template-Funktion erklärt, wie die folgenden:

template<typename T> void operator()(T&){T::staticCall();}

Mein problem mit diesem ist, dass ich nicht wollen, das Objekt T instanziiert werden durch for_each<>. Ich brauche nicht den parameter T in der operator() überhaupt. Gibt es eine Möglichkeit, dies zu erreichen, oder eine alternative zu for_each<> dass nicht die übergabe eines Objekts vom Typ T an die template-Funktion?

Optimal, ich möchte die operator () - definition wie folgt Aussehen:

template<typename T> void operator()(){T::staticCall();}

Und natürlich will ich nicht, dass T instanziiert werden überhaupt vor dem Anruf. Andere Tipps/Vorschläge sind auch willkommen.

InformationsquelleAutor Marcin | 2010-10-29
Schreibe einen Kommentar