首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ascii和unicode之间的boost.regex:switching

ascii和unicode之间的boost.regex:switching
EN

Stack Overflow用户
提问于 2016-05-06 16:04:44
回答 1查看 194关注 0票数 3

在boost.regex中有方便的方式在ascii和utf之间切换吗?

我现在看到的唯一方法是,例如,在boost::u32regex之间切换到boost::regex

这是unicode和ascii之间切换的唯一方式吗?

我希望能够传递一个参数来增强,指定我的字符编码,这样就不必重复很多代码了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 13:05:32

这是unicode和ascii之间切换的唯一方式吗?

差不多吧。您认为的boost::regex实际上是一个类型别名:

代码语言:javascript
复制
namespace boost{
    template <class charT, class traits = regex_traits<charT>  >
    class basic_regex;

    typedef basic_regex<char>      regex;
    typedef basic_regex<wchar_t>   wregex;
}

注意,字符类型是一个模板参数-它不是运行时参数。因为boost::regex是建立在char上的,所以它不能支持unicode。

boost::u32regex也是这样:

代码语言:javascript
复制
typedef basic_regex<UChar32,icu_regex_traits> u32regex;

为了在它们之间进行真正的概括,您也必须将所有的东西都写成模板。与其使用boost::regex,不如使用boost::basic_regex<charT, traits>。这是模板的缺点之一--它们只是渗透了所有的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37076856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档