【发布时间】:2021-02-09 03:33:25
【问题描述】:
标准 (C++17) 是否要求 std::codecvt<char, char, std::mbstate_t>::always_noconv() 返回 true
- 适用于所有语言环境,或
- 对于实现提供的语言环境,或
- 仅适用于 C 语言环境,或
- 还有别的吗?
C++ 标准确实有话要说。来自 C++17 的第 25.4.1.4 节:
codecvt<char, char, mbstate_t>实现了退化转换;它根本不转换。
断章取义,这强烈表明它适用于所有语言环境。不过,如果有人能证实这一点,或者对为什么不应该这样,我会很感激。
【问题讨论】:
-
@cpplearner,酷,C++17 有同样的文字。它更接近于澄清这个问题,但我仍然很好奇我是否应该将此视为适用于任何语言环境。
标签: c++ language-lawyer locale codecvt