最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用. 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器: 这里说的STL容器,但主要则是指容器,字符串类,但其实可以推广到在STL中提供的任何类型,这里说的公共接口,是指需要暴露给客户的sdk头文件,包括函数签名,或者类成员变量:也可以说,不要在暴露给客户的头文件中包含STL的头文件. 原因分析为什么有这个结论,我们可以从几个方面来论述: 客户端使用的STL版本可能不同因为STL作为标准库