Nicht direkt möglich mit typedefs; Wo auch immer ein typedef verwendet wird, ist äquivalent zum Originaltyp, wenn Sie also
schreiben %Vor% dann wäre B
äquivalent zu boost::function<void(A)>
,
Dies entspricht boost::function<void(boost::function<void(B)>)>
usw., bis Sie
, was eine Art unendlicher Länge ist.
Sie können jedoch (mindestens) einen der beiden Typen als struct
oder class
definieren:
Sie müssen möglicherweise weitere Konstruktoren und / oder einen Konvertierungsoperator hinzufügen, damit sich der Typ vollständig "transparent" verhält, oder Sie können einfach explizit auf die Struktur zugreifen.
Ihre Frage ist nicht technisch präzise. Eine Signatur wird nicht als Argument übergeben. Ich versuche mein Bestes, um Ihre Frage zu verstehen.
Die folgenden Funktionsobjekte können als Argumente aneinander übergeben werden
%Vor%Tags und Links c++ boost argument-passing function-signature