原始问题:“我使用Xcode 8的最新LLVM 8编译器(clang 8 / 3.8?)在我的Mac上开发了一个程序,它大量使用了c ++ 14中的正则表达式。然后我无法得到我的代码在linux上运行时给我正确的输出。似乎有一些我不知道的正则表达式兼容性问题。
我该如何解决这个问题?
答案 0 :(得分:0)
交换std :: for boost :: like so
//using std::regex_replace;
using boost::regex_replace;
using boost::sregex_iterator;
//using std::sregex_iterator;
//using std::smatch;
using boost::smatch;
//using std::regex;
using boost::regex;
并添加
#include <boost/regex.hpp>
(我之前已经在使用boost :: filesystem,因此大多数标头/库已经被包含/链接了)。我想这并不是很明显,但应该注意的是,这两个特性在Boost中具有更稳定的父级(至少在boost :: filesystem的情况下,C ++中的'实验'版本实际上只是Boost)。
因此,这解决了任何兼容性问题,因为我保证在我的Mac和Linux机器上都遵循提升规范。
得到这个答案可以节省我5个小时......也许现在它可以为你节省5个小时。