我在Qt平台上使用Ubuntu上的正则表达式时遇到了问题(我也尝试过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)':
我真的很困惑我应该做些什么。
答案 0 :(得分:1)
您未包含<boost/regex.hpp>
生成的错误消息。关于标准库提供的正则表达式标头,错误消息说明了一切:您必须至少使用C ++ 11才能访问该标头。 E.g:
g++ -std=c++11 -Wall -Wextra -Werror foobar.cpp