1. 程式人生 > >C++之traits(萃取技術)

C++之traits(萃取技術)

traits相關總結:
1.typedef 可以在class或者struct中定義
template
class CXX
{
       typedef T value_type;
};
同樣,template可以嵌入template!
2.見到template<>多半是在模板特化。特化分全特化、偏特化等。熟記這點,否則有些地方看不懂。
3.template其實就是擴充套件編譯器,讓程式碼自動生成。其功能等同於#define之類。說白了,c++的這些東西就是讓你的程式碼可以重用,減少日後不必要的程式設計量。
4.traits就目前我們能用到的東西而言,就是它能統一介面,讓你的template可以相容基本型別。
5.一個例項設想:
像WINAPI經常提供諸如XxA和XxW,要跟據使用的ASCII碼還是UNICODE碼來決定呼叫。那麼可以利用template配合traits來實現——只用template估計不行,ASCII跟UNICODE在有些地方可能是不同的,這些地方就要traits上陣了。


引用幾篇文章:
C++ Traitshttp://www.cnblogs.com/hush/archive/2004/03/10/2717.html
《type traits 之”本質論”》http://blog.csdn.net/sanlongcai/archive/2007/09/15/1786647.aspx
traits:Traits技術初探http://www.cppblog.com/woaidongmao/archive/2008/11/09/66387.html(這篇講得真的很好!)