HigherOrderFunctions เป็นไลบรารี C ++ 11/C ++ 14 ส่วนหัวเท่านั้นที่ให้บริการยูทิลิตี้สำหรับฟังก์ชั่นและวัตถุฟังก์ชั่นซึ่งสามารถแก้ปัญหามากมายด้วยโครงสร้างที่ง่ายกว่าการสร้างแบบดั้งเดิมกับ metaprogramming
HigherOrderFunctions คือ:
constexpr และการประเมินผลการทำงานของ constexpr ใช้ประโยชน์จากการหักประเภทเทมเพลตที่หลากหลายและการส่งต่อที่สมบูรณ์แบบเพื่อให้อินเทอร์เฟซที่เรียบง่ายและทันสมัยHigherOrderFunctions แบ่งออกเป็นสามองค์ประกอบ:
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 เนื่องจากข้อบกพร่องจำนวนมากในการดำเนินการตาม SCENTEXPR อย่างไรก็ตามการเริ่มต้นของฟังก์ชั่นการเริ่มต้นของ Stexpr ได้รับการสนับสนุนเมื่อใช้ BOOST_HOF_STATIC_FUNCTION และ BOOST_HOF_STATIC_LAMBDA_FUNCTION
ในคอมไพเลอร์รุ่นเก่าเช่น GCC 4.6 และ GCC 4.7 ไม่ได้ใช้ noexcept เนื่องจากข้อบกพร่องจำนวนมากในการดำเนินการ นอกจากนี้คอมไพเลอร์ส่วนใหญ่ไม่รองรับการหักล้าง noexcept กับพอยน์เตอร์ฟังก์ชั่นสมาชิก เฉพาะรุ่นใหม่ของ GCC (4.9 และใหม่กว่า) เท่านั้นที่รองรับสิ่งนี้
Boost.HigherOrderFunctions Library ใช้ CMAKE เพื่อสร้าง ในการกำหนดค่าด้วย cmake สร้างไดเรกทอรี build และเรียกใช้ cmake:
mkdir build
cd build
cmake ..
ในการติดตั้งไลบรารีเพียงเรียกใช้เป้าหมาย install :
cmake --build . --target install
การทดสอบสามารถสร้างและดำเนินการโดยใช้เป้าหมาย check :
cmake --build . --target check
การทดสอบยังสามารถเรียกใช้ได้โดยใช้ boost.build เพียงคัดลอกไลบรารีไปยังทรีแหล่งที่มาของ Boost และจากนั้น:
cd test
b2
เอกสารถูกสร้างขึ้นโดยใช้สฟิงซ์ ขั้นแรกให้ติดตั้งข้อกำหนดที่จำเป็นสำหรับเอกสารโดยใช้ pip :
pip install -r doc/requirements.txt
จากนั้นเอกสาร HTML สามารถสร้างขึ้นได้โดยใช้ sphinx-build :
sphinx-build -b html doc/ doc/html/
เอกสารสุดท้ายจะอยู่ในโฟลเดอร์ doc/html