exponenta event banner

defineArgument

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

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

Синтаксис

defineArgument(funcDef,argName,mltype)
defineArgument(funcDef,argName,mltype,direction)
defineArgument(funcDef,argName,mltype,direction,shape)
defineArgument(___,argDesc)
defineArgument(___,'ReleaseOnCall',ownership)

Описание

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

defineArgument(funcDef,argName,mltype,direction) определяет, является ли аргумент входным, выходным или и тем, и другим.

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

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

defineArgument(___,'ReleaseOnCall',ownership) определяет принадлежность аргумента к памяти.

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

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

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

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

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

Тип аргумента, указанный как "input" для входного аргумента, "output" для выходного аргумента, или "inputoutput" как для входных, так и для выходных аргументов. Дополнительные сведения см. в разделе Параметр DIRECTION.

Определение размера, используемое 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++, указанное как строковый скаляр или символьный вектор.

Передача права собственности на память аргумента, указанного true или false и используется с 'ReleaseOnCall' параметр. MATLAB владеет памятью, выделенной в качестве указателя или ссылки для входного аргумента. Библиотека C++ не должна освобождать эту память. Изменение этого поведения для не-const аргумент, установите 'ReleaseOnCall' параметр для true. 'ReleaseOnCall' параметр не поддерживается для const аргументы.

Если 'ReleaseOnCall' не указан, то ownership имеет значение false.

Дополнительные сведения см. в разделе Управление временем жизни объектов C++ в MATLAB.

Пример: 'ReleaseOnCall',true

Типы данных: logical

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