gpt4 book ai didi

c++ - C++11 标准容器是 "final"吗?

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

我们(应该)知道 C++ 标准库容器,包括 std::string,并不意味着继承自。但是,C++98/03 确实允许我们这样做,即使它会导致错误。

既然 final 关键字可用,那些标准库容器是否标记为 final 以防止对它们的不良使用继承?

如果不是,那是为什么?

最佳答案

LWG 在最近于 2012 年 2 月 6 日至 10 日在科纳举行的 session 上讨论了这个问题。我是 LWG issue 2113 .

LWG 决定将 LWG 2113 标记为 NAD(不是缺陷),理由是标准已经明确现有类(如容器和 std::string 不能标记为 final)通过实现。

讨论包括这样一个事实,虽然从这些类派生可能不受欢迎,但在 C++98/03 中这样做显然是合法的。在 C++11 中使其非法会破坏太多代码。

更新

此时,current working draft 中没有库类型。被标记为final

关于c++ - C++11 标准容器是 "final"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298450/

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