模板参数名命名惯例
以下模板参数名命名惯例来自于stlsoft,详细说明于《Extended STL》。
模板参数一般是一个或者两个大写字母,
例如T(type/value-type)、S(sequence/string)、
C(container/character)、VP(value policy type)等等。
这样做有两个原因。
首先,全大写字母的单词可能被宏定义。
相反,宏定义一般不会仅有一个或两个字符。
所以模板参数和宏定义没有命名冲突。
(我们不应该自定义特别短的宏。
如果一个库定义了一两个字符的短宏,
一般来说,它绝不会是一个可靠的库。)
第二,我们将在类中定义成员类型,其名字必须不同于模板参数名。
以下代码中,成员类型和模板参数同名,无法通过编译:
template <typename iterator>struct thing{ typedef iterator iterator; // Compile error};必须如下代码更改:
template <typename I>struct thing{ typedef I iterator;};在定义模板类时,有一个惯例,
即一开始就以上面短小的模板参数名为基础,
定义各个成员类型。
查看StlPort代码:
template <class _Key, class _Tp, ...>class map{ typedef map<_Key, _Tp, _Compare, _Alloc> _Self;public: typedef _Key key_type; typedef _Tp data_type; typedef _Tp mapped_type; typedef pair<const _Key, _Tp> value_type; typedef _Compare key_compare; ...}其模板参数命名的原则是一致的:较短,然后立即定义较长的类型名。
用前导下划线防止命名冲突。
(转载请注明来源于金庆的专栏)
分享到:
相关推荐
10. **PCB尺寸要求* 标志符和命名惯例**:设定统一的标识和命名规则,便于识别和管理PCB上的不同区域、元器件和走线,提高设计的清晰度和一致性。 11. **波峰焊接条件**:规定波峰焊接工艺的参数,如焊接温度、时间...
3. 类命名:类名一般采用大驼峰式(PascalCase),如`MyClassName`,表示它是一个对象的模板。 4. 常量命名:常量名通常全部大写,单词间用下划线分隔,如`MAX_VALUE`,以表明它们在程序中不应被修改。 二、注释...
- **变量和参数命名**:变量名和参数名采用小写字母开头的名词或名词短语。 - **集合命名**:集合变量的命名通常包含集合所存储的对象类型的复数形式。 #### 6. 编程规范 编程规范是确保代码质量和可维护性的关键。...
函数将传入一个名为 instance 的参数,这个参数代表当前 OpenERP 的 Web 客户端实例,包含了所有相关当前会话数据,以及所有 Web 模块的变量。 命名空间 在 OpenERP 中,命名空间是通过 instance 对象创建的,例如...
- **避免混淆**: 避免使用系统本身的命名惯例,以区分自定义对象与系统内置对象或关键词。例如,不建议将存储过程命名为以`sp_`或`xp_`开头的名字,因为SQL Server的系统存储过程以`sp_`开头,扩展存储过程以`xp_`...
##### 5.2 命名惯例 在i-cut Production Console 2.0中,采用了清晰明确的命名规则来组织各种资源。比如,“Mis Trabajos”用于显示用户的所有待处理任务,“Trabajo Abierto”则指向当前正被编辑或查看的任务。...
- **文件名**:所有配置文件均命名为 `config.php`。 - **格式**:采用返回数组的方式定义配置项,例如: ```php ( 'DEBUG_MODE' => true, 'URL_MODEL' => 2, ); ?> ``` - **注意事项**:配置参数不区分大小...
- **模板命名规则**:遵循一定的命名规则。 **7.2 模板赋值** - **数据传递**:将数据传递给模板进行渲染。 **7.3 模板输出** - **输出控制**:控制模板的输出内容。 **7.4 模板替换** - **模板替换**:支持...
由于没有具体的文件内容,这些只是根据常见命名惯例的推测。 总的来说,人脸自动检测标识是计算机视觉领域的重要技术,它结合了图像处理、特征提取和机器学习算法,能够在复杂的图像环境中有效地识别和定位人脸。...
惯例配置是指根据框架的约定来设置配置项,例如默认的数据库连接参数等。 **3.3 项目配置** 项目配置允许开发者为自己的项目定制配置项,通常在项目的配置目录中设置。 **3.4 调试配置** 为了方便调试,ThinkPHP...
- **命名规范**:提供代码和文件命名的规则,确保代码的可读性和一致性。 - **特性概述**:列举ThinkPHP3.0的主要功能,如自动加载、缓存机制、安全特性等。 - **系统流程**:描述请求处理的整体流程,从用户请求...
- **命名规范**:为确保代码的一致性和可读性,框架提供了一套严格的命名规则。 - **MVC分层**:详细介绍了MVC设计模式在ThinkPHP中的具体实现。 - **CBD架构**:CBD架构是ThinkPHP的一个重要特性,指代...
- **na_0035: Adoption of naming conventions:** 鼓励采用标准化的命名惯例,以提高项目的可维护性。 **4.2 Model Content Guidelines** - **jc_0201: Usable characters for Subsystem name:** 子系统的名称可以...