金庆的专栏
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
(502)
1. C/C++(166)
(rss)
2. 网游开发(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 软工与管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
随笔档案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相册
公告照片
搜索
积分与排名
积分 - 648132
排名 - 25
最新评论
1. re: boost::asio::spawn 将一统C++网络库
asio 成为C++首选网络库
--linda
2. re: log4cxx中文输出错误补丁
评论内容较长,点击标题查看
--金庆
3. re: mingw编译OrzNet
能发送一个mingw编译好的OrzNet库给我吗? liuweiqcxy@163.com
谢谢!
--刘威
4. re: log4cxx中文输出错误补丁
评论内容较长,点击标题查看
--bigbad
5. re: log4cxx中文输出错误补丁
评论内容较长,点击标题查看
--bigbad
阅读排行榜
1. "multiple definition of" 错误(10959)
2. SVN中邪恶的replace(10887)
3. VS2005编译libevent(10390)
4. 混音算法的学习与研究(10106)
5. C调用lua脚本的效率测试(8985)
评论排行榜
1. VC6正在被抛弃(35)
2. VS2005编译libevent(21)
3. "multiple definition of" 错误(18)
4. C++引用优于指针(17)
5. ACE与ASIO之间关于Socket编程的比较(16)
1. C/C++
How are dtLinks created in NavMesh
posted @
2022-11-18 10:03
金庆 阅读(132) |
评论 (0)
编辑
C++ parameter passing rules
posted @
2022-10-29 11:01
金庆 阅读(122) |
评论 (0)
编辑
Naming Conventions for Accessors
posted @
2022-09-22 16:02
金庆 阅读(155) |
评论 (0)
编辑
Visual Studio 2019 Compiler Hangs
posted @
2021-07-31 15:16
金庆 阅读(279) |
评论 (0)
编辑
Fbx File Format Identifier
posted @
2021-05-30 09:55
金庆 阅读(287) |
评论 (0)
编辑
查找内存错误
posted @
2019-12-16 18:03
金庆 阅读(2142) |
评论 (0)
编辑
std::thread 中的异常会丢失调用栈
posted @
2019-09-26 17:19
金庆 阅读(1594) |
评论 (0)
编辑
用赋值代替 protobuf CopyFrom()
posted @
2019-04-04 17:57
金庆 阅读(4161) |
评论 (0)
编辑
vs2017 linux 编译输出改成 vs 格式
posted @
2018-11-21 10:57
金庆 阅读(811) |
评论 (0)
编辑
为 LiteIDE 添加选中标记
posted @
2018-01-06 11:05
金庆 阅读(702) |
评论 (0)
编辑
asio 协程中 yield
posted @
2017-12-07 14:51
金庆 阅读(1430) |
评论 (0)
编辑
Lua和C++之间调用效率测试
posted @
2017-08-30 17:25
金庆 阅读(1131) |
评论 (0)
编辑
conan-transit服上的库列表
posted @
2017-08-05 13:14
金庆 阅读(907) |
评论 (0)
编辑
Premake 生成 Makefile 的缺省配置
posted @
2017-07-31 15:00
金庆 阅读(472) |
评论 (0)
编辑
VC6工程因行尾格式无法转换到VS2015
posted @
2017-06-07 10:22
金庆 阅读(653) |
评论 (0)
编辑
std::hash实现太简单分布不匀
posted @
2017-05-26 12:00
金庆 阅读(1266) |
评论 (0)
编辑
用preload加载Lua导出模块
posted @
2017-05-10 16:11
金庆 阅读(721) |
评论 (0)
编辑
grpc++不支持异步多次写入
posted @
2017-05-07 10:38
金庆 阅读(757) |
评论 (0)
编辑
支持 proto3 的 lua 绑定库 LuaPbIntf
posted @
2017-04-25 11:43
金庆 阅读(783) |
评论 (0)
编辑
建议proto文件按包名分子目录
posted @
2017-04-17 14:40
金庆 阅读(1354) |
评论 (0)
编辑
behaviac动态库运行出错
posted @
2017-03-16 11:40
金庆 阅读(726) |
评论 (0)
编辑
Lua53 premake
posted @
2017-02-18 22:18
金庆 阅读(520) |
评论 (0)
编辑
用grpc_cb代替grpc++
posted @
2017-01-22 18:06
金庆 阅读(786) |
评论 (0)
编辑
hiredis异步接口封装并导出到Lua
posted @
2017-01-05 18:42
金庆 阅读(975) |
评论 (0)
编辑
hiredis的各种windows版本
posted @
2016-12-28 11:02
金庆 阅读(2750) |
评论 (0)
编辑
结构体初始化列表错误
posted @
2016-12-12 17:16
金庆 阅读(877) |
评论 (0)
编辑
C++用LuaIntf调用Lua代码示例
posted @
2016-12-09 22:17
金庆 阅读(498) |
评论 (0)
编辑
log4cxx用环境变量设置输出文件名
posted @
2016-12-05 15:31
金庆 阅读(692) |
评论 (0)
编辑
gdb不知为何显示2次析构
posted @
2016-11-18 16:19
金庆 阅读(803) |
评论 (0)
编辑
gloox配置聊天室
posted @
2016-09-28 17:44
金庆 阅读(1298) |
评论 (0)
编辑
传Lua对象到Cpp
posted @
2016-07-19 16:09
金庆 阅读(398) |
评论 (0)
编辑
Premake可生成vcxproj.filters
posted @
2016-07-08 18:46
金庆 阅读(413) |
评论 (0)
编辑
premake设置静态运行库
posted @
2016-05-26 12:03
金庆 阅读(550) |
评论 (0)
编辑
boost::asio::spawn 将一统C++网络库
posted @
2016-05-20 12:17
金庆 阅读(1826) |
评论 (1)
编辑
用premake5创建lua532工程
posted @
2016-04-25 15:46
金庆 阅读(608) |
评论 (0)
编辑
tolua++没法用
posted @
2016-04-23 08:48
金庆 阅读(514) |
评论 (0)
编辑
Vc2015 utf8 格式出错
posted @
2016-03-15 15:53
金庆 阅读(930) |
评论 (0)
编辑
clang-format中文出错
posted @
2016-03-10 20:28
金庆 阅读(385) |
评论 (0)
编辑
Erlang Port 小心换行
posted @
2016-01-20 14:46
金庆 阅读(372) |
评论 (0)
编辑
gRPC异步处理应答
posted @
2016-01-15 14:46
金庆 阅读(1616) |
评论 (0)
编辑
NuGet包断线续传下载
posted @
2015-12-31 18:35
金庆 阅读(561) |
评论 (0)
编辑
RPCZ中的智能指针单例
posted @
2015-02-28 21:33
金庆 阅读(597) |
评论 (0)
编辑
VS2010 express中改变VC Default include/lib/… 目录
posted @
2015-02-22 10:08
金庆 阅读(494) |
评论 (0)
编辑
让 Google Test 出错时断点
posted @
2015-01-27 19:07
金庆 阅读(454) |
评论 (0)
编辑
成员全内联的类无法导出
posted @
2015-01-23 16:11
金庆 阅读(396) |
评论 (0)
编辑
CMake搜索Boost1.57失败及解决
posted @
2015-01-20 12:18
金庆 阅读(1280) |
评论 (0)
编辑
CMake设置FOLDER失败及解决
posted @
2014-12-07 23:11
金庆 阅读(1229) |
评论 (0)
编辑
boost::coroutine 无法显示调用栈
posted @
2014-11-07 09:45
金庆 阅读(1175) |
评论 (0)
编辑
代码那些事之命名
posted @
2014-11-04 21:00
金庆 阅读(567) |
评论 (0)
编辑
boost::bad_weak_ptr的原因
posted @
2014-09-11 16:20
金庆 阅读(1504) |
评论 (0)
编辑
解决 RtlCreateActivationContext() failed 0xc000000d
posted @
2014-04-29 11:15
金庆 阅读(812) |
评论 (0)
编辑
配置文件自动重新加载
posted @
2014-04-04 20:55
金庆 阅读(845) |
评论 (0)
编辑
多进程log4cxx区分日志
posted @
2014-03-29 09:37
金庆 阅读(1266) |
评论 (0)
编辑
gcov 统计 inline 函数
posted @
2014-02-28 12:36
金庆 阅读(618) |
评论 (0)
编辑
Linux编译Windows共享目录下代码
posted @
2014-02-26 11:47
金庆 阅读(581) |
评论 (0)
编辑
VC和GCC静态变量析构顺序不同
posted @
2014-02-10 08:50
金庆 阅读(545) |
评论 (0)
编辑
智能指针单例
posted @
2014-02-02 14:44
金庆 阅读(758) |
评论 (0)
编辑
用 boost::multi_index 管理玩家
posted @
2014-01-27 14:58
金庆 阅读(621) |
评论 (0)
编辑
VC2010工程依赖不再自动链接
posted @
2014-01-19 13:15
金庆 阅读(406) |
评论 (0)
编辑
自建log4cxx.sln
posted @
2014-01-18 16:26
金庆 阅读(463) |
评论 (0)
编辑
解决log4cxx退出时的异常
posted @
2014-01-15 17:18
金庆 阅读(942) |
评论 (0)
编辑
如何运行 rpcz python example
posted @
2013-12-11 10:12
金庆 阅读(877) |
评论 (0)
编辑
rpcz VC2010 构建
posted @
2013-12-08 21:19
金庆 阅读(2361) |
评论 (0)
编辑
关于C++程序的编码问题
posted @
2013-11-29 17:08
金庆 阅读(762) |
评论 (0)
编辑
公平队列的实现
posted @
2013-11-25 18:09
金庆 阅读(1065) |
评论 (0)
编辑
用boost::bind构造boost::coroutine
posted @
2013-11-22 15:56
金庆 阅读(1029) |
评论 (0)
编辑
协程示例
posted @
2013-11-22 12:10
金庆 阅读(826) |
评论 (0)
编辑
boost::this_thread::sleep_for()会死锁
posted @
2013-09-24 17:44
金庆 阅读(3064) |
评论 (0)
编辑
boost pool_allocator 报错 'rebind'
posted @
2013-09-18 11:03
金庆 阅读(728) |
评论 (0)
编辑
不要在#include中使用".."
posted @
2013-08-30 12:20
金庆 阅读(698) |
评论 (0)
编辑
CMake命令行添加编译参数
posted @
2013-08-08 11:45
金庆 阅读(7152) |
评论 (0)
编辑
Zeromq自连接错误
posted @
2013-07-12 11:41
金庆 阅读(795) |
评论 (0)
编辑
Glog 和 Log4cxx 的对比
posted @
2013-06-25 14:42
金庆 阅读(1318) |
评论 (0)
编辑
VC2010编译 thrift compiler
posted @
2013-06-03 10:18
金庆 阅读(1107) |
评论 (0)
编辑
VC2008编译libthrift
posted @
2013-05-10 09:15
金庆 阅读(1376) |
评论 (0)
编辑
线程安全的随机数生成
posted @
2013-01-23 18:30
金庆 阅读(3176) |
评论 (5)
编辑
MinGw编译Boost
posted @
2013-01-09 14:10
金庆 阅读(2612) |
评论 (0)
编辑
封装boost::format
posted @
2012-12-17 17:18
金庆 阅读(1015) |
评论 (0)
编辑
log4cxx中文输出错误补丁
posted @
2012-11-19 20:29
金庆 阅读(1473) |
评论 (3)
编辑
CMake生成版本号
posted @
2012-08-15 12:30
金庆 阅读(1997) |
评论 (0)
编辑
用protobuf定义消息及处理
posted @
2012-08-02 18:18
金庆 阅读(6263) |
评论 (0)
编辑
多线程开启gprof性能测试的简易方法
posted @
2012-08-01 16:23
金庆 阅读(1432) |
评论 (0)
编辑
MySql的CMake选项支持gcov和gprof
posted @
2012-07-11 12:15
金庆 阅读(1168) |
评论 (0)
编辑
CMake添加gcov代码覆盖测试支持
posted @
2012-07-11 11:11
金庆 阅读(3815) |
评论 (0)
编辑
自动删除的定时器队列
posted @
2012-06-20 13:28
金庆 阅读(1138) |
评论 (2)
编辑
MySQL Connector/C++ 调用存储过程
posted @
2012-04-13 10:25
金庆 阅读(1592) |
评论 (0)
编辑
CMake区分debug、release版本
posted @
2012-03-27 13:56
金庆 阅读(7149) |
评论 (0)
编辑
跨平台的线程安全的localtime和gmtime
posted @
2012-02-21 14:27
金庆 阅读(2110) |
评论 (0)
编辑
VC的静态常量成员
posted @
2012-02-13 11:05
金庆 阅读(481) |
评论 (0)
编辑
log4cxx的使用模式
posted @
2011-11-24 18:02
金庆 阅读(1222) |
评论 (3)
编辑
VC2008移动头文件未重建
posted @
2011-11-16 13:31
金庆 阅读(378) |
评论 (0)
编辑
怎样调用mysqlcppconn中的escapeString
posted @
2011-10-10 16:48
金庆 阅读(586) |
评论 (0)
编辑
给VS2005的编辑器添加右边界线
posted @
2011-09-19 15:53
金庆 阅读(418) |
评论 (0)
编辑
mingw编译OrzNet
posted @
2011-08-17 11:43
金庆 阅读(1033) |
评论 (1)
编辑
编译优化生成坏代码
posted @
2011-07-13 10:40
金庆 阅读(945) |
评论 (0)
编辑
log4cxx-0.10.0日志中文乱码
posted @
2011-06-16 10:35
金庆 阅读(2129) |
评论 (0)
编辑
模板重复实例化错误
posted @
2011-01-14 15:57
金庆 阅读(508) |
评论 (0)
编辑
const和volatile一起用
posted @
2010-10-19 10:21
金庆 阅读(547) |
评论 (0)
编辑
预编译输出的行标志
摘要: 调用预编译器cpp预编译main.cpp生成main.i文件:
$cpp main.cpp > main.i
或者:
$gcc -E main.cpp > main.i
生成的行号标志中有如下格式的:
# 1 “/usr/include/features.h” 1 3 4
阅读全文
posted @
2010-09-15 10:53
金庆 阅读(561) |
评论 (0)
编辑
数组部分初始化
posted @
2010-09-09 00:27
金庆 阅读(706) |
评论 (0)
编辑
提取辅助类
摘要: 那些仅使用公共接口就可以完成的操作都可以提取出来。
平时应该尽量优先使用公共接口完成功能,以方便日后的类拆分。
阅读全文
posted @
2010-04-21 09:32
金庆 阅读(424) |
评论 (0)
编辑
类不变式的实现
摘要: 类不变式的实现: 每个类定义一个非公有的非虚方法isValid(),不带参数,返回布尔值。
阅读全文
posted @
2010-04-12 10:18
金庆 阅读(707) |
评论 (0)
编辑
dl_call()调用Dll/so
摘要: dl_call()是StlSoft库中的功能。
dl_call()以一种自然的语法,调用动态链接库中的函数。
阅读全文
posted @
2010-03-26 17:43
金庆 阅读(593) |
评论 (0)
编辑
圈复杂度和代码覆盖率
摘要: 100%代码覆盖率的单元测试并不代表是足够的测试,下面是一个例子:
阅读全文
posted @
2010-03-09 09:42
金庆 阅读(3847) |
评论 (0)
编辑
需要判断指针为空吗
摘要: 前几天,KOK3客户端因为我的资源配置错误而崩溃了。
调试器带我到了出错的代码行,是一个空指针解引用。
代码大致如下:
阅读全文
posted @
2010-02-11 09:48
金庆 阅读(4471) |
评论 (11)
编辑
随机数生成器应该如何单元测试?
摘要: 有个随机数生成函数,按以下分布随机生成1个1-100的整数:90%概率为1-50,10%概率为51-100.
单元测试应该如何进行呢?
生成10000个数然后计算分布比例应该可以,只要在90%上下就算通过。
但是仍有极小可能产生测试失败的可能。
如何做一个具有确定性结论的测试用例?
阅读全文
posted @
2010-01-09 12:24
金庆 阅读(1199) |
评论 (3)
编辑
C++类定义中应该允许设置默认值
摘要: C++类定义中应该允许设置默认值目前C++的类成员初始化方式是成员初始化列表,在构造函数原型之后,以冒号分隔:A::A() : _n(0), _m(0) { ... } 成员初始化列表这种方式很容易忘记或遗漏某个成员的初始化。
阅读全文
posted @
2009-12-12 11:20
金庆 阅读(1865) |
评论 (3)
编辑
如何删list靠近尾部的元素
posted @
2009-11-03 14:05
金庆 阅读(579) |
评论 (1)
编辑
C++引用优于指针
posted @
2009-10-26 09:34
金庆 阅读(3033) |
评论 (17)
编辑
Boost Serialization在网游中的应用实例
posted @
2009-09-21 13:32
金庆 阅读(2278) |
评论 (5)
编辑
用BOOST_ASSERT代替assert
posted @
2009-08-21 16:32
金庆 阅读(3442) |
评论 (3)
编辑
函数参数的理想个数
posted @
2009-08-03 17:35
金庆 阅读(2300) |
评论 (10)
编辑
当心虚函数重载(overloaded-virtual)
posted @
2009-05-22 13:59
金庆 阅读(7106) |
评论 (4)
编辑
测试替身(Test Double)的定义
posted @
2009-05-18 18:52
金庆 阅读(688) |
评论 (0)
编辑
Boost求数组的大小
摘要: 求数组的大小,感觉boost库中应该有这个功能, 找了好长时间, 终于找到了.
原来是boost::extent, 属于boost::type_traits.
阅读全文
posted @
2009-05-07 13:24
金庆 阅读(1947) |
评论 (3)
编辑
Mangos的指令处理函数
摘要: WorldSession中总共有300多个指令包处理函数, 以Handle开头, 无返回值, 参数为WorldPacket&. 例如: void HandleCharEnumOpcode(WorldPacket& recvPacket); 处理函数按功能分散在多个XXXHandler.cpp中实现. 例如: ArenaTeamHandler.cpp, AuctionHouseHandler.cpp.
阅读全文
posted @
2009-04-15 18:07
金庆 阅读(1440) |
评论 (0)
编辑
Wow, Mangos登录时的SRP6认证
摘要: 以Mangos代码为参考, 解析SRP6的原理和实现. SRP全称Secure Remote Password(安全远程密码),是一个开源认证协议。
阅读全文
posted @
2009-04-10 13:06
金庆 阅读(4060) |
评论 (0)
编辑
Mingw下bjam编译Luabind
摘要: luabind-0.8只提供了bjam编译方式.
按手册上的要求,设置好BOOST_ROOT和LUA_PATH后, 运行bjam, 报错:
阅读全文
posted @
2009-04-03 09:36
金庆 阅读(1908) |
评论 (0)
编辑
用boost::spirit实现的表达式求值
摘要: 用boost::spirit实现一个表达式求值看上去比较简单。我这个还有点问题,有空格时会解析失败,请大家看看是什么原因?
阅读全文
posted @
2009-03-27 16:24
金庆 阅读(2433) |
评论 (9)
编辑
C调用lua脚本的效率测试
摘要: 以下代码以C语言为基准,测试了C调用Lua循环和循环调用Lua的效率。结论是不要频繁地穿越C/Lua边界.
阅读全文
posted @
2009-02-17 09:32
金庆 阅读(8985) |
评论 (4)
编辑
log4cxx调试日志选择性输出的配置方法
摘要: 默认所有日志等级为WARN, 不会输出DEBUG日志,
只需显式设定某一类日志的级别, 就可以选择性地输出该类日志.
如调试A类时, 取消配置文件中的注释就行了.
阅读全文
posted @
2009-02-16 14:48
金庆 阅读(4037) |
评论 (4)
编辑
C字符串长度定义规范
摘要: 定义字符串长度有两种方式, 一种是用字符串的大小, 一种是字符串的长度.
字符串的大小即内存空间的大小, 而串长度加1才是所需空间.
阅读全文
posted @
2009-01-07 19:31
金庆 阅读(3344) |
评论 (0)
编辑
Boost中文文档地址
posted @
2008-12-22 09:33
金庆 阅读(3815) |
评论 (1)
编辑
用const_reverse_iterator迭代的问题
摘要: STL迭代的代码写过许多, 突然出现这种错误有点不敢相信. 仔细看了一遍没有拼写错误, 又判断不出是什么错.
阅读全文
posted @
2008-12-16 12:59
金庆 阅读(2588) |
评论 (0)
编辑
log4cxx的PropertyWatchdog
摘要: 查看log4cxx代码的时候, 看到了一个PropertyWatchdog类, class PropertyWatchdog : public FileWatchdog 是定时检测log4j.properities配置文件的. 这正是我一直想要的功能, 更改配置无需重启就生效.
阅读全文
posted @
2008-12-02 09:50
金庆 阅读(1739) |
评论 (0)
编辑
log4cxx配合boost::format
摘要: 但是有大半的使用情况下, 流方式输出会显得冗长, 格式控制也没有printf简洁. 只有简单的输出才会使用流. 幸好有boost::format. 它就是类型安全的printf. log4cxx配合boost::format真是绝配. 例如:
阅读全文
posted @
2008-11-20 19:46
金庆 阅读(5028) |
评论 (2)
编辑
pthread_rwlock使用错误
摘要: 写锁之后读锁竟然没有阻塞, 顺利运行下去了.据常理,写锁之后,试图读加锁时会阻塞.代码如:
阅读全文
posted @
2008-11-14 10:47
金庆 阅读(5470) |
评论 (1)
编辑
STL容器的赋值运算符可以更灵活吗?
摘要: STL容器如果元素类型不同是不能相互赋值的,即使元素类型是兼容的.如两个list, 一个存放基类B指针, 一个存放派生类D指针:
阅读全文
posted @
2008-11-12 12:17
金庆 阅读(2521) |
评论 (6)
编辑
用bind来解耦
摘要: 转自:用bind来解耦 应用了boost::bind, boost::function, boost::test 代码稍有修改。
阅读全文
posted @
2008-09-12 16:52
金庆 阅读(921) |
评论 (0)
编辑
用const方法更改非mutable成员
摘要: 以下代码中,SetValConst()是const类A的const方法,却能更改A的非mutable成员。涉及的C++概念:bitwise constness
阅读全文
posted @
2008-08-27 19:10
金庆 阅读(632) |
评论 (10)
编辑
"multiple definition of" 错误
摘要: "multiple definition of" 错误 在global.h定义了一个常量字符串,在多个cpp中包含该global.h.
阅读全文
posted @
2008-08-26 20:12
金庆 阅读(10959) |
评论 (18)
编辑
VS2005编译libevent
摘要: libevent版本为libevent-1.4.5-stable。WIN32-Prj目录下有VC项目文件。libevent.sln不能用,因为只有regress有vcproj文件,其他子项目都是dsp文件。而libevent.dsw不包括regress。删除sln文件,直接打开dsw文件,自动转换除regress之外的4个工程为vcproj。fatal error C1083: 无法打开包括文件:“sys/time.h”
阅读全文
posted @
2008-07-07 09:22
金庆 阅读(10390) |
评论 (21)
编辑
Boost.Singals 教程
摘要: 本教程不是用来线性阅读的。 其顶层结构大致按库中不同的概念划分,(如处理调用多个插槽、传值到插槽及回传),并且在每一个这些概念中,首先介绍其基本思想,然后说明库较复杂的使用。 每个部分都标注了初级、 中级,或高级,以帮助指导读者。 初级部分包括库的所有使用者都该了解的信息;只要阅读了初级部分,就可以很好地使用信号库。 中级部分建立在初级 部分之上,是库的稍复杂的使用。 最后,高级部分详述了信号库很高级的应用,这往往需要对初级和中级内容扎实的实践经验;大多数用户无需阅读高级部分
阅读全文
posted @
2008-06-30 14:55
金庆 阅读(2178) |
评论 (3)
编辑
Boost.Python中文文档下载
摘要: 下载:Boost.Python中文文档
Boost文档中Python库文档的翻译。
阅读全文
posted @
2008-06-16 11:30
金庆 阅读(1827) |
评论 (0)
编辑
修改Boost.date_time代码兼容VC6
摘要: Boost.date_time库明确不支持VC6。实际上,只要稍作修改,就可兼容VC6。而且只是代码风格上的调整,修改后比原来的代码更简洁。
阅读全文
posted @
2008-06-12 09:59
金庆 阅读(2050) |
评论 (3)
编辑
选特化还是重载
摘要: 一个函数模板即有特化版又有重载版,编译器会选哪个?以下代码来自:为什么不要特化函数模版 的例3
阅读全文
posted @
2008-06-11 11:03
金庆 阅读(1338) |
评论 (4)
编辑
用Boost.Python构建混合系统
摘要: Boost.Python是一个开源C++库,它提供了一个简明的IDL式的接口,用于把C++类和函数绑定到Python。借助C++强大的编译时内省能力和最近发展的元编程技术,绑定工作完全用纯C++实现,而没有引入新的语法。 Boost.Python丰富的特性和高级接口,使得完全按混合系统设计软件包成为可能,并让程序员以轻松连贯的方式,同时使用 C++高效的编译时多态,和Python极端便利的运行时多态。
阅读全文
posted @
2008-05-29 13:11
金庆 阅读(7631) |
评论 (15)
编辑
Python封装的性能研究
摘要: SIP generates the fastest wrappers; SWIG is mature and well documented; Boost.Python most elegant integration of C++ and Python
阅读全文
posted @
2008-05-23 11:39
金庆 阅读(756) |
评论 (0)
编辑
RAII:资源获取即初始化
摘要: 资源获取即初始化(RAII, Resource Acquisition Is Initialization)是指,当你获得一个资源的时候,不管这个资源是对象、内存、文件句柄或者其它什么,你都会在一个对象的构造函数中获得它,并且在该对象的析构函数中释放它。可以依据资源可变性和资源来源这两个特征,来对RAII进行分类。
阅读全文
posted @
2008-05-20 14:24
金庆 阅读(6306) |
评论 (0)
编辑
用结构体来构造封闭的名字空间
摘要: C++关键字namespace提供的名字空间是开放的:你可以在任何时候扩展其中的内容。只要另外声明一个同名的名字空间即可。为得到真正封闭的名字空间,你需要使用class/union/struct,就像这样
阅读全文
posted @
2008-05-19 16:44
金庆 阅读(1331) |
评论 (0)
编辑
wxWidgets库的依赖顺序
摘要: 用CodeBlocks编译一个wxWidgets应用程序时,总是出现"undefined reference"。这里有两个问题,一是需要添加wxWidgets相关的库,二是这些库要按一定的顺序列出。
阅读全文
posted @
2008-05-15 14:13
金庆 阅读(1781) |
评论 (1)
编辑
发现错误是好事
摘要: 在设计时发现错误总比在编码编译时发现好。在编码编译时发现错误总比在单元测试中发现好。在单元测试中发现错误总比在调试中发现好。在调试中发现错误总比在系统测试中发现好。在系统测试中发现错误总比让用户发现好。让用户发现错误总比没有用户好。
阅读全文
posted @
2008-05-08 15:38
金庆 阅读(337) |
评论 (0)
编辑
用 (*it).m 还是 it->m
摘要: 在迭代器中支持指针成员选取运算符,没什么实质的意义,而仅仅是语法糖。我认为标准中将这规定为迭代器概念的一个特性是严重的错误。
阅读全文
posted @
2008-04-24 10:16
金庆 阅读(1954) |
评论 (5)
编辑
STL序列容器的存储连续性
摘要: C++标准库提供了四种序列容器:deque、list、vector,和basic_string。第四种序列容器basic_string,主要用于表示字符串,但它确实是不折不扣的序列容器,所以如果你非要这样做的话,你也可以用它来保存char和wchar_t以外的数据。在标准库中的容器中,只有vector保证其元素的存储空间是连续的。因此,它和C API兼容。
阅读全文
posted @
2008-04-23 15:36
金庆 阅读(2132) |
评论 (2)
编辑
STL与标准库
摘要: 在C++的世界里,STL这个术语是有歧义的。有很多C++纯化论者会抓住一切机会纠正你对"STL"这个术语的错用,而告诉你应该使用"标准库"这样的称呼。 严格来说,STL指的是由Stepanov和他的同事们在上世纪80年代到90年代开发的、基于六个核心概念的通用模板库。
阅读全文
posted @
2008-04-22 17:25
金庆 阅读(2344) |
评论 (1)
编辑
模板参数名命名惯例
摘要: 模板参数一般是一个或者两个大写字母,例如T(type/value-type)、S(sequence/string)、 C(container/character)、VP(value policy type)等等。 这样做有两个原因。
阅读全文
posted @
2008-04-21 17:25
金庆 阅读(2170) |
评论 (10)
编辑
POD相关定义的翻译
摘要: POD(Plain Old Data,普通旧式数据)的定义中,有三个相关的术语
阅读全文
posted @
2008-04-01 10:03
金庆 阅读(1336) |
评论 (0)
编辑
编译boost
摘要: 每次用bjam编译boost总是要查看帮助文件才行。
虽然现在的bjam编译命令只有两三个参数,可是不小心还是会错。
阅读全文
posted @
2008-03-17 17:21
金庆 阅读(1875) |
评论 (2)
编辑
VC6正在被抛弃
摘要: boost.asio库明确说明不支持VC6。 stlsoft库某些组件无法兼容VC6(详细阅读了《Extended STL》,才知道为了VC6要耗费大量的精力,有些组件本身已很复杂,以至于需要排除VC6才能实现。) 今天使用boost.date_time时又发现VC6不行了。
阅读全文
posted @
2008-03-14 15:58
金庆 阅读(6273) |
评论 (35)
编辑
滥用ini配置文件造成崩溃
摘要: 不过一直有个问题,就是写ini文件时断电的后果。前几天终于遇上了,断电后发现配置文件正好被清空了。结果程序因为缺乏必要的配置,根本无法运行。
阅读全文
posted @
2008-01-29 12:16
金庆 阅读(2459) |
评论 (8)
编辑
Boost.Python构建与测试HOWTO
摘要: 使用Boost.Python不需要“安装Boost”。这里的教程利用了 Boost.Build 项目,它会在需要时自动构建那些二进制库。当然,也可以使用其他的编译系统。所有“我无法编译Boost.Python”的问题, 99%以上是因为试图使用另一种编译系统,而没有先按这个教程做。
阅读全文
posted @
2008-01-17 15:14
金庆 阅读(3221) |
评论 (2)
编辑
bjam编译boost失败及原因
摘要: 用bjam在各种环境下编译Boost , 没有十次也有八次了,但是前两天在一台XP上编译时,竟然失败。 查看输出,竟然是在创建目录时失败。信息如下:
阅读全文
posted @
2008-01-11 09:38
金庆 阅读(1930) |
评论 (1)
编辑
对临时变量的引用
摘要: 以下代码来自《Imperfect C++》,输出是0, 2222还是0, 0?
阅读全文
posted @
2008-01-10 11:36
金庆 阅读(1738) |
评论 (11)
编辑
比较C++数组元素引用的两种形式a[0]与0[a]
摘要: 对于一个数组ar,求其最外层的维数。 C语言当中惯用的是 sizeof(ar) / sizeof(ar[0]),可是在stlsoft库中是 sizeof(ar) / sizeof(0[ar])。 以前从没见过数组元素引用使用这样的形式:0[ar],能行吗?但是为什么用0[ar]呢?生僻的用法降低了可读性。是不是有什么优点呢?都是编译期计算,应该没有性能上的差别。
阅读全文
posted @
2008-01-02 11:27
金庆 阅读(2563) |
评论 (4)
编辑
使用完成端口HTTP下载的代码
摘要: 试运行asio的async_client例程时,发现CPU占用很高,所以又写了一个相同功能但直接调用完成端口API的代码,进行比较,发现同样占用CPU。
阅读全文
posted @
2007-12-24 16:25
金庆 阅读(2318) |
评论 (4)
编辑
可重入和线程安全
摘要: 可重入函数要解决的问题是,不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。线程安全函数要解决的问题是,多个线程调用函数时访问资源冲突。函数如果使用静态变量,通过加锁后可以转成线程安全函数,但仍然有可能不是可重入的,比如strtok。
阅读全文
posted @
2007-12-19 15:15
金庆 阅读(1329) |
评论 (0)
编辑
boost::static_assert
摘要: BOOST_STATIC_ASSERT是一个简单但常用的宏,顾名思义起到编译期断言的功效,可以通过它,在编译时对开发环境以及类型定义进行检查。此类型检测对程序运行时无任何效率和空间上的影响。在实现上,BOOST_STATIC_ASSERT宏利用c++规范中,对不完整类型即不可实例化的类型,在对其进行sizeof运算时编译错误的特性,完成功能。
阅读全文
posted @
2007-12-14 10:02
金庆 阅读(1011) |
评论 (1)
编辑
istream_iterator常见的错误说明
摘要: 看到一段istream_iterator的使用代码,读取文件test.txt,将其中字符串输入到一个vector。STL中模板的大量使用,使得编译器的报错不知所云,让人对STL的应用望而却步。学习STL不仅要掌握STL中各种容器类,迭代器,算法,同时还要熟悉编译器常见的错误报告。
阅读全文
posted @
2007-12-12 11:41
金庆 阅读(3641) |
评论 (2)
编辑
把private声明从.h文件移到.cpp文件
摘要: 在*.h文件中定义一个类时,理论上应该仅定义其公共接口,而不必声明其私有的成员,因为私有的成员属于实现部分,理应声明在.cpp文件中。 可是现有的C++标准是不支持将一个类的定义分到两个文件中去的。 有一个pimpl模式,可以变相完成这个要求。
阅读全文
posted @
2007-11-09 12:07
金庆 阅读(1903) |
评论 (13)
编辑
WMF SDK例程wmvcopy中的错误
摘要: WMF SDK指Microsoft的Windows Media Format SDK,支持以下三大功能:ASF文件的生成(包括ASF数据的流化)、ASF文件的编辑和ASF文件的播放(包括ASF媒体流的播放)。目前版本是WMF SDK9。 wmvcopy是其一个例程,实现了从头部开始截取n秒另存为文件。但在使用中发现有些错误。所以应该另设一个标志:m_fMaxDuration,到达MaxDuration时就可以结束文件的读取,而不必一直读到文件尾。一可解决崩溃错误,二可提高效率。
阅读全文
posted @
2007-10-29 14:47
金庆 阅读(1420) |
评论 (3)
编辑
按NT服务运行程序
摘要: XYNTService本身是个服务程序,它可以在INI文件中配置调用的程序,将多个程序运行起来。MS Windows 2000 SDK工具中有个srvany,好象就是能让任一个普通程序运行为服务。
阅读全文
posted @
2007-10-09 13:44
金庆 阅读(1436) |
评论 (4)
编辑
C++标准库与STL的关系
摘要: C 标准库与STL的关系。STL即标准模板库(Standard Template Library),它包括五大类组件:算法、容器、迭代器、函数对象、适配器。STL是C 标准库的一部分,但不是全部。C 标准库是std名字空间中的所有内容,就是那些不带.h的头文件,如。
阅读全文
posted @
2007-09-30 21:44
金庆 阅读(4320) |
评论 (2)
编辑
ACE与ASIO之间关于Socket编程的比较
摘要: ACE与ASIO之间关于Socket编程的比较。ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。 5.事件分派处理:ACE主要是注册handler类,当事件分派时,调用其handler的虚挂勾函数。ASIO是基于函数对象的hanlder事件分派。基于ASIO开发应用,要求程序员熟悉函数对象,函数指针,熟悉boost库中的boost::bind。我个人觉得,如果应用socket编程,使用ASIO开发比较好,开发效率比较高。
阅读全文
posted @
2007-09-21 10:27
金庆 阅读(5270) |
评论 (16)
编辑
一个模块如何处理异常
摘要: 最理想,最好的用模块是没有异常,保证操作如预想的结果一致。
当操作无法成功完时,必然会产生错误,或异常。
一个是返回错误码,一个是抛出异常。
阅读全文
posted @
2007-08-13 11:43
金庆 阅读(786) |
评论 (0)
编辑
输出函数不应抛异常
摘要: DLLs and libraries should handle all exceptions to prevent the display of errors and warnings through Windows dialogs. DLL输出函数抛异常通常会导致程序崩溃。而且错误很难定位。应用try/except包裹所有的输出函数。输出函数的参数也要严格检查。
阅读全文
posted @
2007-08-10 16:36
金庆 阅读(987) |
评论 (5)
编辑
Firefox的HTTP内容解压代码阅读
摘要: 参考firefox-2.0.0.4-source
RFC2612 3.5节Content codings, 内容编码定义了三种内容压缩方式:
gzip, compress, deflate, 但也可以注册新的压缩方式。
deflate与gzip解压的代码几乎相同,应该可以合成一块代码。
阅读全文
posted @
2007-07-09 12:13
金庆 阅读(2208) |
评论 (0)
编辑
Powered by:
C++博客
Copyright © 金庆