即然要重搞 blog 就要搞的好看一點,之前一直都沒管 css 到底是怎麼用的,所以在 yahoo 的 blog 上寫的 code 看起來會很亂,排版不好. 現在用人家寫 code 專用的 css 應該會比較好了,那麼就用 template partialization 的 code 來個測試吧:
##CONTINUE##
#include <iostream>
using namespace std;
template<typename T>
struct RemoveAllPtr
{
typedef T Type;
};
template<typename T>
struct RemoveAllPtr<T*>
{
typedef typename RemoveAllPtr<T>::Type Type;
};
int main()
{
cout << typeid(double).name() << endl;
cout << typeid(double*).name() << endl;
cout << typeid(double**).name() << endl;
cout << typeid(RemoveAllPtr<double>::Type).name() << endl;
cout << typeid(RemoveAllPtr<double*>::Type).name() << endl;
cout << typeid(RemoveAllPtr<double**>::Type).name() << endl;
return 0;
}
輸出結果呢? 用 VC8 的輸出結果是
double
double *
double * *
double
double
double
用 g++ 4.2.0 的輸出結果則是
d
Pd
PPd
d
d
d
看來 VC8 的 type_info 的 human-readable name 比較 readable 啊 :)