On Wed, 17 Apr 2019 at 19:12, Jonathan Wakely <jwak...@redhat.com> wrote: > > The standard says the std::variant copy constructor is defined as > deleted unless all alternative types are copy constructible, but we were > making it also depend on move constructible. Fix the condition and > enhance the tests to check the semantics with pathological copy-only > types (i.e. supporting copying but having deleted moves). > > The enhanced tests revealed a regression in copy assignment for > non-trivial alternative types, where the assignment would not be > performed because the condition in the _Copy_assign_base visitor is > false: is_same_v<remove_reference_t<T&>, remove_reference_t<const T&>>. > > > Tested powerpc64le-linux. > > I plan to commit all three of these patches later today, unless > somebody sees a problem with them.
Looks good to me.