f.zz.de
posts /

std::unique_ptr fallen

Posted Tue 19 Jan 2016 09:56:10 PM CET Florian Lohoff
in

Finde den Fehler:

void way(std::unique_ptr<CompressedWay> cw) {
  double  distance=origin->distance(*cw);
  ways.push_back(std::make_pair(distance,std::move(cw)));
  std::cout << "cwid " << cw->id() << " distance " << distance << std::endl;
}

Das Nutzen von cw->id() im std::cout wirft einen Segfault. Am Ende ist das wie ein "use after free" dadurch das ich den Pointer mit std::move in meinen ways vector move.

Auf sowas muss man erstmal kommen.