gpt4 book ai didi

C++ TR1 正则表达式不可用

转载 作者:太空狗 更新时间:2023-10-29 20:05:12 24 4
gpt4 key购买 nike

我正在尝试将“TR1”正则表达式扩展用于某些 C++ 字符串解析。我读过 <regex>为此需要 header 和命名空间 std::tr1

我可以用 <regex> 编译 header 存在(尽管它迫使我使用标志 -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 doesn't implement regular expressions yet.

尽管如此,在 C++11 中,regex 已从命名空间 std::tr1 移至 std。因此,您应该编写 std::regex 而不是 std::tr1::regex:

std::regex rx("mypattern");

我不知道这也适用于 4.7 之前的哪些 g++ 版本。但是this ideone example使用 g++ 4.7 编译良好。但是,请记住,此编译器版本中未实现正则表达式。

关于C++ TR1 正则表达式不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com