如下:
template <class I>
struct iterator_traits
{
typedef typename I::value_type value_type;
}
//針對指向常數(shù)對象的指針的特例化
template <class T>
struct iterator_traits<const T*>
{
typedef T value_type;
}
這里想到得到迭代器相關(guān)的value_type,為什么把const int轉(zhuǎn)換成int呢?我們想得到是類型信息,雖然得到的(這個類型的變量)無法修改,為什么說他沒有用(stl源碼剖析書上說的)
以上,希望大家?guī)兔χv一下。謝謝了。
學(xué)習(xí)是最好的投資!
是這樣的, traits(萃?。┑哪康氖怯脕碓诰幾g期能靜態(tài)的取得對象的一些固有特性
沒太明白你想表達(dá)什么,你說“為什么把const int轉(zhuǎn)換成int”,實際上const是由下面的來定義的
template <class T>
struct iterator_traits<const T*>
{
typedef const T const_value_type;
//你可以定義更多的,traits出更多的類型
}