MATLAB к отображению типа данных C++

Типы данных фиксированной ширины

Эти таблицы показывают, как типы данных MATLAB® соответствуют фиксированной ширине типы C++.

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

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

float

single

double

double

Другой тип CЭквивалентный тип MATLAB

bool

logical

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

MATLAB поддерживает их "не зафиксированная ширина" C целочисленные типы. На основе используемого компилятора MATLAB сопоставляет эти типы с соответствующей фиксированной шириной C типы, как показано в таблицах Fixed-Width 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

Строковые типы и типы символов

Эти таблицы показывают, как MATLAB преобразует string и char данные, возвращенные в C++ в типы MATLAB.

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

char
const char *

int8

signed char

int8

unsigned char

uint8

wchar_t

char

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

std::string

string, Символы ASCII только

std::wstring
std::u16string
std::u32string

string

char *
const char *

string

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

char16_t

char

char32_t

char

Пользовательские типы

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

C++ пользовательский типЭквивалентный тип MATLAB

struct StructName

libname.StructName

перечислимый EnumName

libname.EnumName

nullptr Возвратите типы

Интерфейс C++ возвращает специфичный для типа empty значения для функций, которые возвращают nullptr.

  • Для типа double, ​ MATLAB возвращает [] для значения double.empty.

  • Для всех других фундаментальных типов, ​ MATLAB возвращает MLTYPEпустой значение. Определить MLTYPE, ищите C или тип C++ в таблицах в этой теме. MLTYPE находится в столбце Equivalent MATLAB Type.

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

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

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

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

  • Любой тип с размером, больше, чем 64 бита, например, long double

  • void *

  • Массивы типов символов (wchar_t, char16_t, char32_t)

  • Указатели или массивы std::string

  • Указатели или ссылки на перечисления

  • Члены справочных данных

  • std интеллектуальные указатели кроме std::shared_ptr

  • Статические элементы данных

  • ** указатели на типы примитивов, такие как double**. MATLABsupports ** указатели на пользовательские классы, используемые в качестве функции или ​method типов параметра.

  • Многоуровневые указатели, такие как type***

  • Указатель функции

  • Шаблоны классов с неполным или никакими инстанцированиями

  • union

Сообщения о неподдерживаемых типах

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.

Смотрите также

|

Похожие темы

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