摘要: SFINAE:即Substitution Failure Is Not an Error!可以理解为匹配失败不是错误,更严格的说应该是参数匹配失败不是一个编译时错误。 C++函数匹配的顺序遵循的原则是按照以下顺序 1.寻找参数的完美匹配函数,找到则使用 2.寻找模板函数,若实例化后的函数能够匹配则使 阅读全文
posted @ 2016-07-05 17:06 goooon 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 1. 当一个文件里面代码过多时,往往需要将代码分组,C#里面有#pragma region的控制字,而C++里面缺少这个,可以使用下面这个来替代。 2.预处理时计算数组大小 3.属性 使用时就可以像C#一样了 阅读全文
posted @ 2016-07-05 16:04 goooon 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 随着C++ 11的语法越来越复杂,功能也越来越强。用泛型+返回类型推导的方法来实现常量字符串的处理,能实现宏实现不了的地方,并且在编译期实现 SO上的牛人太多了,以下是出处 http://stackoverflow.com/questions/15858141/conveniently-declar 阅读全文
posted @ 2016-07-05 15:38 goooon 阅读(1544) 评论(0) 推荐(0) 编辑
摘要: 有了上一篇的str2type,类似的可以定义numb2string 1.定义 2.实现 3.使用 1 std::cout << blog_numb2str(12345678) << std::endl; 4.结果 12345678 5.优缺点 阅读全文
posted @ 2016-07-05 15:18 goooon 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 在泛型编程中,很多时候用到类型映射,类型转换等,比如int2type,type2type. 在有些时候可能需要将常量静态字符串作为类型,也就是string2type. //https://github.com/ColinH/PEGTL 这个库将泛型大量用到了字符串处理中,其中就有string2typ 阅读全文
posted @ 2016-07-05 14:59 goooon 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 重载(overloading),简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。 C++里最常用和熟悉的有函数重载,运算符重载,模板重载。在开发过程中有时为了方便,用到宏,网上查了下,也能将宏重载。 http://st 阅读全文
posted @ 2016-07-05 09:57 goooon 阅读(4569) 评论(0) 推荐(1) 编辑