diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index 24c912c1..e391a5e5 100644 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -23,7 +23,7 @@ endif() add_executable(traintastic-server src/main.cpp src/options.hpp) add_dependencies(traintastic-server traintastic-lang) -set_target_properties(traintastic-server PROPERTIES CXX_STANDARD 17) +set_target_properties(traintastic-server PROPERTIES CXX_STANDARD 20) target_include_directories(traintastic-server PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ../shared/src) @@ -34,14 +34,17 @@ target_include_directories(traintastic-server SYSTEM PRIVATE if(BUILD_TESTING) add_subdirectory(thirdparty/catch2) set_target_properties(Catch2 PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_CLANG_TIDY "" ) + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + target_compile_options(Catch2 PRIVATE -Wno-restrict) # workaround GCC bug + endif() add_executable(traintastic-server-test test/main.cpp) add_dependencies(traintastic-server-test traintastic-lang) target_compile_definitions(traintastic-server-test PRIVATE -DTRAINTASTIC_TEST) set_target_properties(traintastic-server-test PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_CLANG_TIDY "" ) target_include_directories(traintastic-server-test PRIVATE diff --git a/server/src/hardware/decoder/decoderfunctions.cpp b/server/src/hardware/decoder/decoderfunctions.cpp index 3e790c07..2bde88b4 100644 --- a/server/src/hardware/decoder/decoderfunctions.cpp +++ b/server/src/hardware/decoder/decoderfunctions.cpp @@ -44,7 +44,7 @@ DecoderFunctions::DecoderFunctions(Object& _parent, std::string_view parentPrope } auto function = std::make_shared(decoder, number); - function->name = "F" + std::to_string(number); + function->name = std::to_string(number).insert(0, 1, 'F'); function->number = number; if(number == 0) // F0 is (almost) always the light function function->function = DecoderFunctionFunction::Light;