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

            Bug ID: 63500
           Summary: bug in debug version of std::make_move_iterator?
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vermaelen.wouter at gmail dot com

Is the following a bug in the debug version of std::make_move_iterator or is it
a bug in my code? It compiles fine with older gcc versions (both debug and
non-debug). But when using a fairly recent gcc-5.0 snapshot it fails to compile
when using -D_GLIBCXX_DEBUG, non-debug mode works fine.

---- 8< -------- 8< -------- 8< -------- 8< -------- 8< ----

// Compiles fine with:
//   g++-4.8      -std=c++11 -c -D_GLIBCXX_DEBUG bug.cc
//   g++-snapshot -std=c++11 -c                  bug.cc
// But this fails:
//   g++-snapshot -std=c++11 -c -D_GLIBCXX_DEBUG bug.cc

#include <iterator>
#include <memory>
#include <vector>

class Foo {};

std::vector<std::unique_ptr<Foo>> v;
std::vector<std::unique_ptr<Foo>> w;

void test() {
    v.insert(end(v),
             make_move_iterator(begin(w)),
             make_move_iterator(end  (w)));
}

Reply via email to