![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
类型检查
chengjian1027
这个作者很懒,什么都没留下…
展开
-
解决C++函数模板重载时出现的歧义,函数模板隐藏技术
函数重载是C++中实现静态多态的重要机制,在定义函数重载时,特别是在有函数模板加入时,更需要小心定义参数,防止歧义的出现 举例来说,有下面两个重载函数,用于执行数据库查询并返回查询结果,分别对应到查单个值和查列表两个版本,模板类型参数V是查询结果的类型: template long query(const std::string &strSql, V *pv, CDBConn原创 2013-03-24 00:23:06 · 1879 阅读 · 0 评论 -
C++实现带类型安全检测的memset
使用memset将一个c++对象清零显然是灾难性的,特别是刚从c转过来的同学,就喜欢对定义的变量来个memset,比如std::string对象,结果可想而知。 c++里面专门有个概念叫做pod类型,所谓pod类型应该就是c里面的结构类型,对应的反义词就是c++的类类型 因此,在pod类型上调用memset清零是安全的,而非pod上则是禁止的。 pod类型的一个必要条件就是类型里原创 2013-03-23 01:11:08 · 1438 阅读 · 1 评论 -
C++泛型编程技巧 - 如何判断输入类型是否定义了特定的成员函数
判断一个类型包含了哪些数据或函数成员在提供了类型反射机制的高级语言上大有用处,而C++这种静态语言并未提供直接支持。 需要有类似MFC一样在每个类型里编写组织相关信息的代码才行。 本篇尝试使用一种非侵入式的判断方式,不需要修改原有类定义,来判断某个类型是否包含特定的成员数据或者函数 举例来说,有类型A,B定义如下: class A { public: bool less原创 2013-08-24 00:23:42 · 2510 阅读 · 2 评论