HigherOrderFunctions adalah perpustakaan C ++ 11/C ++ 14 yang header yang menyediakan utilitas untuk fungsi dan objek fungsi, yang dapat memecahkan banyak masalah dengan konstruksi yang jauh lebih sederhana daripada apa yang secara tradisional dilakukan dengan metaprogramming.
Percikaian yang lebih tinggi adalah:
constexpr dan evaluasi fungsi constexpr . Ini memanfaatkan pengurangan jenis, templat variadik, dan penerusan yang sempurna untuk menyediakan antarmuka yang sederhana dan modern.HigherOrderFunctions dibagi menjadi tiga komponen:
GitHub: https://github.com/boostorg/hof/
Dokumentasi: http://boost-hof.readthedocs.io/
Ini membutuhkan kompiler C ++ 11. Tidak ada dependensi pihak ketiga. Ini telah diuji pada Clang 3.5-3.8, GCC 4.6-7, dan Visual Studio 2015 dan 2017.
Baik MSVC dan GCC 4.6 memiliki dukungan Constexpr terbatas karena banyak bug dalam implementasi Constexpr. Namun, inisialisasi fungsi Constexpr didukung saat menggunakan konstruksi BOOST_HOF_STATIC_FUNCTION dan BOOST_HOF_STATIC_LAMBDA_FUNCTION .
Pada kompiler yang lebih tua seperti GCC 4.6 dan GCC 4.7, noexcept tidak digunakan karena banyak bug dalam implementasi. Juga, sebagian besar kompiler tidak mendukung menyimpulkan noexcept dengan pointer fungsi anggota. Hanya versi GCC (4.9 dan yang lebih baru) yang mendukung ini.
Boost.ThererDerFunctions Library menggunakan cmake untuk membangun. Untuk mengonfigurasi dengan cmake membuat direktori build, dan jalankan cmake:
mkdir build
cd build
cmake ..
Untuk menginstal pustaka, cukup jalankan target install :
cmake --build . --target install
Tes dapat dibangun dan dijalankan dengan menggunakan target check :
cmake --build . --target check
Tes juga dapat dijalankan menggunakan Boost.Build, cukup salin perpustakaan ke pohon sumber Boost, dan kemudian:
cd test
b2
Dokumentasi dibangun menggunakan SPHINX. Pertama, instal persyaratan yang diperlukan untuk dokumentasi menggunakan pip :
pip install -r doc/requirements.txt
Kemudian dokumentasi HTML dapat dihasilkan menggunakan sphinx-build :
sphinx-build -b html doc/ doc/html/
Dokumen terakhir akan berada di folder doc/html .