LWG1203“更有用的右值流插入”是否追溯应用于 C++11 或 C++20?

Was LWG1203 "More useful rvalue stream insertion" retroactively applied to C++11 or C++20?

提问人:yeputons 提问时间:9/25/2021 最后编辑:HolyBlackCatyeputons 更新时间:6/28/2023 访问量:158

问:

受到我最近问题中的讨论的启发。

存在 LWG 1203 C++ 标准库问题。它变成了一个更通用的(有一些限制),所以可以保留流的类型,并且像代码一样工作。operator>>(istream&&, T&&)operator>>(Stream&&, T&&)Stream(stringstream{} << 123).str()

据我了解,这个问题在瓦尔纳邮件之前已从 WP 更改为 C++20 状态,此后一直没有更改。

但是,cppreference 上的此更改提到它已追溯应用于 C++11。此外,看起来所有的 libstdc++libc++Microsoft STL 也严格在 C++20 之前实现了 LWG 1203,并删除了旧行为。

我是否也缺少一些将 LWG 1203 应用于 C++11、C++14 和 C++17 的其他 C++ 标准备忘录?

C++ 11 语言律师 C++20 IOstream

评论


答:

1赞 vitaut 6/28/2023 #1

如果您有权访问 LWG 邮件列表,则“[isocpp-lib] LWG 1203 破坏了自己的动机”线程将讨论此问题,并提到库问题默认被视为缺陷报告,这意味着其修复程序具有追溯性。这包括对 LWG 1203 的修复。