История изменений
Исправление mittorn, (текущая версия) :
В целом стиль не нравится, постоянные ломки ABI по крайней мере в GNU реализации и жутко длинные шаблоны для даже самых элементарных вещей, приводящие отладку под gdb или разгребание ошибок линковки в сущий ад. В общем если коротко - STL хочет быть универсальным, но из-за этого становится слишком сложным.
Код использующий банальный std::string, линкуемый с библиотекой собранный с другой версией стандарта или другим компилятором может развалиться даже если использовал одни и те же gnustl хидеры. Может подход как в rust бы помог, когда весь код на rust всегда собирается статически одним компилятором, а динамические API только в сишном стиле с unsafe. Опять же если бы STL и boost были бы всегда только header-only - было бы сильно лучше, но это не отменяет взрыва шаблонов под отладчиками и проблем при использовании STL классов в API. Один ожидает функию у которой basic_string один параметр, другой экспортирует - два, в итоге они не линкуются
Наверно если в целом остановится на версии из какого-нибудь с99 или tr1, то у меня претензии только к стилю, но сейчас туда половину буста запихали и запихают ещё, делая написание кода не легче, а сложнее
Исходная версия mittorn, :
В целом стиль не нравится, постоянные ломки ABI по крайней мере в GNU реализации и жутко длинные шаблоны для даже самых элементарных вещей, приводящие отладку под gdb или разгребание ошибок линковки в сущий ад. В общем если коротко - STL хочет быть универсальным, но из-за этого становится слишком сложным.
Код использующий банальный std::string, линкуемый с библиотекой собранный с другой версией стандарта или другим компилятором может развалиться даже если использовал одни и те же gnustl хидеры.
Наверно если в целом остановится на версии из какого-нибудь с99 или tr1, то у меня претензии только к стилю, но сейчас туда половину буста запихали и запихают ещё.