Übertragung der Signatur der Methode als Template-Parameter an eine Klasse

8

Ich möchte in meinen Projekten eine Vorlagenschnittstelle für Datenverarbeitungsklassen erstellen.

Ich kann so etwas schreiben:

%Vor%

Angenommen, ich definiere eine Klasse auf diese Weise:

%Vor%

Nun, die Frage, kann ich meine Template-Schnittstelle irgendwie so definieren, dass als Parameter nicht nur T, sondern die gesamte Signatur der Process () - Funktion erhalten wird.

Ich möchte etwas, das so funktioniert:

%Vor%

Ist es möglich? Ich weiß, dass zum Beispiel boost :: signal auf diese Weise Template-Parameter erhält, aber wenn ich richtig verstehe, verwenden sie dort viel Schwarzmagie.

    
Lev 01.03.2010, 12:47
quelle

1 Antwort

12

Ja, kannst du. Aber in C ++ 03 müssen Sie Code für jede Anzahl von Parametern kopieren / einfügen (nicht zu schlecht, da hier keine Überladungen für const / non-const usw. benötigt werden. Das constnes ist bereits bekannt!).

%Vor%

In C ++ 0x können Sie

schreiben %Vor%

Wie viel schöner!

    
Johannes Schaub - litb 01.03.2010, 12:52
quelle

Tags und Links