原创 第一章:Policy-Based Class Design 讀書筆記

Policy Class (Template) 下面的這些Creater叫做“policy class (template)”。它們類似於設計模式裏的strategy。它們是語法導向(syntax oriented),而不是標記導向

原创 Default Memberwise Initializtion 和Bitwise Copy Semantics 的區別

比如有下面的兩個對象a,bA a,b;如果有a=b;如果a=b實施的是bitwise copy semantics,就是說編譯器生成的僞代碼是memcpy(&b,&a,sizeof(a)).如果是Default MemberWise In

原创 string 轉換 char *

C/C++ code#include <iostream>#include <string>using namespace std;int main(){string str1="Hello";char *str2=const_cast<

原创 struct linger

TCP連接斷開的時候調用closesocket函數,已經討論過有優雅的斷開和強制斷開,那麼如何設置斷開連接的方式呢?是通過設置socket描述符一個linger結構體屬性。 linger結構體數據結構如下: struct linge

原创 modern c++ design Int2Type的意義

template <int v>struct Int2Type{    enum { value = v }; }; 如下: template <typename T, bool isPolimorphic>class NiftyCon

原创 modern c++ design Int2Type 筆記

#include <cstdlib> using namespace std; class Normal { int _i; public: Normal() { _i = 0; } Normal(const N

原创 模板的偏特化

總結:模板特化/全特化是指給每一個模板參數一個具體的類型,以具體實現這個模板,而且template後面的尖括號中不帶任何內容; 模板偏特化是指只給部分模板參數一個具體的類型,來實現這個模板; Partial Template Speci

原创 unix domain socket

      使用UNIX Domain Socket的過程和網絡socket十分相似,也要先調用socket()創建一個socket文件描述符,address family指定爲AF_UNIX,type可以選擇SOCK_DGRAM或SOC

原创 LIBRARY_PATH和LD_LIBRARY_PATH環境變量的區別

LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的兩個環境變量,二者的含義和作用分別如下:   LIBRARY_PATH環境變量用於在程序編譯期間查找動態鏈接庫時指定查找共享庫的路徑,例如,指定gcc編譯需要用到的動

原创 ACE反應器(Reactor)模式(1)

轉載自http://www.cnblogs.com/TianFang/archive/2006/12/13/591332.html 反應器(Reactor):用於事件多路分離和分派的體系結構模式 通常的,對一個文件描述符指定的文件或

原创 top 內存字段解析

VIRT 虛擬內存中含有共享庫、共享內存、棧、堆,所有已申請的總內存空間。RES  是進程正在使用的內存空間(棧、堆),申請內存後該內存段已被重新賦值。SHR  是共享內存正在使用的空間。SWAP 交換的是已經申請,但沒有使用的空間,包括

原创 Redis的數據回寫機制

Redis的數據回寫機制分同步和異步兩種, 同步回寫即SAVE命令,主進程直接向磁盤迴寫數據。在數據大的情況下會導致系統假死很長時間,所以一般不是推薦的。異步回寫即BGSAVE命令,主進程fork後,複製自身並通過這個新的進程回寫磁盤,

原创 nocopyable的使用

class noncopyable { protected: noncopyable (void) { } ~noncopyable (void) { } private: //

原创 redis 主從複製

一、Redis的Replication:     這裏首先需要說明的是,在Redis中配置Master-Slave模式真是太簡單了。相信在閱讀完這篇Blog之後你也可以輕鬆做到。這裏我們還是先列出一些理論性的知識,後面給出實際操作的案例。

原创 gcc版本不一樣導致的問題--Floating point exception 問題解決

[問題] RedHat AS5 編譯的可執行程序拷貝到 RedHat AS4 上運行, 直接報Floating point exception. [原因] glibc 不兼容導致. 詳細原因如下引用.   Fedora 開發者對 ELF