
La Bibliothèque numérique de composition (CNL) est une bibliothèque C ++ de classes numériques de précision fixe qui améliorent les entiers pour fournir des types arithmétiques plus sûrs, plus simples et moins chers. La documentation peut être trouvée ici. Vous pouvez essayer CNL sur Compiler Explorer ici.
CNL est particulièrement bien adapté à:
La dernière version de CNL nécessite une chaîne d'outils compatible C ++ 20. (La version 1.x prend en charge C ++ 11.) CNL est continuellement testé sur les systèmes suivants:
Testé:
Testé:
Testé:
Des scripts CMake sont fournis.
mkdir build && cd build
cmake ..
cmake --build . --target install Remarque: vous pouvez avoir besoin de privilèges utilisateur pour installer la bibliothèque. Alternativement, vous pouvez installer sur répertoire utilisateur à l'aide de CMAKE_INSTALL_PREFIX :
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:FILE=/home/username/someplace ..
cmake --build . --target installAlternativement, CNL est une bibliothèque d'en-tête uniquement afin que vous puissiez simplement pointer vers le répertoire inclué
c++ -isystem /path/to/cnl/include -std=c++20 my_program.cppou même inclure l'en-tête racine directement dans votre code:
# include " /path/to/cnl/include/cnl/all.h "La suite de tests utilise CMake et dépend du test Google et de Google Benchmark. Les tests d'intégration facultatifs utilisent boost.Multiprecision.
Conan peut être utilisé pour tirer des dépendances essentielles. Cet exemple suppose GCC mais d'autres fichiers de chaîne d'outils sont fournis:
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 ..... puis configurer, construire et exécuter des tests unitaires:
conan build --configure --build --test .. Pour exécuter des repères, utilisez --options test=benchmark ...
conan install --build=missing --options test=benchmark ..puis configurer et construire
conan build --configure --build ..et enfin exécuter explicitement pour voir les résultats.
./test/benchmark/test-benchmarkL'API est exposée par le biais d'en-têtes du répertoire inclué. Ajoutez ceci à la liste de votre en-tête système et incluez, par exemple:
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > Exemples de projets utilisant CNL:
Tous les commentaires ont grandement apprécié.