Main Content

defineArgument

类: clibgen.ConstructorDefinition
包: clibgen

为 C++ 构造函数添加输入参数定义

说明

defineArgument(ConstructorDefinition,CPPName,MATLABType) 为 C++ 构造函数添加输入参数定义。

defineArgument(ConstructorDefinition,CPPName,MATLABType,Direction) 定义参数是输入、输出,还是两者兼而有之。

defineArgument(ConstructorDefinition,CPPName,MATLABType,Direction,Shape) 提供有关数据维度的信息。

defineArgument(___,Name,Value) 添加由一个或多个 Name,Value 对组参数指定的附加参数定义选项,并且可以包括上述语法中的任何输入参数。

输入参数

全部展开

构造函数定义,指定为 clibgen.ConstructorDefinition 对象。

C++ 参数名称,指定为字符串标量或字符向量,与 'Description' 名称-值对组参数结合使用。

MATLAB® 类型,指定为字符串标量或字符向量。有关详细信息,请参阅 Define Missing MLTYPE Parameter

参数类型,对于输入参数指定为 "input",对于输出参数指定为 "output",对于同时作为输入和输出的参数指定为 "inputoutput"。有关详细信息,请参阅 Define Missing DIRECTION Parameter

MATLAB 用于定义数据维度的维度定义,指定为字符串向量、标量文本、正整数向量、"nullTerminated" 或元胞数组。对于元胞数组,元素是标量文本和正整数标量的组合。有关详细信息,请参阅 Define Missing SHAPE Parameter

如果可以将参数维度定义为固定标量值,请输入数字,例如 5

如果维度由另一个参数定义,则以字符串形式输入参数名称。例如,假设有以下 C++ 签名。如果参数 len 定义 data 的长度,则 Shape 的值为 "len"

myFunc(const int *data, int len)

如果参数的大小由数组定义,则 Shape 的值为下列值之一:

  • 1

  • 固定维度:输入数值数组,例如 [5,2]

  • 可变维度:输入由参数名称组成的字符串数组,例如 ["row","col"]

如果参数的 C++ 类型是字符串,则使用这些选项为 MATLABTypeShape 参数选择值。

C++ 类型MATLABTypeDIRECTIONSHAPE 的选项
char*a

"int8"

"input"

标量值
标量值构成的数组

char**
char*[]

"string"

"input"向量
const char*

"char"

 

标量值
标量值构成的数组

"string"

"input"

"nullTerminated"

const char**
const char*[]

"char"

"input"

标量值
标量值构成的数组

"string"

"input"

"nullTerminated"

a These types are equivalent to MATLAB char:

  • wchar_t

  • char16_t

  • char32_t

有关详细信息,请参阅C++ to MATLAB Data Type Mapping

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

C++ 参数说明,指定为字符串标量或字符向量。此值设置 说明 属性。

转移参数的内存所有权,指定为数值或逻辑值 1 (true) 或 0 (false)。MATLAB 拥有作为输入参数的指针或引用分配的内存。C++ 库不会释放此内存。要更改非 const 参数的此行为,请将 'ReleaseOnCall' 设置为 true

以下各项不支持 'ReleaseOnCall' 参数:

  • const 参数。

  • 定义为输出的双精度指针(obj**void**)参数。

如果未指定 'ReleaseOnCall',则 ReleaseOnCall 为 false。

有关详细信息,请参阅 Lifetime Management of C++ Objects in MATLAB

示例: 'ReleaseOnCall',true

数据类型: logical

填充维度的位置,指定为数值或逻辑值 1 (true) 或 0 (false)。默认情况下,当 MATLAB 输入的维度少于对应的 C++ 参数时,则 MATLAB 在 Shape 参数的开头插入单一维度。要在末尾插入单一维度,请将 'AddTrailingSingletons' 设置为 true。有关详细信息,请参阅Dimension Matching

示例: 'AddTrailingSingletons',true

数据类型: logical

版本历史记录

在 R2019a 中推出