defineArgument
クラス: clibgen.FunctionDefinition
名前空間: clibgen
C++ パッケージ関数の入力引数の定義を追加
構文
説明
defineArgument(
は、C++ パッケージ関数の入力引数の定義を追加します。FunctionDefinition
,CPPName
,MATLABType
)
defineArgument(
は、引数が入力または出力、あるいはその両方であることを定義します。FunctionDefinition
,CPPName
,MATLABType
,Direction
)
defineArgument(
は、データ次元についての情報を指定します。FunctionDefinition
,CPPName
,MATLABType
,Direction
,Shape
)
defineArgument(___,
は、1 つ以上の Name,Value
)Name,Value
ペアの引数で指定された追加の引数定義オプションを追加して、前述の構文の任意の入力パラメーターを含めることができます。
入力引数
FunctionDefinition
— 関数定義
clibgen.FunctionDefinition
関数定義。clibgen.FunctionDefinition
オブジェクトとして指定します。
CPPName
— C++ 引数名
string スカラー | 文字ベクトル
C++ 引数名。string スカラーまたは文字ベクトルとして指定します。
MATLABType
— MATLAB 型
string スカラー | 文字ベクトル
MATLAB® 型。string スカラーまたは文字ベクトルとして指定します。詳細については、欠損 MLTYPE パラメーターの定義を参照してください。
Direction
— 引数タイプ
"input"
(既定値) | "output"
| "inputoutput"
引数タイプ。入力引数の場合は "input"
、出力引数の場合は "output"
、入力引数と出力引数の両方である場合は "inputoutput"
として指定します。詳細については、Define Missing DIRECTION Parameterを参照してください。
Shape
— 次元定義
string ベクトル | スカラー テキスト | 正の整数ベクトル | "nullTerminated"
| cell 配列
MATLAB がデータ次元の定義に使用する次元定義。string ベクトル、スカラー テキスト、正の整数ベクトル、"nullTerminated"
または cell 配列として指定します。cell 配列の場合、要素はスカラー テキストと正の整数スカラーを組み合わせたものになります。詳細については、Define Missing SHAPE Parameterを参照してください。
引数の次元をスカラーの固定値として定義できる場合は、5
のように数字を入力します。
次元を別の引数により定義する場合は、その引数名を string として入力します。たとえば、次の C++ シグネチャを考えます。引数 len
が data
の長さを定義する場合、Shape
の値は "len"
です。
myFunc(const int *data, int len)
引数のサイズが配列により定義される場合は、Shape
の値は次のいずれかになります。
1
固定次元: 数値配列を入力します (
[5,2]
など)。可変次元: パラメーター名の string 配列を入力します (
["row","col"]
など)。
引数の C++ 型が string の場合は、次のオプションを使用して引数 MATLABType
と引数 Shape
の値を選択します。
C++ の型 | MATLABType | DIRECTION | SHAPE のオプション |
---|---|---|---|
char* a |
| "input" | スカラー値 |
char** char*[] |
| "input" | cell |
const char* |
| スカラー値 | |
| "input" |
| |
const char** const char*[] |
| "input" | スカラー値 |
| "input" |
| |
詳細については、C++ から MATLAB へのデータ型のマッピングを参照してください。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
Description
— C++ 引数の説明
string スカラー | 文字ベクトル
C++ 引数の説明。string スカラーまたは文字ベクトルとして指定します。この値は Description プロパティを設定します。
ReleaseOnCall
— 引数のメモリ オーナーの転送
false
または 0
(既定値) | true
または 1
R2020a 以降
引数のメモリ オーナーの転送。数値または logical の 1
(true
) または 0
(false
) として指定します。MATLAB は入力引数のポインターまたは参照として割り当てられるメモリを所有します。C++ ライブラリはこのメモリを解放すべきではありません。非 const
引数に対するこの動作を変更するには、'ReleaseOnCall'
を true
に設定します。
'ReleaseOnCall'
引数は以下に対してはサポートされていません。
const
引数。出力として定義される double 型のポインター (
obj**
またはvoid**
) の引数。
'ReleaseOnCall'
を指定しない場合、ReleaseOnCall
は false です。
詳細については、MATLAB での C++ オブジェクトの有効期間の管理を参照してください。
例: 'ReleaseOnCall',true
データ型: logical
AddTrailingSingletons
— 次元をパディングする位置
false
または 0
(既定値) | true
または 1
NumElementsInBuffer
— null で終了する C++ 文字列引数のバッファーのサイズ
数値スカラー | string スカラー | 文字ベクトル
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"
DeleteFcn
— deleter 関数
string スカラー | 文字ベクトル
R2020a 以降
deleter 関数。string スカラーまたは文字ベクトルとして指定します。デリータは C++ 標準の delete
演算子またはユーザー定義関数にすることができます。'DeleteFcn'
は、double 型のポインターの入力引数 (void**
や object**
など) をもつ関数に対して使用します。
'DeleteFcn'
を指定すると、MATLAB が引数で表されるメモリ オーナーとなり、そのライフ サイクルを管理します。'DeleteFcn'
が指定されていない場合、ライブラリがメモリを管理します。
deleter 関数にライブラリ関数を指定した場合、その関数はインターフェイスに含められず、ユーザーはその関数を MATLAB から呼び出せません。MATLAB ユーザーは MATLAB 関数 delete
を呼び出し、それによって、'DeleteFcn'
で指定された関数が呼び出されます。
詳細については、メモリの所有権を MATLAB に渡すを参照してください。
例: 'DeleteFcn','objFree'
バージョン履歴
R2019a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)