Hallo; Ich hab ein leichtes Problem mit den Iteratoren bei der regex_search Funktion von Boost. Ich hab zum testen einfach einen Beispiel Code kopiert aber funktioniert nicht ich bekomm als Fehler vom Compiler: main.cpp:33: Fehler: keine passende Funktion für Aufruf von »regex_search(__gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::cmatch&, boost::regex&)« main.cpp:39: Fehler: no match für »operator=« in »begin = ((const boost::sub_match<const char*>*)matches.boost::match_results<BidiIterator, Allocator>::operator[] [with BidiIterator = const char*, Allocator = std::allocator<boost::sub_match<const char*> >](1))->boost::sub_match<const char*>::<anonymous>.std::pair<const char*, const char*>::second« /usr/include/c++/4.3/bits/stl_iterator.h:666: Anmerkung: Kandidaten sind: __gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >& __gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator=(const __gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) Ich hoffe ihr könnt mir den entscheidenden Tipp geben zur Lösung. MFG Patrick
Hallo, probier mal:
1 | string::const_iterator end = sbuf.end(); |
2 | while (boost::regex_search(begin, end, matches, re)) |
Jetzt hab ich nur noch mehr Fehlermeldungen ^^ Hat noch nie wer von euch mit boost gearbeitet ? MFG
Du linkst auch die Regexp-Library dazu? Schreib mal dein Makefile oä hier ins Forum.
Da mir langweilig war, hier die Lösung... Gebaut unter Linux mit:
1 | g++ main.cpp /usr/lib/libboost_regex-mt.a -o test |
(Siehe vorigen Post)
Du brauchst nicht den kompletten Pfad der Lib mit angeben. Wenn die Lib in einem Standardverzeichnis für Libs steht, kannst du auch abkürzen. Aus /Pfad/zur/libtest.so bzw. /Pfad/zur/libtest.a wird -ltest. Oder aus deinem Kompilierungsbefehl wird somit:
1 | g++ main.cpp -lboost_regex-mt -o test |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.