首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >std::map::emplace()缺少-过时的库?

std::map::emplace()缺少-过时的库?
EN

Stack Overflow用户
提问于 2012-01-23 20:33:10
回答 2查看 4.9K关注 0票数 7

我尝试使用地图的C++11 emplace()函数,但是NetBeans说地图没有这样的函数。查看标题,它是“正确的”--(在Fedora 16上)没有提到emplace()。这很好,你知道的.但我有点想使用emplace()。

如何启用此功能?我知道它从去年3月就已经存在了,可能更早。彻底的搜索表明emplace()基本上只存在于我的系统中的列表和向量的头中。由于近十年来没有对C++进行重大修订,因此我没有找到任何关于如何处理这些库“错误”的文档。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-23 20:41:58

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

  • 不使用此功能
  • 使用支持您所需的其他实现。

事实上,新标准并没有扩大选择的范围。事实上,它减少了它,因为你将有额外的困难来找到一个支持你想要的每个目标的一切的实现。

请注意,对于纯库的东西,另一种实现可能是您自己制作的:兼容性包装器在转换时间上增加了外观。但您必须注意名称冲突效果(当特性出现在其标准位置时,兼容性包装器的可见性可能会增加代码的模糊性)。

票数 2
EN

Stack Overflow用户

发布于 2014-09-19 18:46:23

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8971670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档