Bob Ebert wrote:
> One thing we could do is split out the private types into seperate 
> header files, but still distribute them.

I like it!  That would almost keep everybody happy.

Let me suggest a variation: use a special macro symbol to let us turn on
the secret definitions, instead of having to #include extra files.  It
would be just like NON_INTERNATIONAL or NON_PORTABLE -- the programmer
has to explicitly #define the macro and thereby waives any rights to
complain later when something breaks.

You could even use the existing NON_PORTABLE symbol for this.

Preferably then the NON_PORTABLE definitions could remain in their
existing headers (Form.h, etc) so we could just #define it in our
precompiled header and still #include only <Pilot.h>.

> That way apps that were depending on the secret stuff
> could still work

In my debug build I'd always enable the secret definitions, as I've
found it is useful to be able to browse objects (esp. FormType) in the
debugger, even when my code doesn't touch the private data while
running.  Then in release build I'd disable secret definitions, to catch
any accidental usage.

-slj-

Reply via email to