Edit

Share via


MakeStaticAnalyzerGroup

The C++ Build Insights SDK is compatible with Visual Studio 2017 and later. To see the documentation for these versions, set the Visual Studio Version selector control for this article to Visual Studio 2017 or later. It's found at the top of the table of contents on this page.

The MakeStaticAnalyzerGroup function creates a static analyzer group that you can pass to functions such as Analyze or Relog. Members of an analyzer group receive events one by one from left to right, until all events in a trace are analyzed.

Syntax

template <typename... TAnalyzerPtrs>
auto MakeStaticAnalyzerGroup(TAnalyzerPtrs... analyzers);

Parameters

TAnalyzerPtrs
This parameter is always deduced.

analyzers
A parameter pack of IAnalyzer pointers included in the static analyzer group. These pointers can be raw, std::unique_ptr, or std::shared_ptr.

Return Value

A static analyzer group. Use the auto keyword to capture the return value.

Remarks

Unlike dynamic analyzer groups, the members of a static analyzer group must be known at compile time. Also, a static analyzer group contains IAnalyzer pointers that don't have polymorphic behavior. When a static analyzer group analyzes an Event Tracing for Windows (ETW) trace, calls to the IAnalyzer interface always resolve to the object directly pointed to by the analyzer group member. This loss of flexibility comes with a possibility of faster event processing.

If the members of an analyzer group can't be known at compile time, or if you require polymorphic behavior on your IAnalyzer pointers, consider using a dynamic analyzer group. To use a dynamic analyzer group, call MakeDynamicAnalyzerGroup instead.