Fail to build autotests of the latest release v0.11.0 with GCC 11.2.0. Could you please take a look? A thousand thanks in advance.
[ 0%] Building CXX object CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o
In file included from /build/range-v3/include/range/v3/utility/any.hpp:23,
from /build/range-v3/include/range/v3/utility.hpp:17,
from /build/range-v3/obj-x86_64-linux-gnu/headers/range/v3/utility.cpp:1:
/build/range-v3/include/concepts/swap.hpp: In substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_delete<ranges::any::interface>&; T = std::default_delete<ranges::any::interface>]’:
/build/range-v3/include/concepts/swap.hpp:179:22: required by substitution of ‘template<class T, class U> decltype (concepts::adl_swap_detail::swap(declval<T>(), declval<U>())) concepts::adl_swap_detail::try_adl_swap_(int) [with T = std::default_delete<ranges::any::interface>&; U = std::default_delete<ranges::any::interface>&]’
/build/range-v3/include/concepts/swap.hpp:186:14: required from ‘constexpr const bool concepts::adl_swap_detail::is_adl_swappable_v<std::default_delete<ranges::any::interface>&>’
/build/range-v3/include/concepts/swap.hpp:205:18: required by substitution of ‘template<class T> constexpr meta::if_c<((! is_adl_swappable_v<T&>) && is_movable_v<T>)> concepts::adl_swap_detail::swap_fn::operator()(T&, T&) const [with T = std::default_delete<ranges::any::interface>]’
/build/range-v3/include/concepts/concepts.hpp:937:9: required by substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_delete<ranges::any::interface>&; T = std::default_delete<ranges::any::interface>]’
/usr/include/c++/11/type_traits:2700:31: required by substitution of ‘template<class _Tp, class> static std::true_type std::__swappable_details::__do_is_swappable_impl::__test(int) [with _Tp = std::default_delete<ranges::any::interface>; <template-parameter-1-2> = <missing>]’
/usr/include/c++/11/type_traits:2724:35: required from ‘struct std::__is_swappable_impl<std::default_delete<ranges::any::interface> >’
/usr/include/c++/11/type_traits:2735:12: required from ‘struct std::__is_swappable<std::default_delete<ranges::any::interface> >’
/usr/include/c++/11/bits/unique_ptr.h:463:37: required from ‘void std::unique_ptr<_Tp, _Dp>::swap(std::unique_ptr<_Tp, _Dp>&) [with _Tp = ranges::any::interface; _Dp = std::default_delete<ranges::any::interface>]’
/build/range-v3/include/range/v3/utility/any.hpp:163:22: required from here
/build/range-v3/include/concepts/concepts.hpp:937:9: required for the satisfaction of ‘swappable__requires_<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:943:21: required for the satisfaction of ‘swappable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:1099:21: required for the satisfaction of ‘movable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:1110:21: required for the satisfaction of ‘copyable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:937:9: in requirements with ‘T& t’, ‘T& u’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:455:5: error: satisfaction of atomic constraint ‘requires(T& t, T& u) {(concepts::<unnamed>::swap)(t, u);} [with T = S]’ depends on itself
455 | requires(__VA_ARGS__) CPP_REQUIRES_AUX_
| ^
/build/range-v3/include/concepts/concepts.hpp:66:30: note: in expansion of macro ‘CPP_REQUIRES_requires’
66 | #define CPP_PP_CAT_(X, ...) X ## __VA_ARGS__
| ^
/build/range-v3/include/concepts/concepts.hpp:67:30: note: in expansion of macro ‘CPP_PP_CAT_’
67 | #define CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__)
| ^~~~~~~~~~~
/build/range-v3/include/concepts/concepts.hpp:448:5: note: in expansion of macro ‘CPP_PP_CAT’
448 | CPP_PP_CAT(CPP_REQUIRES_, REQS)
| ^~~~~~~~~~
/build/range-v3/include/concepts/concepts.hpp:937:9: note: in expansion of macro ‘CPP_requires’
937 | CPP_requires(swappable_,
| ^~~~~~~~~~~~
make[2]: *** [CMakeFiles/test.range.v3.headers.dir/build.make:2543: CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o] Ошибка 1
[ 0%] Building CXX object CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility/any.cpp.o
In file included from /build/range-v3/include/range/v3/utility/any.hpp:23,
from /build/range-v3/obj-x86_64-linux-gnu/headers/range/v3/utility/any.cpp:1:
/build/range-v3/include/concepts/swap.hpp: In substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_delete<ranges::any::interface>&; T = std::default_delete<ranges::any::interface>]’:
/build/range-v3/include/concepts/swap.hpp:179:22: required by substitution of ‘template<class T, class U> decltype (concepts::adl_swap_detail::swap(declval<T>(), declval<U>())) concepts::adl_swap_detail::try_adl_swap_(int) [with T = std::default_delete<ranges::any::interface>&; U = std::default_delete<ranges::any::interface>&]’
/build/range-v3/include/concepts/swap.hpp:186:14: required from ‘constexpr const bool concepts::adl_swap_detail::is_adl_swappable_v<std::default_delete<ranges::any::interface>&>’
/build/range-v3/include/concepts/swap.hpp:205:18: required by substitution of ‘template<class T> constexpr meta::if_c<((! is_adl_swappable_v<T&>) && is_movable_v<T>)> concepts::adl_swap_detail::swap_fn::operator()(T&, T&) const [with T = std::default_delete<ranges::any::interface>]’
/build/range-v3/include/concepts/concepts.hpp:937:9: required by substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_delete<ranges::any::interface>&; T = std::default_delete<ranges::any::interface>]’
/usr/include/c++/11/type_traits:2700:31: required by substitution of ‘template<class _Tp, class> static std::true_type std::__swappable_details::__do_is_swappable_impl::__test(int) [with _Tp = std::default_delete<ranges::any::interface>; <template-parameter-1-2> = <missing>]’
/usr/include/c++/11/type_traits:2724:35: required from ‘struct std::__is_swappable_impl<std::default_delete<ranges::any::interface> >’
/usr/include/c++/11/type_traits:2735:12: required from ‘struct std::__is_swappable<std::default_delete<ranges::any::interface> >’
/usr/include/c++/11/bits/unique_ptr.h:463:37: required from ‘void std::unique_ptr<_Tp, _Dp>::swap(std::unique_ptr<_Tp, _Dp>&) [with _Tp = ranges::any::interface; _Dp = std::default_delete<ranges::any::interface>]’
/build/range-v3/include/range/v3/utility/any.hpp:163:22: required from here
/build/range-v3/include/concepts/concepts.hpp:937:9: required for the satisfaction of ‘swappable__requires_<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:943:21: required for the satisfaction of ‘swappable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:1099:21: required for the satisfaction of ‘movable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:1110:21: required for the satisfaction of ‘copyable<T>’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:937:9: in requirements with ‘T& t’, ‘T& u’ [with T = std::default_delete<ranges::any::interface>]
/build/range-v3/include/concepts/concepts.hpp:455:5: error: satisfaction of atomic constraint ‘requires(T& t, T& u) {(concepts::<unnamed>::swap)(t, u);} [with T = T]’ depends on itself
455 | requires(__VA_ARGS__) CPP_REQUIRES_AUX_
| ^
/build/range-v3/include/concepts/concepts.hpp:66:30: note: in expansion of macro ‘CPP_REQUIRES_requires’
66 | #define CPP_PP_CAT_(X, ...) X ## __VA_ARGS__
| ^
/build/range-v3/include/concepts/concepts.hpp:67:30: note: in expansion of macro ‘CPP_PP_CAT_’
67 | #define CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__)
| ^~~~~~~~~~~
/build/range-v3/include/concepts/concepts.hpp:448:5: note: in expansion of macro ‘CPP_PP_CAT’
448 | CPP_PP_CAT(CPP_REQUIRES_, REQS)
| ^~~~~~~~~~
/build/range-v3/include/concepts/concepts.hpp:937:9: note: in expansion of macro ‘CPP_requires’
937 | CPP_requires(swappable_,
| ^~~~~~~~~~~~
make[2]: *** [CMakeFiles/test.range.v3.headers.dir/build.make:2571: CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility/any.cpp.o] Ошибка 1
My testing on GCC 11 and 12 shows that current master doesn't have this problem any more. I think this issue can be closed.
(Version 0.12 still has this problem.)
Fail to build autotests of the latest release v0.11.0 with GCC 11.2.0. Could you please take a look? A thousand thanks in advance.
You will find full build log at https://salsa.debian.org/debian/range-v3/-/jobs/2065679