Имена C++, которые недопустимы в MATLAB

MATLAB® автоматически переименовывает классы, функции членства, функции лица, не являющегося членом какой-либо организации, и перечисления с именами C++, которые недопустимы в MATLAB с помощью matlab.lang.makeValidName функция. Enumerants и элементы данных с именами C++, которые недопустимы, автоматически не переименованы.

Переименуйте вручную

Издатель может переименовать класс, перечисление, ​ или функция лица, не являющегося членом какой-либо организации, в файле определения библиотеки. Переименовывая пространства имен C++, ​ внешнее (включение) класс для вложенных классов, функции членства, ​ элементы данных, ​ enumerants, или пакет MATLAB не поддержаны.

Например, MATLAB преобразует имя класса _myclass в библиотеке mylib к x_myclass. Чтобы использовать класс в MATLAB, введите:

clib.mylib.x_myclass

Переименовать x_myclass, в файле определения библиотеки поменяйте имя x_myclass к myClass, затем создайте интерфейс. Когда вы будете использовать класс в MATLAB, введите:

clib.mylib.myClass

Используйте недопустимые имена свойства

Вы можете должны быть получить доступ к свойству в MATLAB, но имя свойства не может быть допустимым именем MATLAB. Например, имя может начаться с подчеркивания. Чтобы вывести это имя во время выполнения, используйте этот синтаксис MATLAB, где propertyName строковый скаляр или вектор символов, который, когда оценено, возвращает экземпляр свойства.

clib.libName.className.(propertyName)

Например, предположите, что у вас есть интерфейсный clib.demo.MyClass с этим свойством:

class MyClass
{
public:
    int _mean;
};

Присваивать свойство _mean к переменной введите:

x = clib.demo.MyClass;
xmean = x.('_mean')

Этот синтаксис допустим для имен меньше, чем максимальная длина идентификатора namelengthmax.

Используйте недопустимые имена перечисляемого значения

Вы можете должны быть создать перечисляемую стоимость в MATLAB, но имя того значения не может быть допустимым именем MATLAB. Например, имя enumerant может начаться с подчеркивания. Чтобы получить значение на это имя во время выполнения, используйте этот синтаксис MATLAB, где enumMember строковый скаляр или вектор символов, который, когда оценено, возвращает экземпляр перечисления.

clib.libName.enumName.(enumMember)

Например, предположите, что у вас есть интерфейсный clib.enums.keywords с этими свойствами:

  EnumDefinition with properties:

        Description: "clib.enums.keywords    Representation of C++ enumeration"
    DefiningLibrary: [1×1 clibgen.LibraryDefinition]
            CPPName: "keywords"
         MATLABType: "int32"
              Valid: 1
         MATLABName: "clib.enums.keywords"
            Entries: ["_for"    "_while"    "_class"    "_enums"    "_template"    "_typename"]

Присваивать запись _class к переменной введите:

var = clib.enums.keywords.('_class');

Этот синтаксис допустим для имен меньше, чем максимальная длина идентификатора namelengthmax.