Bernie,

      I just made your change and now input.cxx compiles fine.


   /**
    * Settings for a mouse.
    */
   struct mouse;          // This is new code
   friend struct mouse;   // This is new code

   struct mouse {
     mouse ();
     virtual ~mouse ();
     int x;
     int y;
     SGPropertyNode * mode_node;
     SGPropertyNode * mouse_button_nodes[MAX_MOUSE_BUTTONS];
     int nModes;
     int current_mode;
     mouse_mode * modes;
   };

Thanks!

Jonathan Polley

On Thursday, March 28, 2002, at 06:23 PM, Bernie Bright wrote:

> David Megginson wrote:
>>
>> Jonathan Polley writes:
>>
>>> I reverted input.hxx back to what was in CVS and moved the enumeration
>>> from being private to public and MSVC now likes using an enumeration
>>> element to define an array.  Why the compiler cares about an enum being
>>> private vs. public, I will never know (although I have seen this 
>>> behavior
>>> before).  I also brought in the newest input.cxx and I can now run
>>> FlightGear again.
>>
>> Does it still work if the enum is protected?  I'd like to keep things
>> as well encapsulated as possible.
>>
>
> You can keep the enum private if you add the following declarations
> immediately afterwards:
>
>   struct mouse;
>   friend struct mouse;
>
> It seems that MSVC doesn't grant the nested mouse decl. any special
> access privileges to its surrounding class.
>
> Bernie
>
> _______________________________________________
> Flightgear-devel mailing list
> [EMAIL PROTECTED]
> http://mail.flightgear.org/mailman/listinfo/flightgear-devel


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to