boost.Filesystem: canonical
-
Hi, wie kann ich aus einem Pfad alle .. und . entfernen/auflösen? boost::filesystem::canonical gibt es bei mir irgendwie nicht:
#include <boost/filesystem.hpp> #include <iostream> int main(int argc, char** argv) { std::cout<<boost::filesystem3::canonical(argv[1])<<std::endl; return 0; }Ausgabe des Compilers:
./test_boost.cpp: In function `int main(int, char**)': ./test_boost.cpp:5:13: error: `canonical' is not a member of `boost::filesystem3'Compiler version: g++ (GCC) 4.6.2
Boost version: 1.47Ist das bei euch auch so? Laut Dokumentation sollte es eine canonical funktion geben.
-
Entferne mal die 3 nach filesystem. Ich meine das gibt es auch im normalen filesystem.
-
geht auch nicht, habe ich schon probiert.
-
Falls du Linux benutzt: Eingige distributionen vertreiben alte boost-versionen z.B. Debian.
-
Lass doch mal cscope über deine Boost Header laufen und suche mit dem wo canonical definiert/deklariert wird.
-
Die Boost version ist aktuell, 1.47 (Naja, aktueller wäre 1.48, ist aber glaube ich kein so großer Unterschied). Ich benutze ArchLinux.
Ich habe mal nach "canonical" in include/filesystem gesucht, nichts gefunden.
Kann es sein das die Funktion entfernt wurde? Wie bekomme ich das Ergebnis von canonical sonst?