Erweitern Sie einen Typ N mal im Vorlagenparameter

8

Ich habe das folgende Problem:

%Vor%

Wie Sie oben sehen können, versuche ich std::function<...> foo als Mitglied einer Klasse A zu deklarieren. Hier möchte ich foo den Return-Typ std::size_t haben (was kein Problem ist) und als Eingabe werde ich N-mal den Typ std::size_t übergeben aber ich weiß nicht wie. Gibt es eine Möglichkeit?

Vielen Dank im Voraus.

    
abraham_hilbert 12.10.2016, 09:29
quelle

3 Antworten

12

Sie können std::index_sequence :

verwenden %Vor%

Live-Beispiel bei coliru

Wenn Sie möchten, können Sie auch definieren, um welchen Typ es erweitert wird:

%Vor%     
Guillaume Racicot 12.10.2016, 14:30
quelle
2

Für einen beliebigen Typ und nicht nur für size_t , schreibe einfach einen Hilfsalias:

%Vor%     
T.C. 12.10.2016 21:52
quelle
1

Ok, das hat Spaß gemacht. Hier ist meine Lösung:

%Vor%

Dies funktioniert, indem rekursiv der Typ size_t(size_t, size_t, ..., size_t)

erstellt wird

Zum Beispiel:

%Vor%     
bolov 12.10.2016 14:08
quelle

Tags und Links