Difference between revisions of "Documentation/Nightly/Developers/Style Guide/Cpp"

From Slicer Wiki
Jump to: navigation, search
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
(Moved to readthedocs)
Tags: 2017 source edit, Replaced
Line 1: Line 1:
Use common sense and BE CONSISTENT.
| text  = [https://slicer.readthedocs.io/en/latest/developer_guide/style_guide.html This page has been moved to read-the-docs.]
| background-color = 8FBC8F }}
If you are editing code, take a few minutes to look at the code around you and determine its style.
If they use spaces around their if clauses, you should, too.
If their comments have little boxes of stars around them, make your comments have little boxes of stars around them too.
The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you are saying, rather than on how you are saying it. We present global style rules here so people know the vocabulary. But local style is also important. If code you add to a file looks drastically different from the existing code around it, the discontinuity throws readers out of their rhythm when they go to read it. Try to avoid this.
OK, enough writing about writing code; the code itself is much more interesting. Have fun!
<i>Source: [https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google C++ Style Guide]</i>
= Indentation =
Configure your text editor to do VTK style indentation:
* [http://www.vtk.org/Wiki/Elisp_Code_for_VTK-Style_C_Indentation Emacs]
* [http://wiki.na-mic.org/Wiki/index.php/User:Pieper Vi/Vim]  
* [http://www.vtk.org/Wiki/VTK_FAQ#How_do_I_get_my_C.2B.2B_code_editor_to_do_VTK-style_indentation.3F Visual Studio]
= Naming =
* Local variable should start with a lower case.
** For example:
void vtkSlicerSliceLogic::SetForegroundLayer(vtkSlicerSliceLayerLogic *ForegroundLayer) // wrong!
should be
void vtkSlicerSliceLogic::SetForegroundLayer(vtkSlicerSliceLayerLogic *foregroundLayer)
* Member variable should start with a capital letter, and in implementation should be used in conjunction with 'this->' convention
** For example
class Node {
  Object &Foo();
  Object Bla;
Object& Node::Foo()
  return this->Bla;
= References =
* https://secure.wikimedia.org/wikipedia/en/wiki/Indent_style#GNU_style
* https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
= Tools =
* http://universalindent.sourceforge.net/
* http://uncrustify.sourceforge.net/

Latest revision as of 20:32, 15 March 2022

Home < Documentation < Nightly < Developers < Style Guide < Cpp