随笔分类 -  C++

boost c++
《深入应用C++11:代码优化与工程级应用》开始发售
摘要:我的新书《深入应用C++11:代码优化与工程级应用》已经开始在华章微店发售了,下面是链接。京东发售链接china-pub发售链接亚马逊发售链接天猫商城发售链接适用读者:C++11初学者和爱好者。到时候书的勘误和更新会发布在当前博客。如果有意见和建议欢迎发送到专门的邮箱:cpp11book@163.c... 阅读全文

posted @ 2015-05-12 15:54 qicosmos(江南) 阅读(2214) 评论(18) 推荐(7) 编辑

一个更好的C++序列化/反序列化库Kapok
摘要:KapokFAQ1.Kapok的特点简单,易用,header-only,只需要引用Kapok.hpp即可;高效,初步测试性和messagepack相当。它是纯c++11实现,因此需要支持C++11的编译器。2.主要功能对对象进行自动化的序列化和反序列化,用起来非常简单,先来看个序列化/反序列化一个t... 阅读全文

posted @ 2015-05-08 11:57 qicosmos(江南) 阅读(11636) 评论(27) 推荐(2) 编辑

C++技术沙龙主要内容
摘要:5月16日技术沙龙有三场主题演讲。第一场演讲内容:C++11 Make life easier.第二场演讲内容:玩转编译器,让编译器给我们帮大忙.第三场演讲内容:C++的小魔法.精彩值得期待!!你还在等什么,快来报名吧。 阅读全文

posted @ 2015-05-06 21:42 qicosmos(江南) 阅读(869) 评论(0) 推荐(0) 编辑

C++11模版元编程
摘要:1.概述 模版元编程(template metaprogram)是C++中最复杂也是威力最强大的编程范式,它是一种可以创建和操纵程序的程序。模版元编程完全不同于普通的运行期程序,它很独特,因为模版元程序的执行完全是在编译期,并且模版元程序操纵的数据不能是运行时变量,只能是编译期常量,不可修改,另外它 阅读全文

posted @ 2015-05-05 22:07 qicosmos(江南) 阅读(55097) 评论(5) 推荐(15) 编辑

C++技术沙龙报名开始啦!
摘要:沙龙主题:C++甜点关键字:C++之美,黑科技,神奇和魔力内容:三场主题演讲和一场开放性话题讨论时间:2015年5月16日下午2:00-6:00地点:珠海金山办公软件1楼VIP厅,珠海市吉大景山路莲山巷8号金山软件大厦参与方式:邀请和报名。报名唯一方式:show me your code,填写报名信... 阅读全文

posted @ 2015-05-05 16:44 qicosmos(江南) 阅读(605) 评论(0) 推荐(0) 编辑

泛化之美--C++11可变模版参数的妙用
摘要:1概述<!--?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-com:office:office" /--> C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高 阅读全文

posted @ 2015-03-10 14:30 qicosmos(江南) 阅读(141737) 评论(24) 推荐(39) 编辑

play with variadic template
摘要:我曾在公司内部的一次技术培训课程中讲到如何展开可变模板参数的问题,具体来说是如何打印可变模板参数,我初略数了一下,有很多种,下面来看看到底有多少种不同的方法展开可变模板参数吧。 写法1很普通,没什么特别的,算是中规中矩,也是一般情况下的展开方式,下面来看特殊一点的展开方式: 写法2比较巧妙,借助初始 阅读全文

posted @ 2015-03-02 21:54 qicosmos(江南) 阅读(2093) 评论(2) 推荐(0) 编辑

Nan-boxing技术介绍
摘要:NaN-boxing看起来像英文翻译的“南拳”,其实它是表示一个无效的double数。NaN-boxing技术:通过一个64位的数字来表示多种数据类型的技术,它通过一个nan浮点数来保存数据,根据IEEE-754浮点数标准,double类型的NAN形式为:sign | exponent | ... 阅读全文

posted @ 2015-02-11 10:05 qicosmos(江南) 阅读(3582) 评论(3) 推荐(3) 编辑

从4行代码看右值引用
摘要:从4行代码看右值引用 概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的: int i = 0; int& j = i; 这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就是右 阅读全文

posted @ 2015-02-10 11:50 qicosmos(江南) 阅读(57956) 评论(19) 推荐(43) 编辑

