C++ для Типа данных MATLAB Отображения

В этих таблицах показано, как MATLAB® преобразует данные C/C + + в эквивалентные типы данных MATLAB. MATLAB использует эти отображения при создании файлов определений библиотек. Используйте эту информацию для определения отсутствующей информации для сигнатур MATLAB.

Числовые типы

Целочисленные типы данных фиксированной ширины

Эти отображения типов не зависят от платформы и компилятора. Для целых типов, основанных на компиляторе, смотрите Non-Fixed-Width Integer Types.

Для этих типов задайте DIRECTION как "input" и SHAPE как 1.

C с фиксированной шириной Целого типаЭквивалентный тип MATLAB

int8_t

int8

uint8_t

uint8

int16_t

int16

uint16_t

uint16

int32_t

int32

uint32_t

uint32

int64_t

int64

uint64_t

uint64

Нефиксированная ширина Целых типов

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> Целый тип

Эквивалентные clib.array MATLAB Тип для libname

Тип элемента

std::vector<int8_t>

clib.array. libname.SignedChar

клиб. libname.SignedChar

std::vector<uint8_t>

clib.array. libname.UnsignedChar

клиб. libname.UnsignedChar

std::vector<int16_t>

clib.array. libname.Short

клиб. libname.Short

std::vector<uint16_t>

clib.array. libname.UnsignedShort

клиб. libname.UnsignedShort

std::vector<int32_t>

clib.array. libname.Int

клиб. libname.Int

std::vector<uint32_t>

clib.array. libname.UnsignedInt

клиб. libname.UnsignedInt

std::vector<int64_t>

clib.array. libname.LongLong

клиб. libname.LongLong

std::vector<uint64_t>

clib.array. libname.UnsignedLongLong

клиб. libname.UnsignedLongLong

Типы с плавающей точкой

Для этих типов задайте DIRECTION как "input" и SHAPE как 1.

Тип с плавающей точкой CЭквивалентный тип MATLAB

float

single

double

double

C++ std::vector<T> Тип с плавающей точкой

Эквивалентные clib.array MATLAB Тип для libname

Тип элемента[a]

std::vector<float>

clib.array. libnameодинок

клиб. libnameодинок

std::vector<double>

clib.array. libname.Double

клиб. libname.Double

