
C++编程规范101规则、准则与最佳实践 一
组织与策略 不拘泥小节 大括号位置 空格和制表符 匈牙利记法 单入口,单出口 高警告级别 第三方头文件 未使用的函数参数 定义了从未使用过的变量 变量使用前可能未经初始化 遗漏了return语句 有符号数、无符号数不匹配 自动构建系统 增量构建 完全构建 版本控制系统 版本空值系...
组织与策略 不拘泥小节 大括号位置 空格和制表符 匈牙利记法 单入口,单出口 高警告级别 第三方头文件 未使用的函数参数 定义了从未使用过的变量 变量使用前可能未经初始化 遗漏了return语句 有符号数、无符号数不匹配 自动构建系统 增量构建 完全构建 版本控制系统 版本空值系...
新的改变 nullptr 在C++11中,nullptr是一个所谓“指针空值类型”的常量。 nullptr类型数据所占用的内存空间大小和void*是相同的。 nullptr和(void*)0 前者是一个编译时期常量 后者只是一个强制转换表达式,返回的也是一个void*指针类型。 ...
常用特殊 静态类型动态类型 主要区别在于对类型进行检查的时间点。 对于所谓的静态类型,类型检查主要发生在编译阶段。 对于动态类型,类型检查主要发生在运行阶段(和类型推导相关)。 auto auto声明变量的类型必须由编译器在编译时期推导而得。 auto声明的变量必须被初始化,以使...
使用 CRegexpT 正则表达式,'\0'结束的。 表达匹配模式。 CRegexpT::Compile 正则表达式,'\0'结束的。 表达匹配模式。 CRegexpT::MatchExact 精确匹配。 tstring字符串,使用 \0 作为结束标志。 返回匹配结果 Match...
兼容性 预定义宏 __STDC_HOSTED__ 如果编译器的目标系统环境中包含完整的C库,那么这个宏就定义为1,否则值为0. __STDC__ C编译器通常用这个宏的值来表示编译器的实现是否与C标准一致。 C++11标准中这个宏是否定义以及定义成什么值由编译器决定。 __STD...
函数与回调 ref 包装对象的引用,在传递参数时消除对象拷贝的代价,或者将不可拷贝的对象变为可以拷贝。 reference_wrapper boost::cref boost::ref unwrap_ref bind 适配任意的可调用对象,如函数指针、函数引用、成员函数指针、函数...
array dynamic_bitset test:第n位是否为1 any:如果存在1,返回true none:不存在1,返回true count:容器中所有值为1的元素的数量 set:置全部或特定的位置值为1或0 reset:置全部或特定位置的值为0 flip:反转全部或特定位...
noncopyable 实现一个禁止拷贝的类。 实现 使用 ignore_unused 让暂时用不到又必须保留的变量在编译时不报警告。 实现 用法 optional 常量 函数 optional:构造未初始化的对象。 optional(v):构造初始化的对象。 optional(...
timer timer 毫秒级别的精度。 <boost/timer.hpp> using namespace boost; progress_timer 派生自timer。 会在析构时自动输出流逝的时间。 <boost/progress.hpp> usin...
进程内存空间布局 当运行一个可执行文件时,操作系统就会把这个可执行文件加载到内存中,此时进程就会有一个虚拟的地址空间(内存空间)。 BSS存放未初始化或者初始化为0的全局变量。 Linux下,可以通过nm列出可执行文件中的全局变量的地址。 全局变量以及全局的函数在编译时就已经分配...