Casting Operators
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Casting Operators

There are several casting operators specific to the C++ language. These operators are intended to remove some of the ambiguity and danger inherent in old style C language casts. These operators are:

  • dynamic_cast   Used for conversion of polymorphic types.

  • static_cast   Used for conversion of nonpolymorphic types.

  • const_cast   Used to remove the const, volatile, and __unaligned attributes.

  • reinterpret_cast   Used for simple reinterpretation of bits.

  • safe_cast    Used to produce verifiable MSIL.

Use const_cast and reinterpret_cast as a last resort, since these operators present the same dangers as old style casts. However, they are still necessary in order to completely replace old style casts.

© 2016 Microsoft