Other Coding Rules: Difference between revisions

From OpenMW Wiki
Jump to navigation Jump to search
m (typo)
Line 6: Line 6:


Using declarations (e.g. "using std::cout") are tolerated, but should be used only in the innermost possible scope (i.e. usually function scope). Fully qualified names are still preferred.
Using declarations (e.g. "using std::cout") are tolerated, but should be used only in the innermost possible scope (i.e. usually function scope). Fully qualified names are still preferred.
Do not declare any names in the global namespace (the only exception to this rule is the file which contains the main() function of an executable).


== Other Pieces of Advice ==
== Other Pieces of Advice ==

Revision as of 13:57, 23 April 2012

Namespaces

We prefer fully qualified names (e.g. std::cout).

Using directives (e.g. "using namespace std") are not welcome. Using directives in headers will result in the code being rejected.

Using declarations (e.g. "using std::cout") are tolerated, but should be used only in the innermost possible scope (i.e. usually function scope). Fully qualified names are still preferred.

Do not declare any names in the global namespace (the only exception to this rule is the file which contains the main() function of an executable).

Other Pieces of Advice

  • Prefer C++ means over C means.
  • Prefer STL-container over raw arrays and new[]/delete[].
  • Use new/delete only when necessary. Prefer automatic storage duration.
  • Throw exceptions instead of retuning error codes.
  • When returning a pointer, don't return a 0-pointer in case of an error (returning a 0-pointer is still valid, if it does not represent an error situation).
  • Don't use C++0x features (until we made sure everyone's compiler supports these)
  • Remember the Rule of Three.