
المكتبة الرقمية التركيبية (CNL) هي مكتبة C ++ من الفئات الرقمية ذات الدقة الثابتة التي تعزز الأعداد الصحيحة لتقديم أنواع أكثر أمانًا وأبسطًا وأرخص. يمكن العثور على الوثائق هنا. يمكنك تجربة CNL على 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 و Google Conclenk. اختبارات التكامل الاختيارية تستخدم 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-benchmarkيتم كشف واجهة برمجة التطبيقات من خلال الرؤوس في الدليل. أضف هذا إلى قائمة رأس النظام الخاصة بك وتضمينه ، على سبيل المثال:
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > أمثلة على المشاريع باستخدام CNL:
كل ردود الفعل موضع تقدير كبير.