Более высокие функции-это библиотека только C ++ 11/C ++ 14, которая предоставляет утилиты для функций и объектов функций, которая может решать много проблем с гораздо более простыми конструкциями, чем традиционно делается с помощью метапрограммирования.
Более высокие функции - это:
constexpr , так и оценку функций constexpr . Он использует преимущества вычета типа, вариальных шаблонов и идеальной пересылки, чтобы обеспечить простой и современный интерфейс.Более высокие функции делится на три компонента:
Github: https://github.com/boostorg/hof/
Документация: http://boost-hof.readthedocs.io/
Это требует компилятора C ++ 11. Там нет сторонних зависимостей. Это было протестировано на Clang 3,5-3,8, GCC 4.6-7 и Visual Studio 2015 и 2017.
Как MSVC, так и GCC 4.6 имеют ограниченную поддержку ContexPR из -за многих ошибок в реализации ConstexPR. Однако инициализация функций contexPR поддерживается при использовании конструкций BOOST_HOF_STATIC_FUNCTION и BOOST_HOF_STATIC_LAMBDA_FUNCTION .
На более старых компиляторах, таких как GCC 4.6 и GCC 4.7, noexcept не используется из -за многих ошибок в реализации. Кроме того, большинство компиляторов не поддерживают вывод noexcept с указателями функций. Только новые версии GCC (4.9 и более поздние) поддерживают это.
Boost.higherorderfunctions Библиотека использует Cmake для построения. Для настройки с Cmake создать каталог сборки и запустить Cmake:
mkdir build
cd build
cmake ..
Чтобы установить библиотеку, просто запустите цель install :
cmake --build . --target install
Тесты можно создать и запустить с помощью цели check :
cmake --build . --target check
Тесты также можно запустить с помощью boost.build, просто скопируйте библиотеку в дерево источника Boost, а затем:
cd test
b2
Документация построена с использованием SPHINX. Во -первых, установите требования, необходимые для документации, используя pip :
pip install -r doc/requirements.txt
Тогда документация HTML может быть сгенерирована с использованием sphinx-build :
sphinx-build -b html doc/ doc/html/
Последние документы будут в папке doc/html .