与Mac和Linux机器之间的正则表达式的兼容性问题

时间:2016-11-26 04:35:36

标签: c++ linux llvm

原始问题:“我使用Xcode 8的最新LLVM 8编译器(clang 8 / 3.8?)在我的Mac上开发了一个程序,它大量使用了c ++ 14中的正则表达式。然后我无法得到我的代码在linux上运行时给我正确的输出。似乎有一些我不知道的正则表达式兼容性问题。

我该如何解决这个问题?

1 个答案:

答案 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个小时。

相关问题