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 MatchEventInMemberFunction função é usada para corresponder um evento com o tipo descrito pelo primeiro parâmetro de uma função membro. O evento correspondente é encaminhado para a função associada para processamento posterior.
Sintaxe
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);
Parâmetros
TInterface
O tipo que contém a função de membro.
Turno
O tipo de retorno da função de membro.
TEvent
O tipo de evento a combinar.
TExtraParams
Os tipos de parâmetros extra aceites pela função membro, juntamente com o tipo de evento a que devem corresponder.
TExtraArgs
Os tipos de argumentos extras que foram passados para MatchEventInMemberFunction.
evento
O evento a ser comparado com o tipo de evento descrito por TEvent.
objectPtr
Um ponteiro para um objeto sobre o qual a função memberFunc é chamada.
membroFunc
A função de membro que descreve o tipo de evento a associar.
extraArgs
Os argumentos que são encaminhados perfeitamente para memberFunc juntamente com o parâmetro de tipo de evento.
Valor de retorno
Um bool valor que é true caso a correspondência tenha sido bem-sucedida ou false caso contrário.
Observações
O tipo de evento a ser usado para o parâmetro TEvent pode ser selecionado 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::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.
}