• 摘要视图
  • 目录视图

c++ language

C++ 智能指针的实现

1. shared_ptr 的特性

shared_ptr内部维护一个引用计数,当创建、copy、销毁时,引用计数都会变化

(1) 拷贝构造函数 p(q),会递增q的引用,p和q指向同一个对象

shared_ptr<string> q = make_shared<string>[......]

>> 阅读全文...

CAS 的跨平台实现方案 以及 基于CAS 的无锁多线程安全日志类

CAS

CAS, compare-and-swap, 原子的比较和设置变量值。

#include <stdio.h>

#if defined(__linux__) || defined(__unix__)
    #define CAS32(ptr, val_old, val_new[......]

>> 阅读全文...

c++ bind1st 和 bind2nd的用法

std::bind1st 和 std::bind2nd将二元函数转换为一元函数,具体用法参加下面的代码。

代码介绍了两种使用方式,第一种是使用std::less和std::greater,第二种是使用自定义的仿函数。

#include <iostream>
#include <ve[......]

>> 阅读全文...