static_cast

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

In C++ type conversion, the static_cast operator does an explicit type conversion.[1]

Syntax

static_cast<type> (object);

The type parameter must be a data type for which there is a known method for converting object to, whether this be a builtin or through a casting function. It can be a reference or an enumerator. All types of conversions that are well-defined and allowed by the compiler are done using static_cast.[2]

The static_cast operator can be used for operations such as

  • Converting a pointer of a base class to a pointer of a derived class,
  • Convert numeric data types such as enums to ints or ints to floats.

However, static_cast conversions are not necessarily safe as no run-time type check is done which can cause casting between incompatible data types, for example pointers. However, this is checked at compile time to prevent casting obvious incompatibles. Also, static_cast between pointer of a virtual base to pointer of derived is not allowed, because of the object layout model.

See also

References

<templatestyles src="Reflist/styles.css" />

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />
  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.