C++ REST SDK的基本用法
摘要:微软开发了一个开源跨平台的http库--C++ REST SDK(http://casablanca.codeplex.com/),又名卡萨布兰卡Casablanca,有个电影也叫这个名字,也许这个库的作者很喜欢这个电影吧。从REST SDK这个名字可以看出它是处理rest API的,对REST... 阅读全文

posted @ 2014-11-14 20:19 qicosmos(江南) 阅读(46220) 评论(5) 推荐(4) 编辑

c++11新增的一些便利的算法
摘要:c++11新增加了一些便利的算法,这些新增的算法使我们的代码写起来更简洁方便,这里仅仅列举一些常用的新增算法,算是做个总结,更多的新增算法读者可以参考http://en.cppreference.com/w/cpp/algorithm。 算法库新增了三个用于判断的算法all_of、any_of... 阅读全文

posted @ 2014-09-07 12:45 qicosmos(江南) 阅读(9334) 评论(3) 推荐(3) 编辑

(原创)智能指针拾遗
摘要:本文将介绍智能指针用法的一些平时可能没注意的细节(关于智能指针的基本用法可以参考前面的博文)。1.unique_ptr和shared_ptr在构造上的一点差异 unique_ptr支持动态数组,而shared_ptr不能直接支持动态数组。std::unique_ptr ptr(new int[10... 阅读全文

posted @ 2014-08-04 13:46 qicosmos(江南) 阅读(7039) 评论(2) 推荐(1) 编辑

(原创)拨开迷雾见月明-剖析asio中的proactor模式(二)
摘要:在上一篇博文中我们提到异步请求是从上层开始,一层一层转发到最下面的服务层的对象win_iocp_socket_service,由它将请求转发到操作系统(调用windows api),操作系统处理完异步请求之后又是如何返回给应用程序的呢,这里是通过iocp(完成端口)来实现的。让我们先来简要的看看... 阅读全文

posted @ 2014-07-13 13:24 qicosmos(江南) 阅读(2494) 评论(0) 推荐(1) 编辑

(原创)拨开迷雾见月明-剖析asio中的proactor模式(一)
摘要:使用asio之前要先对它的设计思想有所了解,了解设计思想将有助于我们理解和应用asio。asio是基于proactor模式的,asio的proactor模式隐藏于大量的细节当中,要找到它的踪迹,往往有种只见树木不见森林之感,笔者将剖析asio中的proactor模式,一步一步揭开它的面纱,最终拨... 阅读全文

posted @ 2014-07-10 22:50 qicosmos(江南) 阅读(3918) 评论(0) 推荐(3) 编辑

(原创)实现一个简单的字符串格式化方法
摘要:c#中格式化字符串很简单,比如我们可以这样格式化一个字符串:string str = string.format("test {0}, {1}, {2}, {1}, {0} sample", 1, 2.3, "ok");Console.WriteLine(str);将输出:test 1, 2.3, ... 阅读全文

posted @ 2014-07-05 12:02 qicosmos(江南) 阅读(3879) 评论(16) 推荐(2) 编辑

(原创)sqlite封装库SmartDB1.3发布
摘要:最近终于稍微有点空对SmartDB进行升级了,SmartDB1.3比之前的版本做了简化,增强了易用性和灵活性。 SmartDB对sqlite做了一层封装,屏蔽了诸多细节,使得我们使用起来很方便。在注重易用性的基础上还兼顾了性能和灵活性。易用性接口很简单,基本接口有如下几个:void Open(... 阅读全文

posted @ 2014-06-23 23:01 qicosmos(江南) 阅读(4867) 评论(11) 推荐(10) 编辑

(原创)舌尖上的c++--相逢
摘要:引子 前些时候,我在群里出了一道题目:将变参的类型连接在一起作为字符串并返回出来,要求只用函数实现,不能借助于结构体实现。用结构体来实现比较简单:template struct Connect;templatestruct Connect{ static string GetName() ... 阅读全文

posted @ 2014-05-26 14:32 qicosmos(江南) 阅读(2892) 评论(7) 推荐(4) 编辑

std::bind技术内幕
摘要:引子 最近群里比较热闹,大家都在山寨c++11的std::bind,三位童孩分别实现了自己的bind,代码分别在这里:木头云的实现mr.li的实现null的实现,null的另一个版本的实现 这些实现思路和ms stl的std::bind的实现思路是差不多的,只是在实现的细节上有些不同。个人觉得木... 阅读全文

posted @ 2014-05-12 14:45 qicosmos(江南) 阅读(13874) 评论(1) 推荐(11) 编辑

(原创)一个超级对象池的实现
摘要:对象池对于创建开销比较大的对象来说很有意义,为了避免重复创建开销比较大的对象,我们可以通过对象池来优化。对象池的思路比较简单,事先创建好一批对象,放到一个集合中,以后每当程序需要新的对象时候,都从对象池里获取,每当程序用完该对象后,都把该对象归还给对象池。这样会避免重复的对象创建,提高程序性能。... 阅读全文

posted @ 2014-04-18 17:24 qicosmos(江南) 阅读(9632) 评论(7) 推荐(3) 编辑

(原创)composite模式和bridge模式是天生的好朋友
摘要:composite模式的意图是:将对象组合成树形结构以表示“部分-整体”的层次结构。composite使得用户对单个对象和组合对象的使用具有一致性。它的类图如下: composite模式的实现分为透明的composite模式和安全的composite模式,二者的差别是添加、删除和获取子节点的行为放到基类还是放到复合节点类中。透明的则放到基类中,但是这些行为对于不可再分的叶子节点来说是无意义的,对于存在子节点的复合节点才有意义。但是透明的组合模式具有更好的一致性和可读性,一般都建议用透明的组合模式,在基类中提供这些行为的空的虚方法,只在复合节点中重写这些虚方法。 透明的组合模式的简单实现... 阅读全文

posted @ 2014-04-11 15:04 qicosmos(江南) 阅读(2517) 评论(5) 推荐(3) 编辑

导航