| Always use casting forms: 'static_cast', 'const_cast', 'dynamic_cast' and 'reinterpret_cast' or explicit constructor call. Do not use any other form. |
| Minimise the use of casts. |
| Avoid casting away volatile qualification. |
| Avoid casting away const qualification. |
| Avoid using pointer or reference casts. |
| Do not convert floating values to integral types except through use of standard library routines. |
| Do not cast pointers to and from fundamental types. |
| Do not write code that relies on implicit conversions of arguments in function calls. |