Компиляция std:: regex_iterator с gcc
Я могу создать файл .o с g++ -c test.cpp -std = С++ 0x, но не могу связать его, получив следующие ошибки:
test.cpp:(.text+0xe5): undefined reference to `std::regex_iterator<char const*, char, std::regex_traits<char> >::regex_iterator(char const*, char const*, std::basic_regex<char, std::regex_traits<char> > const&, std::bitset<11u>)'
test.cpp:(.text+0xf1): undefined reference to `std::regex_iterator<char const*, char, std::regex_traits<char> >::regex_iterator()'
код:
#include <regex>
#include <iostream>
#include <string.h>
typedef std::regex_iterator<const char *> Myiter;
int main()
{
const char *pat = "axayaz";
Myiter::regex_type rx("a");
Myiter next(pat, pat + strlen(pat), rx);
Myiter end;
return (0);
}
Ответы
Ответ 1
Стандартная библиотека GNU С++ поддерживает <regex>
, но до версии 4.9.0. (Заголовки присутствовали в более ранних версиях, но были непригодны для использования.)
Другие компиляторы не поддерживают его, насколько я вижу.
Вы можете использовать другую библиотеку, если используете более старый GCC.