Re: forward declarations of gtkmm stuff



On 1/2/08, Murray Cumming <murrayc murrayc com> wrote:
>
> On Wed, 2008-01-02 at 08:45 -0600, Jonathon Jongsma wrote:
> > On 1/2/08, David L <idht4n gmail com> wrote:
> > > Sorry if this is a stupid question, but how can I forward declare
> > > gtkmm things so that gtkmm header files don't need to be
> > > included before defining a class that has gtkmm pointers?
> > >
> > > For example, I'd like to get rid of the two includes in this header file:
> > > // foo.h
> > > #include <gtkmm/window.h>
> > > #include <gtkmm/radioaction.h>
> >
> > namespace Gtk {
> > class Window;
> > class RadioAction;
> > }
>
> You are never going to discover all the things that you need to declare
> even just for Gtk::Window. The headers exist for a good reason and I
> suggest that you use them.

IMO, In this situation (e.g. in a header), forward-declaration is
perfectly fine.  If you don't ever dereference the pointer, then you
don't need to discover anything extra that needs to be declared.  On
the other hand, if you do de-reference it then you do need to include
the header (but you don't usually need to do this in a header, usually
just in the source file where it's used).  I do this all the time in
headers and it does speed up compilation, sometimes significantly.

-- 
jonner


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]