c ++ 11: Löschen mit einem const_iterator

8

Ich glaube, dass seit C ++ 11 die Funktion erase der meisten Container (z. B. std::vector ) eine const_iterator als Parameter akzeptiert:

%Vor%

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%     
peoro 13.04.2013, 12:40
quelle

1 Antwort

7

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.

    
user2244984 13.04.2013, 12:49
quelle