这些hash_map
和hash_set
标题还没有包含在C++标准中,但它们可以作为我最近使用的所有编译器的扩展.
我想知道在不牺牲可移植性的情况下,我可以在实际代码中依赖这些内容.我正在研究需要在大量架构和编译器上运行的工具项目,包括:
Linux(x86_64,AMD/Intel): GCC,Intel,Portland Compilers
AIX(Power): GCC,xlC
Cray XT系列(AMD): GCC,Portland,Pathscale Compilers
IBM Blue Gene系列(电源): xlC,GCC
SGI Altix(安腾):英特尔编译器
Windows:不是优先事项,但随时提供有用的答案.
我意识到其中一些非常奇特,但这不是重点.您在多个平台和编译器上使用STL扩展的经历是什么?它们无处不在吗?你会在你的项目中使用它们吗?
我可能会寻找助推器equivelant并使用它.至少他们的用户有一些独立于平台的压力.我无法想象如果您提交了针对GCC和英特尔编译器的错误并告诉他们调整他们在hash_map实现方式上的差异会发生什么.充其量你可以让他们互相交谈.假设你甚至实现了这一点,那么你只修复了英特尔和GCC编译器的不同之处.祝你好运,让他人在一起,并在几年内解决问题.
至少通过提升你知道一个组织正在制定跨平台的任何差异.
编辑 增强等效显然是无序的设置或无序地图.(感谢Head Geek)
不,如果你是一个足够大的组织/项目,你会写自己的.这样您就可以定制它们以更好地满足您的需求并解决可移植性问题.EA做到了这一点,其"eastl"旨在针对所有游戏平台,PC,Mac,XBOX360,Wii,PS2,PS3等...