Эти таблицы показывают, как 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 | SHAPE A |
---|---|---|
char** | "string" | [ |
char*[] | "string" | [ |
C++ char** Тип элемента данных | Эквивалентный тип MATLAB |
---|---|
char** |
|
char*[] |
|
const char**
ТипыMATLAB не поддерживает C++ const char**
возвратите типы.
C++ const char** Введите тип параметра | MLTYPE | SHAPE A |
---|---|---|
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