MakeDynamicAnalyzerGroup

Das C++ Build Insights SDK ist mit Visual Studio 2017 und höher kompatibel. Um die Dokumentation für diese Versionen anzuzeigen, legen Sie das Auswahlsteuerelement Version in Visual Studio für diesen Artikel auf Visual Studio 2017 oder höher fest. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.

Die Funktion MakeDynamicAnalyzerGroup wird zum Erstellen von dynamischen Analysegruppen verwendet. Die Member einer Analysegruppe empfangen ein Ereignis nach dem anderen (von links nach rechts), bis alle Ereignisse einer Ablaufverfolgung analysiert worden sind.

Syntax

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

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

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

Parameter

analyzers
Ein Vektor von IAnalyzer-Zeigern, die in der dynamischen Analysegruppe enthalten sind. Diese Zeiger können unformatiert, std::unique_ptr oder std::shared_ptr sein.

Rückgabewert

Eine dynamische Analysegruppe. Verwenden Sie das Schlüsselwort auto, um den Rückgabewert zu erfassen.

Hinweise

Im Gegensatz zu statischen Analysegruppen müssen die Member einer dynamischen Analysegruppe zur Kompilierzeit nicht bekannt sein. Sie können Member der Analysegruppe zur Laufzeit basierend auf der Programmeingabe oder basierend auf anderen Werten auswählen, die zur Kompilierzeit unbekannt sind. Im Gegensatz zu statischen Analysegruppen weisen IAnalyzer-Zeiger innerhalb einer dynamischen Analysegruppe polymorphes Verhalten auf, und virtuelle Funktionsaufrufe werden richtig weitergeleitet. Diese Flexibilität hat allerdings zur Folge, dass die Ereignisverarbeitung länger dauern kann. Wenn alle Member der Analysegruppe zur Kompilierzeit bekannt sind und Sie nicht auf polymorphes Verhalten angewiesen sind, sollten Sie in Erwägung ziehen, eine statische Analysegruppe zu verwenden. Wenn Sie eine statische Analysegruppe verwenden möchten, rufen Sie stattdessen MakeStaticAnalyzerGroup auf.

Eine dynamische Analysegruppe kann in eine statischen Analysegruppe gekapselt werden. Dafür wird ihre Adresse an MakeStaticAnalyzerGroup übergeben. Gehen Sie so vor, um dynamische Analysegruppen an Funktionen wie Analyze zu übergeben, die nur statische Analysegruppen akzeptieren.