Main Content

defineOutput

クラス: clibgen.MethodDefinition
名前空間: clibgen

C++ メソッドの出力引数の定義の追加

構文

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

説明

defineOutput(methodDef,argName,mltype) は、C++ メソッドの出力引数の定義を追加します。

defineOutput(methodDef,argName,mltype,shape) は、データ次元についての情報を指定します。

defineOutput(___,argDesc) は引数の説明を追加し、前述の構文にある任意の入力パラメーターを含めることができます。

defineOutput(___,'DeleteFcn',deleteFcn) は引数のメモリを管理する C++ ライブラリ deleter 関数を指定します。

入力引数

すべて展開する

メソッド定義。clibgen.MethodDefinition オブジェクトとして指定します。

C++ 出力引数名。string スカラーまたは文字ベクトルとして指定します。

MATLAB® 型。string スカラーまたは文字ベクトルとして指定します。詳細については、欠損 MLTYPE パラメーターの定義を参照してください。

MATLAB がデータ次元の定義に使用する次元定義。string ベクトル、スカラー テキスト、正の整数ベクトル、"nullTerminated" または cell 配列として指定します。cell 配列の場合、要素はスカラー テキストと正の整数スカラーを組み合わせたものになります。詳細については、Define Missing SHAPE Parameterを参照してください。

引数の次元をスカラーの固定値として定義できる場合は、5 のように数字を入力します。

次元を別の引数により定義する場合は、その引数名を string として入力します。たとえば、次の C++ シグネチャを考えます。引数 lendata の長さを定義する場合、Shape の値は "len" です。

myFunc(const int *data, int len)

引数のサイズが配列により定義される場合は、Shape の値は次のいずれかになります。

  • 1

  • 固定次元: 数値配列を入力します ([5,2] など)。

  • 可変次元: パラメーター名の string 配列を入力します (["row","col"] など)。

引数の C++ 型が string の場合は、次のオプションを使用して引数 MATLABType と引数 Shape の値を選択します。

C++ の型MATLABTypeDIRECTIONSHAPE のオプション
char*a

"int8"

"input"

スカラー値
スカラー値の配列

char**
char*[]

"string"

"input"

cell

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++ から MATLAB へのデータ型のマッピングを参照してください。

C++ 引数の説明。string スカラーまたは文字ベクトルとして指定します。

deleter 関数。string スカラーまたは文字ベクトルとして指定します。デリータは C++ 標準の delete 演算子またはユーザー定義関数にすることができます。C++ の戻り値の型が void* の場合、deleteFcn はユーザー定義関数でなければなりません。関数がポインターを返す場合、MATLAB は引数で表されるメモリ オーナーとなり、そのライフ サイクルを管理します。deleteFcn が指定されていない場合、ライブラリがメモリを管理します。

deleter 関数にライブラリ関数を指定した場合、その関数はインターフェイスに含められず、ユーザーはその関数を MATLAB から呼び出せません。MATLAB ユーザーは MATLAB 関数 delete を呼び出し、それによって、deleteFcn で指定された関数が呼び出されます。

例: 'DeleteFcn','objFree'

バージョン履歴

R2019a で導入