
ไลบรารีตัวเลขคอมโพสิต (CNL) เป็นไลบรารี C ++ ของคลาสตัวเลขที่มีความแม่นยำคงที่ซึ่งช่วยเพิ่มจำนวนเต็มเพื่อส่งมอบประเภทเลขคณิตที่ปลอดภัยกว่าง่ายกว่าและราคาถูกกว่า เอกสารสามารถพบได้ที่นี่ คุณสามารถลองใช้ CNL บน Compiler Explorer ได้ที่นี่
CNL เหมาะอย่างยิ่งสำหรับ:
CNL เวอร์ชันล่าสุดต้องการห่วงโซ่เครื่องมือที่เข้ากันได้กับ C ++ 20 (เวอร์ชัน 1.x รองรับ C ++ 11) CNL ได้รับการทดสอบอย่างต่อเนื่องในระบบต่อไปนี้:
ทดสอบ:
ทดสอบ:
ทดสอบ:
มีการให้สคริปต์ CMake
mkdir build && cd build
cmake ..
cmake --build . --target install หมายเหตุ: คุณอาจต้องการสิทธิ์ของผู้ใช้ในการติดตั้งไลบรารี หรือคุณสามารถติดตั้งไปยังไดเรกทอรีผู้ใช้โดยใช้ CMAKE_INSTALL_PREFIX :
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:FILE=/home/username/someplace ..
cmake --build . --target installอีกทางเลือกหนึ่ง CNL เป็นห้องสมุดส่วนหัวเท่านั้นดังนั้นคุณสามารถชี้ไปที่ไดเรกทอรี รวม
c++ -isystem /path/to/cnl/include -std=c++20 my_program.cppหรือรวมถึงส่วนหัวรูทโดยตรงในรหัสของคุณ:
# include " /path/to/cnl/include/cnl/all.h "ชุดทดสอบใช้ CMake และขึ้นอยู่กับ Google Test และ Google Benchmark การทดสอบการรวมตัวเลือกใช้ boost.multiprecision
โคนันสามารถใช้เพื่อดึงการพึ่งพาที่จำเป็น ตัวอย่างนี้ถือว่า GCC แต่มีไฟล์โซ่เครื่องมืออื่น ๆ :
cd build
conan profile new --detect --force default
conan profile update settings.compiler.libcxx=libstdc++11 default # GCC/Clang only
conan profile update env.CONAN_CMAKE_TOOLCHAIN_FILE=../test/toolchain/gcc.cmake default # GCC only
conan install --build=missing --options test=unit ..... จากนั้นกำหนดค่าสร้างและเรียกใช้การทดสอบหน่วย:
conan build --configure --build --test .. ในการเรียกใช้มาตรฐานให้ใช้ --options test=benchmark ...
conan install --build=missing --options test=benchmark ..จากนั้นกำหนดค่าและสร้าง
conan build --configure --build ..และในที่สุดก็ทำงานอย่างชัดเจนเพื่อดูผลลัพธ์
./test/benchmark/test-benchmarkAPI ถูกเปิดเผยผ่านส่วนหัวในไดเรกทอรีรวม เพิ่มสิ่งนี้ลงในรายการส่วนหัวของระบบของคุณและรวมเช่น:
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > ตัวอย่างของโครงการที่ใช้ CNL:
ข้อเสนอแนะทั้งหมดชื่นชมอย่างมาก