# QairtMem Note Some methods in this module are not yet implemented in the current release and will raise an exception if called. See the C API for full functionality. **Include:** `#include "QairtCppApi/QairtMem.hpp"` C++ wrappers for the QAIRT memory descriptor and shape APIs. Provides type-safe access to memory descriptors and shapes used to describe tensor memory for QAIRT operations. Copy to clipboard - namespace qairt - Enums - enum class MemError : std::underlying\_type\_t<[QairtMem\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv416QairtMem_Error_t)> - Error codes returned by QAIRT memory operations. | Enumerator | Description | | --- | --- | | `NoError` | Operation succeeded. | | `NotSupported` | The requested functionality is not supported by the backend. | | `InvalidArgument` | An argument to the operation was invalid. | | `InvalidHandle` | The provided handle is not valid. | | `AlreadyRegistered` | The provided memory has already been registered. | | `Mapping` | An error occurred during memory mapping. | | `InvalidShape` | The memory shape is invalid for this backend. | | `UnsupportedMemtype` | The requested memory type is not supported by the backend. | | `Undefined` | An undefined or unknown error occurred. | *Values:* - enumerator NoError = [QAIRT\_MEM\_NO\_ERROR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t18QAIRT_MEM_NO_ERRORE) - - enumerator NotSupported = [QAIRT\_MEM\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t29QAIRT_MEM_ERROR_NOT_SUPPORTEDE) - - enumerator InvalidArgument = [QAIRT\_MEM\_ERROR\_INVALID\_ARGUMENT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t32QAIRT_MEM_ERROR_INVALID_ARGUMENTE) - - enumerator InvalidHandle = [QAIRT\_MEM\_ERROR\_INVALID\_HANDLE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t30QAIRT_MEM_ERROR_INVALID_HANDLEE) - - enumerator AlreadyRegistered = [QAIRT\_MEM\_ERROR\_ALREADY\_REGISTERED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t34QAIRT_MEM_ERROR_ALREADY_REGISTEREDE) - - enumerator Mapping = [QAIRT\_MEM\_ERROR\_MAPPING](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t23QAIRT_MEM_ERROR_MAPPINGE) - - enumerator InvalidShape = [QAIRT\_MEM\_ERROR\_INVALID\_SHAPE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t29QAIRT_MEM_ERROR_INVALID_SHAPEE) - - enumerator UnsupportedMemtype = [QAIRT\_MEM\_ERROR\_UNSUPPORTED\_MEMTYPE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t35QAIRT_MEM_ERROR_UNSUPPORTED_MEMTYPEE) - - enumerator Undefined = [QAIRT\_MEM\_ERROR\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t25QAIRT_MEM_ERROR_UNDEFINEDE) - - enum class MemType : std::underlying\_type\_t<[Qairt\_MemType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv415Qairt_MemType_t)> - Memory types used to provide data for a QAIRT tensor. | Enumerator | Description | | --- | --- | | `Unsupported` | Memory type is not supported. | | `Custom` | Memory allocated by a custom backend mechanism. | | `DmaBuf` | Memory allocated via the DMA-BUF subsystem. | | `Undefined` | Memory type is undefined. | *Values:* - enumerator Unsupported = [QAIRT\_UNSUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t17QAIRT_UNSUPPORTEDE) - - enumerator Custom = [QAIRT\_MEM\_TYPE\_CUSTOM](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t21QAIRT_MEM_TYPE_CUSTOME) - - enumerator DmaBuf = [QAIRT\_MEM\_TYPE\_DMA\_BUF](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t22QAIRT_MEM_TYPE_DMA_BUFE) - - enumerator Undefined = [QAIRT\_MEM\_TYPE\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t24QAIRT_MEM_TYPE_UNDEFINEDE) - - class MemDescriptor : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE), [QairtMem\_DescriptorV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv423QairtMem_DescriptorV1_t)> - *#include <QairtMem.hpp>* Wrapper for a QAIRT memory descriptor handle. Public Functions - MemDescriptor() noexcept = default - - MemDescriptor(const [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor13MemDescriptorERK13MemDescriptor)&) = delete - - MemDescriptor([MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor13MemDescriptorERR13MemDescriptor)&&) noexcept = default - - [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE) &operator=(const [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE)&) = delete - - [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE) &operator=([MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE)&&) noexcept = default - - inline void setDmaBuf(int32\_t dmaBufFd, void \*dmaBufData) - Set the Direct Memory Access buffer (DMA-BUF) file descriptor and data pointer. See also QairtMem\_Descriptor\_setDmaBuf - Parameters - - **dmaBufFd** – **[in]** DMA-BUF file descriptor. Must be a valid open file descriptor, or `QAIRT_MEM_INVALID_FD`. - **dmaBufData** – **[in]** Pointer to the memory-mapped region produced by `mmap` on *dmaBufFd*. NULL is allowed when a DMA-BUF is not used. - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument. - inline std::pair<int32\_t, void\*> getDmaBuf() const - Get the Direct Memory Access buffer (DMA-BUF) file descriptor and data pointer. See also QairtMem\_Descriptor\_getDmaBuf - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Pair of (file descriptor, data pointer) previously set via [setDmaBuf()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemDescriptor_1a6af6d5deae8b806a65dd9eb31daf19bf). - inline void setMemShape(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &memShape) - Set the memory shape for this descriptor. See also QairtMem\_Descriptor\_setMemShape - Parameters - **memShape** – **[in]** Memory shape describing the rank and per-dimension sizes of the buffer. - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument. - inline [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &getMemShape() - Get the memory shape associated with this descriptor. See also QairtMem\_Descriptor\_getMemShape - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Reference to the memory shape for this descriptor. - inline const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &getMemShape() const - See also [MemDescriptor::getMemShape()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemDescriptor_1a21bede973d8dbdbb6f08a2bf1bc257af) - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Private Functions - inline void prepareToCross() const - - inline void updateAfterCross() const - Private Members - [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable<[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning<[MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)>, &interface\_type::getMemShape, &interface\_type::setMemShape> m\_memShape - Shape associated with this memory descriptor. Friends - *friend class* Api - class MemHandle - *#include <QairtMem.hpp>* Typed wrapper for a QAIRT memory handle produced by [Context::registerMem](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context_1aa16068bb41140bcdcca1a4aa9b5dd340). Lightweight, copyable value type that hides the raw `QairtMem_Handle_t`. Non-owning: cleanup is via [Context::deregisterMem](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context_1a92789925499d7ffd9011dbea7ea12309), mirroring the explicit-deregister semantics of the QAIRT C API. Pass [getHandle()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemHandle_1a7e208b091889d46ebe7439fd35cbfc5c) to APIs that consume the raw handle (e.g. `Tensor::setMemHandle`). Public Functions - MemHandle() noexcept = default - - MemHandle(const [MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandle9MemHandleERK9MemHandle)&) noexcept = default - - MemHandle([MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandle9MemHandleERR9MemHandle)&&) noexcept = default - - [MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandleE) &operator=(const [MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandleE)&) noexcept = default - - [MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandleE) &operator=([MemHandle](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt9MemHandleE)&&) noexcept = default - - inline explicit MemHandle([QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t) handle) noexcept - - inline [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t) getHandle() const noexcept - Get the underlying QAIRT C handle. - inline explicit operator bool() const noexcept - True if this wraps a non-null handle. Private Members - [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t) m\_handle = {} - - class MemShape : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE), [QairtMem\_ShapeV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv418QairtMem_ShapeV1_t)> - *#include <QairtMem.hpp>* Wrapper for a QAIRT memory shape handle. Public Functions - MemShape() noexcept = default - - MemShape(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape8MemShapeERK8MemShape)&) = delete - - MemShape([MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape8MemShapeERR8MemShape)&&) noexcept = default - - [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &operator=(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)&) = delete - - [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &operator=([MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)&&) noexcept = default - - inline [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) shallowCopy() const - Create a shallow copy of this shape with the same rank, dimensions, and config. - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - A new [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemShape) with the same rank, dimensions, and shape config. - inline std::string &getShapeConfig() - Get the backend-specific shape configuration string. See also QairtMem\_Shape\_getShapeConfig - Returns - Reference to the shape config string. Empty if none was set. - inline const std::string &getShapeConfig() const - Get the backend-specific shape configuration string. See also QairtMem\_Shape\_getShapeConfig - Returns - Const reference to the shape config string. Empty if none was set. - inline void setShapeConfig(std::string shapeConfig) - Set the backend-specific shape configuration string. Refer to the backend documentation for valid values. NULL is allowed in the underlying C API; pass an empty string to clear. See also QairtMem\_Shape\_setShapeConfig - Parameters - **shapeConfig** – **[in]** Backend-specific configuration string for this shape. - inline uint32\_t getRank() const - Get the number of dimensions (rank) of this memory shape. See also QairtMem\_Shape\_getRank - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Number of dimensions in this shape. - inline uint32\_t getDimensionAt(uint32\_t index) const - Get the size of a single dimension by index. See also QairtMem\_Shape\_getDimensionAt - Parameters - **index** – **[in]** Zero-based dimension index. Must be less than [getRank()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemShape_1a47477c9afeed0496a2667b5fe1a1cc5e). - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or out-of-range index. - Returns - Size of the dimension at *index*. - inline std::vector<uint32\_t> &getDimensions() - Get the full ordered list of dimension sizes for this shape. See also QairtMem\_Shape\_getDimensionAt - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Reference to a vector of dimension sizes in order. - inline const std::vector<uint32\_t> &getDimensions() const - Get the full ordered list of dimension sizes for this shape. See also QairtMem\_Shape\_getDimensionAt - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Const reference to a vector of dimension sizes in order. - inline void setDimensions(std::vector<uint32\_t> dimensions) - Set the ordered list of dimension sizes for this shape. See also QairtMem\_Shape\_setDimensions - Parameters - **dimensions** – **[in]** Ordered dimension sizes. The number of elements determines the rank. - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Private Functions - inline void prepareToCross() const - - inline void updateAfterCross() const - Private Members - [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable<std::string, &interface\_type::getShapeConfig, &interface\_type::setShapeConfig> m\_shapeConfig - Backend-specific shape configuration string. - mutable std::vector<uint32\_t> m\_dimensions - Cached dimension values for this shape. Friends - *friend class* Api Last Published: Aug 06, 2026 [Previous Topic QairtBuffer](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtBuffer.md) [Next Topic QairtProfile](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtProfile.md)