自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (8)
  • 收藏
  • 关注

原创 STL源码剖析 -- 返回函数指针的函数

在STL中设置内存出错时调用的处理函数: static void (* set_malloc_handler(void (*f)()))(){void (* old)() = __malloc_alloc_oom_handler;__malloc_alloc_oom_handler = f;return(old);}}; 可知,set_malloc_handler函数名, void

2009-06-20 21:58:00 565

原创 STL源码剖析 - 模板类中的友元函数

先看个代码: #include using namespace std; template class A{public:    friend bool operator==     //friend bool operator== (const A&, const A&); 可行   //friend bool operator== (const A&, const

2009-06-20 17:32:00 597

原创 BOOST源码笔记(6) - 无安全保证的随意转换~~~force_cast

从下面代码可以知道,用reinterpret_cast将一种类型的指针转到另外一种类型的指针是不会出现任何错误的,但是仅仅是编辑器的错误哈哈。另外,注意用引用传参,节省copy 时间么。  // general casetemplateinline Return_Type &force_cast(Argument_Type &rSrc){    return(*reinterpret_

2009-06-14 21:57:00 896

原创 BOOST源码笔记(5) - 最小的代价实现同步-无锁编程,看boost中的interlocked_bit_test_and_set实现

如题,如何用最小的代价来实现同步呢,即无锁编程(主要是使用原子操作替代锁来实现对共享资源的访问保护),我们来看看下面的代码。首先,我们需要是在这个函数内部对地址x中的值进行位测试并将其对应的位置位。  这里的关键是我们必须先读出*x的值,作位或运算之后,将得到的值对*x赋值。而在多线程环境中,在读出*x后也许有另外的线程对*x进行写操作,这样在给*x赋值的时候就会把对旧的值位或的结果赋给*

2009-06-12 20:30:00 4106

原创 BOOST源码笔记(4) - thread_move_t概念

这里提到一个movable的概念,即是std::auto_ptr的概念,即可移动了,所有权转移的,一句话,你有我就没有,这样,你需要在看见thread_move_t的时候,毫不犹豫地自己动手的,把原来的move_t内部的东东咔嚓掉。 

2009-06-11 20:40:00 1089

原创 BOOST源码笔记(3) - 节省内存的小技巧

 先不多说,来看段代码: struct state_data        {            unsigned shared_count:11,                shared_waiting:11,                exclusive:1,                upgrade:1,                exclusive_wait

2009-06-11 11:28:00 1377

原创 BOOST源码笔记(2) - boost::thread之内部干将interrupt_wait

    BOOST的Thread库博大精深,有很多的多线程概念在里面,今天就对其中很多call都用到的interrupt_wait的实现进行解释。首先,在BOOST文档中,有1个不得不看的概念,如下:Predefined Interruption Points The following functions are interruption points, which will throw

2009-06-10 22:01:00 8384 2

原创 BOOST源码笔记(1) - boost::call_once

boost::call_once应用及其实现 以下是一个典型的运用call_once实现一次初始化的例子:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 #include boost/thread/thread.h

2009-06-08 20:34:00 5069

Windows 用户态程序高效排错 完整版 熊力

Windows 用户态程序高效排错完整版 熊力著

2009-12-27

Modern+C+++Design+(清晰可编辑版全)

Modern C++ Design的清晰可编辑版本

2009-06-20

COM+的好书-COM\深入理解COM+.

COM+的好书,是入门和进阶的必要的一本书~~~~~~~~~

2009-04-20

vc屏幕取词的源码程序

用VC写的屏幕取词程序,很有参考价值...........

2009-04-18

空空如也

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

TA关注的人

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