Difference between revisions of "Cpp Coding Standards/FIMPL"
From Apache OpenOffice Wiki
m (Cpp Coding Standards/Function Implementation moved to Cpp Coding Standards/FIMPL: consistency) |
m (→No Magic Numbers <span id="MagNum">(MagNum)</span>) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | === Function Implementation (FIMPL) - Summary === | |
+ | ''Issues when implementing function bodies.'' | ||
− | + | ===== Short Functions <span id="Short">(Short)</span> ===== | |
− | + | ||
− | = | + | |
− | ==== Short Functions <span id="Short">(Short)</span> ==== | + | |
Make functions short. | Make functions short. | ||
− | Consider replacing comments by function calls. Consider to flatten deep nested control structures by moving parts of them in extra functions. Consider moving complicated loop bodies into extra functions. Put repeated code snippets in an extra function. | + | Consider replacing comments by function calls. Consider to flatten deep nested control structures by moving parts of them in extra functions. Consider moving complicated loop bodies into extra functions. Put repeated code snippets in an extra function. [[/Short|-> Details]] |
− | + | ||
− | [[/Short| | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | [[/ | + | ===== No Magic Numbers <span id="MagNum">(MagNum)</span> ===== |
+ | Don't use unnamed constants in your code. Give them a descriptive name. The definition is prefered in the headers [[/MagNum|-> Details]] | ||
− | ==== | + | ===== Default in switch Statements <span id="DefSwitch">(DefSwitch)</span> ===== |
− | + | Don't just drop out of a switch statement, always provide a default case or a comment, why it is not needed.<br> | |
+ | Comment missing breaks.<br> | ||
+ | [[/DefSwitch|-> Details]] | ||
− | [[/Catch|Details]] | + | ===== No Catch All <span id="Catch">(Catch)</span> ===== |
+ | Avoid catch(...). [[/Catch|-> Details]] | ||
---- | ---- | ||
=== Related Rules === | === Related Rules === | ||
− | * [[../ | + | * [[../CLSINIT#NoVirt |CLSINIT:NoVirt]] - No Virtual Calls in Constructor or Destructor |
− | * [[../ | + | * [[../FDESIGN#OneTask | FDESIGN:OneTask]] - One Task |
− | * [[../ | + | * [[../GEN|GEN]] – all items |
− | * [[../ | + | * [[../OBSOLETE#Stack |OBSOLETE:Stack]] - Prefer Allocation from Stack |
− | * [[../ | + | * [[../OBSOLETE#NoMacro |OBSOLETE:NoMacro]] - No Old Macros |
* [[../STL#Algo |STL:Algo]] - Prefer the STL Algorithms | * [[../STL#Algo |STL:Algo]] - Prefer the STL Algorithms | ||
---- | ---- | ||
[[Category:Coding Standards]] | [[Category:Coding Standards]] |
Latest revision as of 21:33, 30 July 2008
Contents
Function Implementation (FIMPL) - Summary
Issues when implementing function bodies.
Short Functions (Short)
Make functions short.
Consider replacing comments by function calls. Consider to flatten deep nested control structures by moving parts of them in extra functions. Consider moving complicated loop bodies into extra functions. Put repeated code snippets in an extra function. -> Details
No Magic Numbers (MagNum)
Don't use unnamed constants in your code. Give them a descriptive name. The definition is prefered in the headers -> Details
Default in switch Statements (DefSwitch)
Don't just drop out of a switch statement, always provide a default case or a comment, why it is not needed.
Comment missing breaks.
-> Details
No Catch All (Catch)
Avoid catch(...). -> Details
Related Rules
- CLSINIT:NoVirt - No Virtual Calls in Constructor or Destructor
- FDESIGN:OneTask - One Task
- GEN – all items
- OBSOLETE:Stack - Prefer Allocation from Stack
- OBSOLETE:NoMacro - No Old Macros
- STL:Algo - Prefer the STL Algorithms