defineArgument

Класс: clibgen.MethodDefinition
Пакет: clibgen

Добавьте определение входного параметра для метода C++

Описание

defineArgument(MethodDefinition,CPPName,MATLABType) добавляет определение входного параметра для метода C++.

defineArgument(MethodDefinition,CPPName,MATLABType,Direction) задает, вводится ли аргумент, выводится, или оба.

defineArgument(MethodDefinition,CPPName,MATLABType,Direction,Shape) предоставляет информацию о размерностях данных.

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

Входные параметры

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

Определение метода в виде clibgen.MethodDefinition объект.

Имя аргумента C++ в виде строкового скаляра или вектора символов.

MATLAB® введите в виде строкового скаляра или вектора символов. Для получения дополнительной информации смотрите, Задают Пропавших без вести Параметр MLTYPE.

Тип аргумента в виде "input" для входного параметра, "output" для выходного аргумента или "inputoutput" и для входа и для выходного аргумента. Для получения дополнительной информации смотрите, Задают Недостающий Параметр НАПРАВЛЕНИЯ.

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

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

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

myFunc(const int *data, int len)

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

  • 1

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

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

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

Тип C++MATLABTypeDIRECTIONОпции для SHAPE
char*[a]

"int8"

"input"

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

char**
char*[]

"string"

"input"вектор
const char*

"char"

 

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

"string"

"input"

"nullTerminated"

const char**
const char*[]

"char"

"input"

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

"string"

"input"

"nullTerminated"

[a] Эти типы эквивалентны MATLAB char:

  • wchar_t

  • char16_t

  • char32_t

Для получения дополнительной информации смотрите C++ к Отображению типа данных MATLAB.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Описание аргумента C++ в виде строкового скаляра или вектора символов. Это наборы значений свойство Description.

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

'ReleaseOnCall' аргумент не поддерживается для:

  • const аргументы.

  • Двойной указатель (obj** или void**) аргументы, заданные, как выведено.

Если 'ReleaseOnCall' не задан, затем ReleaseOnCall является ложным.

Для получения дополнительной информации смотрите Пожизненное управление Объектами C++ в MATLAB.

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

Типы данных: логический

Где заполнить размерности, заданные true или false. По умолчанию, когда вход MATLAB имеет меньше размерностей, чем соответствующий аргумент C++, затем MATLAB вставляет одноэлементные размерности в начале Shape аргумент. Чтобы вставить одноэлементные размерности в конце, установите 'AddTrailingSingletons' к true. Для получения дополнительной информации смотрите, что Размерность Соответствует.

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

Типы данных: логический

Размер буфера для отключенного пустым указателем аргумента строки C++ в виде числового скаляра, строкового скаляра или вектора символов. Размер является количеством элементов C++ в буфере. Используйте NumElementsInBuffer для MLTYPE значение "string" и для DIRECTION значение "output". Задавать:

  • Значение фиксированного размера, используйте числовой скаляр.

  • Массив фиксированного размера, значение должно совпасть с размером массива.

  • Имя другого параметра, используйте строковый скаляр или вектор символов. Параметр должен быть целочисленным значением.

Используйте этот буфер, чтобы задать аргумент для отключенного пустым указателем аргумента строки, возвращенного функцией C++. MATLAB преобразует отключенную пустым указателем строку C++ в строку MATLAB.

NumElementsInBuffer аргумент не поддерживает:

  • const типы

  • void *

Для примера смотрите getMessage функция в таблице Define String Argument.

Пример: "NumElementsInBuffer", "bufLen"

Функция средства удаления в виде строкового скаляра или вектора символов. Средство удаления может быть стандартом C++ delete оператор или пользовательская функция. Используйте 'DeleteFcn' для функций, которые имеют двойной входной параметр указателя, например, void** или object**.

Когда вы задаете 'DeleteFcn', затем MATLAB берет владение и управляет жизненным циклом памяти, представленной аргументом. Если 'DeleteFcn' не задан, затем библиотека ответственна за управление память.

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

Для получения дополнительной информации смотрите Владение Передачи Памяти MATLAB.

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

Введенный в R2019a