C++ Naming Standards (DRAFT)
The following standards are intended to provide guidance for development of
names defined within C++ programs developed by the IHFS project. The standards
are derived from the C++ Coding Standards developed by the European Laboratory
for Particle Physics (CERN) which can be found at http://axaonl.cern.ch:8000/a_doc$www/ONLINE/CXX_CODING_STANDARDS.HTML#names
- All Upper Case Abbreviations
- All upper case abbreviations are acceptable when the abbreviation is well
known and in common use. e.g. - RFC
- Class Names
- Use upper case letters as word separators, lower case for the rest of a
word First character in a name is upper case No underscores '_'
- Class Library Names
- Until Namespaces are widely implemented in C++, libraries in danger of
conflicting with other libraries should choose some sort of unique prefix to
avoid name conflicts. It's common for a prefix to be two characters, but a
longer length is acceptable.
- Method Names
- Use the same rule as for class names.
- Class Attribute Names
- Use lower case attribute names Separate keywords with
- Method Argument Names
- The first character should be lower case. All words beginning
after the first letter should be upper case as with class names.
- Variable Names on the Stack
- use all lower case letters use underscore '_' as the word
- Pointer Variables
- Pointers should be prefixed by a 'ptr' Place the * close to the
pointer type not the variable name
- Reference Variables
- References should be prefixed with 'ref'
- Global Variables
- Global variables should be prefixed with 'glo'.
- Static Variables
- Static variables should be prefixed with 'sta'
- Type Names
- When possible, make a typedef for types based on builtin types.
Typedef names should use the same naming policy as for a class with the word
- C Function Names
- In a C++ project there should be very few C functions. For C
functions use the GNU convention of all lower case letters with '_' as the
- Enum Names
- Labels All Upper Case with '_' Word Separators