On Tuesday 08 January 2002 5:58 am, Michael Koziarski wrote:
> > > Thanks, as an aside the problem was that
> > > src/frontends/controllers/ControlDialog.C doesn't #include
> > > bufferview.h.
> > > 
> > > It should, shouldn't it?
> > > 
> > > Cheers,
> > 
> > There is no ControlDialog.C. Do you mean the .h file? Perhaps you'd like 
to 
> > send a patch and an explanation about why we should #include a file in a 
.h 
> > file if not absolutely necessary?
> > 
> 
> 
> Yeah,  .h not .C.
> 
> I'd say it should be included because it is necessary? That's what
> this old error says isn't it?

Sure is ;-)

However, what's the rule with template instatiations here? My understanding 
is that only functions that are invoked are instatiated, so some code using 
ControlDialog will use the approriate BufferView stuff and need BufferView.h 
and some won't and therefore doesn't. It seems churlish (if this is the case) 
to make all files depend on BufferView.h.

What do the C++ experts have to say? Am I just confused?

Angus

> 
> ../../../src/frontends/controllers/ControlDialogs.h: In method `void 
ControlDialog<Base>::update () 
> [with Base = ControlConnectBD]':
> /usr/include/g++-3/stl_construct.h:60:   instantiated from here
> ../../../src/frontends/controllers/ControlDialogs.h:90: invalid use of 
undefined type `class 
> BufferView'
> ../../../src/insets/inset.h:25: forward declaration of `class 
> BufferView'
> ../../../src/frontends/controllers/ControlDialogs.h: In method `void 
ControlDialog<Base>::show () [with 
> Base = ControlConnectBD]':
> /usr/include/g++-3/stl_construct.h:60:   instantiated from here
> ../../../src/frontends/controllers/ControlDialogs.h:67: invalid use of 
undefined type `class 
> BufferView'
> ../../../src/insets/inset.h:25: forward declaration of `class 
> BufferView'

Reply via email to