Quindi il mio professore mi ha dato un lavoro con regex in C++.Compilare ed eseguire regex in C++ usando eclipse
Così ho provato a scrivere il mio codice in eclissi (sto usando linux (ubuntu 12.04)).
così ho preso il codice:
// regex_search example
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string s ("this subject has a submarine as a subsequence");
std::smatch m;
std::regex e ("\\b(sub)([^ ]*)"); // matches words beginning by "sub"
std::cout << "Target sequence: " << s << std::endl;
std::cout << "Regular expression: /\\b(sub)([^ ]*)/" << std::endl;
std::cout << "The following matches and submatches were found:" << std::endl;
while (std::regex_search (s,m,e)) {
for (auto x:m) std::cout << x << " ";
std::cout << std::endl;
s = m.suffix().str();
}
return 0;
}
Come potete vedere si tratta di un semplice codice per lavorare con espressioni regolari.
così cerco di costruirla e eclisse mi dà un errore:
Type 'smatch' could not be resolved
e anche:
Type 'std::regex' could not be resolved
qual è il problema?
Ho tentato di aggiungere la flag -std = C++ 0x nella posizione appropriata (proprietà-> c/C++ build -> Varie) e non succede nulla.
forse sto sbagliando?
forse devo aggiungere un collegamento alla libreria come in pthread?
Quale versione di GCC sono in esecuzione? – Nick
Probabilmente stai usando gcc 4.7.2 (o forse quello precedente) con quella versione di Ubuntu? Le espressioni regolari non sono implementate in quella versione. (Non sono sicuro di quanto siano lontani adesso. L'ultima prova che ho visto di qualsiasi attività è stata qualche vago commento su una mailing list di gennaio). – BoBTFish
@Nick I cosa sto usando la versione 4.7.1 –