Difference between revisions of "Cpp Coding Standards/TYPE"
From Apache OpenOffice Wiki
m (Cpp Coding Standards/Topics/TYPE moved to Cpp Coding Standards/Type Safety: Improve Cpp_Coding_Standards structure.) |
|||
Line 1: | Line 1: | ||
− | + | Topic-Id: TYPE | |
− | Casts and type recognition | + | |
+ | Casts and type recognition. | ||
+ | |||
---- | ---- | ||
=== Summary === | === Summary === | ||
− | ==== | + | ==== Types, not Representations <span id="NoRepr">(NoRepr)</span> ==== |
Rely on types, not on representations. Don't think in bits, don't memcpy non-PODs. | Rely on types, not on representations. Don't think in bits, don't memcpy non-PODs. | ||
− | ==== | + | [[/NoRepr|Details]] |
+ | |||
+ | ==== No C-Style Casts <span id="CCast">(CCast)</span> ==== | ||
Don't use C-Style casts, but the C++ casts. | Don't use C-Style casts, but the C++ casts. | ||
− | ==== | + | [[/CCast|Details]] |
+ | |||
+ | ==== Avoid static_cast on Pointers <span id="StacaPtr">(StacaPtr)</span> ==== | ||
Use dynamic_cast instead of static_cast when treating pointers polymorphically. | Use dynamic_cast instead of static_cast when treating pointers polymorphically. | ||
− | ==== | + | [[/StacaPtr|Details]] |
+ | |||
+ | ==== No switch on Types <span id="NoSwitch">(NoSwitch)</span> ==== | ||
Don't use switch, when the cases represent types. Prefer polymorphism. | Don't use switch, when the cases represent types. Prefer polymorphism. | ||
+ | |||
+ | [[/NoSwitch|Details]] | ||
---- | ---- | ||
=== Related Rules === | === Related Rules === | ||
− | * [[../ | + | * [[../Class Design#NoConv |CLSDESIGN:NoConv]] - No Implicit Conversions |
− | + | ||
− | + | ||
---- | ---- | ||
[[Category:Coding Standards]] | [[Category:Coding Standards]] |
Revision as of 17:24, 29 November 2006
Topic-Id: TYPE
Casts and type recognition.
Contents
Summary
Types, not Representations (NoRepr)
Rely on types, not on representations. Don't think in bits, don't memcpy non-PODs.
No C-Style Casts (CCast)
Don't use C-Style casts, but the C++ casts.
Avoid static_cast on Pointers (StacaPtr)
Use dynamic_cast instead of static_cast when treating pointers polymorphically.
No switch on Types (NoSwitch)
Don't use switch, when the cases represent types. Prefer polymorphism.
Related Rules
- CLSDESIGN:NoConv - No Implicit Conversions