www.mikrocontroller.net

Forum: PC-Programmierung boost regex iteratoren


Autor: Patrick Weinberger (seennoob)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

probier mal:
 string::const_iterator end = sbuf.end();
 while (boost::regex_search(begin, end, matches, re))

Autor: Patrick Weinberger (seennoob)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt hab ich nur noch mehr Fehlermeldungen ^^
Hat noch nie wer von euch mit boost gearbeitet ?

MFG

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du linkst auch die Regexp-Library dazu?

Schreib mal dein Makefile oä hier ins Forum.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Christian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da mir langweilig war, hier die Lösung...
Gebaut unter Linux mit:
g++ main.cpp /usr/lib/libboost_regex-mt.a -o test
(Siehe vorigen Post)

Autor: Link zu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
g++ main.cpp -lboost_regex-mt -o test

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.