尋找C 實用的內聯模板函式,紀念!

2021-09-04 11:06:48 字數 2262 閱讀 3703

《effective c++》條款02指出:你可以獲得巨集帶來的效率以及一般函式的所有可預料行為和型別安全性(type safety)——只要你寫出template inline函式。

那麼,有哪些template inline值得我們在實際工程中運用呢?

希望借集體的力量,能收集到大量實用的內聯函式模板函式。

這是目前我暫時能想到的,拋磚引玉,請大家不吝賜教!

c/c++ code 

templateinline void safedelete(t*& p) 

templateinline void safedeletearray(t*& p) 

template

inline

void unusedvar(const t&) 

{} template

inline

size_t countof(const t& array) 

template

inline

const t& max(const t& a, const t& b) 

template

inline

const t& min(const t& a, const t& b) 

template

inline

void swap(t& a, t& b)  

c/c++ code

//按記憶體方式強制型別轉換,如將type (cls::*pf)(type par)強制轉換為void *: void 

*p = getcast(pf); 

template

dest getcast(const src& src) 

myunion = ; 

return myunion.dest; } 

發個我常用的單鍵類吧.

c/c++ code 

#ifndef __single_h__

#define __single_h__

#include 

template

class tsingle 

return spt_; 

} inline

static t* instance() 

inline

static

void destroy()  } 

private: 

typedef

union

unmaxalign; 

static unmaxalign smemory_; 

static t* spt_; 

}; template

typename

tsingle::unmaxalign tsingle::smemory_; 

template

typename

t* tsingle::spt_ = 0; 

#endif // __single_h__

c/c++ code

//注意:請不要用於指標之間的轉換,特別是bstr

template

ltype translatetype(rtype& rvalue, isdiff& isdiff) ; 

c/c++ code

template

struct is_a_ptr  

;  };  

template

struct is_a_ptr  

;  };  

template

inline

void unusedvar(const t&) 

template

inline

size_t countof(const t& array) 

///int main()  

c/c++ code

//判斷引數型別是否是無符號型別,當然只限於有序型別

template

inline

bool isunsigned(t)  

c/c++ code

template

inline

size_t countof(const t(&)[n]) 

//直接這麼用就可以了:

int a[9]; 

char aa[10][11]; 

countof(a);//返回9

countof(aa);//返回10

C 基本概念 內聯,模板,函式

1 inline function 嵌入到主調函式中的函式稱為內建函式 inline function 又稱內嵌函式,或內聯函式。指定內建函式,只需在函式首行的左端加乙個關鍵字inline即可。可以在宣告函式和定義函式時同時寫inline,也可以只在其中一處宣告inline,效果相同。內建函式中不能...

c 的內聯函式

1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...

C 的內聯函式

影響效能的乙個重要因素是內聯技巧,內聯函式也可以叫內嵌函式。在c 中,函式呼叫需要建立棧環境,進行引數複製,保戶呼叫現場,返回時,還要進行返回值複製,恢復呼叫現場。這些工作都是與完成特定的任務操作無關的額外開銷。程式效率由於該項工作而受到影響,所以,流行的cpu都已經將函式呼叫的額外開銷硬體化了,以...