13 尽量使用STL而不是ACE的容器
这个纯属个人感觉(偏见)。我有如下理由不使用ACE的容器:
l 一些实现不符合大家对于容器的认识,比如ACE_DLList,在其中存放的居然是对象的指针而不是拷贝。你还必须记住去释放ACE_DLList内部管理的指针。
l ACE容器的迭代器不符合STL的要求,从而造成ACE的容器无法使用STL的各种模板算法和函数。总不能因为ACE容器失去STL算法这片森林吧。
l 现在的编译器上已经非常普遍实现了STL,想找一个还不支持STL的编译器应该都不容易了。
l ACE的容器中间有大量指针,所以ACE的容器也不可能用在共享内存中。其的应用场景和STL没有本质区别。
ACE的文档《The.ACE.Programmers.Guide》中间也说过:
That being said, the standard C++ containers are recommended for application development when you are using ACE.
所以在可以使用STL的情况下,还是优先使用STL。