c++ - G++-5 tr1/regex regex_replace could not be resolved -
i using g++-5 dialect option -std=c++0x
, preprocessor symbol __gxx_experimental_cxx0x__
, trying use tr1/regex
.
i use #include <tr1/regex>
using namespace std::tr1;
, regex reg("<[^>]*>");
trows no error. when use regex_replace(line, reg, "");
afterwards, following error output:
function 'regex_replace' not resolved test.cpp /cppuni/src line 72 semantic error invalid arguments ' candidates are: #0 regex_replace(#0, #1, #1, const std::tr1::basic_regex<#3,#2> &, const ? &, std::bitset<unsigned long int11>) ? regex_replace(const ? &, const std::tr1::basic_regex<#1,#0> &, const ? &, std::bitset<unsigned long int11>) ' test.cpp /cppuni/src line 72 semantic error
i verified, line
string.
i searched solution last couple of hours , find solutions involved attempted. unfortunately can't use boost/regex
package.
is there solution issue?
edit:
#include <tr1/regex> #include <iostream> #include <string> using namespace std; int main(){ std::tr1::regex reg("<[^>]*>"); string line = "<day>22</day>"; if(line.find("<day>") != string::npos) { line =std::tr1::regex_replace(line, reg, ""); cout<<line<<endl; } return 0; }
g++-5 -std=c++11 -d__gxx_experimental_cxx0x__ -wall test.cpp -o test.out
to have answered: user "baum mit augen" solved issue saying:
alright, in tr1::regex apparently need std::tr1::regex_replace(line, reg, string(""));. (though resulted in linker error in wandbox, maybe don't have legacy stuff installed, dunno.) should use std::regex c++11 instead, works fine showed above. – baum mit augen may 28 @ 11:10
Comments
Post a Comment