因上述函數(shù)全都是inline的,所以多層的函數(shù)調(diào)用并不會(huì)對性能造成影響,最終編譯 的結(jié)果根據(jù)具體的類型就只是一個(gè)for循環(huán)或者什么都沒有。這里的關(guān)鍵在于__type_traits
struct __true_type {};
struct __false_type {};
template
struct __type_traits
{
public:
typedef __false _type has_trivial_destructor;
……
};
template<> //模板特化
struct __type_traits
{
public:
typedef __true_type has_trivial_destructor;
……
};
…… //其他簡單類型的特化版本
如果要把一個(gè)自定義的類型MyClass也定義為不調(diào)用析構(gòu)函數(shù),只需要相應(yīng)的定義__type_traits
template<>
struct __type_traits
{
public:
typedef __true_type has_trivial_destructor;
……
};
相關(guān)推薦:計(jì)算機(jī)等級考試二級:C++學(xué)習(xí)重點(diǎn)分析試題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |