HigherOrderFonctions est une bibliothèque C ++ 11 / C ++ 14 en tête uniquement qui fournit des utilitaires pour les fonctions et les objets de fonction, ce qui peut résoudre de nombreux problèmes avec des constructions beaucoup plus simples que ce qui a été traditionnellement fait avec la métaprogrammation.
Les fonctionnalités supérieures sont:
constexpr et l'évaluation constexpr des fonctions. Il tire parti de la déduction de type, des modèles variades et de l'enfenture parfaite pour fournir une interface simple et moderne.Les fonctionnalités supérieures sont divisées en trois composantes:
Github: https://github.com/boostorg/hof/
Documentation: http://boost-hof.readthedocs.io/
Cela nécessite un compilateur C ++ 11. Il n'y a pas de dépendances tierces. Cela a été testé sur Clang 3.5-3.8, GCC 4.6-7 et Visual Studio 2015 et 2017.
MSVC et GCC 4.6 ont un support Consxpr limité en raison de nombreux bogues dans l'implémentation de Consxpr. Cependant, l'initialisation constexpr des fonctions est prise en charge lors de l'utilisation des constructions BOOST_HOF_STATIC_FUNCTION et BOOST_HOF_STATIC_LAMBDA_FUNCTION .
Sur les compilateurs plus anciens tels que GCC 4.6 et GCC 4.7, noexcept n'est pas utilisé en raison de nombreux bogues de l'implémentation. De plus, la plupart des compilateurs ne prennent pas en charge la déduction de noexcept avec les pointeurs de la fonction des membres. Seules les versions plus récentes de GCC (4.9 et ultérieurement) le soutiennent.
Boost.HigherOrderFonctions bibliothèque utilise Cmake pour construire. Pour configurer avec CMake, créez un répertoire de construction et exécutez Cmake:
mkdir build
cd build
cmake ..
Pour installer la bibliothèque, exécutez simplement la cible install :
cmake --build . --target install
Les tests peuvent être construits et exécutés en utilisant la cible check :
cmake --build . --target check
Les tests peuvent également être exécutés à l'aide de boost.build, copiez simplement la bibliothèque de la source Boost, puis:
cd test
b2
La documentation est construite à l'aide de Sphinx. Tout d'abord, installez les exigences nécessaires à la documentation à l'aide pip :
pip install -r doc/requirements.txt
Ensuite, la documentation HTML peut être générée à l'aide sphinx-build :
sphinx-build -b html doc/ doc/html/
Les documents finaux seront dans le dossier doc/html .