MakeDynamicReloggerGroup

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

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

语法

auto MakeDynamicReloggerGroup(std::vector<IRelogger*> reloggers);

auto MakeDynamicReloggerGroup(std::vector<std::shared_ptr<IRelogger>> reloggers);

auto MakeDynamicReloggerGroup(std::vector<std::unique_ptr<IRelogger>> reloggers);

参数

reloggers
动态 relogger 组中包含的 IRelogger 指针的矢量。 这些指针可以是 raw、std::unique_ptrstd::shared_ptr。 由于继承关系,IAnalyzer 指针也被认为是 IRelogger 指针。

返回值

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

注解

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

动态 relogger 组可以封装在静态 relogger 组中。 将它的地址传递给 MakeStaticReloggerGroup。 使用这种技术将动态 relogger 组传递到 Relog 等函数,这些函数只接受静态 relogger 组。