Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Build Insights SDK per C++ è compatibile con Visual Studio 2017 e versioni successive. Per visualizzare la documentazione per queste versioni, impostare il controllo selettore della versione di Visual Studio per questo articolo su Visual Studio 2017 o versione successiva. Si trova nella parte superiore del sommario in questa pagina.
La MatchEvent
funzione viene usata per associare un evento a un elenco di tipi di evento. Se l'evento corrisponde a un tipo nell'elenco, viene inoltrato a un gestore per un'ulteriore elaborazione.
Sintassi
template <
typename TEvent,
typename... TEvents,
typename TCallable,
typename... TExtraArgs>
bool MatchEvent(
const RawEvent& event,
TCallable&& callable,
TExtraArgs&&... extraArgs);
Parametri
TEvent
Primo tipo di evento che si desidera trovare.
Eventi TEvent
Tipi di evento rimanenti che si desidera associare.
TCallable
Tipo che supporta operator()
. Per altre informazioni sugli argomenti passati a questo operatore, vedere la descrizione del parametro chiamabile .
TExtraArgs
Tipi degli argomenti aggiuntivi passati a MatchEvent
.
evento
Evento da associare ai tipi di evento descritti da TEvent e TEvents.
Callable
MatchEvent
richiama richiamabile dopo aver eseguito correttamente la corrispondenza dell'evento con uno dei tipi di evento descritti da TEvent e TEvents. Il primo argomento passato a chiamabile è un valore r del tipo di evento corrispondente. Il pacchetto di parametri extraArgs è perfettamente inoltrato nei parametri rimanenti di chiamabili.
extraArgs
Argomenti che vengono inoltrati perfettamente per chiamare insieme al tipo di evento corrispondente.
Valore restituito
Valore bool
che si verifica true
se la corrispondenza ha avuto esito positivo o false
in caso contrario.
Osservazioni:
I tipi di evento da usare per i parametri TEvent e TEvents vengono selezionati da un elenco di classi di acquisizione. Per un elenco di eventi e le classi di acquisizione che è possibile usare per trovare le corrispondenze, vedere la tabella degli eventi.
Esempio
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.
}