自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 amqp0_9_1文档中定义的常量

2012-12-16 15:42:13 357

原创 amqp0_9_1文档中定义的交换机操作

2012-12-16 15:39:20 341

原创 amqp0_9_1文档中定义的通道操作

2012-12-16 15:36:49 328

原创 amqp0_9_1文档中定义的连接过程

2012-12-16 14:55:28 345

原创 amqp0_9_1文档中定义的所有操作方法

2012-12-16 14:34:05 346

原创 amqp0_9_1文档中使用到的类型定义

amqp-xml-doc0-9-1.pdf文档通信协议定义的基础类型:

2012-12-16 14:16:47 451

原创 用boost共享锁实现读写锁造成死锁问题

网上很容易找到一个用boost::shared_mutex来作为读写锁的例子:typedef boost::shared_mutex rwmutex;typedef boost::shared_lock readLock;typedef boost::unique_lock writeLock;  一直没有怀疑过这个做法,直到最近项目中出现一个死锁问题,查了很久才发现是上面这种

2012-12-10 14:47:45 6234 2

原创 一个将类的构造函数调用识别成函数指针的问题

   在Modern C++ Design第二章第一节,有一个关于定制编译器错误提示的例子:templatebool> struct CompileTimeChecker {    CompileTimeChecker(...);    //一个接受任何参数的构造函数};template struct CompileTimeCheckerfalse> { };//特化false版本 /

2007-09-13 12:35:00 1651 1

原创 考虑使用函数对象代替函数作算法的参数(Effective STL条款46)

   一般我们都会这样认为,用高级语言编程时抽象层次越高,产生的代码效率就越低。这在很多情况下都是事实,Alexander Stepano (STL的发明者) 有一次作了一组小测试,试图测量出相对于C而言,C++的“抽象惩罚”:     假设你需要以降序排序一个double的vector。最直接的STL方式是通过sort算法和greaterdouble>类型的函数对象: 

2007-08-22 13:29:00 952

原创 确保目标区间足够大(Effective stl 条款30)

 STL容器在被添加时(通过insert、push_front、push_back等)自动扩展它们自己来容纳新对象。这工作的很好,有些程序员因为这个信仰而被麻痹,认为他们不必担心要为容器中的对象腾出空间,因为容器自己可以照顾好这些。 vectorint> val;//...; 给val容器设置初值vectorint> res;transform(val.begin(),

2007-08-22 08:53:00 705

原创 了解使用ptr_fun、mem_fun和mem_fun_ref的原因3(Effective stl 条款41)

 ptr_fun()函数比前面两个函数就要简单多了,这个函数只是将一个一般形式调用的函数(语法#1调用)包装成为一个可被适配的函数。还记得在条款40中,我们知道一个可适配的仿函数类必须从unary_function或binary_function继承。ptr_fun的功能就是包装一个一般意义的函数,生成一个可适配的仿函数对象。 // TEMPLATE FUNCTIO

2007-08-21 17:51:00 1231

原创 了解使用ptr_fun、mem_fun和mem_fun_ref的原因2(Effective stl 条款41)

上次分析了使用mem_fun和mem_fun_ref的原因,但并没有涉及到这两个函数的原理,所以这次打算把它们的源码拿出来看看。 这两个函数都是模板,用来转换某些类的成员函数,使得这些成员函数能够在象for_each这样的函数内部调用。先来看mem_fun这个模板函数吧,这个函数一共有四个重载版本:分别为转换带一个参数和不带参数的const和非const的函数共四个版本,并且按

2007-08-20 18:53:00 2305

原创 了解使用ptr_fun、mem_fun和mem_fun_ref的原因1(Effective stl 条款41)

  如果我有一个函数f和一个对象x,我希望在x上调用f,而且我在x的成员函数之外。C++给我三种不同的语法来实现这个调用: f(x);    // 语法#1:当f是一个非成员函数x.f();  // 语法#2:当f是一个成员函数,而且x是一个对象或一个对象的引用p->f(); // 语法#3:当f是一个成员函数,而且p是一个对象的指针  

2007-08-20 18:05:00 1210

原创 编写可适配的函数对象(Effective stl 条款40)

编写可适配的函数对象Effective STLEffective STL书中条款40提到,要使我们自己写的仿函数类可适配,仿函数类必须从类unary_function或者binary_function继承,因为这两个类提供了对象适配器需要的typedef。 listWidget> widgets;//...listWidget>::reverse_iterator 

2007-08-20 13:29:00 1468

原创 我的第一篇blog

终于决定开始写blog了, 一直都有写blog的想法,把平常学习的点滴都纪录下来,但却总是开不了这个头。归结起原因来,第一是太懒,读书的时候就怕写作文,好像怎么写都表达不清楚,想到要写东西就感觉累,现在工作了每个月都得做一次月报,但写了快一年了还是没有长进,写出来的东西就是肤浅上不了台面,所以常常被老板批评,真是苦啊。另一个原因是怕不能坚持,如果只是三分钟的热情那还不如不写了。就佩服那些写日记的人

2007-08-20 12:58:00 732 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除