В этих таблицах показано, как 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