std :: regex & # 8212; Есть ли какая-то библиотека, которую нужно связать?
Вопрос
Я получаю ошибку компоновщика со следующим кодом:
#include <regex>
int main()
{
std::regex rgx("ello");
return 0;
}
test.o: In function `basic_regex':
/usr/lib/gcc/i586-redhat-linux/4.4.1/../../../../include/c++/4.4.1/tr1_impl/regex:769: undefined reference to `std::basic_regex<char, std::regex_traits<char> >::_M_compile()'
collect2: ld returned 1 exit status
Решение
Из gcc-4.4.1 / include / c ++ / 4.4.1 / tr1_impl / regex
template <...>
class basic_regexp {
...
private:
/**
* @brief Compiles a regular expression pattern into a NFA.
* @todo Implement this function.
*/
void _M_compile();
Я думаю, он еще не готов.
ОБНОВЛЕНИЕ: текущая передовая граница GCC (SVN @ 153546), похоже, еще не имеет реализации.
Другие советы
вы можете получить статус имплементации из: http: //gcc.gnu. орг / onlinedocs / libstdc ++ / ручной / bk01pt01ch01.html # manual.intro.status.standard.tr1
чтобы использовать regex, вы можете установить библиотеку boost, и их tr1 уже содержит regex.
Не связан с StackOverflow