MSVC 2010
Класс CAtlArray.
Метод SetAtGrow и т.п.
Для увеличения размера вызывается SetCount.
SetCount вызывает GrowBuffer.
GrowBuffer создает новый буфер, и для переноса данных из старого буфера в новый вызывает RelocateElements из класса Traits, указанного вторым аргументом CAtlArray.
Реализация RelocateElements по-умолчанию для произвольных типов выполняет memmove, т.е. побитное копирование.
(traits специфицируется для некоторых типов — стринг, вариант, guid и встроенные целочисленные типы, но там переопределяется только хеширование и сравнение).
Получается, CAtlArray "из коробки" непригоден для использования и требует допиливания?