From d08efaae445427e19e55262a30942cd3afb11cda Mon Sep 17 00:00:00 2001 From: Julian Brost Date: Fri, 28 Nov 2025 12:13:29 +0100 Subject: [PATCH] Switch to C++20 --- .github/workflows/linux.bash | 4 +--- CMakeLists.txt | 2 +- tools/mkclass/classcompiler.cpp | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/linux.bash b/.github/workflows/linux.bash index dffe4c4566..985e701437 100755 --- a/.github/workflows/linux.bash +++ b/.github/workflows/linux.bash @@ -7,9 +7,7 @@ export CTEST_OUTPUT_ON_FAILURE=1 CMAKE_OPTS=() # -Wstringop-overflow is notorious for false positives and has been a problem for years. # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443 -# -Wtemplate-id-cdtor leaks from using the generated headers. We should reenable this once -# we're considering moving to C++20 and/or the -ti.hpp files are generated differently. -WARN_FLAGS="-Wall -Wextra -Wno-template-id-cdtor -Wno-stringop-overflow" +WARN_FLAGS="-Wall -Wextra -Wno-stringop-overflow" case "$DISTRO" in alpine:*) diff --git a/CMakeLists.txt b/CMakeLists.txt index e4386cedf6..27a00a6310 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.17...3.17) set(BOOST_MIN_VERSION "1.66.0") -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/tools/mkclass/classcompiler.cpp b/tools/mkclass/classcompiler.cpp index e264e6b334..59c7cd6f65 100644 --- a/tools/mkclass/classcompiler.cpp +++ b/tools/mkclass/classcompiler.cpp @@ -577,7 +577,7 @@ void ClassCompiler::HandleClass(const Klass& klass, const ClassDebugInfo&) /* destructor */ m_Header << "public:" << std::endl - << "\t" << "~ObjectImpl<" << klass.Name << ">() override;" << std::endl; + << "\t" << "~ObjectImpl() override;" << std::endl; m_Impl << "ObjectImpl<" << klass.Name << ">::~ObjectImpl()" << std::endl << "{ }" << std::endl << std::endl;