Re: forward declarations of gtkmm stuff



Hi,

I am sorry but somehow I got confused, I could not understand, does it make any difference in compilation if we include other headers(like windows.h etc) in a header file(e.g. foo.h) or in its source file(e.g. foo.c ) or in both, because in my understanding headers usually have #ifdef in it so it doesn't matter whether we include once or twice, it will be included only once at compile time, and at least we need to include once somewhere either in source or header.

-Br
Naveen


On Jan 2, 2008 5:37 PM, Jonathon Jongsma <jonathon quotidian org> wrote:
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
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list



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