{+ 1}}和hash_map
标题尚未包含在C ++标准中,但它们可以作为我最近使用过的所有编译器的扩展名。
我想知道在不牺牲可移植性的情况下,我可以在实际代码中依赖这些内容。我正在研究需要在大量架构和编译器上运行的工具项目,包括:
我意识到其中一些非常奇特,但这不是重点。您在多个平台和编译器上使用STL扩展的经历是什么?它们无处不在吗? 你会在你的项目中使用它们吗?
答案 0 :(得分:13)
我可能会寻找助推器并使用它。至少他们的用户有一些独立于平台的压力。我无法想象如果您提交了针对GCC和英特尔编译器的错误并告诉他们调整他们在hash_map实现方式上的差异会发生什么。充其量你可以让他们互相交谈。假设你甚至实现了这一点,那么你只修复了英特尔和GCC编译器的不同之处。祝你好运,让他人在一起,并在几年内解决问题。
至少在提升时,你知道一个组织正在制定各种平台之间的差异。
修改强> 提升等值显然是unordered set或unordered map。 (感谢Head Geek)
答案 1 :(得分:5)
不,如果你是一个足够大的组织/项目,你会写自己的。这样您就可以定制它们以更好地满足您的需求并解决可移植性问题。 EA做到了这一点,其“eastl”旨在针对所有游戏平台,PC,Mac,XBOX360,Wii,PS2,PS3等...