Ошибки с регулярным выражением в Ubuntu

0

У меня проблема с использованием regex на Ubuntu, на платформе Qt (я тоже пытался использовать Code :: Blocks). Я пишу консольный код приложения, и я должен использовать регулярное выражение.

Когда я набрал #include <regex>, это мне эта ошибка (я думаю, это самая важная ошибка, но есть много ошибок регулярного выражения):

/usr/include/c++/4.9/bits/c++0x_warning.h:32: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^

И я подумал, что я должен использовать библиотеку Boost. Я установил Boost с:

sudo apt-get install libboost-all-dev

и набрал (и я отредактировал вещи, с написанием boost:: в начале):

#include <boost/regex.hpp>

Но, к сожалению, это вызвало много ошибок. Например:

In function 'bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)':

Я действительно озадачен тем, что должен делать.

Теги:
boost

1 ответ

1

Вы не <boost/regex.hpp> сообщение об ошибке, созданное с помощью <boost/regex.hpp>. Что касается заголовка регулярного выражения, предоставленного стандартной библиотекой, в сообщении об ошибке говорится все: вы должны использовать хотя бы С++ 11, чтобы иметь доступ к этому заголовку. Например:

g++ -std=c++11 -Wall -Wextra -Werror foobar.cpp
  • 0
    Итак, что я буду делать вообще? Я написал это в Терминале (вместо foobar.cpp я написал свой путь к файлу), но я получил те же ошибки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню