MakeDynamicAnalyzerGroup

C++ Build Insights SDK 与 Visual Studio 2017 及更高版本兼容。 若要查看这些版本对应的文档,请将本文的 Visual Studio“版本”选择器控件设置为 Visual Studio 2017 或更高版本。 它位于此页面上目录表的顶部。

MakeDynamicAnalyzerGroup 函数用于创建动态分析器组。 分析器组的成员从左到右逐个接收事件,直到分析完跟踪中的所有事件为止。

语法

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

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

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

参数

analyzers
动态分析器组中包含的 IAnalyzer 指针的矢量。 这些指针可以是 raw、std::unique_ptrstd::shared_ptr

返回值

动态分析器组。 使用 auto 关键字来捕获返回值。

备注

与静态分析器组不同,动态分析器组的成员在编译时不必是已知的。 可以在运行时根据程序输入或在编译时未知的其他值选择分析器组成员。 与静态分析器组不同,动态分析器组中的 IAnalyzer 指针有多变行为,并虚拟函数调用被正确地分派。 这种灵活性的代价可能是事件处理速度减慢。 如果所有分析器组成员在编译时都是已知的,并且你不需要多变行为,请考虑使用静态分析器组。 若要使用静态分析器组,请改为调用 MakeStaticAnalyzerGroup

动态分析器组可以封装在静态分析器组中。 可通过将它的地址传递给 MakeStaticAnalyzerGroup 来完成。 使用这种技术将动态分析器组传递到 Analyze 等函数,这些函数只接受静态分析器组。