[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: C++ expert needed
From:       "Russ Steffen" <rsteffen () ia ! net>
Date:       1997-10-12 13:02:45
[Download RAW message or body]

On 12-Oct-97, Mario Weilguni <mweilguni@arctica.sime.com> wrote:
> The header file "X11/extensions/xf86vmode.h" from Xfree86 contains some
> structures with a member named "private". gcc fails to compiles this
> because private is a reserved word in C++.
> 
> I've done this to fix it:
> 
> extern "C" {
> #include <X11/X.h>
> #include <X11/Xlib.h>
> #define private xf_private
> #include <X11/extensions/xf86vmode.h>
> #undef private
> }; 
> 
> but this is quite a hack. Does anybody have a better solution for this?

That's probably the best you can do. XFree has a similar problem in another
header file (Xlib.h) because structures have a member named "class". 
What they do is this:

typedef struct {
        XExtData *ext_data;     /* hook for extension to hang data */
        VisualID visualid;      /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
        int c_class;            /* C++ class of screen (monochrome, etc.) */
#else
        int class;              /* class of screen (monochrome, etc.) */
#endif
        unsigned long red_mask, green_mask, blue_mask;  /* mask values */
        int bits_per_rgb;       /* log base 2 of distinct color values */
        int map_entries;        /* color map entries */
} Visual;
 

-
Russ Steffen
rsteffen@ia.net

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic