Re: минусы STL - нетранзакционность
От: ghostrider Беларусь https://www.linkedin.com/in/andreipushkin
Дата: 23.08.06 17:50
Оценка:
Здравствуйте, gid_vvp, Вы писали:

_>Hi All


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

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

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

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

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