- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 条款45:运用成员函数模板接受所有兼容类型
说的是这么一个问题。现在要实现一个智能指针类,SmartPtr,可以保存管理对象的地址。析构就不实现了,这个条款讨论的和资源管理无关。既然是个指针,就要满足裸指针中,子类到基类多态继承的功能。也就是从子类Bottom、Middle指针到基类Top指针的转换。
2024-08-06 17:28:22
341
原创 条款44:将与参数无关的代码抽离template
这里主要说的是,在编译器中,它们是不同的类型,但实际上在二进制表达上,他们是相同的类型,但是链接器没有做去重。比如文中举例,有的机器上,int和long在二进制层面其实是一样的。不同的参数会展开成不同的模板,导致代码膨胀。●这种写法,不同的n,比如SquareMatrix和SquareMatrix,会展开出不同的实现,导致代码膨胀。注意,子类调用基类invert时候,加上了SquareMatrixBase::以表明调用的是基类的invert,不然会出现递归。
2024-08-06 17:18:42
787
原创 int转bool原理
突然好奇两个无关紧要的问题,一个是,在汇编层面,int是怎么转成bool类型的;一个是if中直接对int类型变量进行判断,中间是怎么处理的?源码:int main() { int a = 10; bool b = false; b = a;}反汇编: Dump of assembler code for function main: 0x00000000004005b0 <+0>: push %rbp 0x00000000004005b
2020-12-30 20:01:23
4432
原创 warning: enumeration value ‘FEA_INT‘ not handled in switch
warning: enumeration value ‘FEA_INT’ not handled in switch编译时候报这个警告,看了下代码,是有一个枚举类型,num fea_data_type { FEA_NONE = -1, FEA_INT = 0, FEA_DOUBLE = 1, FEA_STRING = 2, FEA_FLOAT_VECTOR = 3, FEA_UINT64 = 4, FEA_SHARED_
2020-12-23 21:34:14
550
Linux UNIX系统编程手册
2018-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人