例如,为什么STL实现中的大多数成员都有_M_
、_
或__
前缀?为什么会有这么多样板代码?
C++缺少哪些功能,可以使vector(例如)实现更清晰、更简洁?
例如,为什么STL实现中的大多数成员都有_M_
、_
或__
前缀?为什么会有这么多样板代码?
C++缺少哪些功能,可以使vector(例如)实现更清晰、更简洁?
为避免与用户定义的宏发生冲突,实现通常使用以下划线开头,后跟一个大写字母或两个下划线的名称。这些名称在C++中是保留的。
例如,你可以定义一个名为Type
的宏,然后#include <vector>
。如果vector
实现使用Type
作为模板参数名称,就会出错。
但是,不允许定义名为_Type
(或__type
、type__
等)的宏。因此,vector
可以安全地使用这些名称。