MakeDynamicAnalyzerGroup
O SDK do C++ Build Insights é compatível com o Visual Studio 2017 e posterior. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio deste artigo para o Visual Studio 2017 ou posterior. Ele é encontrado na parte superior da tabela de conteúdo nesta página.
A função MakeDynamicAnalyzerGroup
é usada para criar um grupo de analisadores dinâmicos. Os membros de um grupo de analisadores recebem eventos um a um, da esquerda para a direita, até que todos os eventos em um rastreamento sejam analisados.
Sintaxe
auto MakeDynamicAnalyzerGroup(std::vector<IAnalyzer*> analyzers);
auto MakeDynamicAnalyzerGroup(std::vector<std::shared_ptr<IAnalyzer>> analyzers);
auto MakeDynamicAnalyzerGroup(std::vector<std::unique_ptr<IAnalyzer>> analyzers);
Parâmetros
analyzers
Um vetor de ponteiros IAnalyzer incluídos no grupo de analisadores dinâmicos. Esses ponteiros podem ser brutos, std::unique_ptr
ou std::shared_ptr
.
Valor de retorno
Um grupo de analisadores dinâmicos. Use a palavra-chave auto
para capturar o valor retornado.
Comentários
Ao contrário dos grupos de analisadores estáticos, os membros de um grupo de analisadores dinâmicos não precisam ser conhecidos em tempo de compilação. Você pode escolher membros do grupo do analisador em runtime com base na entrada do programa ou com base em outros valores que são desconhecidos no tempo de compilação. Ao contrário dos grupos de analisadores estáticos, os ponteiros IAnalyzer
dentro de um grupo de analisadores dinâmicos têm comportamento polimórfico e as chamadas de função virtual são enviadas corretamente. Essa flexibilidade gera o custo de um tempo de processamento de evento possivelmente mais lento. Quando todos os membros do grupo de analisadores forem conhecidos em tempo de compilação e se você não precisar de comportamento polimórfico, considere usar um grupo de analisadores estáticos. Para usar um grupo de analisadores estáticos, chame MakeStaticAnalyzerGroup
.
Um grupo de analisadores dinâmicos pode ser encapsulado dentro de um grupo de analisadores estáticos. Isso é feito passando o endereço para MakeStaticAnalyzerGroup
. Use essa técnica para passar grupos de analisadores dinâmicos para funções como Analyze
, que aceitam apenas grupos de analisadores estáticos.