forked from boostorg/integer
Compare commits
16 Commits
boost-1.78
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7ed9918c1 | ||
|
|
becbd39cc4 | ||
|
|
28ba36fd3a | ||
|
|
8ce66ab37e | ||
|
|
d4157bdf38 | ||
|
|
721fe9f562 | ||
|
|
88457d2de5 | ||
|
|
d22bf3ea37 | ||
|
|
c659255289 | ||
|
|
49195acf60 | ||
|
|
bc9b0e6177 | ||
|
|
c6564a2d2b | ||
|
|
16ef530fcf | ||
|
|
c5df07cb21 | ||
|
|
a832e8fe65 | ||
|
|
ba7ea7f846 |
215
.github/workflows/ci.yml
vendored
215
.github/workflows/ci.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2021 Andrey Semashev
|
# Copyright 2021-2023 Andrey Semashev
|
||||||
#
|
#
|
||||||
# Distributed under the Boost Software License, Version 1.0.
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||||
@@ -33,207 +33,260 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
# Linux, gcc
|
# Linux, gcc
|
||||||
- toolset: gcc-4.4
|
|
||||||
cxxstd: "98,0x"
|
|
||||||
os: ubuntu-20.04
|
|
||||||
container: ubuntu:16.04
|
|
||||||
install:
|
|
||||||
- g++-4.4
|
|
||||||
sources:
|
|
||||||
- "ppa:ubuntu-toolchain-r/test"
|
|
||||||
- toolset: gcc-4.6
|
- toolset: gcc-4.6
|
||||||
cxxstd: "03,0x"
|
cxxstd: "0x"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- g++-4.6
|
- g++-4.6
|
||||||
sources:
|
sources:
|
||||||
- "ppa:ubuntu-toolchain-r/test"
|
- "ppa:ubuntu-toolchain-r/test"
|
||||||
- toolset: gcc-4.7
|
- toolset: gcc-4.7
|
||||||
cxxstd: "03,11"
|
cxxstd: "11"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- g++-4.7
|
- g++-4.7
|
||||||
- toolset: gcc-4.8
|
- toolset: gcc-4.8
|
||||||
cxxstd: "03,11"
|
cxxstd: "11"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- g++-4.8
|
- g++-4.8
|
||||||
- toolset: gcc-4.9
|
- toolset: gcc-4.9
|
||||||
cxxstd: "03,11"
|
cxxstd: "11"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- g++-4.9
|
- g++-4.9
|
||||||
- toolset: gcc-5
|
- toolset: gcc-5
|
||||||
cxxstd: "03,11,14,1z"
|
cxxstd: "11,14,1z"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- g++-5
|
- g++-5
|
||||||
- toolset: gcc-6
|
- toolset: gcc-6
|
||||||
cxxstd: "03,11,14,1z"
|
cxxstd: "11,14,1z"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- g++-6
|
- g++-6
|
||||||
- toolset: gcc-7
|
- toolset: gcc-7
|
||||||
cxxstd: "03,11,14,17"
|
cxxstd: "11,14,17"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- g++-7
|
- g++-7
|
||||||
- toolset: gcc-8
|
- toolset: gcc-8
|
||||||
cxxstd: "03,11,14,17,2a"
|
cxxstd: "11,14,17,2a"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- g++-8
|
- g++-8
|
||||||
- toolset: gcc-9
|
- toolset: gcc-9
|
||||||
cxxstd: "03,11,14,17,2a"
|
cxxstd: "11,14,17,2a"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-20.04
|
||||||
install:
|
install:
|
||||||
- g++-9
|
- g++-9
|
||||||
- toolset: gcc-10
|
- toolset: gcc-10
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "11,14,17,20"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
install:
|
install:
|
||||||
- g++-10
|
- g++-10
|
||||||
- toolset: gcc-11
|
- toolset: gcc-11
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- g++-11
|
- g++-11
|
||||||
sources:
|
- toolset: gcc-12
|
||||||
- "ppa:ubuntu-toolchain-r/test"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- g++-12
|
||||||
- name: UBSAN
|
- name: UBSAN
|
||||||
toolset: gcc-11
|
toolset: gcc-11
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu"
|
||||||
ubsan: 1
|
ubsan: 1
|
||||||
build_variant: debug
|
build_variant: debug
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- g++-11
|
- g++-11
|
||||||
sources:
|
|
||||||
- "ppa:ubuntu-toolchain-r/test"
|
|
||||||
|
|
||||||
# Linux, clang
|
# Linux, clang
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-3.5
|
compiler: clang++-3.5
|
||||||
cxxstd: "03,11"
|
cxxstd: "11"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- clang-3.5
|
- clang-3.5
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-3.6
|
compiler: clang++-3.6
|
||||||
cxxstd: "03,11,14"
|
cxxstd: "11,14"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- clang-3.6
|
- clang-3.6
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-3.7
|
compiler: clang++-3.7
|
||||||
cxxstd: "03,11,14"
|
cxxstd: "11,14"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- clang-3.7
|
- clang-3.7
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-3.8
|
compiler: clang++-3.8
|
||||||
cxxstd: "03,11,14"
|
cxxstd: "11,14"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-latest
|
||||||
container: ubuntu:16.04
|
container: ubuntu:16.04
|
||||||
install:
|
install:
|
||||||
- clang-3.8
|
- clang-3.8
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-3.9
|
compiler: clang++-3.9
|
||||||
cxxstd: "03,11,14"
|
cxxstd: "11,14"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-3.9
|
- clang-3.9
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-4.0
|
compiler: clang++-4.0
|
||||||
cxxstd: "03,11,14"
|
cxxstd: "11,14"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-4.0
|
- clang-4.0
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-5.0
|
compiler: clang++-5.0
|
||||||
cxxstd: "03,11,14,1z"
|
cxxstd: "11,14,1z"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-5.0
|
- clang-5.0
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-6.0
|
compiler: clang++-6.0
|
||||||
cxxstd: "03,11,14,17"
|
cxxstd: "11,14,17"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-6.0
|
- clang-6.0
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-7
|
compiler: clang++-7
|
||||||
cxxstd: "03,11,14,17"
|
cxxstd: "11,14,17"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-7
|
- clang-7
|
||||||
# Note: clang-8 does not fully support C++20, so it is not compatible with libstdc++-8 in this mode
|
# Note: clang-8 does not fully support C++20, so it is not compatible with libstdc++-8 in this mode
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-8
|
compiler: clang++-8
|
||||||
cxxstd: "03,11,14,17,2a"
|
cxxstd: "11,14,17,2a"
|
||||||
os: ubuntu-18.04
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:18.04
|
||||||
install:
|
install:
|
||||||
- clang-8
|
- clang-8
|
||||||
- g++-7
|
- g++-7
|
||||||
gcc_toolchain: 7
|
gcc_toolchain: 7
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-9
|
compiler: clang++-9
|
||||||
cxxstd: "03,11,14,17,2a"
|
cxxstd: "11,14,17,2a"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
install:
|
install:
|
||||||
- clang-9
|
- clang-9
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-10
|
compiler: clang++-10
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "11,14,17,20"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
install:
|
install:
|
||||||
- clang-10
|
- clang-10
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-11
|
compiler: clang++-11
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "11,14,17,20"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- clang-11
|
- clang-11
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-12
|
compiler: clang++-12
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- clang-12
|
- clang-12
|
||||||
|
- g++-11
|
||||||
|
gcc_toolchain: 11
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
compiler: clang++-12
|
compiler: clang++-13
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- clang-12
|
- clang-13
|
||||||
- libc++-12-dev
|
- g++-11
|
||||||
- libc++abi-12-dev
|
gcc_toolchain: 11
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-14
|
||||||
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- clang-14
|
||||||
|
- g++-11
|
||||||
|
gcc_toolchain: 11
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-15
|
||||||
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- clang-15
|
||||||
|
- g++-11
|
||||||
|
gcc_toolchain: 11
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-15
|
||||||
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- clang-15
|
||||||
|
- libc++-15-dev
|
||||||
|
- libc++abi-15-dev
|
||||||
|
cxxflags: -stdlib=libc++
|
||||||
|
linkflags: -stdlib=libc++
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-16
|
||||||
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- clang-16
|
||||||
|
sources:
|
||||||
|
- "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main"
|
||||||
|
source_keys:
|
||||||
|
- "https://apt.llvm.org/llvm-snapshot.gpg.key"
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-16
|
||||||
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
|
os: ubuntu-22.04
|
||||||
|
install:
|
||||||
|
- clang-16
|
||||||
|
- libc++-16-dev
|
||||||
|
- libc++abi-16-dev
|
||||||
|
sources:
|
||||||
|
- "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main"
|
||||||
|
source_keys:
|
||||||
|
- "https://apt.llvm.org/llvm-snapshot.gpg.key"
|
||||||
cxxflags: -stdlib=libc++
|
cxxflags: -stdlib=libc++
|
||||||
linkflags: -stdlib=libc++
|
linkflags: -stdlib=libc++
|
||||||
- name: UBSAN
|
- name: UBSAN
|
||||||
toolset: clang
|
toolset: clang
|
||||||
compiler: clang++-12
|
compiler: clang++-15
|
||||||
cxxstd: "03,11,14,17,20"
|
cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu"
|
||||||
cxxflags: -stdlib=libc++
|
cxxflags: -stdlib=libc++
|
||||||
linkflags: -stdlib=libc++
|
linkflags: -stdlib=libc++
|
||||||
ubsan: 1
|
ubsan: 1
|
||||||
build_variant: debug
|
build_variant: debug
|
||||||
os: ubuntu-20.04
|
os: ubuntu-22.04
|
||||||
install:
|
install:
|
||||||
- clang-12
|
- clang-15
|
||||||
- libc++-12-dev
|
- libc++-15-dev
|
||||||
- libc++abi-12-dev
|
- libc++abi-15-dev
|
||||||
|
|
||||||
- toolset: clang
|
- toolset: clang
|
||||||
cxxstd: "03,11,14,17,2a"
|
cxxstd: "11,14,17,2a"
|
||||||
os: macos-10.15
|
os: macos-11
|
||||||
|
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
runs-on: ${{matrix.os}}
|
runs-on: ${{matrix.os}}
|
||||||
@@ -253,12 +306,18 @@ jobs:
|
|||||||
if [ -f "/etc/debian_version" ]
|
if [ -f "/etc/debian_version" ]
|
||||||
then
|
then
|
||||||
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
|
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
|
||||||
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ python python3 perl git cmake
|
if [ "$(apt-cache search "^python-is-python3$" | wc -l)" -ne 0 ]
|
||||||
|
then
|
||||||
|
PYTHON_PACKAGE="python-is-python3"
|
||||||
|
else
|
||||||
|
PYTHON_PACKAGE="python"
|
||||||
|
fi
|
||||||
|
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ $PYTHON_PACKAGE python3 perl git cmake
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
git config --global pack.threads 0
|
git config --global pack.threads 0
|
||||||
|
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
if: matrix.install
|
if: matrix.install
|
||||||
|
|||||||
24
appveyor.yml
24
appveyor.yml
@@ -14,42 +14,44 @@ branches:
|
|||||||
|
|
||||||
environment:
|
environment:
|
||||||
matrix:
|
matrix:
|
||||||
- TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0,msvc-12.0
|
|
||||||
ADDRMD: 32
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
- TOOLSET: msvc-14.0
|
- TOOLSET: msvc-14.0
|
||||||
|
CXXSTD: 14,latest
|
||||||
ADDRMD: 32,64
|
ADDRMD: 32,64
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
- TOOLSET: msvc-14.1
|
- TOOLSET: msvc-14.1
|
||||||
CXXSTD: 14,17
|
CXXSTD: 14,17,latest
|
||||||
ADDRMD: 32,64
|
ADDRMD: 32,64
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
- TOOLSET: msvc-14.2
|
- TOOLSET: msvc-14.2
|
||||||
ADDRMD: 32,64
|
ADDRMD: 32,64
|
||||||
CXXSTD: 14,17
|
CXXSTD: 14,17,20,latest
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
|
- TOOLSET: msvc-14.3
|
||||||
|
ADDRMD: 32,64
|
||||||
|
CXXSTD: 14,17,20,latest
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
||||||
- TOOLSET: clang-win
|
- TOOLSET: clang-win
|
||||||
ADDRMD: 32,64
|
ADDRMD: 32,64
|
||||||
CXXSTD: 14,17
|
CXXSTD: 14,17,latest
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
- TOOLSET: gcc
|
- TOOLSET: gcc
|
||||||
CXXSTD: 03,11,14,1z
|
CXXSTD: 11,14,1z
|
||||||
ADDPATH: C:\cygwin\bin;
|
ADDPATH: C:\cygwin\bin;
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
- TOOLSET: gcc
|
- TOOLSET: gcc
|
||||||
CXXSTD: 03,11,14,1z
|
CXXSTD: 11,14,1z
|
||||||
ADDPATH: C:\cygwin64\bin;
|
ADDPATH: C:\cygwin64\bin;
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
- TOOLSET: gcc
|
- TOOLSET: gcc
|
||||||
CXXSTD: 03,11,14,1z
|
CXXSTD: 11,14,1z
|
||||||
ADDPATH: C:\mingw\bin;
|
ADDPATH: C:\mingw\bin;
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
- TOOLSET: gcc
|
- TOOLSET: gcc
|
||||||
CXXSTD: 03,11,14,1z
|
CXXSTD: 11,14,1z
|
||||||
ADDPATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;
|
ADDPATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
- TOOLSET: gcc
|
- TOOLSET: gcc
|
||||||
CXXSTD: 03,11,14,1z
|
CXXSTD: 11,14,1z
|
||||||
ADDPATH: C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;
|
ADDPATH: C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
|
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ The following table describes each template's criteria.
|
|||||||
[*only] if there exists a type with exactly N bits.]
|
[*only] if there exists a type with exactly N bits.]
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
[[^boost::int_max_value_t<V>::last]]
|
[[^boost::int_max_value_t<V>::least]]
|
||||||
[The smallest, built-in, signed integral type that can hold all the values in the inclusive range ['0 - V].
|
[The smallest, built-in, signed integral type that can hold all the values in the inclusive range ['0 - V].
|
||||||
The parameter should be a positive number.]
|
The parameter should be a positive number.]
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include <limits>
|
#include <limits>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/core/swap.hpp>
|
#include <boost/core/invoke_swap.hpp>
|
||||||
#include <boost/core/enable_if.hpp>
|
#include <boost/core/enable_if.hpp>
|
||||||
|
|
||||||
namespace boost { namespace integer {
|
namespace boost { namespace integer {
|
||||||
@@ -38,7 +38,7 @@ extended_euclidean(Z m, Z n)
|
|||||||
if (m < n)
|
if (m < n)
|
||||||
{
|
{
|
||||||
swapped = true;
|
swapped = true;
|
||||||
boost::swap(m, n);
|
boost::core::invoke_swap(m, n);
|
||||||
}
|
}
|
||||||
Z u0 = m;
|
Z u0 = m;
|
||||||
Z u1 = 1;
|
Z u1 = 1;
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
// Gives the integer part of the logarithm, in base 2, of a
|
// Gives the integer part of the logarithm, in base 2, of a
|
||||||
// given number. Behavior is undefined if the argument is <= 0.
|
// given number. Behavior is undefined if the argument is <= 0.
|
||||||
//
|
//
|
||||||
// Copyright (c) 2003-2004, 2008 Gennaro Prota
|
// Copyright (c) 2003-2004, 2008 Gennaro Prota
|
||||||
|
// Copyright (c) 2022 Andrey Semashev
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@@ -15,98 +16,102 @@
|
|||||||
#ifndef BOOST_INTEGER_INTEGER_LOG2_HPP
|
#ifndef BOOST_INTEGER_INTEGER_LOG2_HPP
|
||||||
#define BOOST_INTEGER_INTEGER_LOG2_HPP
|
#define BOOST_INTEGER_INTEGER_LOG2_HPP
|
||||||
|
|
||||||
#include <boost/limits.hpp>
|
#include <climits>
|
||||||
|
#include <limits>
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#if defined(BOOST_BORLANDC)
|
#include <boost/cstdint.hpp>
|
||||||
#include <climits>
|
#include <boost/core/bit.hpp>
|
||||||
#endif
|
#include <boost/core/enable_if.hpp>
|
||||||
|
#include <boost/type_traits/is_integral.hpp>
|
||||||
|
#include <boost/type_traits/make_unsigned.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
template <typename T>
|
// helper to find the maximum power of two
|
||||||
int integer_log2_impl(T x, int n) {
|
// less than p
|
||||||
|
template< unsigned int p, unsigned int n, bool = ((2u * n) < p) >
|
||||||
|
struct max_pow2_less :
|
||||||
|
public max_pow2_less< p, 2u * n >
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
int result = 0;
|
template< unsigned int p, unsigned int n >
|
||||||
|
struct max_pow2_less< p, n, false >
|
||||||
|
{
|
||||||
|
BOOST_STATIC_CONSTANT(unsigned int, value = n);
|
||||||
|
};
|
||||||
|
|
||||||
while (x != 1) {
|
template< typename T >
|
||||||
|
inline typename boost::disable_if< boost::is_integral< T >, int >::type integer_log2_impl(T x)
|
||||||
|
{
|
||||||
|
unsigned int n = detail::max_pow2_less<
|
||||||
|
std::numeric_limits< T >::digits,
|
||||||
|
CHAR_BIT / 2u
|
||||||
|
>::value;
|
||||||
|
|
||||||
const T t = static_cast<T>(x >> n);
|
int result = 0;
|
||||||
if (t) {
|
while (x != 1)
|
||||||
result += n;
|
{
|
||||||
x = t;
|
T t(x >> n);
|
||||||
}
|
if (t)
|
||||||
n /= 2;
|
{
|
||||||
|
result += static_cast< int >(n);
|
||||||
}
|
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||||
|
x = static_cast< T&& >(t);
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// helper to find the maximum power of two
|
|
||||||
// less than p (more involved than necessary,
|
|
||||||
// to avoid PTS)
|
|
||||||
//
|
|
||||||
template <int p, int n>
|
|
||||||
struct max_pow2_less {
|
|
||||||
|
|
||||||
enum { c = 2*n < p };
|
|
||||||
|
|
||||||
BOOST_STATIC_CONSTANT(int, value =
|
|
||||||
c ? (max_pow2_less< c*p, 2*c*n>::value) : n);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct max_pow2_less<0, 0> {
|
|
||||||
|
|
||||||
BOOST_STATIC_CONSTANT(int, value = 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
// this template is here just for Borland :(
|
|
||||||
// we could simply rely on numeric_limits but sometimes
|
|
||||||
// Borland tries to use numeric_limits<const T>, because
|
|
||||||
// of its usual const-related problems in argument deduction
|
|
||||||
// - gps
|
|
||||||
template <typename T>
|
|
||||||
struct width {
|
|
||||||
|
|
||||||
#ifdef BOOST_BORLANDC
|
|
||||||
BOOST_STATIC_CONSTANT(int, value = sizeof(T) * CHAR_BIT);
|
|
||||||
#else
|
#else
|
||||||
BOOST_STATIC_CONSTANT(int, value = (std::numeric_limits<T>::digits));
|
x = t;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
n >>= 1u;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
return result;
|
||||||
|
|
||||||
} // detail
|
|
||||||
|
|
||||||
|
|
||||||
// ---------
|
|
||||||
// integer_log2
|
|
||||||
// ---------------
|
|
||||||
//
|
|
||||||
template <typename T>
|
|
||||||
int integer_log2(T x) {
|
|
||||||
|
|
||||||
BOOST_ASSERT(x > 0);
|
|
||||||
|
|
||||||
const int n = detail::max_pow2_less<
|
|
||||||
detail::width<T> :: value, 4
|
|
||||||
> :: value;
|
|
||||||
|
|
||||||
return detail::integer_log2_impl(x, n);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template< typename T >
|
||||||
|
inline typename boost::enable_if< boost::is_integral< T >, int >::type integer_log2_impl(T x)
|
||||||
|
{
|
||||||
|
// We could simply rely on numeric_limits but sometimes
|
||||||
|
// Borland tries to use numeric_limits<const T>, because
|
||||||
|
// of its usual const-related problems in argument deduction
|
||||||
|
// - gps
|
||||||
|
return static_cast< int >((sizeof(T) * CHAR_BIT - 1u) -
|
||||||
|
boost::core::countl_zero(static_cast< typename boost::make_unsigned< T >::type >(x)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(BOOST_HAS_INT128)
|
||||||
|
// We need to provide explicit overloads for __int128 because (a) boost/core/bit.hpp currently does not support it and
|
||||||
|
// (b) std::numeric_limits are not specialized for __int128 in some standard libraries.
|
||||||
|
inline int integer_log2_impl(boost::uint128_type x)
|
||||||
|
{
|
||||||
|
const boost::uint64_t x_hi = static_cast< boost::uint64_t >(x >> 64u);
|
||||||
|
if (x_hi != 0u)
|
||||||
|
return 127 - boost::core::countl_zero(x_hi);
|
||||||
|
else
|
||||||
|
return 63 - boost::core::countl_zero(static_cast< boost::uint64_t >(x));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int integer_log2_impl(boost::int128_type x)
|
||||||
|
{
|
||||||
|
return detail::integer_log2_impl(static_cast< boost::uint128_type >(x));
|
||||||
|
}
|
||||||
|
#endif // defined(BOOST_HAS_INT128)
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
|
|
||||||
#endif // include guard
|
// ------------
|
||||||
|
// integer_log2
|
||||||
|
// ------------
|
||||||
|
template< typename T >
|
||||||
|
inline int integer_log2(T x)
|
||||||
|
{
|
||||||
|
BOOST_ASSERT(x > 0);
|
||||||
|
return detail::integer_log2_impl(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // BOOST_INTEGER_INTEGER_LOG2_HPP
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ test-suite integer
|
|||||||
[ run integer_traits_test.cpp ]
|
[ run integer_traits_test.cpp ]
|
||||||
[ run integer_test.cpp : : : <toolset>gcc:<cxxflags>-Wno-long-long <toolset>darwin:<cxxflags>-Wno-long-long <toolset>sun:<cxxflags>"-Qoption ccfe -tmpldepth=128" ]
|
[ run integer_test.cpp : : : <toolset>gcc:<cxxflags>-Wno-long-long <toolset>darwin:<cxxflags>-Wno-long-long <toolset>sun:<cxxflags>"-Qoption ccfe -tmpldepth=128" ]
|
||||||
[ run integer_mask_test.cpp ]
|
[ run integer_mask_test.cpp ]
|
||||||
|
[ run integer_log2_test.cpp ]
|
||||||
[ run static_log2_test.cpp ]
|
[ run static_log2_test.cpp ]
|
||||||
[ run static_min_max_test.cpp ]
|
[ run static_min_max_test.cpp ]
|
||||||
[ run extended_euclidean_test.cpp ]
|
[ run extended_euclidean_test.cpp ]
|
||||||
|
|||||||
187
test/integer_log2_test.cpp
Normal file
187
test/integer_log2_test.cpp
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
// Boost integer_log2.hpp test program --------------------------------------//
|
||||||
|
|
||||||
|
// (C) Copyright Andrey Semashev 2021.
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// https://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See https://www.boost.org for most recent version including documentation.
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <boost/cstdint.hpp>
|
||||||
|
#include <boost/integer/integer_log2.hpp>
|
||||||
|
|
||||||
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "multiprecision_config.hpp"
|
||||||
|
|
||||||
|
#if !defined(DISABLE_MP_TESTS)
|
||||||
|
#include <boost/multiprecision/cpp_int.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macros to compact code
|
||||||
|
#define PRIVATE_LB_TEST( v, e ) BOOST_TEST( ::boost::integer_log2((v)) == e )
|
||||||
|
|
||||||
|
#define PRIVATE_PRINT_LB( v ) ::std::cout << "boost::integer_log2(" << (v) \
|
||||||
|
<< ") = " << ::boost::integer_log2((v)) << '.' << ::std::endl
|
||||||
|
|
||||||
|
// Control to check for a compile-time error
|
||||||
|
#ifndef CONTROL_LB_0_TEST
|
||||||
|
#define PRIVATE_LB_0_TEST
|
||||||
|
#else
|
||||||
|
#define PRIVATE_LB_0_TEST PRIVATE_PRINT_LB( 0 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Main testing function
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::cout << "Doing tests on integer_log2." << std::endl;
|
||||||
|
|
||||||
|
PRIVATE_LB_0_TEST;
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( (unsigned char)1, 0 );
|
||||||
|
PRIVATE_LB_TEST( (unsigned char)2, 1 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 1, 0 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 2, 1 );
|
||||||
|
PRIVATE_LB_TEST( 3, 1 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 4, 2 );
|
||||||
|
PRIVATE_LB_TEST( 5, 2 );
|
||||||
|
PRIVATE_LB_TEST( 6, 2 );
|
||||||
|
PRIVATE_LB_TEST( 7, 2 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 8, 3 );
|
||||||
|
PRIVATE_LB_TEST( 9, 3 );
|
||||||
|
PRIVATE_LB_TEST( 10, 3 );
|
||||||
|
PRIVATE_LB_TEST( 11, 3 );
|
||||||
|
PRIVATE_LB_TEST( 12, 3 );
|
||||||
|
PRIVATE_LB_TEST( 13, 3 );
|
||||||
|
PRIVATE_LB_TEST( 14, 3 );
|
||||||
|
PRIVATE_LB_TEST( 15, 3 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 16, 4 );
|
||||||
|
PRIVATE_LB_TEST( 17, 4 );
|
||||||
|
PRIVATE_LB_TEST( 18, 4 );
|
||||||
|
PRIVATE_LB_TEST( 19, 4 );
|
||||||
|
PRIVATE_LB_TEST( 20, 4 );
|
||||||
|
PRIVATE_LB_TEST( 21, 4 );
|
||||||
|
PRIVATE_LB_TEST( 22, 4 );
|
||||||
|
PRIVATE_LB_TEST( 23, 4 );
|
||||||
|
PRIVATE_LB_TEST( 24, 4 );
|
||||||
|
PRIVATE_LB_TEST( 25, 4 );
|
||||||
|
PRIVATE_LB_TEST( 26, 4 );
|
||||||
|
PRIVATE_LB_TEST( 27, 4 );
|
||||||
|
PRIVATE_LB_TEST( 28, 4 );
|
||||||
|
PRIVATE_LB_TEST( 29, 4 );
|
||||||
|
PRIVATE_LB_TEST( 30, 4 );
|
||||||
|
PRIVATE_LB_TEST( 31, 4 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 32, 5 );
|
||||||
|
PRIVATE_LB_TEST( 33, 5 );
|
||||||
|
PRIVATE_LB_TEST( 34, 5 );
|
||||||
|
PRIVATE_LB_TEST( 35, 5 );
|
||||||
|
PRIVATE_LB_TEST( 36, 5 );
|
||||||
|
PRIVATE_LB_TEST( 37, 5 );
|
||||||
|
PRIVATE_LB_TEST( 38, 5 );
|
||||||
|
PRIVATE_LB_TEST( 39, 5 );
|
||||||
|
PRIVATE_LB_TEST( 40, 5 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 63, 5 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 64, 6 );
|
||||||
|
PRIVATE_LB_TEST( 65, 6 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 127, 6 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 128, 7 );
|
||||||
|
PRIVATE_LB_TEST( 129, 7 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 255, 7 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 256, 8 );
|
||||||
|
PRIVATE_LB_TEST( 257, 8 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 511, 8 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 512, 9 );
|
||||||
|
PRIVATE_LB_TEST( 513, 9 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 1023, 9 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 1024, 10 );
|
||||||
|
PRIVATE_LB_TEST( 1025, 10 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 2047, 10 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 2048, 11 );
|
||||||
|
PRIVATE_LB_TEST( 2049, 11 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 4095, 11 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 4096, 12 );
|
||||||
|
PRIVATE_LB_TEST( 4097, 12 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 8191, 12 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 8192, 13 );
|
||||||
|
PRIVATE_LB_TEST( 8193, 13 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 16383, 13 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 16384, 14 );
|
||||||
|
PRIVATE_LB_TEST( 16385, 14 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 32767, 14 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 32768, 15 );
|
||||||
|
PRIVATE_LB_TEST( 32769, 15 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 65535, 15 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( 65536, 16 );
|
||||||
|
PRIVATE_LB_TEST( 65537, 16 );
|
||||||
|
|
||||||
|
#if defined(UINT32_C)
|
||||||
|
PRIVATE_LB_TEST( UINT32_C(4294967295), 31 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(UINT64_C) && !defined(BOOST_NO_INT64_T)
|
||||||
|
PRIVATE_LB_TEST( UINT64_C(4294967296), 32 );
|
||||||
|
PRIVATE_LB_TEST( UINT64_C(4294967297), 32 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( UINT64_C(18446744073709551615), 63 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_HAS_INT128)
|
||||||
|
PRIVATE_LB_TEST( boost::uint128_type(1u) << 64u, 64 );
|
||||||
|
PRIVATE_LB_TEST( (boost::uint128_type(1u) << 64u) + 1u, 64 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( ~boost::uint128_type(0u), 127 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(DISABLE_MP_TESTS)
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::cpp_int(1), 0 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::cpp_int(2), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::cpp_int(3), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::cpp_int(65535), 15 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::cpp_int(65536), 16 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::int1024_t(1), 0 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::int1024_t(2), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::int1024_t(3), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::int1024_t(65535), 15 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::int1024_t(65536), 16 );
|
||||||
|
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::uint1024_t(1), 0 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::uint1024_t(2), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::uint1024_t(3), 1 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::uint1024_t(65535), 15 );
|
||||||
|
PRIVATE_LB_TEST( boost::multiprecision::uint1024_t(65536), 16 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
// Revision History
|
// Revision History
|
||||||
// 23 Sep 2001 Initial version (Daryle Walker)
|
// 23 Sep 2001 Initial version (Daryle Walker)
|
||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
#include <boost/cstdlib.hpp> // for boost::exit_success
|
#include <boost/cstdlib.hpp> // for boost::exit_success
|
||||||
#include <boost/integer/integer_mask.hpp> // for boost::high_bit_mask_t, etc.
|
#include <boost/integer/integer_mask.hpp> // for boost::high_bit_mask_t, etc.
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
// 10 Mar 01 Boost Test Library now used for tests (Beman Dawes)
|
// 10 Mar 01 Boost Test Library now used for tests (Beman Dawes)
|
||||||
// 31 Aug 99 Initial version
|
// 31 Aug 99 Initial version
|
||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp> // for main, BOOST_TEST
|
#include <boost/core/lightweight_test.hpp> // for main, BOOST_TEST
|
||||||
#include <boost/integer.hpp> // for boost::int_t, boost::uint_t
|
#include <boost/integer.hpp> // for boost::int_t, boost::uint_t
|
||||||
#include <boost/type_traits/is_same.hpp>
|
#include <boost/type_traits/is_same.hpp>
|
||||||
#include <boost/mpl/bool.hpp> // for mpl::true_ and false_
|
#include <boost/mpl/bool.hpp> // for mpl::true_ and false_
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
// use int64_t instead of long long for better portability
|
// use int64_t instead of long long for better portability
|
||||||
#include <boost/cstdint.hpp>
|
#include <boost/cstdint.hpp>
|
||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* General portability note:
|
* General portability note:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
// Revision History
|
// Revision History
|
||||||
// 01 Oct 2001 Initial version (Daryle Walker)
|
// 01 Oct 2001 Initial version (Daryle Walker)
|
||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp> // for main
|
#include <boost/core/lightweight_test.hpp> // for main
|
||||||
|
|
||||||
#include <boost/cstdlib.hpp> // for boost::exit_success
|
#include <boost/cstdlib.hpp> // for boost::exit_success
|
||||||
#include <boost/integer/static_log2.hpp> // for boost::static_log2
|
#include <boost/integer/static_log2.hpp> // for boost::static_log2
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
// Revision History
|
// Revision History
|
||||||
// 23 Sep 2001 Initial version (Daryle Walker)
|
// 23 Sep 2001 Initial version (Daryle Walker)
|
||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp> // for main, BOOST_TEST
|
#include <boost/core/lightweight_test.hpp> // for main, BOOST_TEST
|
||||||
|
|
||||||
#include <boost/cstdlib.hpp> // for boost::exit_success
|
#include <boost/cstdlib.hpp> // for boost::exit_success
|
||||||
#include <boost/integer/static_min_max.hpp> // for boost::static_signed_min, etc.
|
#include <boost/integer/static_min_max.hpp> // for boost::static_signed_min, etc.
|
||||||
|
|||||||
Reference in New Issue
Block a user