**如下:
#ifndef __myerror_h__
#define __myerror_h__
#include "error.h"
#include
#include
template
class cerrors
void add(int index, std::function fct)
template
void add(int index, object* object, int (object::*method)(args...))
));}
template
void add(int index, object* object, int (object::*method)(args...) const)
));}
template
void add(int index, const object* object, int (object::*method)(args...) const)
));}
void remove(int index)
int onerror(int index, args... args)
};class cmyerror : public linwin::cerror
virtual
int onerror(int code, int level)
public:
cerrors m_errors;
};#endif
我想試著把所有錯誤統一處理,cerror因此而來。我把錯誤分為兩類,呼叫系統函式出錯和自定義錯誤。呼叫系統函式出錯,統一以索引0來自動呼叫處理函式。自定義的錯誤就以錯誤碼code來自動呼叫處理函式。
在類cmyerror中,真正去處理錯誤的是乙個模板類,這個模板類的實現,使用c++11標準中的std::function和lambda表示式。這樣我們就可以把所有的形式的函式新增到模板類中,包括全域性函式,成員函式,仿函式或者lambda表示式等等。
嘗試新思路 Select模型的另一種實現
新增乙個clogic類 標頭檔案logic.h ifndef logic h define logic h include myerror.h include myexit.h include myselectevent.h include socketimpl.h include select.h...
選擇排序的另一種思路
在我們上次的選擇迴圈中,我們用了乙個minindex變數來儲存最小值的下標,每次迴圈完畢後用最小值下標的元素與手元素進行交換,遍歷一次,記錄下最值元素所在位置,遍歷結束後,將此最值元素調整到合適的位置。但是我們還有種交換變數的方式,我們可以用待排序陣列中的元素與待排序序列中的首元素比較,如果比待排序...
詳解KMP演算法 另一種思路
這個演算法單純從 理解起來比較費勁.我覺得從思路上理解是非常簡單的.傳統演算法的劣勢很容易察覺.那就是會有重複的匹配過程.我們假定 text為待查文字,pattern 為匹配串.text aaaab pattern ab 按以下傳統演算法.則直到迴圈到最後一次比較.才找到 ab 而前面很多迴圈都是做...