标准C++

首先,要知道一个重要的概念,没有官方的C++编译器,也没有官方的C++ STLPort。我们总认为官方的东西最可靠,C++的官方,也就是ISO委员会,没有发表过任何编译器和库的实体,官方只负责指定标准。定标准比实现要麻烦很多,我是这么认为的。

也就是说,根本没有所谓的官方的C++编译器的STL的存在(我用了好多的“的”),所有的编译器和STL都是由厂商自己实现。目前最好的C++编译器应该就是gcc和intel C++了吧,而大家最为认可的STL库就是SGI了。不过SGI专门为UNIX实现,移植有些困难,所有就有了STLPort这个SGI的多编译器移植版。

到现在为止,STLPort的最新版本是STLport-5.1.5,大家可以在www.stlport.org下载最新版的STLPort。概念中电脑上很多东西都要安装(编译)的,网上一查,结果倒是很多,大多都不知所云,又是命令行,又是环境变量的,很多人在这一步就被挡住的。

 

STL是一个标准,各商家根据这个标准开发了各自的STL版本。而在这形形色色的STL版本中,SGI STL无疑是最引人瞩目的一个。这当然是因为这个STL产品系出名门,其设计和编写者名单中,Alexander Stepanov和Matt Austern赫然在内,有两位大师坐镇,其代码水平自然有了最高的保证。SGI STL不但在效率上一直名列前茅,而且完全依照ISO C++之规范设计,使用者尽可放心。此外,SGI STL做到了thread-safe, 还体贴地为用户增设数种组件,如hash, hash_map,hash_multimap, slist和rope容器等等。因此无论在学习或实用中,SGI STL应是首选。

无奈,SGI STL本质上是为了配合SGI自作的UNIX变体IRIX所量身定做,其它平台上的C++编译器想使用SGI STL,都需要一番周折。着名的GNU C++虽然也使用 SGI STL,但在发行前已经过调试整合。普通的用户,特别是Windows平台上的BCB/VC用户要想使自己的C++编译器与SGI STL共同工作,可不是一件容易的事情。好在英雄总能及时出现,俄国人Boris Fomitchev注意到这个问题之後,建立了一个free的项目,称为STLport,旨在将SGI STL的基本代码移植到各种主流编译环境中,使各种编译器的用户都能够享受到SGI STL带来的先进之处。STLport 发展过程中,曾受到Matt Austern的亲切指导,发展到今天,已经比较成熟。最新的STLport 4.0,可以从www.stlport.org免费下载,zip文件体积约1.2M, 可以支持向各种主流C++编译环境的移植。BCB及VC当然算是主流的编译环境,自然得到STLport的关照。但据笔者实践来看,配置过程中还有一些障碍需要跨越,本文即旨在详细指导读者在Borland C++Builder 5.5及Visual C++ 6.0 环境中配置STLport。

 

你可能感兴趣的:(C++)