[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

Простые типы символов и строк C++

Для этих типов задайте DIRECTION как "input" и SHAPE как 1.

Простой тип символов C++Эквивалентный тип MATLAB

char

int8

signed char

int8

unsigned char

uint8

wchar_t

char

char16_t

char

char32_t

char

Простой тип Строки C++Эквивалентный тип MATLAB

std::string

string
(MATLAB преобразует символы в кодировку по умолчанию для платформы std::string.)

std::wstring

string

std::u16string

string

std::u32string

string

C++ char* Типы

C++ char* Вход параметраMLTYPESHAPE

char*

"int8"

  • Скалярное значение

  • Массив скалярных значений

wchar_t*
char16_t*
char32_t*
"char"
  • Скалярное значение

  • Массив скалярных значений

C++ char* Тип возвратаMLTYPESHAPE

char*

"string"

"nullTerminated"

  • "clib.array.lib.Char"

  • "int8"

  • "char"

  • Скалярное значение

  • Массив скалярных значений

wchar_t*
char16_t*
char32_t*

"string"

"nullTerminated"

"char"

  • Скалярное значение

  • Массив скалярных значений

C++ char* Тип представителя данныхЭквивалентный тип MATLAB

char*

  • string

  • clib.array.lib.Char

  • int8

  • char

wchar_t*
char16_t*
char32_t*

  • string

  • char

C++ const char* Типы

C++ const char* ТипыЭквивалентный тип MATLAB

const char*

  • string

  • clib.array.lib.Char

  • int8

  • char

wchar_t*
char16_t*
char32_t*

  • string

  • char

C++ char** Типы

MATLAB не поддерживает char** C++ возвращаемые типы.

C++ char** Вход параметраMLTYPESHAPE[a]
char**"string"[scalar value, «nullTerminated»]
char*[]"string"[scalar value, «nullTerminated»]

[a] 1D массив строки. Первый элемент является размером массива, а последний - формой каждого элемента.

C++ char** Тип представителя данныхЭквивалентный тип MATLAB
char**

string

char*[]

string

C++ const char** Типы

MATLAB не поддерживает const char** C++ возвращаемые типы.

C++ const char** Вход параметраMLTYPESHAPE[a]
const char**

"string"

[scalar value, «nullTerminated»]
const char*[]

"string"

[scalar value, «nullTerminated»]

[a] 1D массив строки. Первый элемент является размером массива, а последний - формой каждого элемента.

C++ const char** Тип представителя данныхЭквивалентный тип MATLAB
const char**

string

const char*[]

string

std::vector<T> Типы строк

Для этих типов задайте DIRECTION как "input".

C++ std::vector<T> Строковый тип

Эквивалентные clib.array MATLAB Тип для libname

Тип элемента[a]

std::vector<std::string>

clib.array. libname.std. Строка

клиб. libname.std. Строка

std::vector<std::wstring>

clib.array. libname.std.wString

клиб. libname.std.wString

std::vector<std::u16string>

clib.array. libname.std.u16String

клиб. libname.std.u16String

std::vector<std::u32string>

clib.array. libname.std.u32String

клиб. libname.std.u32String

[a] Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++.

bool Типы

Для этих типов задайте DIRECTION как "input" и SHAPE как 1.

bool НапечататьЭквивалентный тип MATLAB

bool

logical

std::vector<T> bool Напечатать

Эквивалентные clib.array MATLAB Тип для libname

Тип элемента[a]

bool

clib.array. libname.Bool

клиб. libname.Bool

[a] Для получения информации об использовании типов элементов смотрите Объект MATLAB для массивов C++.

Определяемые пользователем типы

В этих таблицах показано, как вызвать пользовательский тип C++ в интерфейсе MATLAB к библиотеке libname.

Для этих типов задайте DIRECTION как "input" и SHAPE как 1.

Определяемый пользователем тип C++Эквивалентный тип MATLAB

struct StructName

libname. StructName

перечисление EnumName

libname. EnumName

Тип класса C++

Эквивалентные clib.array MATLAB Тип для libname

std::vector<T>

clib.array. libname.T

std::vector<T []>

клиб. libname.T

std::shared_ptr<T>

clib.array. libname.T

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.empty значение. Для определения MLTYPE, проверьте тип C или C++ в таблицах в этой теме. MLTYPE находится в столбце Equivalent MATLAB Type.

    Чтобы проверить на nullptr типов, вызывать isempty функция.

  • Для неосновных типов MATLAB возвращает nullptr объект. Чтобы проверить на nullptr объекты, вызывать clibIsNull функция.

void* Типы аргументов

Для прохождения void* аргументы функций C++ и от них, см. Использование void * Аргументы. MATLAB не поддерживает void* представители данных.

При прохождении void* входной параметр, MATLAB преобразует базовые данные в соответствующий тип C++.

Основные типы Отображения

Тип C++

Эквивалентные void* MATLAB Напечатать

int8_t*

int8

uint8_t*

uint8

int16_t*

int16

uint16_t*

uint16

int32_t*

int32

uint32_t*

uint32

int64_t*

int64

uint64_t*

uint64

float*

single

double*

double

bool*

logical

clib.array Отображение типов

Тип C++

Эквивалентные clib.array MATLAB Тип для libname

char*

clib.array. libname.Char

signed char*

clib.array. libname.SignedChar

unsigned char*

clib.array. libname.UnsignedChar

short*

clib.array. libname.Short

unsigned short*

clib.array. libname.UnsignedShort

int*

clib.array. libname.Int

unsigned int*

clib.array. libname.UnsignedInt

long*

clib.array. libname.Long

unsigned long*

clib.array. libname.UnsignedLong

long long*

clib.array. libname.LongLong

unsigned long long*

clib.array. libname.UnsignedLongLong

float*

clib.array. libname.Float

double*

clib.array. libname.Double

bool*

clib.array. libname.Bool

Типы для классов и структур C++ в библиотеке

Тип C++

Эквивалентный тип MATLAB для libname

MyClassклиб. libname. MyClass

typedef void* Отображение

Тип C++

Эквивалентный тип MATLAB для libname

typedef void * Handleклиб. libname. Handle

Неподдерживаемые типы данных

Если тип данных аргумента/типа возврата в конструкторе, методе или функции класса является одним из этих типов, или если библиотека содержит какие-либо неподдерживаемые языковые функции, то функциональность не включается в интерфейс 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.

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте