Actions
Bug #54265
closeds3select: c++20 compilation error in boost/msm/back/state_machine.hpp
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
set CMAKE_CXX_STANDARD=20:
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1157df00a19..b20e43b6bbb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -211,8 +211,8 @@ if(HAVE_INTEL)
endif()
endif()
-# require c++17
-set(CMAKE_CXX_STANDARD 17)
+# require c++20
+set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD 99)
fails with gcc 11.2.1 and boost 1.76:
In file included from /home/cbodley/ceph/src/s3select/include/s3select_csv_parser.h:5, from /home/cbodley/ceph/src/s3select/include/s3select.h:14, from /home/cbodley/ceph/src/rgw/rgw_s3select_private.h:35, from /home/cbodley/ceph/src/rgw/rgw_s3select.cc:4: /usr/include/boost/msm/back/state_machine.hpp: At global scope: /usr/include/boost/msm/back/state_machine.hpp:1593:37: error: expected unqualified-id before ‘)’ token 1593 | state_machine<A0,A1,A2,A3,A4 >() | ^ /usr/include/boost/msm/back/state_machine.hpp:1612:15: error: expected ‘)’ before ‘const’ 1612 | (Expr const& expr,typename ::boost::enable_if<typename ::boost::proto::is_expr<Expr>::type >::type* =0) | ~ ^~~~~~ | ) /usr/include/boost/msm/back/state_machine.hpp:1690:11: error: expected ‘)’ before ‘&&’ token 1690 | >(ARG0&& t0,ARG&&... t) | ~ ^~ | ) /usr/include/boost/msm/back/state_machine.hpp:1707:11: error: expected ‘)’ before ‘const’ 1707 | >(Expr const& expr,ARG&&... t) | ~ ^~~~~~ | ) /usr/include/boost/msm/back/state_machine.hpp:1741:21: error: expected ‘)’ before ‘const’ 1741 | (library_sm const& rhs) | ~ ^~~~~~ | )
i guess it's complaining that the constructor should just be state_machine() without the extra template syntax <A0,A1,A2,A3,A4 >
clang 13 compiles this without error
Actions