我正在尝试使用 map 的 C++11 emplace() 函数,但 NetBeans 说 map 没有这样的函数。查看 header ,它是“正确的”——没有提及(在 Fedora 16 上)emplace()。这一切都很好,你知道……但我有点想使用 emplace()。
如何启用此功能?我知道它自去年三月以来就存在,可能更早。彻底的搜索表明 emplace() 基本上只存在于我的系统中的列表和 vector 的标题中。由于近十年来 C++ 没有重大修订,所以我没有运气找到有关如果库“错误”该怎么办的文档。
最佳答案
如果您的实现不支持某些功能,您有两种选择:
- 不要使用该功能
- 使用支持您需要的其他实现。
新标准的出现并没有扩大选择范围。事实上,它减少了它,因为您将很难找到一个支持您为每个目标所需的一切的实现。
请注意,对于纯库的东西,其他实现可能是您制作的:兼容性包装器在过渡时间中出现增加。但是您必须注意名称冲突的影响(当功能出现在其标准位置时,兼容性包装器的可见性可能会增加代码的歧义)。
关于c++ - std::map::emplace() 缺失 - 过时的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971670/