std::tolower底层实现探究:是否为std::use_facet的包装?
std::tolower 是否只是 std::use_facet 的包装?
是的,
当你调用 std::tolower 时,它会自动使用当前的全局 C++ 区域设置(可通过 std::locale::global() 修改),内部会获取该区域对应的 std::ctype
至于你提到的整数输入支持,这是 std::tolower 为了兼容 C 语言同名函数保留的接口要求(输入得是 unsigned char 转成的 int,或者 EOF),而 ctype facet 的 tolower 方法直接接受 char 类型,这是两者在接口上的差异,但核心的字符转换逻辑是共用一套的。
内容的提问来源于stack exchange,提问作者A M
相关产品推荐
相关产品推荐

