When including span.hpp in a source file compiled as C++20, I get an error similar to this:
$ g++ -x c++-header span.hpp -Wundef -Werror -std=c++20
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 )
| ^~~~~~~~~~
span.hpp:1873:5: note: in expansion of macro ‘span_HAVE’
1873 | #if span_HAVE( STRUCT_BINDING )
| ^~~~~~~~~
Fix it by checking if span_HAVE_STRUCT_BINDING is defined. Unfortunately, I couldn't find a way to make defined() work with span_HAVE( STRUCT_BINDING ).
An alternative would be to move the definition of
span_HAVE_STRUCT_BINDING outside of the span_USES_STD_SPAN ifdef.
When including
span.hpp
in a source file compiled as C++20, I get an error similar to this:Fix it by checking if
span_HAVE_STRUCT_BINDING
is defined. Unfortunately, I couldn't find a way to makedefined()
work withspan_HAVE( STRUCT_BINDING )
.An alternative would be to move the definition of
span_HAVE_STRUCT_BINDING
outside of thespan_USES_STD_SPAN
ifdef.Fixes #84.