span-lite: backport fix to avoid -Wundef error in C++20
authorSimon Marchi <simon.marchi@efficios.com>
Mon, 6 May 2024 19:58:14 +0000 (15:58 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 7 May 2024 15:03:39 +0000 (11:03 -0400)
When building babeltrace as C++20, I get:

      CXX      clock-correlation-validator/clock-correlation-validator.lo
    In file included from /home/smarchi/src/babeltrace/src/cpp-common/bt2s/span.hpp:18,
                     from /home/smarchi/src/babeltrace/src/cpp-common/bt2c/logging.hpp:25,
                     from /home/smarchi/src/babeltrace/src/cpp-common/bt2/component-class-dev.hpp:15,
                     from /home/smarchi/src/babeltrace/src/cpp-common/bt2/component-class.hpp:15,
                     from /home/smarchi/src/babeltrace/src/cpp-common/bt2/error.hpp:20,
                     from /home/smarchi/src/babeltrace/src/cpp-common/bt2/wrap.hpp:15,
                     from /home/smarchi/src/babeltrace/src/clock-correlation-validator/clock-correlation-validator.cpp:9:
    /home/smarchi/src/babeltrace/src/cpp-common/vendor/span-lite/span.hpp:43:33: error: "span_HAVE_STRUCT_BINDING" is not defined, evaluates to 0 [-Werror=undef]
       43 | #define span_HAVE( feature )  ( span_HAVE_##feature )
          |                                 ^~~~~~~~~~
    /home/smarchi/src/babeltrace/src/cpp-common/vendor/span-lite/span.hpp:1873:5: note: in expansion of macro 'span_HAVE'
     1873 | #if span_HAVE( STRUCT_BINDING )
          |     ^~~~~~~~~

Backport commit b8921715cd71 ("Guard section for tuple interface to only
use with nonstd::span; fixes #84 (thanks @simark)") from the upstream
repo [1]

[1] https://github.com/martinmoene/span-lite/commit/b8921715cd71997bdab120a8ced526b78d300196

Change-Id: I84b21f8157f7bf44e02e67789cfa1fee2a38da05
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/12525

src/cpp-common/vendor/span-lite/span.hpp

index 3d2d86a427f48c55d108b45302ac45789fe9bc15..9a7182f5b0b2c4e93b5307c2f2d667eb6ea51bc7 100644 (file)
@@ -1870,7 +1870,7 @@ using span_lite::byte_span;
 
 #endif // span_FEATURE( BYTE_SPAN )
 
-#if span_HAVE( STRUCT_BINDING )
+#if !span_USES_STD_SPAN && span_HAVE( STRUCT_BINDING )
 
 #if   span_CPP14_OR_GREATER
 # include <tuple>
@@ -1938,7 +1938,7 @@ span_constexpr ElementType const & get( nonstd::span<ElementType, Extent> const
 
 } // end namespace std
 
-#endif // span_HAVE( STRUCT_BINDING )
+#endif // !span_USES_STD_SPAN && span_HAVE( STRUCT_BINDING )
 
 #if ! span_USES_STD_SPAN
 span_RESTORE_WARNINGS()
This page took 0.027958 seconds and 4 git commands to generate.