作者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
1F:推 yoco315:成功了 XD 没想到可以还有把自己传进去这招. XDD 04/15 03:25
2F:→ yoco315:我本来是这样 template < class DUMMY > g ( DUMMY n ) {} 04/15 03:26
3F:→ yoco315:也会 work,但是写起来爆丑 orz 04/15 03:26
4F:推 yoco315:感恩 QQ 感动 ing 04/15 03:28