C++ 11标准容器是"最终的"吗?

Kla*_*aim 13 c++ stl std c++11

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

现在该std::string关键字可用,是否标记final了标准库容器,以防止使用它们的继承?

如果没有,为什么?

How*_*ant 16

LWG在最近于2012年2月6日至10日举行的Kona会议上讨论了这个问题.这是LWG 第2113期.

LWG决定将LWG 2113标记为NAD(不是缺陷),理由是该标准已经清楚,现有的类如容器并std::string不能通过实施标记为最终.

讨论包括这样一个事实:尽管从这些类派生出来可能不赞成,但在C++ 98/03中这样做显然是合法的.并且在C++ 11中将其视为非法会破坏太多代码.

更新

目前,没有标记当前工作草案中的库类型final.