gpt4 book ai didi

c++ - 为什么 chrono 有自己的命名空间?

转载 作者:IT老高 更新时间:2023-10-28 22:24:22 25 4
gpt4 key购买 nike

到目前为止,我在 C++ 标准库中看到的所有其他内容都在 std 命名空间中。如果我使用 std::chrono 中的内容,我通常会超过每行 80 个字符的限制 - 这不是问题,只是不方便。

所以这里是我的简单问题:为什么 chrono header 有自己的命名空间?

最佳答案

我是 chrono proposal 的主要作者.子命名空间不是我的第一选择,只是因为冗长。我发现自己在写 using namespace std::chrono几乎每次我使用该设施。

然而,这是一个非常有争议的提议。许多人,包括我的一些合著者,强烈认为子命名空间是合适的。我没有强烈反对子命名空间,因为我们处于需要妥协的空间,或者像美国国会一样陷入僵局。 :⁠-⁠) 这种死锁的结果可能是 C11 的 timespec .

boost 比 std 更积极地尝试子命名空间,本文的主要作者之一也是 chrono 演变而来的 boost 日期时间库的作者。所以这显然会对使用子命名空间有很大的吸引力。

展望 future ,子命名空间很可能会成为绝对必需的。想象一下,如果我们添加包含 12 月缩写的日历服务:dec .这将直接与:

ios_base& dec(ios_base& str);

<ios> .所以总而言之,我从一开始就没有坚持使用子命名空间可能是错误的。 :⁠-⁠) 展望 future ,看看委员会在哪里创建子命名空间和未创建子命名空间会很有趣。

更新(6 年后...)

真相总是比小说离奇...

所以我做了提议std::chrono::dec作为 December 的缩写,认为这是安全的,因为嵌套了 chrono命名空间。但是没有,委员会决定重命名 std::chrono::decstd::chrono::December在标准化过程中,因为潜在的冲突。

那么嵌套命名空间值得吗?

我不知道。此更新是数据点,而不是意见。

关于c++ - 为什么 chrono 有自己的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com