Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O C++ Build Insights SDK é compatível com o Visual Studio 2017 e posterior. Para ver a documentação destas versões, defina o controlo seletor de versão do Visual Studio para este artigo para Visual Studio 2017 ou posterior. Encontra-se na parte superior do índice desta página.
A MatchEvent função é usada para fazer a correspondência de um evento com uma lista de tipos de evento. Se o evento corresponder a um tipo na lista, ele será encaminhado para um manipulador para processamento posterior.
Sintaxe
template <
typename TEvent,
typename... TEvents,
typename TCallable,
typename... TExtraArgs>
bool MatchEvent(
const RawEvent& event,
TCallable&& callable,
TExtraArgs&&... extraArgs);
Parâmetros
TEvent
O primeiro tipo de evento que você deseja corresponder.
TEvents
Os restantes tipos de eventos que pretende combinar.
TCallable
Um tipo que suporta operator(). Para obter mais informações sobre quais argumentos são passados para esse operador, consulte a descrição do parâmetro chamável .
TExtraArgs
Os tipos de argumentos extras que foram passados para MatchEvent.
evento
O evento que deve corresponder aos tipos de evento descritos por TEvent e TEvents.
exigível
MatchEvent invoca chamável depois de corresponder com êxito o evento com qualquer um dos tipos de evento descritos por TEvent e TEvents. O primeiro argumento passado para callable é um valor r do tipo de evento correspondente. O pacote de parâmetros extraArgs é passado de forma ideal nos restantes parâmetros de callable.
extraArgs
Os argumentos que são encaminhados perfeitamente para chamável junto com o tipo de evento correspondente.
Valor de retorno
Um valor bool que é true se a correspondência foi bem-sucedida, ou false caso contrário.
Observações
Os tipos de evento a serem usados para os parâmetros TEvent e TEvents são selecionados em uma lista de classes de captura. Para obter uma lista de eventos e as classes de captura que você pode usar para correspondê-los, consulte a tabela de eventos.
Exemplo
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.
}