Ich glaube, dass seit C ++ 11 die Funktion erase
der meisten Container (z. B. std::vector
) eine const_iterator
als Parameter akzeptiert:
Auch meine Compiler (GCC 4.8 und Clang 3.2, die beide GCC libstdc ++ verwenden) erlauben mir nicht, solche Funktionen zu verwenden, selbst wenn ich mit --std=c++11
kompiliere.
Ist es ein Compiler / libstdc ++ Bug, oder habe ich etwas Schlimmes gemacht? Dies ist ein Beispielcode:
%Vor%Dieses Problem ist hier dokumentiert und wird als Teilimplementierung gemeldet.
STRG + F mit Ihrem Browser und suchen Sie nach N2350
.
Wenn Sie mit Linux arbeiten, können Sie eine Entwicklungsversion der libcxx
Bibliothek aus dem LLVM-Projekt erstellen, die Sie von hier herunterladen können ; Ich weiß nicht, ob das irgendwelche der Probleme löst, die Sie erfahren, aber ich schlage es als eine Alternative zu libstdc++
vor.
Tags und Links c++ c++11 stdvector erase const-iterator