Seite 1 von 1

Variadic Value Templates

Verfasst: 04.02.2012, 12:39
von Bergmon
Hi,

zugegeben, ich kenne nicht den offiziellen Namen von einem Template dieser Art:

Code: Alles auswählen

template<int V>
class DoSomething
{
...
};
Ich nenne es einfach Mal Value-Template, weil es eine Instanz von int nimmt.

Zwei Sachen kommen mir in den Sinn, ob sie mit dem neuen Standard umgesetzt sind.

Erstens:

Ist es möglich sich mit eigenen Strukturen Value-Templates zu bauen? Etwa in der Art:

Code: Alles auswählen

template<Struktur C>
class DoSomething
{
...
};

DoSomething<{initializer}>
Wobei "Struktur" eine Template-geeignete Struktur ist - ein Aggregat von skalaren Werten o.ä.

Zweitens:

Wie kann man ein Variadic Value Template bauen? Also ein Template was z.B. eine beliebige Anzahl an skalaren Werten nimmt?

Viele Grüße
Bergmon

Re: Variadic Value Templates

Verfasst: 04.02.2012, 12:48
von Bergmon
Hmm, also zu zweiter Frage habe ich gerade eine Antwort gefunden:

Code: Alles auswählen

template <typename ...T>
class space
{
    public:
    template <T... args>
    class vector
    {};
};

space<int, int>::vector<3,6>...
Nur wie greife ich jetzt am einfachsten auf die Argumente zu?

Re: Variadic Value Templates

Verfasst: 06.02.2012, 20:20
von Virus
Mit Hilfe von Rekursion (via template-Spezialisierung). Siehe z. B. das print-Beispiel hier: http://en.wikipedia.org/wiki/Variadic_template