Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
C++ Build Insights SDK är kompatibelt med Visual Studio 2017 och senare. Om du vill se dokumentationen för dessa versioner, ställ in Väljarkontrollen för Visual Studio Version i den här artikeln på Visual Studio 2017 eller senare. Den finns överst i innehållsförteckningen på den här sidan.
Funktionen MatchEventInMemberFunction
används för att matcha en händelse mot den typ som beskrivs av den första parametern i en medlemsfunktion. Den matchade händelsen vidarebefordras till medlemsfunktionen för vidare bearbetning.
Syntax
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);
Parameterar
TInterface
Den typ som innehåller medlemsfunktionen.
TReturn
Returtypen för medlemsfunktionen.
TEvent
Typen av evenemanget som ska matchas.
TExtraParams
De typer av extra parametrar som accepteras av medlemsfunktionen tillsammans med den händelsetyp som ska matchas.
TExtraArgs
De typer av extra argument som skickades till MatchEventInMemberFunction
.
händelse
Händelsen som ska matchas mot händelsetypen som beskrivs av TEvent.
objectPtr
En pekare till ett objekt där memberFunc anropas.
memberFunc
Medlemsfunktionen som beskriver den händelsetyp som ska matchas.
extraArgs
Argumenten som vidarebefordras perfekt till memberFunc tillsammans med parametern händelsetyp.
Returvärde
Ett bool
värde som är true
om matchningen lyckades eller false
på annat sätt.
Anmärkningar
Händelsetypen som ska användas för TEvent-parametern kan väljas från en lista över avbildningsklasser. En lista över händelser och de avbildningsklasser som du kan använda för att matcha dem finns i händelsetabellen.
Exempel
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.
}