On 2019-07-21 08:25, Ken Brown wrote: > On 7/21/2019 3:15 AM, Brian Inglis wrote: >> Anything beginning is or to followed by a lower case letter may be used by >> the >> (library) implementation and may be considered reserved: best to interpose an >> underscore as systems with better language support inc. BSDs are adding >> classes. > > I assume you're referring to the POSIX name space rules, as in Section 2.2.2 > of > https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html. I > don't see how that's related to the present discussion (identifiers used in > classes internal to Cygwin).
Software hygiene for 9899 (see 7.1.4 Future Library Directions), POSIX, and C++ (anything in the std namespace) conformance: 9899 and others are normative references in both POSIX and C++. "Also, POSIX.1-2017 defines symbols that are not permitted by other standards to appear in those headers without some control on the visibility of those symbols." Normative References - http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap01.html#tag_01_03 - includes FORTRAN, 646 ASCII and 10646 UTF8 BMP, 8601 dates/times, and 4217 currencies/funds! So we can't use anything that is currently or might be used in the future by any compiler or library. Builds break unexpectedly, and sometimes more widely than you might think, when a header included perhaps indirectly, declares or defines something you have improperly used. BTDT Got The T-Shirt - structure member name used in a number of structures in app headers included in and used in almost all sources, toasted by a macro definition in a std header required in almost all those sources - as a core dev I got to do the cleanup! ;^> -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised.