MatchEventInMemberFunction
Le SDK Build Insights C++ est compatible avec Visual Studio 2017 et ultérieur. Pour consulter la documentation de ces versions, définissez le contrôle de sélecteur Version de Visual Studio pour cet article sur Visual Studio 2017 ou ultérieur. Il se trouve en haut de la table des matières de cette page.
La MatchEventInMemberFunction
fonction est utilisée pour faire correspondre un événement au type décrit par le premier paramètre d’une fonction membre. L’événement mis en correspondance est transféré à la fonction membre pour un traitement ultérieur.
Syntaxe
template <
typename TInterface,
typename TReturn,
typename TEvent,
typename... TExtraParams,
typename... TExtraArgs>
bool MatchEventInMemberFunction(
const RawEvent& event,
TInterface* objectPtr,
TReturn (TInterface::* memberFunc)(TEvent, TExtraParams...),
TExtraArgs&&... extraArgs);
Paramètres
TInterface
Type qui contient la fonction membre.
TReturn
Type de retour de la fonction membre.
TEvent
Type de l’événement à mettre en correspondance.
TExtraParams
Types des paramètres supplémentaires acceptés par la fonction membre, ainsi que le type d’événement à mettre en correspondance.
TExtraArgs
Types des arguments supplémentaires passés à MatchEventInMemberFunction
.
event
Événement correspondant au type d’événement décrit par TEvent.
objectPtr
Pointeur vers un objet sur lequel memberFunc est appelé.
memberFunc
Fonction membre qui décrit le type d’événement à mettre en correspondance.
extraArgs
Arguments qui sont parfaitement transférés à memberFunc avec le paramètre de type d’événement.
Valeur de retour
Valeur bool
qui est true
en cas de réussite de la correspondance, ou false
autrement.
Notes
Le type d’événement à utiliser pour le paramètre TEvent peut être sélectionné dans une liste de classes de capture. Pour obtenir la liste des événements et les classes de capture que vous pouvez utiliser pour les mettre en correspondance, consultez la table des événements.
Exemple
void MyClass::Foo1(Function f) {}
void MyClass::Foo2(Compiler cl) {}
void MyClass::OnStartActivity(const EventStack& eventStack)
{
// Let's assume eventStack contains:
// [Compiler, BackEndPass, C2DLL, CodeGeneration, Thread, Function]
auto& functionEvent = eventStack.Back(); // The Function event
bool b1 = MatchEventInMemberFunction(
functionEvent, this, &MyClass::Foo1);
bool b2 = MatchEventInMemberFunction(
functionEvent, this, &MyClass::Foo2);
// b1: true because the first parameter of Foo1 is Function.
// b2: false because the first parameter of Foo2 isn't Function.
}