Короче, я ищу альтернативы STLPort. STLPort некоторое время не обновлялся (с 2008 года?) И ему не хватает поддержки C ++ 11. Кто-нибудь знает какие-либо альтернативы? Мне нужно скомпилировать, используя различные наборы инструментов, для различных архитектур и различных целевых ОС.
Я собираюсь начать изучать реализацию GNU C ++ и увидеть, насколько она связана с цепочкой инструментов GCC в качестве альтернативы, и опубликую результаты. Но если у кого-то есть какие-то предварительные знания, это было бы здорово.
Альтернативами этому могут быть реализации различных ключевых функций C ++ 11 STL, таких как новые типы интеллектуальных указателей и std :: threads. В худшем случае я могу, вероятно, извлечь умные указатели из повышения. Существуют ли реализации std :: threads с точки зрения, скажем, pthreads или потоков Windows?
Спасибо
Вы можете взглянуть на Libc ++. Это стандартная библиотека C ++ для лязг. Я не пытался скомпилировать его с другим компилятором или на другой платформе, чем MacOS. Хотя, конечно, есть зависимости компилятора, например, в <type_traits>
и заголовки из библиотеки языковой поддержки (например, <exception>
, <type_info>
и т.д.), я могу представить, что большая часть кода будет компилироваться с другими компиляторами.
Вы уже упоминали libstdc ++ которая работает нормально с другими компиляторами, кроме НКУ, по крайней мере на Linux и MacOS: лязг раньше использовал libstdc ++ на MacOS. Тем не менее, я не знаю, насколько счастливым является libstdc ++ для компиляции с другими компиляторами.
Для конкретных классов, например std::shared_ptr<T>
или std::thread
группа классов, вы можете получить подходящие реализации замены от Увеличение.
Помимо реализаций, поставляемых с gcc и clang, существует также сторонний open-source USTL (с c++11
служба поддержки). Согласно его веб-сайту, он нацелен на сокращение некоторых накладных расходов в «раздутии шаблона». Тем не менее, он не реализует wchar
строки. Они также имеют нестандартное распределение памяти.
На их сайте есть примеры, показывающие, как его можно использовать вместо stl gcc.