Ограничения к Поддержке C/C++

Можно создать интерфейс MATLAB® к разделяемым библиотекам на основе C++ 98 и обычно происходящего C++ 11 функций. Однако, если библиотека содержит следующие функции языка или какие-либо Неподдерживаемые Типы данных, то функциональность не включена в интерфейс MATLAB к библиотеке.

  • Перегруженные функции оператора

  • Создание объектов классов в пространстве имен std

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

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

  • Неразрешенные предописания

  • Пространства имен без имени и классы

  • перемещение конструктора

  • Передача nullptr к функциям C++ или элементам данных

  • Передача и возврат текста Unicode® с C++

  • Массивы объектов класса C++

  • Функциональные объекты (функторы)

  • Параметры по умолчанию с направлением, заданным как OUT.

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

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

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

  • Функции Variadic

  • Свойства с тем же именем в производном классе

  • Псевдонимы пространства имен. Используйте исходное имя пространства имен вместо этого.

  • Пространства имен, функции членства и свойства с именами C++, которые недопустимы в MATLAB

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

  • void *

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

  • Директивы препроцессору

  • Глобальные переменные

  • Битовые поля

  • Объединения

Семантика интеллектуального указателя

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

Обработка объектов const

read-only object C++ является объектом, объявленным с атрибутом const C++. Вы можете получить такой объект как вывод функции или как элемент данных класса. В настоящее время MATLAB не отличает объекты только для чтения и позволяет эти операции, которые обычно не позволяются на C++.

  • Передача объекта к функциям с входными параметрами неconst

  • Вызов метода неconst на объекте

  • Изменение его свойств

В R2019b MATLAB будет ошибка, если вы выполните эти операции.

Пределы на предописании для функций

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

Например, в этом коде, MATLAB не может поддержать myFunc, если вы не включаете заголовочный файл, задающий MyClass.

class MyClass;
double myFunc(MyClass);

ExceptionObject

Объект исключения C++ библиотеки не доступен в MATLAB. Однако пользовательские сообщения об исключениях доступны.

Похожие темы