簡體   English   中英

C ++ TR1正則表達式不可用

[英]C++ TR1 Regular Expressions Not Available

我正在嘗試將'TR1'正則表達式擴展用於某些C ++字符串解析。 我已經讀過這個需要<regex>頭和命名空間std :: tr1

我可以使用<regex>標頭進行編譯(雖然它強制我使用標志, -std=c++0x-std=gnu++0x

但是,當我嘗試在程序中使用std::tr1命名空間時,編譯失敗並顯示tr1“不是命名空間名稱”的消息。 我不能做的事情,

std::tr1::regex rx("mypattern");

我已經讀過自gcc 4.3.0以來一直支持TR1正則表達式。 我通過gcc 4.4.5使用g ++。

我錯過了什么嗎?

g ++ 4.7還沒有實現正則表達式。

但盡管如此,在C ++ 11中, regex已從名稱空間std::tr1移至std 所以,你應該寫std::regex而不是std::tr1::regex std::regex

std::regex rx("mypattern");

我不知道4.7之前的哪些g ++版本也適用。 這個ideone示例使用g ++ 4.7進行編譯。 但是,請記住,此編譯器版本中未實現正則表達式實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM