regex:在ascii和unicode之间切换
boost.regex:switching between ascii and unicode
在boost.regex中有一种在ascii和utf之间切换的方便方法吗?
例如,我现在看到的唯一方法是在boost::u32regex
和boost::regex
之间切换。
这是在unicode和ascii之间切换的唯一方法吗?
我希望能够将一个参数传递给boost,指定我的字符编码,这样就不必重复很多代码。
这是在unicode和ascii之间切换的唯一方法吗?
差不多。你认为boost::regex
实际上是一个类型别名:
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
是相同的方式:
typedef basic_regex<UChar32,icu_regex_traits> u32regex;
为了在它们之间进行真正的概括,您还必须将所有内容都写为模板。你不是服用boost::regex
,而是服用boost::basic_regex<charT, traits>
。这是模板的缺点之一——它们有点渗透到所有东西中。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- C++ - Unicode Newline
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 大小相等但成员数量不同的结构之间的性能差异
- 类与私有变量的其他类之间的线程安全性
- 如何在cpp文件之间切换窗口?在Qt中
- C++20 中的严格别名规则是否允许标准 c++ unicode 字符和下划线类型之间"reinterpret
- 如何在Unicode/UCS CodePoint和UTF16替代对之间转换
- 如何在Visual C 中的BSTR和32位Unicode字符串之间进行转换
- regex:在ascii和unicode之间切换
- 显式使用Unicode/ANSI Windows API和让它们由别名处理之间的区别
- 在 Web 服务器中 utf-8 和 unicode 之间进行转换
- 根据MSVC++中的unicode设置,在std::string和std::wstring之间自动切换
- 我可以使用_bstr_t类在Windows上的多字节和Unicode之间进行转换吗?(c++)