[libcxx-commits] [PATCH] D85420: [libcxx/variant] Introduce `switch`-based mechanism for `std::visit`.

Mehdi AMINI via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat Aug 15 15:29:17 PDT 2020


mehdi_amini added a comment.

I think this change is breaking one of our uses right now:

  include/c++/v1/variant:599:16: error: call to deleted constructor of 'std::__u::basic_ostream<char>'
          return __invoke_constexpr(
                 ^~~~~~~~~~~~~~~~~~~
  include/c++/v1/variant:618:59: note: in instantiation of function template specialization 'std::__u::__variant_detail::__visitation::__base::__visit_alt_impl(index_sequence<0UL>, std::__u::__variant_detail::__visitation::__variant::__value_visitor<YYY &> &&, const std::__u::__variant_detail::__impl<XXX, ZZZ> &)::(anonymous class)::operator()<std::__u::integral_constant<unsigned long, 1>>' requested here
          _LIBCPP_VARIANT_CASES(_LIBCPP_VARIANT_SWITCH_MAX, _LIBCPP_VARIANT_CASE)
                                                            ^
  include/c++/v1/variant:586:14: note: in instantiation of function template specialization 'std::__u::__variant_detail::__visitation::__base::__visit_alt_impl<0, std::__u::__variant_detail::__visitation::__variant::__value_visitor<YYY &>, const std::__u::__variant_detail::__impl<XXX, ZZZ> &>' requested here
        return __visit_alt_impl(index_sequence_for<_Vs...>{},
               ^
  include/c++/v1/variant:645:20: note: in instantiation of function template specialization 'std::__u::__variant_detail::__visitation::__base::__visit_alt<, std::__u::__variant_detail::__visitation::__variant::__value_visitor<YYY &>, const std::__u::__variant_detail::__impl<XXX, ZZZ> &>' requested here
      return __base::__visit_alt(_VSTD::forward<_Vis>(__vis),
                     ^
  include/c++/v1/variant:662:12: note: in instantiation of function template specialization 'std::__u::__variant_detail::__visitation::__variant::__visit_alt<std::__u::__variant_detail::__visitation::__variant::__value_visitor<YYY &>, const std::__u::variant<XXX, ZZZ> &>' requested here
      return __visit_alt(__make_value_visitor(_VSTD::forward<_Vis>(__vis)),
             ^
  include/c++/v1/variant:1685:21: note: in instantiation of function template specialization 'std::__u::__variant_detail::__visitation::__variant::__visit_value<YYY &, const std::__u::variant<XXX, ZZZ> &>' requested here
    return __variant::__visit_value(_VSTD::forward<_Vis>(__vis),
                      ^

I don't know if this trace is enough to figure is there is an issue upstream?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D85420/new/

https://reviews.llvm.org/D85420



More information about the libcxx-commits mailing list