HigherOrderFunctions es una biblioteca C ++ 11/C ++ 14 de solo encabezado que proporciona utilidades para funciones y objetos de función, que pueden resolver muchos problemas con construcciones mucho más simples que lo que tradicionalmente se hace con metaprogramación.
SuperiorRoRdFunctions es:
constexpr como la evaluación constexpr de las funciones. Aprovecha la deducción de tipo, plantillas variádicas y reenvío perfecto para proporcionar una interfaz simple y moderna.SuperiorerFunctions se divide en tres componentes:
Github: https://github.com/boostorg/hof/
Documentación: http://boost-hof.readthedocs.io/
Esto requiere un compilador C ++ 11. No hay dependencias de terceros. Esto se ha probado en Clang 3.5-3.8, GCC 4.6-7 y Visual Studio 2015 y 2017.
Tanto MSVC como GCC 4.6 tienen un soporte limitado de ConstEXPR debido a muchos errores en la implementación de ConstExpr. Sin embargo, la inicialización de las funciones Constexpr se admite cuando se usa BOOST_HOF_STATIC_FUNCTION y BOOST_HOF_STATIC_LAMBDA_FUNCTION CONSTRUCCIONES.
En compiladores más antiguos como GCC 4.6 y GCC 4.7, noexcept no se usa debido a muchos errores en la implementación. Además, la mayoría de los compiladores no admiten deducir noexcept con los punteros de la función miembro. Solo las versiones más nuevas de GCC (4.9 y posterior) respaldan esto.
BOOST.HigherOrderFunctions Library utiliza CMake para construir. Para configurar con CMake, cree un directorio de compilación y ejecute cmake:
mkdir build
cd build
cmake ..
Para instalar la biblioteca, simplemente ejecute el objetivo install :
cmake --build . --target install
Las pruebas se pueden construir y ejecutar utilizando el objetivo check :
cmake --build . --target check
Las pruebas también se pueden ejecutar usando Boost.build, simplemente copie la biblioteca al árbol de origen Boost y luego::
cd test
b2
La documentación se construye usando Sphinx. Primero, instale los requisitos necesarios para la documentación utilizando pip :
pip install -r doc/requirements.txt
Entonces la documentación HTML se puede generar utilizando sphinx-build :
sphinx-build -b html doc/ doc/html/
Los documentos finales estarán en la carpeta doc/html .