Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das C++ Build Insights SDK ist mit Visual Studio 2017 und höher kompatibel. Um die Dokumentation für diese Versionen anzuzeigen, legen Sie das Auswahlsteuerelement Version in Visual Studio für diesen Artikel auf Visual Studio 2017 oder höher fest. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.
Die Funktion MatchEvent wird verwendet, um ein Ereignis mit einer Liste von Ereignistypen abzugleichen. Wenn das Ereignis mit einem Typ in der Liste übereinstimmt, wird es zur weiteren Verarbeitung an einen Handler weitergeleitet.
Syntax
template <
typename TEvent,
typename... TEvents,
typename TCallable,
typename... TExtraArgs>
bool MatchEvent(
const RawEvent& event,
TCallable&& callable,
TExtraArgs&&... extraArgs);
Parameter
TEvent
Der erste Ereignistyp, den Sie zuordnen möchten.
TEvents
Die übrigen Ereignistypen, die Sie zuordnen möchten.
TCallable
Ein Typ, der operator() unterstützt. Weitere Informationen zu den Argumenten, die an diesen Operator übergeben werden, finden Sie in der Beschreibung des Parameters callable.
TExtraArgs
Die Typen der zusätzlichen Argumente, die an MatchEvent übergeben wurden.
Ereignis
Das Ereignis, das mit den Ereignistypen abgeglichen werden soll, die von TEvent und TEvents beschrieben werden.
aufrufbar
MatchEvent ruft den Parameter callable auf, nachdem das Ereignis erfolgreich einem der in TEvent und TEvents beschriebenen Ereignistypen zugeordnet werden konnte. Das erste Argument, das an den Parameter callable übergeben wird, ist ein R-Wert des zugeordneten Eventtyps. Das Parameterpaket extraArgs wird perfekt an die übrigen callable-Parameter weitergeleitet.
extraArgs
Die Argumente, die zusammen mit dem übereinstimmenden Ereignistyp perfekt an den Parameter callable weitergeleitet werden.
Rückgabewert
Ein bool-Wert, der true zurückgibt, wenn der Zuordnungsvorgang erfolgreich ist. Andernfalls wird false zurückgegeben.
Hinweise
Die Eventtypen, die für die Parameter TEvent und TEvents verwendet werden sollen, werden aus eine Liste mit Erfassungsklassen ausgewählt. Eine Liste der Ereignisse und der Erfassungsklassen, die Sie zum Abgleichen verwenden können, finden Sie in der Ereignistabelle.
Beispiel
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 = MatchEvent<Function, Thread>(
functionEvent, [](auto matchedEvent){ /* Do something... */});
bool b2 = MatchEvent<CodeGeneration, Thread>(
functionEvent, [](auto matchedEvent){ /* Do something... */});
// b1: true because the list of types contains Function, which is
// the type of the event we are trying to match.
// b2: false because the list of types doesn't contain Function.
}