У меня проблема с использованием 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/regex.hpp>
сообщение об ошибке, созданное с помощью <boost/regex.hpp>
. Что касается заголовка регулярного выражения, предоставленного стандартной библиотекой, в сообщении об ошибке говорится все: вы должны использовать хотя бы С++ 11, чтобы иметь доступ к этому заголовку. Например:
g++ -std=c++11 -Wall -Wextra -Werror foobar.cpp