Здравствуйте, Дарней, Вы писали:
Д>1. Стандарта на массивы и строковый тип. std::vector и std::string на эту роль не подходят, потому что все равно авторы каждой библиотеки изобретают собственные велосипеды.
Изобретали, я бы сказал. Многие библиотеки (например, Qt, wxWidgets, ACE) начали развиваться еще до появления данных классов и до их стандартизации. Сейчас, к тому же, идет процесс добавления поддержки стандартных классов во многие старые библиотеки. В частности, Qt нормально дружит с std::string.
Д>2. Стандарта на политику обработки ошибок
А он вообще возможен в мультипарадигменном языке.
Если же речь идет об исключениях, то есть std::exception, а все, что std::exception не поддерживает -- см.п.1.
Д>3. Нормальной возможности использовать функциональные типы (заменители на килобайтах шаблонов и макросов — не считаются)
+1
Д>4. Замыканий
+1
Д>5. Уверенности в том, что безобидный на вид код не окажется злостным UB
+1
Д>Там есть:
Д>1. Хреновая поддержка стандарта в распространенных компиляторах
В распространенных?
Д>2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)
Уже практически не нужно.
Д>3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.
auto_ptr в контейнера -- это элементарное не знание языка.