Подскажите в двух словах, что из себя представляет Boost. Как я понимаю, он является более оптимизированной альтернативой стандартным заголовкам C++, верно?
Имеет ли смысл заменить им в движке стандартные заголовки и нужно ли его предварительно компилировать (раньше нужно было) или достаточно просто включать HPP-заголовки в код движка?
Здесь я имею в виду не дополнительные возможности, отсутствующие в Standard Library, а именно те, которые можно заменить.
Daniil Petrov
> Как я понимаю, он является более оптимизированной альтернативой стандартным
> заголовкам C++, верно?
Нет. boost это когда собрались всякие отпетые профессионалы C++ и начали делать дополнение к STL где есть всё то чего им так не хватало в C++98.
Самые удачные и востребованные решения из boost сейчас входят в STL с новыми ревизиями C++ (C++11, C++14, C++17 и т.п.), так что востребованность в boost постоянно падает.
Например std::function и std::thread всякие - это вот как раз из boost пришло.
Т.к. boost это преимущественно (как и STL) библиотека шаблонов, то у неё такие же проблемы с компиляцией так что в прекомпилед засунуть по идее крайне желательно.
=A=L=X=
Т.е. смысла заменять им стандартный STL смысла нету?
Daniil Petrov
> Т.е. смысла заменять им стандартный STL смысла нету?
Он изначально не заменяет, а дополняет.
=A=L=X=
Я имею в виду одноимённые заголовки
Daniil Petrov
> Я имею в виду одноимённые заголовки
Они не пересекаются, т.к. имеют разные пути и неймспейсы - буст обычно лежит в "boost/some.hpp" и в нейспейсе boost.
Но в этом смысле - да, использовать буст там где есть в STL смысла нет.
Да и вообще вопрос нужен ли он тебе.
Вроде бы иногда люди еще выхватывают один только или пару конкретно нужных файлов для лёгкости компиляции.
=A=L=X=
> Вроде бы иногда люди еще выхватывают один только или пару конкретно нужных файлов для лёгкости компиляции.
У меня общий Engine SDK, где лежат все SDK для движка и инструментария, так что можно его туда целиком закидывать и включать в проект то, что нужно.
Но пока в нём смысла нету, так как STL им заменять не буду, а функции, не входящие в STL пока ещё не попадались.
boost, вообще в названии как слово это не от "ускорение" всмысле алгоритмов, а "ускорение" в смысле разработки.
Весь boost уже есть в С++17. Если тебе нужен boost, значит ты что-то делаешь не так. Ни boost, ни STL в геимдеве не используют. STL только в мобилах и ПК.
u960
Где пишут свой аллокатор - там пишут свои контейнеры
u960
> на приставках нету STL библиотеки?
пишут обычно своё заточенное под быстродействие, если в коде игры есть что-то отличное от массива или хеш-таблицы тут повод задуматься, не использовать ли массив или хеш-таблицу
для тех кто привык к STL есть версия от EA
https://github.com/electronicarts/EASTL
Daniil Petrov
Да устройся ты на роботу, хотя бы junior'ом возьмут. Там все и поймешь. А иначе все твои поделки не более чем пердеж в воду.(последняя фраза в стиле топикстартера)
Модерам:
Я серьёзно, без стёба.
TheLightWay
> Да устройся ты на роботу, хотя бы junior'ом возьмут. Там все и поймешь.
Да сам потихоньку разберусь. Надо же с чего-то начинать, а потом уже оптимизировать. Постоянная работа над движком, это же не только его развитие, но и оптимизация.
Сначала для простоты начинания я сделал менеджер ресурсов на std::map, позже уже перебил его на std::vector. По мере продвижения постепенно расту над собой.
P.S. Мне интересно писать движок самому, не заглядывая в чужие, используя в основном свои познания, и со временем повышая оные самому же его и оптимизировать.
Тем более что у меня нет ни малейшего желания работать с чужим говнокодом, даже junior'ом, со своим секса хватает за глаза )))
Тема в архиве.