[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
just a template instantiation problem in C++
From: |
Christian TEMPLIER |
Subject: |
just a template instantiation problem in C++ |
Date: |
Fri, 06 Oct 2000 13:34:39 +0200 |
hello ,
*
i use this compiler :
/opt/gcc/bin/gcc -v
Reading specs from
/opt/gcc/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
i have an error with this code
work.ch:29: `X::FRAME<X>' is not a valid declarator
work.ch:29: perhaps you want `typename X::FRAME<X>' to make it a type
work.ch:29: parse error in method specification before `*'
work.ch:33: parse error before `*'
work.ch:42: `X::FRAME<X>' is not a valid declarator
work.ch:42: perhaps you want `typename X::FRAME<X>' to make it a type
work.ch:42: parse error before `::'
i expect a correction in next compiler or a coorective action on this
file
thanks
regards
.....
==========================================================The file
#define DERIVED_AUTOMATON OPERATIONAL_SEMANTICS
class DERIVED_AUTOMATON
{int state ;
public :
DERIVED_AUTOMATON() ;
~DERIVED_AUTOMATON() ;
} ;
template < class INTERFACE >
class CLUSTER_BOA_IMPL : public DERIVED_AUTOMATON
{public :
template < class X>
class BEHAVIOUR ;
template < class X>
class FRAME ;
template < class X>
class BEHAVIOUR : public DERIVED_AUTOMATON
{public :
class NEW_BEHAVIOUR_WORKSPACE : public DERIVED_AUTOMATON
{X ::FRAME<X> *dataQueuePicture;
public :
NEW_BEHAVIOUR_WORKSPACE() : dataQueuePicture(NULL) ,
DERIVED_AUTOMATON() {} ;
~NEW_BEHAVIOUR_WORKSPACE() {} ;
} ;
NEW_BEHAVIOUR_WORKSPACE orWorkspace ;
class READ_QUEUE : public DERIVED_AUTOMATON
{public :
typedef int THIS_TYPE ;
typedef X ::FRAME<X>::QUEUE::QUEUE_ELEMENT _QUEUE_ELEMENT_ ;
_QUEUE_ELEMENT_ *ThisElement ;
READ_QUEUE() : ThisElement(NULL) , DERIVED_AUTOMATON() {} ;
~READ_QUEUE() {} ;
} ;
READ_QUEUE firstRead ;
BEHAVIOUR() :
orWorkspace() ,
firstRead() , DERIVED_AUTOMATON()
{} ;
~BEHAVIOUR() {} ;
} ;
template < class X>
class FRAME : public DERIVED_AUTOMATON
{ X ::BEHAVIOUR<X>::READ_QUEUE::THIS_TYPE data ;
public :
class QUEUE : public DERIVED_AUTOMATON
{
public :
class QUEUE_ELEMENT : public DERIVED_AUTOMATON
{
public :
QUEUE_ELEMENT() , DERIVED_AUTOMATON() {} ;
~QUEUE_ELEMENT() {} ;
} ;
QUEUE_ELEMENT firstQueuElement;
QUEUE() : firstQueuElement() , DERIVED_AUTOMATON() {} ;
~QUEUE() {} ;
} ;
QUEUE firstQueue;
FRAME() : firstQueue() , data(0) , DERIVED_AUTOMATON() {} ;
~FRAME() {} ;
} ;
FRAME<CLUSTER_BOA_IMPL<INTERFACE> > mainData;
BEHAVIOUR<CLUSTER_BOA_IMPL<INTERFACE> > mainBehaviour ;
CLUSTER_BOA_IMPL() : mainData() , mainBehaviour() ,
DERIVED_AUTOMATON()
{} ;
~CLUSTER_BOA_IMPL() {} ;
} ;
class THIS_INTERFACE : public CLUSTER_BOA_IMPL<THIS_INTERFACE>
{public :
THIS_INTERFACE() ;
virtual ~THIS_INTERFACE() ;
} ;
DERIVED_AUTOMATON::DERIVED_AUTOMATON() :
state(0)
{
} ;
DERIVED_AUTOMATON::~DERIVED_AUTOMATON()
{
} ;
THIS_INTERFACE::THIS_INTERFACE() :
CLUSTER_BOA_IMPL<THIS_INTERFACE>()
{
} ;
THIS_INTERFACE::~THIS_INTERFACE()
{
} ;
int main()
{THIS_INTERFACE *data= new THIS_INTERFACE() ;
delete data;
} ;
--
____________________________________________________________________________
| |
| |
| ___ ___ | TEMPLIER
| |
| /__ \ / __\ | christian | Service Technique de la Navigation
Aerienne |
| __\ \/ /
|_____________|_____________________________________________|
| / __ | _ |
| |
| \ \_\ \_// | Toulouse | web
http://www.stna.dgac.fr/~templier |
| \___/\___/ | France | E_mail :
address@hidden |
| | | tel :
05.62.14.57.47 |
----------------------------------------------------------------------------
[ Oz web page http://www.ps.uni-sb.de/oz/ ]
[ list administration address@hidden ]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- just a template instantiation problem in C++,
Christian TEMPLIER <=