В этих таблицах показано, как MATLAB® преобразует данные C/C + + в эквивалентные типы данных MATLAB. MATLAB использует эти отображения при создании файлов определений библиотек. Используйте эту информацию для определения отсутствующей информации для сигнатур MATLAB.
Эти отображения типов не зависят от платформы и компилятора. Для целых типов, основанных на компиляторе, смотрите Non-Fixed-Width Integer Types.
Для этих типов задайте 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 типы с помощью clib.array MATLAB тип. Для получения дополнительной информации смотрите Объект MATLAB для массивов C++.
Для этих типов задайте DIRECTION как "input" и SHAPE как 1. Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++.
C++ std::vector<T> Целый тип | Эквивалентные | Тип элемента |
|---|---|---|
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
Для этих типов задайте DIRECTION как "input" и SHAPE как 1.
| Тип с плавающей точкой C | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
C++ std::vector<T> Тип с плавающей точкой | Эквивалентные | Тип элемента[a] |
|---|---|---|
|
| клиб. |
|
| клиб. |
[a] Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++. | ||
В этих таблицах показано, как string C++ и 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 не поддерживает char** C++ возвращаемые типы.
C++ char** Вход параметра | MLTYPE | SHAPE[a] |
|---|---|---|
char** | "string" | [ |
char*[] | "string" | [ |
[a] 1D массив строки. Первый элемент является размером массива, а последний - формой каждого элемента. | ||
C++ char** Тип представителя данных | Эквивалентный тип MATLAB |
|---|---|
char** |
|
char*[] |
|
const char** ТипыMATLAB не поддерживает const char** C++ возвращаемые типы.
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> Строковый тип | Эквивалентные | Тип элемента[a] |
|---|---|---|
|
| клиб. |
|
| клиб. |
|
| клиб. |
|
| клиб. |
[a] Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++. | ||
bool ТипыДля этих типов задайте DIRECTION как "input" и SHAPE как 1.
bool Напечатать | Эквивалентный тип MATLAB |
|---|---|
|
|
| Эквивалентные | Тип элемента[a] |
|---|---|---|
|
|
|
[a] Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++. | ||
В этих таблицах показано, как вызвать пользовательский тип C++ в интерфейсе MATLAB к библиотеке libname.
Для этих типов задайте DIRECTION как "input" и SHAPE как 1.
| Определяемый пользователем тип C++ | Эквивалентный тип MATLAB |
|---|---|
|
|
|
|
| Тип класса C++ | Эквивалентные |
|---|---|
|
|
|
|
|
|
nullptr Типы аргументовnullptr Входные параметрыMATLAB предоставляет clib.type.nullptr введите так, чтобы можно было передать NULL функции с этими типами входных параметров C++:
Указатели на объекты. Однако указатели на фундаментальные типы массивов MATLAB не поддерживаются.
shared_ptr
Массивы
The clib.type.nullptr тип поддерживается для следующих типов аргументов MATLAB:
скалярные указатели на объекты
clib массивы
nullptr Типы возвратаИнтерфейс C++ возвращает специфичные для типа empty значения для функций, которые возвращают nullptr.
Для double типаMATLAB возвращает [] для значения double.empty.
Для всех других фундаментальных типов MATLAB возвращает значение. Для определения MLTYPE.emptyMLTYPE, проверьте тип C или C++ в таблицах в этой теме. MLTYPE находится в столбце Equivalent MATLAB Type.
Чтобы проверить на nullptr типов, вызывать isempty функция.
Для неосновных типов MATLAB возвращает nullptr объект. Чтобы проверить на nullptr объекты, вызывать clibIsNull функция.
void* Типы аргументовДля прохождения void* аргументы функций C++ и от них, см. Использование void * Аргументы. MATLAB не поддерживает void* представители данных.
При прохождении void* входной параметр, MATLAB преобразует базовые данные в соответствующий тип C++.
Основные типы Отображения
| Тип C++ | Эквивалентные |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clib.array Отображение типов
| Тип C++ | Эквивалентные |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типы для классов и структур C++ в библиотеке
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
| клиб. |
typedef void* Отображение
| Тип C++ | Эквивалентный тип MATLAB для |
|---|---|
typedef void * | клиб. |
Если тип данных аргумента/типа возврата в конструкторе, методе или функции класса является одним из этих типов, или если библиотека содержит какие-либо неподдерживаемые языковые функции, то функциональность не включается в интерфейс 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