Udostępnij za pośrednictwem


MakeDynamicAnalyzerGroup

Zestaw SDK usługi Build Insights języka C++ jest zgodny z programem Visual Studio 2017 lub nowszym. Aby zapoznać się z dokumentacją dla tych wersji, ustaw kontrolkę selektora wersji programu Visual Studio dla tego artykułu na program Visual Studio 2017 lub nowszy. Znajduje się on w górnej części spisu treści na tej stronie.

Funkcja MakeDynamicAnalyzerGroup służy do tworzenia grupy analizatora dynamicznego. Członkowie grupy analizatorów odbierają zdarzenia jeden po drugim od lewej do prawej, dopóki wszystkie zdarzenia w śledzonej śledzenia nie będą analizowane.

Składnia

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

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

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

Parametry

Analizatory
Wektor wskaźników IAnalyzer uwzględniony w grupie analizatora dynamicznego. Te wskaźniki mogą być nieprzetworzone, std::unique_ptrlub std::shared_ptr.

Wartość zwracana

Grupa analizatorów dynamicznych. Użyj słowa kluczowego auto , aby przechwycić wartość zwracaną.

Uwagi

W przeciwieństwie do grup analizatorów statycznych członkowie grupy analizatora dynamicznego nie muszą być znane w czasie kompilacji. Możesz wybrać członków grupy analizatora w czasie wykonywania na podstawie danych wejściowych programu lub na podstawie innych wartości, które są nieznane w czasie kompilacji. W przeciwieństwie do grup analizatorów statycznych wskaźniki IAnalyzer w grupie analizatora dynamicznego mają zachowanie polimorficzne, a wywołania funkcji wirtualnych są wysyłane poprawnie. Ta elastyczność wiąże się z kosztem prawdopodobnie wolniejszego czasu przetwarzania zdarzeń. Jeśli wszystkie elementy członkowskie grupy analizatora są znane w czasie kompilacji i jeśli nie potrzebujesz zachowania polimorficznego, rozważ użycie grupy analizatora statycznego. Aby zamiast tego użyć grupy analizatora statycznego, wywołaj metodę MakeStaticAnalyzerGroup .

Grupę analizatora dynamicznego można hermetyzować wewnątrz grupy analizatora statycznego. Odbywa się to przez przekazanie adresu do MakeStaticAnalyzerGroupadresu . Ta technika służy do przekazywania grup analizatora dynamicznego do funkcji, takich jak Analyze, które akceptują tylko grupy analizatorów statycznych.