作者ADF (............ NN)
看板C_and_CPP
標題Re: 問一個 C++ template 語法問題
時間Wed Apr 15 02:37:31 2009
#include <iostream>
using namespace std;
//template function 無法偏特化用template class
template<class R , class Node>
struct Action{ };
template< class Node >
struct Action< int , Node >
{
Action(Node& node)
{
cout << "int" << endl;
node.count++;
}
};
// abstract node
struct abs_node {
virtual void f () = 0 ; // semantic action
} ;
// 根據每個 parsing rule 繼承的 node
template < class R > //
struct node : abs_node
{ // 為了要處理node,
int count;
void f () { Action<R , node > act(*this); } // 要把node自己傳進去!
} ;
int main()
{
node<int> int_node;
int_node.count = 0;
int_node.f();
cout << int_node.count << endl;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.194.173
推 yoco315:成功了 XD 沒想到可以還有把自己傳進去這招. XDD 04/15 03:25
→ yoco315:我本來是這樣 template < class DUMMY > g ( DUMMY n ) {} 04/15 03:26
→ yoco315:也會 work,但是寫起來爆醜 orz 04/15 03:26
推 yoco315:感恩 QQ 感動 ing 04/15 03:28