HigherOrderFunctions ist eine C ++ 11/C ++ 14-Bibliothek nur für Header, die Dienstprogramme für Funktionen und Funktionsobjekte bereitstellt, die viele Probleme mit viel einfacheren Konstrukten lösen kann als das, was traditionell bei der Metaprogrammierung gemacht wurde.
Höhere Funktionen sind:
constexpr als auch die Bewertung von constexpr von Funktionen. Es nutzt den Typabzug, variadische Vorlagen und eine perfekte Weiterleitung, um eine einfache und moderne Schnittstelle zu bieten.HigherOrderfunktionen sind in drei Komponenten unterteilt:
GitHub: https://github.com/boostorg/hof/
Dokumentation: http://boost-hof.readthedocs.io/
Dies erfordert einen C ++ 11 Compiler. Es gibt keine Abhängigkeiten von Drittanbietern. Dies wurde an Clang 3.5-3.8, GCC 4.6-7 und Visual Studio 2015 und 2017 getestet.
Sowohl MSVC als auch GCC 4.6 haben aufgrund vieler Fehler bei der Implementierung von ConstExPR eine begrenzte Unterstützung von ConstExPR. Die Initialisierung von Funktionen von Funktionen wird jedoch bei der Verwendung der Konstrukte von BOOST_HOF_STATIC_FUNCTION und BOOST_HOF_STATIC_LAMBDA_FUNCTION unterstützt.
Bei älteren Compilern wie GCC 4.6 und GCC 4.7 wird aufgrund vieler Fehler in der Implementierung kein noexcept verwendet. Außerdem unterstützen die meisten Compiler die Ableitung von noexcept mit Mitgliedernfunktionszeigern nicht. Nur neuere Versionen von GCC (4,9 und später) unterstützen dies.
Die Bibliothek von Boost.HigherorderFunctions verwendet CMake, um zu erstellen. So konfigurieren Sie mit CMake ein Build -Verzeichnis und führen Sie CMake aus:
mkdir build
cd build
cmake ..
Um die Bibliothek zu installieren, führen Sie einfach das install aus:
cmake --build . --target install
Die Tests können unter Verwendung des check -Ziels erstellt und ausgeführt werden:
cmake --build . --target check
Die Tests können auch mit Boost.build ausgeführt werden, einfach die Bibliothek in den Boost -Quellbaum kopieren und dann:
cd test
b2
Die Dokumentation wird mit Sphinx erstellt. Installieren Sie zunächst die für die Dokumentation erforderlichen Anforderungen mit pip :
pip install -r doc/requirements.txt
Anschließend kann die HTML-Dokumentation mit sphinx-build generiert werden:
sphinx-build -b html doc/ doc/html/
Die letzten Dokumente finden Sie im Ordner doc/html .