标签:初始化 模板类 type init 重载 bsp __line__ 编译器 限制
用实参初始化形参时会忽略掉顶层const。
尽量使用常量引用,普通引用会限制所能接受的实参类型,也会给调用者误导。
如果实参类型相同,可用initializer_list模板类型;如类型不同,使用可变参数模板。
初始化列表支持size() begin() end() ,拷贝和赋值不会拷贝元素,而是共享。
typedef int arrT[10];
using arrT=int[10];
arrT* func(int i);
不用类型别名声明函数
int (*func(int i)) [10];
使用尾置返回类型
auto func(int i) -> int (*) [10];
使用decltype
顶层const不区分,所以不能重载
底层const可以重载,const对象只能传递给const形参,而非常量对象编译器优先调用非常量的版本。
当为真的时候,什么都不做;为假时输出信息并终止程序的执行。
依赖于NDEBUG预处理变量的状态
NDEBUG还可用于编写调试代码
编译器定义的几个有用的变量
__func__ 当前调试的函数的名字const char数组
__FILE__ 存放文件名的字符串字面值
__LINE__ 存放当前行号的整型字面值
__TIME__ 存放文件编译时间的字符串字面值
__DATE__ 存放文件编译日期的字符串字面值
标签:初始化 模板类 type init 重载 bsp __line__ 编译器 限制
原文地址:https://www.cnblogs.com/logchen/p/9576054.html