From d42564c37352d2e5c1e5d15cec842edcb5533375 Mon Sep 17 00:00:00 2001 From: HedgehogInTheCPP Date: Fri, 21 Aug 2026 20:47:33 +0300 Subject: [PATCH] Improvements detection of features, part 6. Visual Studio 17 and 18 officially support C++14 as a baseline standard, not try to use C++11 on them. --- .github/workflows/vs17-arm-ci.yml | 6 +++--- .github/workflows/vs17-ci.yml | 10 +++++----- .github/workflows/vs17-clang-ci.yml | 2 +- .github/workflows/vs17-cxx20.yml | 8 ++++---- .github/workflows/vs18-arm-ci.yml | 2 +- .github/workflows/vs18-ci.yml | 2 +- .github/workflows/vs18-clang-ci.yml | 2 +- include/fast_float/constexpr_feature_detect.h | 5 ++--- 8 files changed, 18 insertions(+), 19 deletions(-) diff --git a/.github/workflows/vs17-arm-ci.yml b/.github/workflows/vs17-arm-ci.yml index 0a483a9..32a4f63 100644 --- a/.github/workflows/vs17-arm-ci.yml +++ b/.github/workflows/vs17-arm-ci.yml @@ -10,14 +10,14 @@ jobs: fail-fast: false matrix: include: - - {gen: Visual Studio 18 2026, arch: ARM64, cfg: Release} - - {gen: Visual Studio 18 2026, arch: ARM64, cfg: Debug} + - {gen: Visual Studio 17 2026, arch: ARM64, cfg: Release} + - {gen: Visual Studio 17 2026, arch: ARM64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v7 - name: configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_CXX_STANDARD=14 -DFASTFLOAT_TEST=ON - name: build run: | cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs17-ci.yml b/.github/workflows/vs17-ci.yml index 948bab7..6c1ec6b 100644 --- a/.github/workflows/vs17-ci.yml +++ b/.github/workflows/vs17-ci.yml @@ -10,16 +10,16 @@ jobs: fail-fast: false matrix: include: - - {gen: Visual Studio 18 2026, arch: Win32, cfg: Release} - #- {gen: Visual Studio 18 2026, arch: Win32, cfg: Debug} - - {gen: Visual Studio 18 2026, arch: x64, cfg: Release} - - {gen: Visual Studio 18 2026, arch: x64, cfg: Debug} + - {gen: Visual Studio 17 2026, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2026, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2026, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2026, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v7 - name: configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_CXX_STANDARD=14 -DFASTFLOAT_BENCHMARKS=OFF -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination - name: build run: | cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs17-clang-ci.yml b/.github/workflows/vs17-clang-ci.yml index f462d7b..4cec9df 100644 --- a/.github/workflows/vs17-clang-ci.yml +++ b/.github/workflows/vs17-clang-ci.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v7 - name: Configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -T ClangCL -DFASTFLOAT_TEST=ON + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=OFF -T ClangCL -DFASTFLOAT_TEST=ON - name: Build run: cmake --build build --config ${{matrix.cfg}} --parallel --verbose - name: Run basic tests diff --git a/.github/workflows/vs17-cxx20.yml b/.github/workflows/vs17-cxx20.yml index 6139a5e..f6565a4 100644 --- a/.github/workflows/vs17-cxx20.yml +++ b/.github/workflows/vs17-cxx20.yml @@ -10,10 +10,10 @@ jobs: fail-fast: false matrix: include: - - {gen: Visual Studio 18 2026, arch: Win32, cfg: Release} - - {gen: Visual Studio 18 2026, arch: Win32, cfg: Debug} - - {gen: Visual Studio 18 2026, arch: x64, cfg: Release} - - {gen: Visual Studio 18 2026, arch: x64, cfg: Debug} + - {gen: Visual Studio 17 2026, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2026, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2026, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2026, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v7 diff --git a/.github/workflows/vs18-arm-ci.yml b/.github/workflows/vs18-arm-ci.yml index 31dec40..43168ca 100644 --- a/.github/workflows/vs18-arm-ci.yml +++ b/.github/workflows/vs18-arm-ci.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v7 - name: configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_CXX_STANDARD=14 -DFASTFLOAT_TEST=ON - name: build run: | cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs18-ci.yml b/.github/workflows/vs18-ci.yml index 895ec17..0b7603a 100644 --- a/.github/workflows/vs18-ci.yml +++ b/.github/workflows/vs18-ci.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v7 - name: configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_CXX_STANDARD=14 -DFASTFLOAT_BENCHMARKS=OFF -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination - name: build run: | cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs18-clang-ci.yml b/.github/workflows/vs18-clang-ci.yml index f89fa62..b5c104b 100644 --- a/.github/workflows/vs18-clang-ci.yml +++ b/.github/workflows/vs18-clang-ci.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v7 - name: Configure run: | - cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -T ClangCL -DFASTFLOAT_TEST=ON + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=OFF -T ClangCL -DFASTFLOAT_TEST=ON - name: Build run: cmake --build build --config ${{matrix.cfg}} --parallel --verbose - name: Run basic tests diff --git a/include/fast_float/constexpr_feature_detect.h b/include/fast_float/constexpr_feature_detect.h index e4ce70d..0017ce1 100644 --- a/include/fast_float/constexpr_feature_detect.h +++ b/include/fast_float/constexpr_feature_detect.h @@ -70,13 +70,12 @@ #endif // C++20 std::is_constant_evaluated -#if defined(__cpp_lib_is_constant_evaluated) && \ - __cpp_lib_is_constant_evaluated >= 201811L +#if defined(__cpp_lib_is_constant_evaluated) && __cpp_lib_is_constant_evaluated >= 201811L && defined(__cpp_consteval) && __cpp_consteval >= 201811L #define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 1 #define FASTFLOAT_CONSTEVAL consteval #else #define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 0 -#define FASTFLOAT_CONSTEVAL FASTFLOAT_CONSTEXPR14 +#define FASTFLOAT_CONSTEVAL #endif // C++20 constexpr library support, including std::is_constant_evaluated(),