Вообщем за два года я так и не увидел чего-либо аналогичного, поэтому представляю на суд. Только ногами не бейте
исходные тексты "вырваны" из окружения, поэтому, естественно, просто так компилироваться не будут. В часности — assert_msg это мое изобретение, которое отсутсвует в стандарте.
t_container.h(cc)
t_vector - оболочка вокруг std::vector для обеспечения совместимости с BIDS (было такое у Borland) и жестокого котроля за корректностью истользования. В принципе мало чего интересного
t_wrap_vector - реализация вектора, который обеспечивает доступ к данным через "аксессоры". Например, есть struct VARIANT и class TVariant с идентичной бинарной структурой. Храним VARIANT, обращаемся через TVariant. В качестве примеров — t_ivector и t_counted_object_vector
t_ivector - вектор для хранения указателей. Настальгия по TIArray из BIDS, только на базе std::vector<void*>. Используется очень просто — vector<TMyClass>. Можно указывать — владеет контейнер содержимым или нет.
t_counted_object_vector - базовый класс для вектора smart-указателей. Маленький шедевр, которым до сих пор горжусь. В качестве реального использования см. t_smart_vector из <t_smart_container.h> и t_iptr2_vector из <ptr.h> для COM-объектов
t_smart_conteinter.h
t_smart_conteiner - контейнер для smart-указателей на объекты, производные от t_smart_memory_object (t_handle.h(cc))
t_handle.h(cc)
Здесь можно посмотреть, что из себя представляет t_smart_memory_object и t_smart_object_ptr
ptr.h(сс)
IPtr2 - вариация на тему смарт-указатель на COM объект
t_iptr2_vector — вектор смарт-указателей на базе IPtr2
Все это дело собирается на BCB3/5. На днях пробовал с STLPort (4.5?) — вроде тоже все нормально.
Файлы вычищаю не полностью, поэтому там остались другие интересные штучки.
За каким я это сделал? — Что бы потом на вот такие
вопросыАвтор: Fiend
Дата: 16.09.02
давать ссылку сюда, а не заниматься демагогией.
Заодно, может кто-нибудь предложит какие-нибудь улучшения.
Если есть вопросы —
. Хотя ответы на это сообщение я тоже буду читать
-- Пользователи не приняли программу. Всех пришлось уничтожить. --