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'