Create separate macro guards for the use of GCC's _RangeAdaptorClosure, since

they keep messing with it.
This commit is contained in:
Zach Laine
2025-10-31 17:15:34 -05:00
parent 0cfbf994a7
commit 48375e9564

View File

@@ -24,10 +24,14 @@
#endif
#if !BOOST_STL_INTERFACES_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
BOOST_STL_INTERFACES_USE_CONCEPTS && defined(BOOST_GCC) && 14 <= __GNUC__
#define BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE 1
#elif !BOOST_STL_INTERFACES_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
BOOST_STL_INTERFACES_USE_CONCEPTS && defined(BOOST_GCC) && 12 <= __GNUC__
#define BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE 1
#else
#define BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE 0
#define BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE 0
#endif
#if !BOOST_STL_INTERFACES_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
@@ -38,6 +42,7 @@
#endif
#if !BOOST_STL_INTERFACES_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
!BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE && \
!BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE && \
!BOOST_STL_INTERFACES_NEED_VS_COMPATIBLE_RANGE_ADAPTOR_CLOSURE
#define BOOST_STL_INTERFACES_DEFINE_CUSTOM_RANGE_ADAPTOR_CLOSURE 1
@@ -170,11 +175,16 @@ namespace boost { namespace stl_interfaces {
template<typename D>
using range_adaptor_closure = std::ranges::range_adaptor_closure<D>;
#elif BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE
#elif BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE
template<typename D>
using range_adaptor_closure = std::views::__adaptor::_RangeAdaptorClosure<D>;
#elif BOOST_STL_INTERFACES_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE
template<typename D>
using range_adaptor_closure = std::views::__adaptor::_RangeAdaptorClosure;
#elif BOOST_STL_INTERFACES_NEED_VS_COMPATIBLE_RANGE_ADAPTOR_CLOSURE
template<typename D>