- 主题:C++标准委员会成立33年憋不出来一个std::string::to_upper()
没这个小东西,众多C++码农也一样写了软件了不是
字符编码库太复杂,交给第三方库也是个好办法
std::codecvt封得可能没这些第三方库好,被废了
--
FROM 221.218.167.*
想想ICU这些开发了多少年了
假如让你去主持这个工作(可能是业余的),你有多大的把握搞得比现有的好
【 在 poocp 的大作中提到: 】
: 字符这个事情,对于C++标准委员会而言确实太复杂了,33年完全不够,再给他们66年吧,相信他们最后一定能搞好这个标准库的。
:
--
FROM 221.218.167.*
现在流行这种:
std::transform(s.begin(), s.end(), s.begin(), [](wchar_t c) { return towlower(c); });
但对于Windows上的UTF-16 surrogate pair,这个实现是错误的。单单英文字母没问题。
【 在 zhangxp024 的大作中提到: 】
: #include <iostream>
: #include <cctype> // 包含 toupper 函数
: int main() {
: ...................
--
FROM 221.218.167.*
最好的办法是自己向C++委员会提PR
【 在 gfkid 的大作中提到: 】
: 看小说里,总是看到升米恩斗米仇的,觉得不可思议
: 现实中比比皆是,免费用着,但还骂骂咧咧
: :
--
FROM 221.218.167.*
C++:You don't pay for what you don't use
需要校验的地方才校验(一般是对外入口,防止脏数据的入侵),不用到处校验
【 在 zli07 的大作中提到: 】
: u8string 目前只是 basic_string<char8_t>的别名,并没有强制 utf-8 的限制,比如你可以给一个 u8string 从一个 unicode codepoint 的 utf8 字符序列中间截断,而不会有任何问题;rust 如果在 codepoint 中间截断会直接 panic
:
--
FROM 221.218.167.*