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 포인터의 벡터입니다. 이러한 포인터는 원시, std::unique_ptr
또는 std::shared_ptr
일 수 있습니다.
Return Value
동적 분석기 그룹입니다. auto
키워드를 사용하여 반환 값을 캡처합니다.
설명
정적 분석기 그룹과 달리 동적 분석기 그룹의 멤버는 컴파일 시간에 알려지지 않아도 됩니다. 런타임에 프로그램 입력을 기반으로 분석기 그룹 멤버를 선택하거나 컴파일 시간에 알 수 없는 다른 값을 기반으로 선택할 수 있습니다. 정적 분석기 그룹과 달리 동적 분석기 그룹 내의 IAnalyzer
포인터는 다형 동작을 가지며 가상 함수 호출이 올바르게 디스패치됩니다. 이러한 유연성으로 인해 이벤트 처리 시간이 느려질 수 있습니다. 컴파일 시간에 모든 분석기 그룹 멤버를 알 수 있고 다형 동작이 필요하지 않은 경우에는 정적 분석기 그룹을 사용하는 것이 좋습니다. 정적 분석기 그룹을 사용하려면 대신 MakeStaticAnalyzerGroup
을 호출합니다.
동적 분석기 그룹은 정적 분석기 그룹 내에 캡슐화할 수 있습니다. 캡슐화는 MakeStaticAnalyzerGroup
에 해당 주소를 전달하여 수행합니다. Analyze
와 같이 정적 분석기 그룹만 허용하는 함수에 동적 분석기 그룹을 전달하는 데 이 기법을 사용합니다.