---
title: MTLStructMember
framework: metal
role: symbol
role_heading: Class
path: metal/mtlstructmember
---

# MTLStructMember

An instance that provides information about a field in a structure.

## Declaration

```swift
class MTLStructMember
```

## Overview

Overview MTLStructMember is part of the reflection API that allows Metal framework code to query details about an argument of a Metal shading language function. An MTLStructMember instance describes the data type of one field in a struct that is passed as an MTLFunction argument, which is represented by MTLArgument. Don’t create MTLStructMember instances directly. You obtain an MTLStructMember instance from either the members property or the memberByName(_:) method of an MTLStructType instance. The dataType property of the MTLStructMember instance tells you what kind of data is stored in the member. Recursively drill down every struct member until you reach a data type that is neither a struct nor an array.

## Topics

### Describing the struct member

- [name](metal/mtlstructmember/name.md)
- [dataType](metal/mtlstructmember/datatype.md)
- [offset](metal/mtlstructmember/offset.md)
- [argumentIndex](metal/mtlstructmember/argumentindex.md)

### Obtaining struct member details

- [arrayType()](metal/mtlstructmember/arraytype().md)
- [structType()](metal/mtlstructmember/structtype().md)
- [pointerType()](metal/mtlstructmember/pointertype().md)
- [textureReferenceType()](metal/mtlstructmember/texturereferencetype().md)

### Instance Methods

- [tensorReferenceType()](metal/mtlstructmember/tensorreferencetype().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Shader types

- [MTLType](metal/mtltype.md)
- [MTLDataType](metal/mtldatatype.md)
- [MTLArrayType](metal/mtlarraytype.md)
- [MTLStructType](metal/mtlstructtype.md)
- [MTLPointerType](metal/mtlpointertype.md)
- [MTLTextureReferenceType](metal/mtltexturereferencetype.md)
