-2
原始的問題Mac和Linux機器之間的正則表達式的兼容性問題:「我制定了一個計劃我的Mac上使用的Xcode 8的最新LLVM 8的編譯器(鐺8/3.8?),這使得大量使用正則表達式進行的C++ 14 。當時我無法得到我的代碼給我在Linux上運行時,正確的輸出,有似乎是,我不知道的一些正則表達式的兼容性問題。與
我怎樣才能解決這個問題?
原始的問題Mac和Linux機器之間的正則表達式的兼容性問題:「我制定了一個計劃我的Mac上使用的Xcode 8的最新LLVM 8的編譯器(鐺8/3.8?),這使得大量使用正則表達式進行的C++ 14 。當時我無法得到我的代碼給我在Linux上運行時,正確的輸出,有似乎是,我不知道的一些正則表達式的兼容性問題。與
我怎樣才能解決這個問題?
換出std :: for boost :: like等
//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 ::文件系統,所以大部分的頭/已包含庫/鏈接)。我想這不會立即顯現,但應注意的是,這兩個功能在提升更穩定的父母(至少在升壓::文件系統的情況下,C++中的「實驗性」的版本實際上只是提升)。
因此,它處理任何兼容性問題,因爲我保證在我的Mac和Linux機器上遵循提升規範。
有這個答案就已經救了我5小時......也許現在它會爲你節省5小時。
[gcc?](https://gcc.gnu.org/projects/cxx-status.html#cxx11) – kaylum
如果您使用正則表達式調試問題,將它分享給我們會不會更容易在SO上(關於如何修復的答案),然後最終讓代碼在編譯器和操作系統之間更加兼容?或者更直截了當地說,讓我們修復代碼中的錯誤,而不是更改工具集。這個問題很可能與編譯器本身無關,而是代碼(即bug)或運行時庫。 – selbie
所以,我恍然大悟:1)從STD爲我的正則表達式使用更改命名空間::提高::(和文件#include)。這是固定的*大部分兼容性問題。後來我發現在我的代碼中的錯誤,我被推進一個迭代器的矢量的可能爲null的位置,然後試圖訪問它的內存。看到我最後的帖子在這裏所有已修復! –