<strong>Naming:</strong> Use meaningful English words, well-known acronyms (MPI, XML, CFD, GMRES, etc.), or well-known short names (Config, Comm, 2D, 3D).<ul><li>Examples: <strong>timeInitial</strong> instead of <strong>tIni</strong>, or <strong>work</strong> instead of <strong>wrk</strong></li><li>One Exception: when redefining long types with the keyword using some mnemonics and short names is allowed, always document scope. </li>
<strong>Naming:</strong> Use meaningful English words, well-known acronyms (MPI, XML, CFD, GMRES, etc.), or well-known short names (Config, Comm, 2D, 3D).<ul><li>Examples: <strong>timeInitial</strong> instead of <strong>tIni</strong>, or <strong>work</strong> instead of <strong>wrk</strong></li><li>One Exception: when redefining long types with the keyword using some mnemonics and short names is allowed, always document scope. </li>
<strong>Avoid underscores:</strong> adds unnecessary length to the variable name, especially when combined with STL container types, and could conflict with name mangling. Reserve it for prefix of special cases (see class members and lambda functions). Use upper case letters instead.<ul><li><code>Don't</code><prestyle="border: 0;"><code> std::vector < std::vector << double >><strong>this_is_my_very_very_long_two_dimensional_vector_name;</strong></code></pre></li><li><code>Do</code><prestyle="border: 0;"><code> std::vector < std::vector << double >><strong>thisIsMyVeryVeryLongTwoDimensionalVectorName;</strong></code></pre></li></ul></li><li>
<li><strong>Avoid underscores:</strong> adds unnecessary length to the variable name, especially when combined with STL container types, and could conflict with name mangling. Reserve it for prefix of special cases (see class members and lambda functions). Use upper case letters instead.<ul><li><code>Don't</code><prestyle="border: 0;"><code> std::vector < std::vector << double >><strong>this_is_my_very_very_long_two_dimensional_vector_name;</strong></code></pre></li><li><code>Do</code><prestyle="border: 0;"><code> std::vector < std::vector << double >><strong>thisIsMyVeryVeryLongTwoDimensionalVectorName;</strong></code></pre></li></ul></li><li>
<strong>Using and typedef:</strong> Prefer the keyword using over typedef for readability. Only rename very long complex or custom types, do not rename standard types ( int , double , std::vector ). Prefer including ADIOSTypes.h as it contains fixed types in the std:: namespace uint8_t, uint64_t . <ul><li><code>Don't</code><ul><li><prestyle="border: 0;"><code> typedef std::vector < std::vector < std::map < std::string , double >>><strong>MapIn2DVector;</strong></code></pre></li></ul></li><li><code>Do</code><ul><li><prestyle="border: 0;"><code> using std::vector < std::vector < std::map < std::string , double >>> = <strong>MapIn2DVector;</strong></code></pre></li></ul></li></ul></li></ol>
<strong>Using and typedef:</strong> Prefer the keyword using over typedef for readability. Only rename very long complex or custom types, do not rename standard types ( int , double , std::vector ). Prefer including ADIOSTypes.h as it contains fixed types in the std:: namespace uint8_t, uint64_t . <ul><li><code>Don't</code><ul><li><prestyle="border: 0;"><code> typedef std::vector < std::vector < std::map < std::string , double >>><strong>MapIn2DVector;</strong></code></pre></li></ul></li><li><code>Do</code><ul><li><prestyle="border: 0;"><code> using std::vector < std::vector < std::map < std::string , double >>> = <strong>MapIn2DVector;</strong></code></pre></li></ul></li></ul></li></ol>