2010-02-17 3 views
1

ATL COM 서버에서 트리 구조를 사용해야합니다. 이 목적을 위해 stl :: map <>을 다음과 같이 사용하려고 생각했습니다.ATL에서 STL 사용

BaseMap[k1,NextLevelMap[k2, NextLevelMap[k3, Value]]] 

는하지만 ATL 내부에서 이러한 구조를 사용하여 및지도와 디버깅 지원의 가능성 안전 여부를 알 필요가있다.

감사합니다.

답변

5

C++ 표준 라이브러리 클래스는 ATL과 함께 사용하는 것이 안전합니다. ATL은 표준 라이브러리 규칙에 따라 컨테이너와 인터페이스하도록 특별히 설계된 클래스도 포함합니다 (ICollectionOnSTLImplCComEnumOnSTL).

디버깅도 좋습니다. Visual Studio 디버거는 표준 컨테이너의 구현을 숨기고 대신 포함 된 내용을 논리적으로 보여줍니다.

4

STL 클래스는 일반 클래스이며 특별한 것은 없습니다. STL 클래스는 자체적으로 스레드로부터 안전하지 않으므로 멀티 스레딩 문제 ("아파트"라고하는)를 처리 할 경우 COM 서버에서 사용할 수 있습니다.

다른 모든 클래스와 마찬가지로 STL 클래스를 디버깅 할 수 있습니다. 디버그 정보를 사용하도록 설정하면 프로젝트를 적절히 컴파일 할 수 있습니다.