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 целочисленные типы.

  • 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++ и типы символов

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

char

int8
const char *

signed char

int8

unsigned char

uint8

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

std::string

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

const char *

string

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

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

struct StructName

libname.StructName

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

libname.EnumName

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

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

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

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

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

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

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

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

  • wchar_t

  • char16_t

  • char32_t

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

  • void *

  • union

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

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

  • Указатель, массив и участники справочных данных

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

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

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

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

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

MATLAB сообщает относительно построений о том использовании неподдерживаемые типы. Чтобы просмотреть эти сообщения, используйте 'Verbose' опция в clibgen.generateLibraryDefinition или clibgen.buildInterface функции.

Например, предположите тот functionName в ClassName задан в HeaderFile.h. Если аргумент к functionName имеет тип wchar_t, затем MATLAB не добавляет functionName к файлу определения. Кроме того, если 'Verbose' true, затем clibgen.generateLibraryDefinition отображает следующее сообщение.

Did not add member 'functionName' to class 'ClassName' at HeaderFile.h:290.
  'wchar_t' is not a supported type.

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

|