Я работаю над проектом с кем-то, и у нас есть тот же код, но его код компилируется, а мой продолжает выдавать ошибку. Вот мой код:Ошибки по исправлению регулярных выражений в C++
bool r_parser::parseMake(string name, string command, string type, string val)
{
regex regName("^\\w+$");
if(std::regex_match(name, regName) == true)
{
cout << "We have a match!" << endl;
}
return false;
}
И здесь ошибки я получаю:
'undefined reference to std::basic_regex<char, std::regex_traits<char> >::_M_compile()'
'undefined reference to bool std::regex_match<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<std::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, std::regex_traits<char> >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, std::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<std::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, std::basic_regex<char, std::regex_traits<char> > const&, std::bitset<11u>)'
Поскольку код моего партнера составлен, и мы не смогли найти ничего другого о своем коде, я задавался вопросом, если кто-то мог пролить свет на эту ситуацию.
Спасибо за ваше время.
EDIT: Я забыл упомянуть, у меня есть:
#include <regex>
#include <string>
#include <iostream>
using namespace std;
в моем файле заголовка.
Какой компилятор и версия вы используете? Не все версии компилятора поддерживают std :: regex. – Galik
для начала, ваш фрагмент отсутствует '#inlcude'. Также отсутствует '#inlcude ', '#inlcude ' и 'using namespace std', все из которых необходимы для компиляции этой функции. –
Извините, я забыл упомянуть, что у меня были те, которые включены в мой заголовочный файл. Я добавил это на главный пост. Я бегу gcc 4.8.1 –