2009-12-06 6 views
1

J'ai joué avec un exemple de hpp fourni dans la bibliothèque boost et j'essaie de comprendre comment utiliser cette fonction parameter_types correctement.Comment utiliser boost :: function_types :: parameter_types avec ClassTypeTransform

Depuis le boost doc, parameter_types nécessite une classe ClassTypeTransform afin d'analyser les signatures de fonction de membre de classe. Je veux analyser les signatures de fonctions membres, mais je ne trouve aucun document sur ce que cette expression lamda est supposée faire.

ClassTransform MPL - Expression Lambda pour transformer le type de classe si F est un pointeur de fonction membre

Ce qui est de la page elle-même, je ne trouve pas de code exemple de l 'utiliser et j'étais espérer que quelqu'un sache comment l'utiliser pour analyser les signatures des fonctions membres.

Répondre

2

ClassTransform est simplement utilisé pour modifier le premier type d'argument dans le cas où parameter_types<> est appliqué à un type de pointeur de fonction membre. La valeur par défaut est add_reference<_>, donc par exemple:

parameter_types<void(X::*)(int)>::type -> SomeSequence<void, X&, int> 
parameter_types<void(X::*)(int), mpl::identity<_> >::type -> SomeSequence<void, X, int> 
parameter_types<void(X::*)(int), add_pointer<_> >::type -> SomeSequence<void, X*, int> 
+0

ahh, je vois, merci pour la réponse – Charles

Questions connexes