C++_ 模板学习二
非类型模板参数 NTTP 概述 前面使用的模板参数都是“类型” 非类型模板参数传递的是编译期常量值 固定容量的栈 值也是类型身份的一部分 下面是两个完全不同的类型 非类型模板实参必须是编译期常量 合法 不合法 Capacity 不会作为普通成员存储 Capacity 是编译期值,...
非类型模板参数 NTTP 概述 前面使用的模板参数都是“类型” 非类型模板参数传递的是编译期常量值 固定容量的栈 值也是类型身份的一部分 下面是两个完全不同的类型 非类型模板实参必须是编译期常量 合法 不合法 Capacity 不会作为普通成员存储 Capacity 是编译期值,...
相关功能 定义 bool型 直接使用值 直接修改值 string型 直接使用 修改值 int型 其他编译单元引用 其他 问题 似乎不支持Windows风格的参数 似乎用--help会有奔溃,没研究原因
概述 C++中,thunk技术主要用于处理多继承和虚函数调用时复杂的this指针调整问题 在构造对象的过程中,为虚函数表(vtable)填充函数指针时,编译器可能会插入thunk代码,以确保后续通过基类指针调用虚函数时,this指针能被正确调整 触发场景 通过非首个基类指针调用派...
大型模板源码阅读 概述 阅读大型模板项目时,最容易犯的错误是 从公共 API 跳进第一个模板定义,然后试图把所有分支、所有类型和所有平台代码全部看懂 正确方法是先固定一个具体调用,只追踪它实际经过的路径 我们只关心: 这个调用中每个模板参数是什么 最终选中了哪个重载 哪些对象被复...
运算符 符号 非成员 二元算术运算符 + - * / % 是 一元算术运算符 + - 是 按位运算符 ~ & | ^ << >> 是 逻辑运算符 ! && || 是 赋值运算符 = 否 复合赋值运算符 += -= *= /= %= ...
概述 decltype 从 C++11 引入,用来在编译期获取一个实体或表达式的类型 它与 auto 最大的区别是: auto 通常会进行类型退化,而 decltype 会精确保留 const、引用、数组以及表达式的值类别 规则一:未加括号的名字或成员访问 如果操作数是: 未加括...
搜索当前标签