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

            Bug ID: 64476
           Summary: std::uninitialized_copy tests assignability the wrong
                    way, resulting in performance pessimization
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc-bugzilla at contacts dot eelis.net

It does:

  typedef typename iterator_traits<_InputIterator>::reference _RefType;
  const bool __assignable = is_assignable<_ValueType1, _RefType>::value;

but should do:

  typedef typename iterator_traits<_ForwardIterator>::reference _RefType;
  const bool __assignable = is_assignable<_RefType, _ValueType1>::value;

Reply via email to