std::map::template()丢失-过时的库

std::map::emplace() missing - outdated libraries?

本文关键字:过时 丢失 map template std      更新时间:2023-10-16

我正试图使用映射的C++11 Template()函数,但NetBeans说映射没有这样的函数。从标题来看,这是"正确的"——(在Fedora 16上)没有提到template()。这一切都很好,你知道。。。但我有点想用template()。

如何启用此功能?我知道一个事实,它从去年3月开始就存在了,可能更早。彻底的搜索显示,template()基本上只存在于我的系统中的列表和向量的标头中。由于近十年来没有对C++进行过重大修订,我很难找到关于如果库"错误"该怎么办的文档。

如果您的实现不支持某些东西,您有两个选择:

  • 不要使用该功能
  • 使用另一个支持您需要的实现

事实上,有了一个新的标准并没有扩大选择范围。事实上,它减少了它,因为您在找到一个支持每个目标所需的一切的实现时会遇到额外的困难。

请注意,对于纯库的东西,另一个实现可能是您制作的:兼容性包装器在转换时会增加外观。但您必须注意名称冲突的影响(当功能出现在标准位置时,兼容性包装器的可见性可能会给代码增加歧义)。

GCC 4.7不支持这一点,因为当时该标准存在未解决的问题。在4.8及以上版本中执行。您将需要-std=c++11