Эти таблицы показывают, как MATLAB® преобразует данные C/C++ в эквивалентные типы данных MATLAB. MATLAB использует эти отображения при создании файлов определения библиотеки. Используйте эту информацию, чтобы помочь вам задать недостающую информацию для подписей MATLAB.
Эти отображения типа независимы от платформы и компилятора. Для целочисленных типов на основе компилятора смотрите Целочисленные типы "Не Фиксированная Ширина".
Для этих типов задайте DIRECTION как "input" и SHAPE как 1.
| C целочисленный тип Фиксированной Ширины | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MATLAB поддерживает их "не зафиксированная ширина" C целочисленные типы. На основе используемого компилятора MATLAB сопоставляет эти типы с соответствующей фиксированной шириной C типы, как показано в таблицах Numeric Types Fixed-Width Integer Data Types.
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 типы с clib.array MATLAB ввод. Для получения дополнительной информации смотрите Объект 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 | Тип элемента |
|---|---|---|
|
| 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 | SHAPEA |
|---|---|---|
char** | "string" | [ |
char*[] | "string" | [ |
C++ char** Тип элемента данных | Эквивалентный тип MATLAB |
|---|---|
char** |
|
char*[] |
|
const char** ТипыMATLAB не поддерживает C++ const char** возвратите типы.
C++ const char** Введите тип параметра | MLTYPE | SHAPEA |
|---|---|---|
const char** |
| [ |
const char*[] |
| [ |
C++ const char** Тип элемента данных | Эквивалентный тип MATLAB |
|---|---|
const char** |
|
const char*[] |
|
std::vector<T> Строковые типыДля этих типов задайте DIRECTION как "input".
C++ std::vector<T> Строковый тип | Эквивалентный MATLAB | Тип элемента |
|---|---|---|
|
| clib. |
|
| clib. |
|
| clib. |
|
| clib. |
[a] Для получения информации об использовании типов элемента смотрите Объект MATLAB Для Массивов C++. | ||
bool ТипыДля этих типов задайте DIRECTION как "input" и SHAPE как 1.
bool Ввод | Эквивалентный тип MATLAB |
|---|---|
|
|
| Эквивалентный MATLAB | Тип элемента |
|---|---|---|
|
|
|
[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пустойMLTYPE, ищите C или тип C++ в таблицах в этой теме. MLTYPE находится в столбце Equivalent MATLAB Type.
Протестировать на nullptr типы, вызовите isempty функция.
Для нефундаментальных типов, MATLAB возвращает nullptr объект. Протестировать на nullptr объекты, вызовите clibIsNull функция.
void* Типы аргументаПередать void* аргументы к и от функций C++, смотрите Использование пусто* Аргументы. MATLAB не поддерживает void* элементы данных.
При передаче void* входной параметр, MATLAB преобразует базовые данные в соответствующий тип C++.
Отображение фундаментальных типов
| Тип C++ | Эквивалентный MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clib.array Отображение типов
| Тип C++ | Эквивалентный MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типы для классов C++ и структур в библиотеке
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
| clib. |
typedef void* Отображение
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
определение типа пусто* | clib. |
Если тип данных типа аргумента/возвращаться в конструкторе класса, методе или функции является одним из этих типов, или если библиотека содержит какие-либо неподдерживаемые функции языка, то функциональность не включена в интерфейс MATLAB к библиотеке.
Любой тип с размером, больше, чем 64 бита, например, long double
Массивы типов символов (wchar_t, char16_t, char32_t)
Ссылки на указатель, например, int*&
Указатели или массивы std::string
Указатели или ссылки на перечисления
Члены справочных данных
void* элементы данных
std интеллектуальные указатели кроме std::shared_ptr
Статические элементы данных
** указатели, кроме:
MATLAB поддерживает char**
MATLAB поддерживает ** указатели на пользовательские классы, используемые в качестве функции или method типов параметра.
Многоуровневые указатели, такие как 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