https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92650

--- Comment #1 from Luke Dalessandro <ldalessandro at gmail dot com> ---
<Compilation failed>
x86-64 gcc (trunk) - cached
#1 with x86-64 gcc (trunk)
In file included from
/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/action/action.hpp:19,

                 from
/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/action.hpp:17,

                 from
/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/all.hpp:17,

                 from <source>:1:

/opt/compiler-explorer/libs/rangesv3/trunk/include/meta/meta.hpp: In
substitution of 'template<bool If, class ... Args> using if_c =
meta::_t<meta::detail::_if_<meta::list<std::integral_constant<bool, __v>, Args
...> > > [with bool If = std::integral_constant<bool,
and_v<__is_constructible(Ts)...> >::value; Args = {}]':

/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/utility/common_tuple.hpp:65:13:
  required from 'struct ranges::detail::args_<1, const int&>'

/opt/compiler-explorer/libs/rangesv3/trunk/include/concepts/concepts.hpp:1107:13:
  required from 'constexpr const bool
concepts::defs::constructible_from<ranges::detail::args_<1, int&>,
ranges::detail::args_<1, const int&> >'

/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/utility/common_tuple.hpp:136:9:
  required by substitution of 'template<class ... Us>
ranges::common_tuple<int&>::common_tuple(const std::tuple<_Tps ...>&,
std::enable_if_t<(constructible_from<ranges::detail::args_<1, int&>,
ranges::detail::args_<sizeof... (const Ts), const Ts& ...> > &&
concepts::detail::CPP_true(concepts::detail::Nil{})), concepts::detail::Nil>)
[with Us = {int}]'

/opt/compiler-explorer/libs/rangesv3/trunk/include/concepts/type_traits.hpp:92:41:
  required by substitution of 'template<class T, class U> struct
concepts::detail::_builtin_common_2<T, U, meta::void_<decltype ((true ? 
declval<T>() : declval<U>()))> > [with T = ranges::common_tuple<int&>; U =
std::tuple<int>&]'

/opt/compiler-explorer/libs/rangesv3/trunk/include/concepts/type_traits.hpp:365:12:
  recursively required by substitution of 'template<class T, class U> struct
concepts::detail::_common_reference2<T, U, typename
concepts::detail::if_<std::is_reference<typename
concepts::detail::_builtin_common<T, U>::type>::value>::invoke<void> > [with T
= ranges::common_tuple<int&>; U = std::tuple<int>&]'

/opt/compiler-explorer/libs/rangesv3/trunk/include/concepts/type_traits.hpp:365:12:
  required from 'struct concepts::common_reference<ranges::common_tuple<int&>,
std::tuple<int>&>'

/opt/compiler-explorer/libs/rangesv3/trunk/include/concepts/type_traits.hpp:370:11:
  required by substitution of 'template<class ... Ts> using common_reference_t
= typename concepts::common_reference::type [with Ts =
{ranges::common_tuple<int&>, std::tuple<int>&}]'

/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/utility/common_type.hpp:58:11:
  required by substitution of 'template<class ... Ts> using common_reference_t
= concepts::common_reference_t<Ts ...> [with Ts =
{ranges::detail::if_then<false>::apply<ranges::detail::basic_proxy_reference_<const
ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_,
ranges::ref_view<std::vector<int, std::allocator<int> > > >::cursor<false>,
true>, ranges::common_tuple<int&> >, meta::id<std::tuple<int> >::type&}]'

/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/iterator/basic_iterator.hpp:453:19:
  required from 'struct
ranges::detail::iterator_associated_types_base_<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_,
ranges::ref_view<std::vector<int, std::allocator<int> > > >::cursor<false>,
true>'

/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/iterator/basic_iterator.hpp:492:31:
  required from 'struct
ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_,
ranges::ref_view<std::vector<int, std::allocator<int> > > >::cursor<false> >'

<source>:17:16:   required from here

/opt/compiler-explorer/libs/rangesv3/trunk/include/meta/meta.hpp:1222:11:
internal compiler error: canonical types differ for identical types
'std::integral_constant<bool, and_v<__is_constructible(Ts)...> >' and
'std::integral_constant<bool, and_v<__is_constructible(Ts)...> >'

 1222 |     using if_c = _t<detail::_if_<list<bool_<If>, Args...>>>;

      |           ^~~~

Please submit a full bug report,

with preprocessed source if appropriate.

See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to