Шаг 373 - Шаблоны, классы, методы некоторые соображения

Здравствуйте Артем Геннадьевич!

Так получилось что вот уже девять-десять лет я много пишу на с/с++ (других языков не разумею, поскольку самоучка). Один мой знакомый - Альберт Махмутов публиковался у вас на сайте - в разделе алгоритмы - вот и мне очень хочется выложить один кусок кода вкупе с моими соображениями. Недавно практически "холодной октябрьской ночью" я нашел один любопытный эффект в C++. Насколько я знаю не описанный в книжках и вообще я такого раньше не видел. Грешить на глюки компилятора не приходится поскольку и VC 6.0 SP 5 и gcc 2.95.3 съели и не подавились и работает однако.

Дело было в следующем - я очень долго писал свои проги через MFC. До знакомства с MFC писал на чистом винапи. Относительно недавно решил перескочить на WTL благо что она мне жутко понравилась. Для более быстрого освоения оной решил в качестве тестовой проги портануть свой давний MFCовый проект на WTL.

Сразу бросилось в глаза отсутствие в WTL сериализации - впрочем сериализация, сделанная сто лет назад afx-ом, в составе WTL выглядела мягко говоря архаично, короче слава богу, что ее (в таком виде) там нет. Я говорю сейчас не с точки зрения прикладного программера - пользователя этой библиотеки, а с точки зрения читаемости, красивости и портанутоспособности на другие платформы или компиляторы кода.

Вот я и решил имплементировать енту самую персистанс собственноручно. Я конечно лазил на Sourceforge и скачал оттудова все что касалось персистанса и медленно и печально изучал то же пишут люди по этому сабжу. Про исходники от afx-mfc я и не говорю.

И решил пойти другим путем: Цели и задачи:

1. Сделать библиотеку персистанса чтоб можно прикрутить ее к моим WTL-ным проектам или вообще в любое место где она может пригодится.

2. Желательно в виде только шаблонных заголовочных файлов - для облегчения дебугирования, портирования и просто так удобнее.

3. Классы поддерживаемые библиотекой совсем необязательно должны быть гомоморфными. В смысле нафиг общего предка.

4. Читая исходники должно быть все понятно и у читающего должно появляться чувство глубокого эстетического удовлетворения.

5. Она должна быть современной - в смысле по стилю. Хотя бы пару месяцев.

Приборы и материалы:

1. Компилер, который хорошо дружит с шаблонами, и включает в себя STL. Пока работаю с вышеуказанными VC 6.0 SP 5 и gcc 2.95.3.

2. Руки, желательно не совсем кривые.

3. Голова, а лучше несколько, желательно как в пункте 2.

Необходимые объяснения - там версии для двух компилеров - один MSVC. Второй для DJGPP gcc (это порт gcc под развиндованный дос) http://www.delorie.com/djgpp/ у меня версия для вин2к http://clio.rice.edu/djgpp/win2k/main.htm причем там файл проекта (FactoryManager.gpr) под ту ветку RHIDE (иде для DJGPP) которая дружит с вин2к http://home.lanet.lv/~pavenis/rhide.html.

Шаг прислал Bulat.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 1.11.2001