Share via


MakeDynamicAnalyzerGroup

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 MakeDynamicAnalyzerGroup se usa para crear un grupo de analizadores dinámicos. 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

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

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

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

Parámetros

analyzers
Vector de punteros IAnalyzer incluidos en el grupo de analizadores dinámicos. Estos punteros pueden ser sin formato, std::unique_ptr o std::shared_ptr.

Valor devuelto

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

Comentarios

A diferencia de los grupos de analizadores estáticos, los miembros de un grupo de analizadores dinámicos no necesitan conocerse en tiempo de compilación. Puede elegir los miembros del grupo de analizadores en tiempo de ejecución en función de la entrada del programa o en función de otros valores desconocidos en tiempo de compilación. A diferencia de los grupos de analizadores estáticos, los punteros IAnalyzer dentro de un grupo de analizadores dinámicos tienen un comportamiento polimórfico y las llamadas a funciones virtuales se envían correctamente. Esta flexibilidad se consigue a costa de un tiempo de procesamiento de eventos posiblemente más lento. Cuando todos los miembros del grupo de analizadores se conocen en tiempo de compilación, y si no necesita un comportamiento polimórfico, considere la posibilidad de usar un grupo de analizadores estáticos. Para usar un grupo de analizadores estáticos, llame mejor a MakeStaticAnalyzerGroup.

Un grupo de analizadores dinámicos se puede encapsular dentro de un grupo de analizadores estáticos. Para ello, se pasa su dirección a MakeStaticAnalyzerGroup. Utilice esta técnica para pasar grupos de analizadores dinámicos a funciones como Analyze, que solo aceptan grupos de analizadores estáticos.