看板 C_and_CPP 關於我們 聯絡資訊
書上看到的 template <typename T,T nontype_param> class C; class X{ public: int n; static bool b; } C<X::* &X::n>* c5; //藍色那是什麼意思? C<bool&, X::b>* c4 int a; C<int*,&a>* c2; //c2和c4 compile會錯誤 訊息是template must be constant expression Undefined sysbol; //不知道為什麼會出現這樣的訊息 以上,麻煩解答,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.163.19
PkmX:template parameter必須為typename或integral type 12/19 11:08
PkmX:嗯...我剛剛試過c2和c4應該是ok的 若a是external linkage的話 12/19 12:08
allstarschh:pointer to member 12/19 13:18
ibmibmibm:應該是這樣才對吧:C<int X::*, &X::n> c5 12/19 13:20
tyc5116:不知道耶,我的c2 c4就會出錯,然後i大沒錯,我忘了打int 12/19 13:25
tyc5116:但我還是不知道X::*是什麼... 12/19 13:26
tyc5116:更正..c2是OK的 12/19 13:29
Chikei:ptr to member 12/19 13:41
tyc5116:which mamber? 12/19 13:45
tyc5116: e 12/19 13:46
allstarschh:c5真的少打一個int 要像ibm講的那樣 12/19 13:56
Chikei:T C::* = ptr to (member with type T of class C) 12/19 20:10
Chikei:指到哪個成員就看你的值填啥 12/19 20:10
tyc5116:恩...謝謝 12/19 22:43