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_ptr
lub 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 MakeStaticAnalyzerGroup
adresu . Ta technika służy do przekazywania grup analizatora dynamicznego do funkcji, takich jak Analyze
, które akceptują tylko grupy analizatorów statycznych.