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.hetc) 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 <[EMAIL PROTECTED]> wrote:
> On 1/2/08, Murray Cumming <[EMAIL PROTECTED]> wrote:
> >
> > On Wed, 2008-01-02 at 08:45 -0600, Jonathon Jongsma wrote:
> > > On 1/2/08, David L <[EMAIL PROTECTED]> 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
> [email protected]
> http://mail.gnome.org/mailman/listinfo/gtkmm-list
>
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list