随笔分类 -  C/C++

摘要:一些可能用到的工具 并发编程 1.FastFlow(C/C++):http://calvados.di.unipi.it/dokuwiki/doku.php/ffnamespace:about 2.Disruptor(Java):https://github.com/LMAX-Exchange/di 阅读全文
posted @ 2016-07-18 16:50 goooon 阅读(193) 评论(0) 推荐(0)
摘要:转自http://blog.csdn.net/myan/article/details/5928531 这是那篇C++0X的正文。太长,先写上半部分发了。 Function/bind可以是一个很简单的话题,因为它其实不过就是一个泛型的函数指针。但是如果那么来谈,就没意思了,也犯不上写这篇东西。在我看 阅读全文
posted @ 2016-07-12 10:21 goooon 阅读(301) 评论(0) 推荐(0)
摘要:通过上一节的例子,在反射里加入数据成员,属性等,实现更加复杂的对象。 1.实现 2.使用 3.结果 阅读全文
posted @ 2016-07-07 23:45 goooon 阅读(152) 评论(0) 推荐(0)
摘要:C++不像C#,java那样天生编译过程实现反射功能,只能在代码层面注册来实现。比如QT,UE等,为了实现反射功能,提供了特殊的宏定义,并且使用工具将宏生成相应的C++代码实现反射功能的。 1.定义 2.使用 3.结果 getIntValue 2 这里实现的反射功能还是很简单,没有对输入参数,输出参 阅读全文
posted @ 2016-07-07 18:39 goooon 阅读(195) 评论(0) 推荐(0)
摘要:1.定义 结合前面的内容,可以定义如下的基类 定义继承类型 2.使用 3.结果 阅读全文
posted @ 2016-07-06 22:59 goooon 阅读(184) 评论(0) 推荐(0)
摘要:Type Traits, 类型萃取,这个概念涉及到的内容太多。基本常用的萃取方法可以参考 http://en.cppreference.com/w/cpp/types 这里主要记录一下对函数的萃取技巧. 上面只是对函数做了简单的包装,并且forward参数调用。 如果需要更精确的参数控制,则可以如下 阅读全文
posted @ 2016-07-06 22:13 goooon 阅读(235) 评论(0) 推荐(0)
摘要:RTTI(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。 C++ 里通过虚函数增加额外信息的方法实现了RTTI。GCC和VS的实现也大同小异,并且都有专门的设置来开关来禁止或使用RTTI。 和R 阅读全文
posted @ 2016-07-06 13:32 goooon 阅读(336) 评论(0) 推荐(0)
摘要:在内存管理中,经常需要自定义内存分配释放,也就是需要定义new 和 delete. 通常为了有针对性的对某些对象的内存分配进行管理,定义一个内存管理基类 1.定义 2.使用 1 class MemObject : public Memory { }; 3.调用 通过该方式,实现内存的自我管理和监控。 阅读全文
posted @ 2016-07-06 11:21 goooon 阅读(249) 评论(0) 推荐(0)
摘要:SFINAE:即Substitution Failure Is Not an Error!可以理解为匹配失败不是错误,更严格的说应该是参数匹配失败不是一个编译时错误。 C++函数匹配的顺序遵循的原则是按照以下顺序 1.寻找参数的完美匹配函数,找到则使用 2.寻找模板函数,若实例化后的函数能够匹配则使 阅读全文
posted @ 2016-07-05 17:06 goooon 阅读(908) 评论(0) 推荐(0)
摘要:1. 当一个文件里面代码过多时,往往需要将代码分组,C#里面有#pragma region的控制字,而C++里面缺少这个,可以使用下面这个来替代。 2.预处理时计算数组大小 3.属性 使用时就可以像C#一样了 阅读全文
posted @ 2016-07-05 16:04 goooon 阅读(148) 评论(0) 推荐(0)
摘要:随着C++ 11的语法越来越复杂,功能也越来越强。用泛型+返回类型推导的方法来实现常量字符串的处理,能实现宏实现不了的地方,并且在编译期实现 SO上的牛人太多了,以下是出处 http://stackoverflow.com/questions/15858141/conveniently-declar 阅读全文
posted @ 2016-07-05 15:38 goooon 阅读(1704) 评论(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 阅读(232) 评论(0) 推荐(0)
摘要:在泛型编程中,很多时候用到类型映射,类型转换等,比如int2type,type2type. 在有些时候可能需要将常量静态字符串作为类型,也就是string2type. //https://github.com/ColinH/PEGTL 这个库将泛型大量用到了字符串处理中,其中就有string2typ 阅读全文
posted @ 2016-07-05 14:59 goooon 阅读(255) 评论(0) 推荐(0)
摘要:重载(overloading),简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。 C++里最常用和熟悉的有函数重载,运算符重载,模板重载。在开发过程中有时为了方便,用到宏,网上查了下,也能将宏重载。 http://st 阅读全文
posted @ 2016-07-05 09:57 goooon 阅读(4861) 评论(0) 推荐(1)