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-
