From: jameskuyper@alumni.caltech.edu   
      
   Tim Rentsch wrote:   
   > James Kuyper writes:   
   ...   
   >> Note: in C2023, the [predefined macro names] section says: "Any other   
   >> predefined macro names: shall begin with a leading underscore   
   >> followed by an uppercase letter; or, a second underscore...". For   
   >> earlier versions of the standard, user code should avoid using such   
   >> identifiers because they were reserved for all purposes, but that's no   
   >> longer the case. Now, they should be avoided because they may be   
   >> pre-defined by the implementation, which means that any attempt to use   
   >> them might have unpredictable results.   
   >   
   > That's right in the sense that if the implementation is unknown then   
   > unexpected results may occur. However, if the implementation is   
   > known, then we can find out what results are expected by consulting   
   > the implementation's documentation for extensions, since any such   
   > macro name must qualify as an extension, and so much be documented.   
      
   J.5 identifies as extensions only "... predefined macros with names that   
   do not begin with an underscore." (J.5, J.5.13) They are not identified   
   as implementation-defined, so there is no obligation to document them.   
   Portable code must,of course simply avoid all such identifiers.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|