代码改变世界

网络库的设计与实现

2013-09-28 14:08 by yu_yu, 907 阅读, 0 推荐, 收藏, 编辑
摘要:前言 距离第一次发布iocpframework已经三年多了,这期间这款基于windows的网络库经过多次的修改,已经和第一版有非常大的区别了,但是整体思想架构并没有改变,这得益于当初对下载调度器的认识--模块应该是可替换的,这也是后话了。 在阅读本文的时候,希望你能有以下的基础: 熟悉C++11 ,auto、decltype、lambda、type_traits、move等... 阅读全文

object pool

2013-09-19 13:42 by yu_yu, 560 阅读, 0 推荐, 收藏, 编辑
摘要:这是一个简单易用的对象池,很多系统对资源的访问快捷性及可预测性有严格要求,列入包括网络连接、对象实例、线程和内存。而且还要求解决方案可扩展,能应付存在大量资源的情形。 object pool针对特定类型的对象循环利用,这些对象要么创建开销巨大,要么可创建的数量有限。而且在pool中的对象需要做到无状态。 如何使用 utility::object_pool_t pool1... 阅读全文

又一个lua与C++粘合层框架

2013-09-19 11:49 by yu_yu, 783 阅读, 0 推荐, 收藏, 编辑
摘要:背景: 这是之前那篇烂文章的一个扩展吧!在游戏领域,特别多的使用到lua,作为C++的补充,当然会用到lua与C++的交互。lua提供了与C++交互的API,但是这些API各种坑爹、各种坑,各种繁琐,有的API操作了lua栈,有的却没有。为了解决lua原生API的问题,就出现了一些框架、库来改善,比如lua++,luabind…,窃以为,luabind是史上最强大的lua与C++粘合层,无... 阅读全文

C++接口导出到lua组件

2013-05-28 16:48 by yu_yu, 380 阅读, 0 推荐, 收藏, 编辑
摘要:玩过lua的朋友肯定知道,C++要导出接口道lua里其实挺费事儿的,需要考虑lua调用C++后,栈如何弹出相应类型的参数,如何把C++的返回值压入lua栈。最麻烦,不省心且容易出错的就是导出一个接口就需要写一堆破代码。 lua++?luabind?好吧,就当你们没用过! 看看下面的接口,也就是你需要写的代码,如果觉得还行,下载下来一起讨论吧,你觉得呢? 这是注册... 阅读全文

当std::ref遇到前置声明

2013-05-14 09:51 by yu_yu, 291 阅读, 0 推荐, 收藏, 编辑
摘要:话说,起因是这样的: 有一个前置声明的类型 然后又一个回调函数使用了一个session_t的引用(注意,在下面这段代码能编译通过) 在这里,handler_(session,…)可以看成是一个std::function的对象,而handler的原型是 [](network::session_t &, …){};在这里handler_只需要把session以引用的方式转发出去就... 阅读全文

数据库粘合层--基于protobuffer

2013-03-05 14:17 by yu_yu, 479 阅读, 0 推荐, 收藏, 编辑
摘要:背景: 最近在工作中,受到大量数据库操作的折磨。由于采用拼接字符串的方式来进行数据库操作,带来了每个数据库操作业务都需要提供一个接口,导致同一张表的操作需要一堆堆接口。比如表person_t有3个字段(age、name、sex),如果对age和sex做update,需要一个接口,如果对age的update那又需要一个接口,对name的update还需要一个字段。这种接口会根据业务不断衍生出... 阅读全文

C++11各种资源及个人见解

2013-01-31 09:52 by yu_yu, 653 阅读, 0 推荐, 收藏, 编辑
摘要:本文是自己学习C++11过程中见到的,理解的一个过程记录,希望能和大家分享。其中,肯定有许多不恰当的地方,有很多偏见,但还望各位看官明鉴,指出不是。俗话说大家进步才是真的进步。 阅读全文

数据结果集的一种透传解决方法

2012-12-16 14:04 by yu_yu, 399 阅读, 0 推荐, 收藏, 编辑
摘要:数据结果集的透传一种实现方案 阅读全文

从operator<<谈函数重载决议

2012-12-10 10:25 by yu_yu, 766 阅读, 0 推荐, 收藏, 编辑
摘要:C++的函数重载决议 阅读全文