SHAPE
ПараметрНа C++ аргументы указателя используются и для скалярных данных и для данных массива. Использовать указатель в качестве массива, MATLAB® информация о размерности потребностей, чтобы безопасно преобразовать массив между C++ и MATLAB. SHAPE
параметр помогает вам задать размерности для указателя.
Примечание
Эти типы указателей могут только использоваться в качестве скаляров. Задайте SHAPE как 1
в файле MLX.
Указатели, представляющие массивы объектов класса C++
Указатели на неconst примитивные массивы, возвращенные в функцию
Следующие примеры построений заданы в демонстрационном cppUseCases.hpp
заголовочный файл показывает вам, как задать форму аргумента. В этих таблицах описания для функций в столбце C++ Signature and Role of Pointer основаны на принятом знании аргументов. Сама подпись не предоставляет эту информацию.
Просмотреть cppUseCases.hpp
заголовочный файл и его сгенерированный файл определения, смотрите Выборку Файл Определения Библиотеки C++.
Подпись C++ и роль указателя | defineArgument Значения |
---|---|
Вход к этой функции является скалярным указателем void readScalarPtr(int const * in) | Для аргумента defineArgument(readScalarPtrDefinition, "in", ... "int32", "input", 1); |
Вход к этой функции является скалярным указателем, чтобы классифицировать void readScalarPtr(ns::MyClass2 const * in) | Для аргумента defineArgument(readScalarPtrDefinition, "in", ... "clib.cppUseCases.ns.MyClass2", "input", 1); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является указателем на целочисленный массив длины void readMatrix1DPtr(int const * mat, size_t m) | Для аргумента defineArgument(readMatrix1DPtrDefinition, "mat", ... "int32", "input", "m"); |
Вход к этой функции является указателем на массив фиксированной длины void readMatrix1DPtrFixedSize(int const * mat) | Для аргумента defineArgument(readMatrix1DPtrFixedSizeDefinition, ... "mat", "int32", "input", 5); |
Вход к этой функции является указателем на двумерную целочисленную матрицу void readMatrix2DPtr(int const * mat, size_t m, size_t n) | Для аргумента defineArgument(readMatrix2DPtrDefinition, "mat", ... "int32", "input", ["m","n"]); |
Вход к этой функции является указателем на двумерный матричный void readMatrix2DPtrFixedSize(int const * mat) | Для аргумента defineArgument(readMatrix2DPtrFixedSizeDefinition, ... "mat", "int32", "input", 6); |
Вход к этой функции является указателем на 3D матричный void readMatrix3DPtr(int const * mat, size_t m, size_t n, size_t p) | Для аргумента defineArgument(readMatrix3DPtrDefinition, "mat", ... "int32", "input", ["m","n","p"]); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является одномерным массивом void readMatrix1DArr(int const [] mat, size_t len) | Для аргумента defineArgument(readMatrix1DArrDefinition, "mat", ... "int32", "input", "len"); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является указателем на массив длины int const * getRandomValues(size_t len) | Для возвращаемого значения defineOutput(getRandomValuesDefinition, "RetVal", ... "int32", "len"); |
Выходным аргументом этой функции является указатель на массив фиксированной длины. int const * getRandomValuesFixedSize() | Для возвращаемого значения defineOutput(getRandomValuesFixedSizeDefinition, ... "RetVal", "int32", 5); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является указателем, чтобы классифицировать double addClassByPtr(ns::MyClass2 const * myc2) | Для defineArgument(addClassByPtrDefinition, "myc2", ... "clib.cppUseCases.ns.MyClass2", "input", 1); |
Вход к этой функции является указателем, чтобы классифицировать void updateClassByPtr(ns::MyClass2 * myc2, double a, short b, long c) | Для аргумента defineArgument(updateClassByPtrDefinition, "myc2", ... "clib.cppUseCases.ns.MyClass2", "input", 1); |
Вход к этой функции является указателем, чтобы классифицировать void readClassByPtr(ns::MyClass2 * myc2) | Для аргумента defineArgument(readClassByPtrDefinition, "myc2", ... "clib.cppUseCases.ns.MyClass2", "input", 1); |
Вход к этой функции является указателем, чтобы классифицировать void fillClassByPtr(ns::MyClass2 * myc2, double a, short b, long c) | Для аргумента defineArgument(fillClassByPtrDefinition, "myc2", ... "clib.cppUseCases.ns.MyClass2", "input", 1); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является указателем на целочисленный вектор из длины void updateMatrix1DPtrByX(int * mat, size_t len, int x) | Для аргумента defineArgument(updateMatrix1DPtrByXDefinition, ... "mat", "int32", "inputoutput", "len"); |
Вход к этой функции является ссылкой на целочисленный массив длины void updateMatrix1DArrByX(int [] mat, size_t len, int x) | Для аргумента defineArgument(updateMatrix1DArrByXDefinition, ... "mat", "int32", "inputoutput", "len"); |
Вход к этой функции является указателем на целочисленный вектор из длины int addValuesByPtr(int * mat, size_t len) | Для аргумента defineArgument(addValuesByPtrDefinition, "mat", ... "int32", "input", "len"); |
Вход к этой функции является ссылкой на целочисленный массив длины int addValuesByArr(int [] mat, size_t len) | Для аргумента defineArgument(addValuesByArrDefinition, ... "mat", "int32", "input", "len"); |
Эта функция создает целочисленный вектор из длины void fillRandomValuesToPtr(int * mat, size_t len) | Для аргумента defineArgument(fillRandomValuesToPtrDefinition, ... "mat", "int32", "output", "len"); |
Эта функция создает целочисленный вектор из длины void fillRandomValuesToArr(int [] mat, size_t len) | Для аргумента defineArgument(fillRandomValuesToArrDefinition, ... "mat", "int32", "output", "len"); |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является строкой C-стиля. char const * getStringCopy(char const * str) | Для аргумента defineArgument(getStringCopyDefinition, "str", ... "string", "input", "nullTerminated"); |
Возвращаемое значение для этой функции является строкой. char const * getStringCopy(char const * str) | Для возвращаемого значения defineOutput(getStringCopyDefinition, "RetVal", "string", ... "nullTerminated"); |
Возвращаемое значение для этой функции является строкой длины void getMessage(char * pmsg, int buf) | MATLAB задает аргумент %defineArgument(getMessageDefinition, "pmsg", ... "clib.array.libname.Char", "input", <SHAPE>); Задавать
defineArgument(getMessageDefinition, "pmsg", ... "string, "output", "nullTerminated", ... "NumElementsInBuffer", "buf"); |
Вход к этой функции является строкой, заданной длиной void readCharArray(char const * chArray, size_t len) | Для аргумента defineArgument(readCharArrayDefinition, "chArray", ... "char", "input", "len"); |
Вход к этой функции является массивом типа void readInt8Array(char const * int8Array, size_t len) | Для аргумента defineArgument(readInt8ArrayDefinition, "int8Array", ... "int8", "input", "len"); |
Возвращаемое значение для этой функции является скаляром символов. char const * getRandomCharScalar() | Для возвращаемого значения defineOutput(getRandomCharScalarDefinition, ... "RetVal", "char", 1); |
Типом возвращаемого значения для этой функции является char const * getRandomInt8Scalar() | Для возвращаемого значения defineOutput(getRandomInt8ScalarDefinition, ... "RetVal", "int8", 1); |
Эта функция обновляет входной параметр void updateCharArray(char* chArray, size_t len) | Для аргумента defineArgument(updateCharArrayDefinition, ... "chArray", "int8", "inputoutput", "len"); |
Вход к этим функциям является массивом струны до размера void readCStrArray(char** strs, int numStrs); void readCStrArray(char* strs[], int numStrs); | Для аргумента defineArgument(readCStrArrayDefinition, ... "strs", "string", "input", ["numStrs", "nullTerminated"]) |
Вход к этим функциям является массивом const струны до размера void readConstCStrArray (const char** strs, int numStrs); void readConstCStrArray (const char* strs[], int numStrs); | Вызвать defineArgument(readConstCStrArrayDefinition, ... "strs", "string", "input", ["numStrs", "nullTerminated"]) |
Вход к этой функции является массивом фиксированного размера струны до. void readFixedCStrArray (char* strs[5]); | Для аргумента defineArgument(readFixedCStrArrayDefinition, ... "strs", "string", "input", [5, "nullTerminated"]) |
Вход к этой функции является массивом const фиксированного размера струны до. void readConstCFixedStrArray (const char* strs[5]); | Вызвать defineArgument(readConstFixedCStrArrayDefinition, ... "strs", "string", "input", [5, "nullTerminated"]) |
Подпись C++ | defineArgument Значения |
---|---|
Вход к этой функции является указателем на определение типа void useTypedefPtr(intDataPtr input1)
typedef int16_t intData; typedef intData * intDataPtr; | Для аргумента defineArgument(useTypedefPtrDefinition, "input1", ... "int16", "input", 1); |
SHAPE
Можно использовать общедоступный нестатический элемент данных C++ (свойство) в качестве SHAPE
для типа возврата нестатического метода или другого нестатического элемента данных (свойство) в том же классе. Свойство должно быть задано как целое число (тип C++ int
). Точно так же можно использовать статический C++ элементы данных в качестве SHAPE
параметр для типа возврата статического метода или другого статического элемента данных в том же классе.
Можно использовать общедоступный, нестатический метод C++ в качестве the SHAPE
parameter для нестатического свойства или для типа возврата нестатического метода в том же классе. Метод должен быть полностью реализован без входных параметров, и тип возврата должен быть задан as a тип C++ int
.
Можно использовать комбинацию параметров, свойств и методов как SHAPE
параметр для метода возвращает тип. Если заданный SHAPE
существует и как параметр и как метод или свойство, затем параметры более приоритетны. В этом случае SHAPE
обработан в качестве параметра.
Подпись C++ | Значения SHAPE |
---|---|
Размер элемента данных class A { public: int rows; int cols; int* rowData; int channels(); }; | Для свойства addProperty(ADefinition, "rowdata", ["rows","cols","channels"]... "Description", "clib.array.libname.Int Data member of C++ class A."); |
Размер массива возвращен class B { public: int rows; int cols; int* rowData; int channels(); const int* getData(); }; | Для возвращаемого значения метода defineOutput(getDataDefinition, "RetVal", "clib.array.libname.Int", ["rows","cols","channels"]); |
Размер массива возвращен class C { public: int rows; int channels(); const int* getData (int rows); }; | Для возвращаемого значения метода defineOutput(getDataDefinition, "RetVal", "clib.array.C.Int", ["rows","channels"]); |