C++20 引入<format>
(C++23 很快引入<print>
)。我喜欢这些方法,并且我总是尝试在支持时使用std::format
它,而不是使用一系列<<
.
但我注意到这种演变似乎只出现在输出中。为什么没有<scan>
输入法之类的东西?
std::format
并且std::print
本身已经是一个相当大的库添加,我可以想象标准委员会考虑添加附加功能的资源有限,不允许他们同时考虑等效的输入。
也可能是委员会希望在添加等效输入之前首先收集更多经验std::format
,std::print
或者在提议的实施细节或此类添加的优先级中原则上反对此类添加。
我找不到任何指向这些方向的明确声明,而且我也没有内幕知识。
无论如何,委员会仍在考虑一项std::scan
提案作为该提案的后续提案std::format
,请参阅https://github.com/cplusplus/papers/issues/493以了解该提案迄今为止所经历的程序日志。你还可以看到有关于设计方向的民意调查等。自2019年以来似乎没有太多活动,但我不确定这是否真的意味着什么。
在 2022 年 3 月的 Reddit 帖子中,该提案的作者之一、scnlib的作者 Elias Kosunen提到,在推进该提案之前,仍然存在一些不确定的设计问题需要确定,希望能够以 C++26 为目标,但承认进一步的延迟比在标准中添加“半生不熟”的设计更好。
截至 2023 年 2 月,该提案仍标记为“需要修订”,大概正在等待作者继续进行。