Variadic Value Templates

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Bergmon
Beiträge: 46
Registriert: 03.05.2003, 16:39
Kontaktdaten:

Variadic Value Templates

Beitrag 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
Bergmon
Beiträge: 46
Registriert: 03.05.2003, 16:39
Kontaktdaten:

Re: Variadic Value Templates

Beitrag 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?
Virus
Beiträge: 38
Registriert: 20.09.2002, 17:28
Kontaktdaten:

Re: Variadic Value Templates

Beitrag von Virus »

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