Define template parameter or just declare?

J

jim

Hi,

I want to do something like this:

foo.h:
class FooData;
typedef MyTemplate<FooData> MyFoo;

class Foo2: public MyFoo {
// ...
};

foo.cpp:
class FooData {
// ...
};

Assume that MyTemplate only uses pointers to its template parameter and
never calls any methods on it (just passes pointers to it to other
routines/classes). I seem to remember reading that this won't work,
because you always have to define (not just declare) a class before you
use it as a template parameter. Is this right?

Cheers,
Jim
 
I

Ian Collins

Hi,

I want to do something like this:

foo.h:
class FooData;
typedef MyTemplate<FooData> MyFoo;

class Foo2: public MyFoo {
// ...
};

foo.cpp:
class FooData {
// ...
};

Assume that MyTemplate only uses pointers to its template parameter and
never calls any methods on it (just passes pointers to it to other
routines/classes). I seem to remember reading that this won't work,
because you always have to define (not just declare) a class before you
use it as a template parameter. Is this right?
I don't think so, the class has to be in scope when the template is
instantiated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top