Main Content

defineArgument

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

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

説明

defineArgument(MethodDefinition,CPPName,MATLABType) は、C++ メソッドの入力引数の定義を追加します。

defineArgument(MethodDefinition,CPPName,MATLABType,Direction) は、引数が入力または出力、あるいはその両方であることを定義します。

defineArgument(MethodDefinition,CPPName,MATLABType,Direction,Shape) は、データ次元についての情報を指定します。

defineArgument(___,Name,Value) は、1 つ以上の Name,Value ペアの引数で指定された追加の引数定義オプションを追加して、前述の構文の任意の入力パラメーターを含めることができます。

入力引数

すべて展開する

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

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

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

引数タイプ。入力引数の場合は "input"、出力引数の場合は "output"、入力引数と出力引数の両方である場合は "inputoutput" として指定します。詳細については、Define Missing DIRECTION Parameterを参照してください。

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

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

C++ 引数の説明。string スカラーまたは文字ベクトルとして指定します。この値は Description プロパティを設定します。

R2020a 以降

引数のメモリ オーナーの転送。数値または logical の 1 (true) または 0 (false) として指定します。MATLAB は入力引数のポインターまたは参照として割り当てられるメモリを所有します。C++ ライブラリはこのメモリを解放すべきではありません。非 const 引数に対するこの動作を変更するには、'ReleaseOnCall'true に設定します。

'ReleaseOnCall' 引数は以下に対してはサポートされていません。

  • const 引数。

  • 出力として定義される double 型のポインター (obj** または void**) の引数。

'ReleaseOnCall' を指定しない場合、ReleaseOnCall は false です。

詳細については、MATLAB での C++ オブジェクトの有効期間の管理を参照してください。

例: 'ReleaseOnCall',true

データ型: logical

次元をパディングする位置。数値または logical の 1 (true) または 0 (false) として指定します。既定では、MATLAB の入力の次元が対応する C++ 引数よりも少ない場合、MATLAB は Shape 引数の先頭に大きさが 1 の次元を挿入します。大きさが 1 の次元を末尾に挿入するには、'AddTrailingSingletons'true に設定します。詳細については、次元のマッチングを参照してください。

例: 'AddTrailingSingletons',true

データ型: logical

null で終了する C++ string 引数のバッファーのサイズ。数値スカラー、string スカラー、または文字ベクトルとして指定します。サイズはバッファーに含まれる C++ 要素の数です。NumElementsInBuffer は、MLTYPE"string" および DIRECTION"output" に対して使用します。次のように指定します。

  • 固定サイズの値の場合、数値スカラーを使用します。

  • 固定サイズの配列の場合、値は配列のサイズと同じでなければなりません。

  • 別のパラメーターの名前の場合、string スカラーまたは文字ベクトルを使用します。パラメーターは整数値でなければなりません。

このバッファーは、C++ 関数から返される null で終了する string 引数に対する引数を定義するために使用します。MATLAB により、null で終了する C++ string が MATLAB string に変換されます。

NumElementsInBuffer 引数は以下についてはサポートしていません。

  • const

  • void *

例については、Define String Argumentの表の関数 getMessage を参照してください。

例: "NumElementsInBuffer", "bufLen"

R2020a 以降

deleter 関数。string スカラーまたは文字ベクトルとして指定します。デリータは C++ 標準の delete 演算子またはユーザー定義関数にすることができます。'DeleteFcn' は、double 型のポインターの入力引数 (void**object** など) をもつ関数に対して使用します。

'DeleteFcn' を指定すると、MATLAB が引数で表されるメモリ オーナーとなり、そのライフ サイクルを管理します。'DeleteFcn' が指定されていない場合、ライブラリがメモリを管理します。

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

詳細については、メモリの所有権を MATLAB に渡すを参照してください。

例: 'DeleteFcn','objFree'

バージョン履歴

R2019a で導入