Partager via


MakeDynamicAnalyzerGroup

Le SDK Build Insights C++ est compatible avec Visual Studio 2017 et ultérieur. Pour consulter la documentation de ces versions, définissez le contrôle de sélecteur Version de Visual Studio pour cet article sur Visual Studio 2017 ou ultérieur. Il se trouve en haut de la table des matières de cette page.

La MakeDynamicAnalyzerGroup fonction est utilisée pour créer un groupe d’analyseurs dynamiques. Les membres d’un groupe d’analyseurs reçoivent des événements d’un par un de gauche à droite, jusqu’à ce que tous les événements d’une trace sont analysés.

Syntaxe

auto MakeDynamicAnalyzerGroup(std::vector<IAnalyzer*> analyzers);

auto MakeDynamicAnalyzerGroup(std::vector<std::shared_ptr<IAnalyzer>> analyzers);

auto MakeDynamicAnalyzerGroup(std::vector<std::unique_ptr<IAnalyzer>> analyzers);

Paramètres

Analyseurs
Vecteur de pointeurs IAnalyzer inclus dans le groupe d’analyseurs dynamiques. Ces pointeurs peuvent être bruts, std::unique_ptrou std::shared_ptr.

Valeur de retour

Un groupe d’analyseurs dynamiques. Utilisez le auto mot clé pour capturer la valeur de retour.

Notes

Contrairement aux groupes d’analyseurs statiques, les membres d’un groupe d’analyseurs dynamiques n’ont pas besoin d’être connus au moment de la compilation. Vous pouvez choisir des membres du groupe d’analyseurs au moment de l’exécution en fonction de l’entrée du programme ou d’autres valeurs inconnues au moment de la compilation. Contrairement aux groupes d’analyseurs statiques, IAnalyzer les pointeurs d’un groupe d’analyseurs dynamiques ont un comportement polymorphe et les appels de fonction virtuelle sont distribués correctement. Cette flexibilité est due au coût d’un temps de traitement des événements peut-être plus lent. Lorsque tous les membres du groupe d’analyseurs sont connus au moment de la compilation et que vous n’avez pas besoin d’un comportement polymorphe, envisagez d’utiliser un groupe d’analyseurs statiques. Pour utiliser un groupe d’analyseurs statiques, appelez MakeStaticAnalyzerGroup à la place.

Un groupe d’analyseurs dynamiques peut être encapsulé à l’intérieur d’un groupe d’analyseurs statiques. C’est fait en passant son adresse à MakeStaticAnalyzerGroup. Utilisez cette technique pour transmettre des groupes d’analyseurs dynamiques à des fonctions telles que Analyze, qui acceptent uniquement les groupes d’analyseurs statiques.