unsafeBitCast

func unsafeBitCast<T, U>(_: T, to: U.Type)

Returns the bits of the given instance, interpreted as having the specified type.

Use this function only to convert the instance passed as x to a layout-compatible type when conversion through other means is not possible. Common conversions supported by the Swift standard library include the following:

  • Value conversion from one integer type to another. Use the destination type's initializer or the numericCast(_:) function.
  • Bitwise conversion from one integer type to another. Use the destination type's init(truncatingIfNeeded:) or init(bitPattern:) initializer.
  • Conversion from a pointer to an integer value with the bit pattern of the pointer's address in memory, or vice versa. Use the init(bitPattern:) initializer for the destination type.
  • Casting an instance of a reference type. Use the casting operators (as, as!, or as?) or the unsafeDowncast(_:to:) function. Do not use unsafeBitCast(_:to:) with class or pointer types; doing so may introduce undefined behavior.

Warning: Calling this function breaks the guarantees of the Swift type system; use with extreme care.

Parameters: x: The instance to cast to type. type: The type to cast x to. type and the type of x must have the same size of memory representation and compatible memory layout. Returns: A new instance of type U, cast from x.

Declaration

func unsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U