HomeorderFunctions هي مكتبة C ++ 11/C ++ 14 رأسًا على رأسها توفر أدوات مساعدة للوظائف وكائنات الوظائف ، والتي يمكن أن تحل العديد من المشكلات مع بنيات أبسط بكثير مما تم القيام به تقليديًا مع metaprogramming.
HomeorderFunctions هي:
constexpr وتقييم constexpr للوظائف. إنه يستفيد من خصم النوع ، وقوالب متغير ، وإعادة توجيه مثالية لتوفير واجهة بسيطة وحديثة.تنقسم LevelOrderFunctions إلى ثلاثة مكونات:
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. ومع ذلك ، يتم دعم تهيئة constexpr للوظائف عند استخدام BOOST_HOF_STATIC_FUNCTION و BOOST_HOF_STATIC_LAMBDA_FUNCTION .
على المترجمين الأقدم مثل GCC 4.6 و GCC 4.7 ، لا يتم استخدام noexcept بسبب العديد من الأخطاء في التنفيذ. أيضًا ، لا يدعم معظم المترجمين استنتاج noexcept مع مؤشرات وظيفة الأعضاء. تدعم الإصدارات الأحدث فقط من مجلس التعاون الخليجي (4.9 وما بعدها) هذا.
تستخدم مكتبة Boost.HigherorderFunctions Cmake للبناء. لتكوين مع cmake إنشاء دليل بناء ، وتشغيل cmake:
mkdir build
cd build
cmake ..
لتثبيت المكتبة فقط قم بتشغيل هدف install :
cmake --build . --target install
يمكن بناء الاختبارات وتشغيلها باستخدام هدف check :
cmake --build . --target check
يمكن أيضًا تشغيل الاختبارات باستخدام Boost.build ، فقط قم بنسخ المكتبة إلى شجرة مصدر Boost ، ثم:
cd test
b2
تم تصميم الوثائق باستخدام sphinx. أولاً ، قم بتثبيت المتطلبات اللازمة للوثائق باستخدام pip :
pip install -r doc/requirements.txt
ثم يمكن إنشاء وثائق HTML باستخدام sphinx-build :
sphinx-build -b html doc/ doc/html/
ستكون المستندات النهائية في مجلد doc/html .