主要内容

C/ c++支持的限制金宝app

你可以创建一个MATLAB®接口到基于c++ 98和常见的c++ 11特性的64位共享库。但是,如果库包含以下数据类型或语言特性,则该功能不包含在库的MATLAB接口中。您可以通过创建包装器头文件来包含此功能。有关更多信息,请参见c++限制工作示例

不支持的数据类型金宝app

  • 例如,大小大于64位的任何类型长两倍

  • 例如,指针的引用int (* &

  • 的指针或数组std:: string

  • 指向枚举的指针或引用

  • 引用数据成员

  • void *数据成员

  • 修改静态数据成员

  • **指针,除了:

    • MATLAB支金宝app持char * *类型。

    • MATLAB支金宝app持**指向自定义类的指针,用作函数或方法参数类型。

    • MATLAB支金宝app持void * *用作函数或方法参数类型。

  • 多级指针,例如类型***

  • C函数指针和std::函数作为函数返回类型或数据成员。也不能将MATLAB函数作为输入传递给C函数指针或std::函数参数。

  • 具有不完整或没有实例化的类模板

  • 联盟

  • 中定义的类型性病命名空间,除了以下支持的类型:金宝app

    • std:: string

    • std:: wstring

    • std:: u16string

    • std:: u32string

    • std::向量

    • std::要

    • std::函数

关于不支持类型的消息金宝app

如果库使用这些数据类型,则该功能不包含在库的MATLAB接口中,MATLAB将显示如下消息:

在HeaderFile.h:290中没有将成员“methodName”添加到类“ClassName”中。'long double'不是受支持的类型。金宝app

要查看这些消息,请使用“详细”选项中的clibgen.generateLibraryDefinitionclibgen.buildInterface功能。

不支持的语言特性金宝app

  • 移动构造函数

  • 重载操作符函数

  • 未命名的命名空间和类

  • 预处理器指令(宏)

  • 全局变量

  • 可变的函数

  • 不完整或没有实例化的函数模板

  • 中创建类的对象性病命名空间,包括自定义类。

  • 智能指针语义。只有std::要是支持金宝app的。MATLAB不支持操作符重载、移金宝app动语义和智能指针类定义中的成员函数,这些可能会限制它们的有效性。相反,一个std::要查看< T >行为为类型T在MATLAB。类型T可以作为输入传递std::要查看< T >,和类型T作为输出接收std::要查看< T >

  • 命名空间别名。请使用原来的命名空间名称。

当你构建一个包含这些特性或用法的库时,MATLAB会显示:

警告:头文件中的某些c++语言结构不受支持,不能导入。金宝app

请注意

不支持将c++对象保存到mat文件中。金宝app

中继承c++类MATLAB

MATLAB不支持创建继承c++金宝app接口类的MATLAB类。

不支金宝app持的类方法

MATLAB不支持通过定义这些关金宝app联函数来实现运算符。

操作

方法来定义

A < b lt (a, b)
A > b gt (a, b)
A <= b 勒(a, b)
A >= b 通用电气(a, b)
A ~= b ne (a, b)
A == b eq (a, b)
(s1, s2,…,sn) subsref (a, s)
A (s1,…,sn) = b subsassign (s b)
b (a) subsindex (a)

相关的话题