Anzahl der Argumente eines Funktionszeigers

8

Ich benutze jetzt diesen Code:

%Vor%

Aber es ist irgendwie hässlich und begrenzt (der Benutzer kann nicht argc mit einer Funktion mit einer beliebigen Anzahl von Argumenten aufrufen.) Gibt es einen besseren Weg, es zu tun?

Hinweis: Der Rückgabetyp und der Argumenttyp sind immer gleich. Ich weiß, dass ich Vorlagen verwenden kann, um jeden Typ zu akzeptieren, aber ich brauche es nicht.

    
Guilherme Bernal 27.12.2011, 13:12
quelle

2 Antworten

12

Sauberere Version von @ Paolos Antwort, verwendbar mit tatsächlichen Objekten:

%Vor%     
Xeo 27.12.2011, 13:40
quelle
5

Das Folgende funktioniert für jede Arity, akzeptiert aber beliebige Argumenttypen:

%Vor%

Wenn Sie den Argumenttyp wirklich auf Funktionen vom Typ Foo(Bar, Bar, ...) beschränken möchten, können Sie Folgendes tun:

%Vor%

Dies wird Ihnen einen Kompilierungsfehler geben, wenn Arity mit einem nicht unterstützten Funktionstyp aufgerufen wird.

    
Paolo Capriotti 27.12.2011 13:28
quelle

Tags und Links