 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Grzegorz Jakacki Guest
|
Posted: Mon Sep 22, 2003 10:30 pm Post subject: CRTP with virtuals |
|
|
Hello,
I would appreciate some help with the code below. In particular
* Is this code legal?
* Where is the POI of BaseVisitor<DerivedVisitor>?
* Where is the POI of BaseVisitor<DerivedVisitor>::Visit()?
Thanks in advance
Grzegorz
-------------------------------------------
class VisitedA {};
template <class Derived>
struct BaseVisitor
{
virtual void Visit(VisitedA* a)
{
static_cast<Derived*>(this)->VisitConcrete(a);
}
};
struct DerivedVisitor
: public BaseVisitor<DerivedVisitor>
{
template <class Visited>
void VisitConcrete(Visited* c)
{
/* ... */
}
};
int main()
{
DerivedVisitor v;
VisitedA a;
v.Visit(&a);
}
-------------------------------------------
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|