exponenta event banner

defineOutput

Класс: клибген. FunctionDefinition
Пакет: clibgen

Добавление определения выходного аргумента для функции пакета C++

Синтаксис

defineOutput(funcDef,argName,mltype)
defineOutput(funcDef,argName,mltype,shape)
defineOutput(___,argDesc)
defineOutput(___,'DeleteFcn',deleteFcn)

Описание

defineOutput(funcDef,argName,mltype) добавляет определение выходного аргумента для функции пакета C++.

defineOutput(funcDef,argName,mltype,shape) содержит информацию об измерениях данных.

defineOutput(___,argDesc) добавляет описание аргумента и может включать любой из входных аргументов в предыдущих синтаксисах.

defineOutput(___,'DeleteFcn',deleteFcn) задает функцию удаления библиотеки C++ для управления памятью аргумента.

Входные аргументы

развернуть все

Определение функции, указанное как clibgen.FunctionDefinition объект.

Имя выходного аргумента C++, указанное как строковый скаляр или символьный вектор.

Тип MATLAB ®, заданный как строковый скаляр или символьный вектор. Дополнительные сведения см. в разделе Параметр MLTYPE.

Определение размера, используемое MATLAB для определения размеров данных, указанных как строковый вектор, скалярный текст, положительный целочисленный вектор, "nullTerminated"или массив ячеек. Для массива ячеек элементы представляют собой комбинацию скалярного текста и скалярных положительных целых чисел. Дополнительные сведения см. в разделе Параметр SHAPE.

Если можно определить размерность аргумента как фиксированное скалярное значение, введите число, например 5.

Если измерение определено другим аргументом, введите имя аргумента в виде строки. Например, рассмотрим следующую сигнатуру C++. Аргумент if len определяет длину data, то значение shape является "len".

myFunc(const int *data, int len)

Если размер аргумента определяется массивом, то значение shape является одним из следующих:

  • 1

  • Фиксированные размеры: Введите числовой массив, например [5,2].

  • Переменные размеры: Введите строковый массив имен параметров, например ["row","col"]

Если тип C++ для аргумента является строкой, используйте эти параметры для выбора значений mltype и shape аргументы.

Тип C++MLTYPEОпции для SHAPE
char*

"int8"

Скалярное значение
Массив скалярных значений

char**
char*[]

"string"

вектор
const char*

"char"

Скалярное значение
Массив скалярных значений

"string"

"nullTerminated"

const char**
const char*[]

"char"

Скалярное значение
Массив скалярных значений

"string"

"nullTerminated"

Дополнительные сведения см. в разделе Сопоставление типов данных C++ с MATLAB.

Описание аргумента C++, указанное как строковый скаляр или символьный вектор.

Функция удаления, заданная как строковый скалярный или символьный вектор. Удалителем может быть стандарт C++ delete оператор или определяемая пользователем функция. Если возвращаемый тип C++ void*, то deleteFcn должна быть определяемой пользователем функцией. Если функция возвращает указатель, то MATLAB получает право собственности и управляет жизненным циклом памяти, представленной аргументом. Если deleteFcn не указан, то за управление памятью отвечает библиотека.

Если для функции удаления указана библиотечная функция, эта функция не включается в интерфейс, и пользователи не могут вызвать функцию из MATLAB. Пользователь MATLAB вызывает MATLAB. delete функция, которая вызывает функцию, указанную deleteFcn.

Пример: 'DeleteFcn','objFree'

Представлен в R2019a