Реализация STL с открытым исходным кодом с поддержкой C ++ 11

Короче, я ищу альтернативы STLPort. STLPort некоторое время не обновлялся (с 2008 года?) И ему не хватает поддержки C ++ 11. Кто-нибудь знает какие-либо альтернативы? Мне нужно скомпилировать, используя различные наборы инструментов, для различных архитектур и различных целевых ОС.

Я собираюсь начать изучать реализацию GNU C ++ и увидеть, насколько она связана с цепочкой инструментов GCC в качестве альтернативы, и опубликую результаты. Но если у кого-то есть какие-то предварительные знания, это было бы здорово.

Альтернативами этому могут быть реализации различных ключевых функций C ++ 11 STL, таких как новые типы интеллектуальных указателей и std :: threads. В худшем случае я могу, вероятно, извлечь умные указатели из повышения. Существуют ли реализации std :: threads с точки зрения, скажем, pthreads или потоков Windows?

Спасибо

14

Решение

Вы можете взглянуть на Libc ++. Это стандартная библиотека C ++ для лязг. Я не пытался скомпилировать его с другим компилятором или на другой платформе, чем MacOS. Хотя, конечно, есть зависимости компилятора, например, в <type_traits> и заголовки из библиотеки языковой поддержки (например, <exception>, <type_info>и т.д.), я могу представить, что большая часть кода будет компилироваться с другими компиляторами.

Вы уже упоминали libstdc ++ которая работает нормально с другими компиляторами, кроме НКУ, по крайней мере на Linux и MacOS: лязг раньше использовал libstdc ++ на MacOS. Тем не менее, я не знаю, насколько счастливым является libstdc ++ для компиляции с другими компиляторами.

Для конкретных классов, например std::shared_ptr<T> или std::thread группа классов, вы можете получить подходящие реализации замены от Увеличение.

7

Другие решения

Помимо реализаций, поставляемых с gcc и clang, существует также сторонний open-source USTLc++11 служба поддержки). Согласно его веб-сайту, он нацелен на сокращение некоторых накладных расходов в «раздутии шаблона». Тем не менее, он не реализует wchar строки. Они также имеют нестандартное распределение памяти.

На их сайте есть примеры, показывающие, как его можно использовать вместо stl gcc.

2

По вопросам рекламы [email protected]