
CNL (Compositional Numeric Library)은 정수를 향상시켜 더 안전하고 단순하고 저렴한 산술 유형을 제공하도록 정수를 향상시키는 고정식 숫자 클래스의 C ++ 라이브러리입니다. 문서는 여기에서 찾을 수 있습니다. 컴파일러 탐색기에서 CNL을 사용해 볼 수 있습니다.
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 벤치 마크에 따라 다릅니다. 선택적 통합 테스트는 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을 사용한 프로젝트의 예 :
모든 피드백은 크게 감사했습니다.