Compartir a través de


MakeStaticAnalyzerGroup

El SDK de C++ Build Insights es compatible con Visual Studio 2017 y versiones posteriores. Para ver la documentación de estas versiones, establezca el control de selector de Versión de Visual Studio para este artículo en Visual Studio 2017 o versiones posteriores. Se encuentra en la parte superior de la tabla de contenido de esta página.

La función MakeStaticAnalyzerGroup crea un grupo de analizadores estáticos que se pueden pasar a funciones como Analyze o Relog. Los miembros de un grupo de analizadores reciben eventos de uno en uno y de izquierda a derecha, hasta que se analizan todos los eventos de un seguimiento.

Sintaxis

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

Parámetros

TAnalyzerPtrs
Este parámetro siempre se deduce.

analyzers
Un paquete de parámetros de punteros IAnalyzer incluidos en el grupo de analizadores estáticos. Estos punteros pueden ser sin formato, std::unique_ptr o std::shared_ptr.

Valor devuelto

Un grupo de analizadores estáticos. Use la palabra clave auto para capturar el valor devuelto.

Comentarios

A diferencia de los grupos de analizadores dinámicos, los miembros de un grupo de analizadores estáticos deben conocerse en el tiempo de compilación. Además, un grupo de analizadores contiene punteros IAnalyzer que no tienen un comportamiento polimórfico. Cuando un grupo de analizadores estáticos analiza una traza del seguimiento de eventos para Windows (ETW), las llamadas a la interfaz IAnalyzer siempre se resuelven en el objeto al que apunta directamente el miembro del grupo de analizadores. Esta pérdida de flexibilidad conlleva la posibilidad de un procesamiento de eventos más rápidos.

Si los miembros de un grupo de analizadores no se pueden conocer en el tiempo de compilación, o si necesita un comportamiento polimórfico en los punteros IAnalyzer, considere la posibilidad de usar un grupo de analizadores dinámicos. Para usar un grupo de analizadores dinámicos, llame a MakeDynamicAnalyzerGroup en su lugar.