Reguläre Ausdrücke in c++ STL
Gibt es jede native Bibliothek in AWL ist getestet und funktioniert ohne zusätzliche compiler-Optionen?
Ich habe versucht, zu verwenden <regex>
, aber der compiler gibt diese:
In der Datei enthalten, aus der /usr/include/c++/4.3/regex:40, von main.cpp:5:
/usr/include/c++/4.3/c++0x_warning.h:36:2: Fehler: #error Diese Datei erfordert compiler and library support for the upcoming ISO C++ standard C++0x. Diese Unterstützung derzeit noch experimentell, und muss aktiviert werden, mit -std=c++0x oder -std=gnu++0x compiler-Optionen.
Warum wollen Sie nicht zum hinzufügen von Optionen auf der Kommandozeile?
InformationsquelleAutor Radek Simko | 2011-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
G++ 4.3 (und vermutlich auch spätere Versionen) wird vorsichtig über die header-Dateien für maximale Standard-Konformität.
Wenn Sie programming in C++98 (der aktuelle standard-das ist schon eine Weile), dann regelmäßige Ausdruck Unterstützung wurde Hinzugefügt, in der tech report 1, und die und die header-Dateien sind in einem speziellen
tr1
Verzeichnis und die Inhalte werden in einem speziellen namespacestd::tr1
.In der neuen C++0x-standard, der Unterstützung für reguläre Ausdrücke zusammengeführt wurde, in die standard-Bibliothek, so kann es gefunden werden, die in der header
regex
- und namespace -std
.G++ stellt sicher, dass Sie verwenden die richtige version für die
--std=
version, die Sie auf der Kommandozeile angegeben, obwohl intern sind Sie beide der gleichen Umsetzung.So zu machen regex arbeiten, ohne den Wechsel zu
--std=c++0x
nurDas ist eine separate Frage. Fragen Sie Sie separat.
fantastisch! Die ich verwenden kann, C11!
InformationsquelleAutor Ken Bloom
Ich bin mir ziemlich sicher, dass der regelmäßige Ausdruck Unterstützung in C++0x, also es gibt keine STL-Dinge, die es unterstützen, bis dann. Wenn Sie nicht möchten, dass der Einsatz von c++0x, könnte man Boost statt, das ist aber nicht in der STL.
InformationsquelleAutor Colen
Könnten Sie versuchen, mit Boost.Regex anstelle des c++0x-Header.
Auch die STL ist nicht das gleiche wie die standard-Bibliothek. Es stand einst für "Standard Template Library" zurück, wenn das war ein Angebot von SGI. Die standard-Bibliothek nicht übernehmen alles int STL (Seil und slist) und deckt viel mehr Boden als die STL haben (iostreams, alle tr1, tr2, und c++0x-Header).
InformationsquelleAutor KitsuneYMG