В этих таблицах показано, как MATLAB ® преобразует данные C/C + + в эквивалентные типы данных MATLAB. MATLAB использует эти сопоставления при создании файлов определений библиотек. Эта информация позволяет определить отсутствующую информацию для сигнатур MATLAB.
Эти сопоставления типов не зависят от платформы и компилятора. Целочисленные типы, основанные на компиляторе, см. в разделе Целочисленные типы без фиксированной ширины.
Для этих типов укажите DIRECTION как "input" и SHAPE как 1.
| C Целочисленный тип с фиксированной шириной | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MATLAB поддерживает эти нефиксированные целочисленные типы C. На основе используемого компилятора MATLAB сопоставляет эти типы с соответствующими типами с фиксированной шириной C, как показано в таблицах Числовые типы с фиксированной шириной целочисленных типов данных.
short
short int
signed short
signed short int
unsigned short
unsigned short int
int
signed int
unsigned
unsigned int
long
signed long
signed long int
unsigned long
unsigned long int
long long
std::vector<T> Целочисленные типыВ этой таблице показано, как типы данных MATLAB соответствуют std::vector типы. По умолчанию MATLAB представляет std::vector типы с MATLAB clib.array тип. Дополнительные сведения см. в разделе Объект MATLAB для массивов C++.
Для этих типов укажите DIRECTION как "input" и SHAPE как 1. Сведения об использовании типов элементов см. в разделе Объект MATLAB для массивов C++.
C++ std::vector<T> Целочисленный тип | Эквивалент MATLAB | Тип элемента |
|---|---|---|
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
Для этих типов укажите DIRECTION как "input" и SHAPE как 1.
| Тип C с плавающей запятой | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
C++ std::vector<T> Тип с плавающей запятой | Эквивалент MATLAB | Тип элемента [a] |
|---|---|---|
|
| clib. |
|
| clib. |
[a] Сведения об использовании типов элементов см. в разделе Объект MATLAB для массивов C++. | ||
В этих таблицах показано, как C++ string и char типы данных соответствуют типам данных MATLAB. Сопоставление данных зависит от того, как тип используется в функции, в качестве входного аргумента, выходного аргумента или элемента данных. Например, эти определения функций показывают различные виды использования T.
void fnc(T); // T is a parameter type / input arugment T fnc(); // T is a return type / output argument
Для этих типов укажите DIRECTION как "input" и SHAPE как 1.
| Простой символьный тип C++ | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| Простой тип строки C++ | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
std::u16string |
|
std::u32string |
|
char* ТипыC++ char* Тип входного параметра | MLTYPE | SHAPE |
|---|---|---|
|
|
|
wchar_t*char16_t*char32_t* | "char" |
|
C++ char* Тип возврата | MLTYPE | SHAPE |
|---|---|---|
|
| "nullTerminated" |
|
| |
wchar_t*char16_t*char32_t* |
| "nullTerminated" |
|
|
C++ char* Тип элемента данных | Эквивалентный тип MATLAB |
|---|---|
|
|
wchar_t*char16_t*char32_t* |
|
const char* ТипыC++ const char* Типы | Эквивалентный тип MATLAB |
|---|---|
|
|
wchar_t*char16_t*char32_t* |
|
char** ТипыMATLAB не поддерживает C++ char** возвращаемые типы.
C++ char** Тип входного параметра | MLTYPE | SHAPE[a] |
|---|---|---|
char** | "string" | [ |
char*[] | "string" | [ |
[a] 1D массив строк. Первый элемент - это размер массива, а последний элемент - форма каждого элемента. | ||
C++ char** Тип элемента данных | Эквивалентный тип MATLAB |
|---|---|
char** |
|
char*[] |
|
const char** ТипыMATLAB не поддерживает C++ const char** возвращаемые типы.
C++ const char** Тип входного параметра | MLTYPE | SHAPE[a] |
|---|---|---|
const char** |
| [ |
const char*[] |
| [ |
[a] 1D массив строк. Первый элемент - это размер массива, а последний элемент - форма каждого элемента. | ||
C++ const char** Тип элемента данных | Эквивалентный тип MATLAB |
|---|---|
const char** |
|
const char*[] |
|
std::vector<T> Типы строкДля этих типов укажите DIRECTION как "input".
C++ std::vector<T> Тип строки | Эквивалент MATLAB | Тип элемента [a] |
|---|---|---|
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
[a] Сведения об использовании типов элементов см. в разделе Объект MATLAB для массивов C++. | ||
bool ТипыДля этих типов укажите DIRECTION как "input" и SHAPE как 1.
bool Напечатать | Эквивалентный тип MATLAB |
|---|---|
|
|
| Эквивалент MATLAB | Тип элемента [a] |
|---|---|---|
|
|
|
[a] Сведения об использовании типов элементов см. в разделе Объект MATLAB для массивов C++. | ||
В этих таблицах показано, как вызвать определяемый пользователем тип C++ в интерфейсе MATLAB в библиотеку. libname.
Для этих типов укажите DIRECTION как "input" и SHAPE как 1.
| Определяемый пользователем тип C++ | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
| Тип класса C++ | Эквивалент MATLAB |
|---|---|
|
|
|
|
|
|
nullptr Типы аргументовnullptr Типы входных аргументовMATLAB обеспечивает clib.type.nullptr чтобы можно было передать NULL функции с этими типами входных аргументов C++:
Указатели на объекты. Однако указатели на основные типы массивов MATLAB не поддерживаются.
shared_ptr
Множества
clib.type.nullptr поддерживается для следующих типов аргументов MATLAB:
указатели скалярных объектов
clib множества
nullptr Типы возвратаИнтерфейс C++ возвращает специфичный для типа empty значения для функций, возвращающих nullptr.
Для типа double, MATLAB возвращает[] для значения double.empty.
Для всех других фундаментальных типов MATLAB возвращает значение. Определить MLTYPE.emptyMLTYPE, найдите тип C или C++ в таблицах в этом разделе. MLTYPE находится в столбце Эквивалентный тип MATLAB.
Тестирование для nullptr типы, вызовите isempty функция.
Для непринципиальных типов MATLAB возвращает nullptr объект. Тестирование для nullptr объекты, вызовите clibIsNull функция.
void* Типы аргументовПройти void* аргументы в функции C++ и из них см. в разделе Использование аргументов void *. MATLAB не поддерживаетvoid* члены данных.
При прохождении void* входной аргумент MATLAB преобразует базовые данные в соответствующий тип C++.
Отображение основных типов
| Тип C++ | Эквивалент MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clib.array Сопоставление типов
| Тип C++ | Эквивалент MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типы для классов и структур C++ в библиотеке
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
| clib. |
typedef void* Отображение
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
typedef void* | clib. |
Если тип данных аргумента/возвращаемого типа в конструкторе класса, методе или функции является одним из этих типов или если библиотека содержит какие-либо неподдерживаемые языковые функции, то функциональность не включается в интерфейс MATLAB к библиотеке.
Любой тип с размером более 64 бит, например long double
Массивы символьных типов (wchar_t, char16_t, char32_t)
Ссылки на указатель, например int*&
Указатели или массивы std::string
Указатели или ссылки на перечисления
Ссылочные элементы данных
void* члены данных
std смарт-указатели, отличные от std::shared_ptr
Статические элементы данных
** указатели, за исключением:
Опоры MATLAB char**
Опоры MATLAB ** указатели на пользовательские классы, используемые в качестве типов параметров функции или метода.
Многоуровневые указатели, например type***
Указатели функций C и std::function в качестве возвращаемых типов функций или элементов данных. Также нельзя передавать функцию MATLAB в качестве входных данных указателям функций C или std::function параметр.
Шаблоны классов с неполными экземплярами или без них
union
Типы, определенные в std пространство имен, за исключением этих поддерживаемых типов:
std::string
std::wstring
std::u16string
std::u32string
std::vector
std::shared_ptr
std::function
MATLAB сообщает о конструкциях, использующих неподдерживаемые типы. Для просмотра этих сообщений используйте 'Verbose' опции в clibgen.generateLibraryDefinition или clibgen.buildInterface функции.
Например, предположим, что functionName в ClassName определен в HeaderFile.h. Если аргумент для functionName неподдерживаемый тип type, то MATLAB не добавляет functionName в файл определения. Кроме того, если 'Verbose' является true, то clibgen.generateLibraryDefinition отображает это сообщение.
Did not add member 'functionName' to class 'ClassName' at HeaderFile.h:290. 'type' is not a supported type.
clibgen.buildInterface | clibgen.generateLibraryDefinition