Project

General

Profile

Actions

Bug #54265

closed

s3select: c++20 compilation error in boost/msm/back/state_machine.hpp

Added by Casey Bodley about 2 years ago. Updated almost 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% 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

Also available in: Atom PDF