如何解决我可以在char16_t的字符串上使用STL正则表达式库吗?
简而言之,下面的代码本质上是什么问题?
data
错误
#include <regex>
int main() {
std::regex_match(u" ",std::basic_regex<char16_t>{u" "});
}
更多信息:
$ g++ -std=c++17 main.cpp -o main
$ ./main
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
Aborted (core dumped)
解决方法
C ++标准库不支持使用char16_t或char32_t Unicode的正则表达式。有一个建议可以解决这个问题,但是在C ++ 20中却没有:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0169r0.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。