Re[2]: минусы STL - нетранзакционность
От: Germes Украина  
Дата: 06.03.07 09:54
Оценка:
Здравствуйте, ghostrider, Вы писали:

G>Здравствуйте, gid_vvp, Вы писали:


_>>Hi All


_>>перечислите, на ваш взгляд, основные минусы STL

_>>принимаются только ответы с аргументацией

G>1) Контейнеры STL не транзакционны. Т.е. если во время операции с контейнером не удалось выделить память, то после этого контейнер находится в неопределнном состоянии — уже не исходное, но еще не конечное. Соответственно типы, которые хранят данные в STL контейнерах тоже не будут транзакционными, если не прилагать специальных усилий и терять при этом эффективность.

G>2) В случае невозможности выделения памяти контейнеры STL кидают исключение. Стало быть, вызывающий код обязан его обрабатывать. Если вы используете STL в программе, это не так страшно, а вот если пишете библиотеку ф-ций с использованием STL, то тем самым навязываете пользователю то, что он тоже должен обрабатывать исключения. Если Вы используете контейнеры только внутренне и аккуратно обрабатываете все исключения, то тогда еще не все потеряно. А вот если используете типы STL в параметрах ф-ций, тогда плохо дело.

G>Насколько я знаю, STL, который поставляется с Visual Studio эти недостатки имеет. Было бы интересно узнать, как обстоит дело в остальных реализациях.


G>А вообще очень красивая библиотека. Лично мне нравится, только из-за вышеперечисленного пользоваться ей нужно очень осторожно.


Можно кстати пример библиотеки контейнеры которой поддерживают транзакционность ?
С уважением Germes!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.