Использование STL внутри ATL - PullRequest
       10

Использование STL внутри ATL

1 голос
/ 17 февраля 2010

Мне нужно использовать древовидную структуру внутри COM-сервера ATL. Я подумал об использовании stl :: map <> для этой цели следующим образом.

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

Но мне нужно знать, безопасно ли использование такой структуры внутри ATL и возможность отладки поддержки с картами.

Спасибо

Ответы [ 2 ]

5 голосов
/ 17 февраля 2010

Стандартные библиотечные классы C ++ безопасны для использования с ATL - ATL даже включает пару классов, специально разработанных для взаимодействия с контейнерами в соответствии со стандартными соглашениями о библиотеках: ICollectionOnSTLImpl и CComEnumOnSTL.

Отладка тоже подойдет - отладчик Visual Studio скрывает реализацию стандартных контейнеров и вместо этого показывает логическое представление их содержимого.

4 голосов
/ 17 февраля 2010

STL классы - это обычные классы, ничего особенного.Вы можете использовать их на COM-серверах, если вы позаботитесь о проблемах с многопоточностью - то, что называется «квартирами», так как классы STL сами по себе не являются поточно-ориентированными.

Вы можете отлаживать классы STL, как и все остальные классывы компилируете проект соответствующим образом - с включенной отладочной информацией.

...