<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/UnsafeRawBufferPointer/assumingMemoryBound(to:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:SW19assumingMemoryBound2toSRyxGxm_tRi_zlF"
  },
  "title" : "assumingMemoryBound(to:)"
}
-->

# assumingMemoryBound(to:)

Returns a typed buffer to the memory referenced by this buffer,
assuming that the memory is already bound to the specified type.

```
func assumingMemoryBound<T>(to: T.Type) -> UnsafeBufferPointer<T> where T : ~Copyable
```

## Parameters

`to`

The type `T` that the memory has already been bound to.

## Return Value

A typed pointer to the same memory as this raw pointer.

## Discussion

Use this method when you have a raw buffer to memory that has already
been bound to the specified type. The memory starting at this pointer
must be bound to the type `T`. Accessing memory through the returned
pointer is undefined if the memory has not been bound to `T`. To bind
memory to `T`, use `bindMemory(to:capacity:)` instead of this method.

> Note: The buffer’s base address must match the
> alignment of `T` (as reported by `MemoryLayout<T>.alignment`).
> That is, `Int(bitPattern: self.baseAddress) % MemoryLayout<T>.alignment`
> must equal zero.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)