std :: map :: emplace()缺失

我正在尝试使用地图的C ++ 11 emplace()函数,但NetBeans说地图没有这样的功能。 看看头文件,这是“正确的” - 没有提到(在Fedora 16上)emplace()。 这是一切都很好,你知道...但我有点想使用emplace()。

我如何去启用这个功能? 我知道自从去年3月以来它已经存在,可能更早。 彻底的搜索表明,emplace()基本上只存在于我的系统中的列表和向量的标题中。 由于近十年来对C ++的重大修改,我没有找到有关如果库“错误”应该怎么做的文档。


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

  • 请勿使用该功能
  • 使用另一个支持你需要的实现。
  • 有一个新标准的事实并没有扩大选择范围。 实际上,它会减少它,因为在寻找一个支持所有目标实现的实现方面会遇到更多困难。

    请注意,对于纯库的情况,其他实现可能是您所做的:兼容性包装在转换时间中具有增加的外观。 但是您必须注意名称冲突效应(当功能出现在其标准位置时,兼容性包装的可见性可能会给代码添加歧义)。


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

    链接地址: http://www.djcxy.com/p/10375.html

    上一篇: std::map::emplace() missing

    下一篇: Creating a reusable UIView similar to UITableViewCell