HigheroderFunctionsは、機能と関数オブジェクトにユーティリティを提供するヘッダーのみのC ++ 11/C ++ 14ライブラリであり、メタプログラムで伝統的に行われていたものよりもはるかに単純な構造で多くの問題を解決できます。
HigheroderFunctionsは次のとおりです。
constexpr初期化と機能のconstexpr評価の両方をサポートします。タイプ控除、バリアードテンプレート、および完璧な転送を活用して、シンプルでモダンなインターフェイスを提供します。HigheroderFunctionsは3つのコンポーネントに分けられます。
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の両方は、Constexprの実装における多くのバグにより、Constexprのサポートが限られています。ただし、 BOOST_HOF_STATIC_FUNCTIONおよびBOOST_HOF_STATIC_LAMBDA_FUNCTIONコンストラクトを使用する場合、関数のconstexpr初期化がサポートされます。
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を使用して実行することもできます。ライブラリをブーストソースツリーにコピーするだけです。
cd test
b2
ドキュメントは、Sphinxを使用して構築されています。まず、 pipを使用してドキュメントに必要な要件をインストールします。
pip install -r doc/requirements.txt
その後、 sphinx-build :を使用してHTMLドキュメントを生成できます。
sphinx-build -b html doc/ doc/html/
最終的なドキュメントは、 doc/htmlフォルダーにあります。