| Use the C++ comment delimiters "//". Do not use the C comment delimiters "/* ... */". |
| Do not use tab characters in source files. |
| Write pre-processor directives to begin in column 1 with no whitespace between the '#' and the pre-processor directive. |
| Write pre-processor directives to begin in column 1 with whitespace between the '#' and the pre-processor directive representing nesting in preprocessor conditionals. |
| Control conditional compilation by the use of, or absence of, a pre-processor token definition. |
| Use the '__cplusplus' identifier to distinguish between C and C++ compilation. |
| Do not include comment text in the definition of a pre-processor macro. |
| Ensure that the last line of all files containing source code is followed by a new-line. |
| Use <> brackets for system and standard library headers. Use "" quotes for all other headers. |
| Do not include a path specifier in file names supplied in #include directives. |
| Incorporate include guards in header files to prevent multiple inclusions of the same file. |
| Use lower-case for file names and references to file names (such as include directives). |
| Write header files such that all files necessary for their compilation are included. |
| Enclose macro arguments and body in parentheses. |
| Do not use pre-processor macros to define code segments. |
| Do not use the NULL macro. |
| Use const objects or enumerators to define constants, not #define. |
| Do not use digraphs or trigraphs. |
| Do not use function macros, use inline functions instead. |