2007年3月26日 星期一

張貼程式碼

即然要重搞 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 啊 :)

1 則留言:

Unknown 提到...

自己回應看看,測試一下意見回應.