主要内容

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

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

不支持的数据类型金宝app

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

  • 字符类型数组(wchar_tchar16_tchar32_t

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

  • 的指针或数组std:: string

  • 指向枚举的指针或引用

  • 引用数据成员

  • void *数据成员

  • 性病非智能指针std::要

  • 静态数据成员

  • Arunachal Pradesh,指针,除了:

    • MATLAB支金宝app持char * *

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

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

  • 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关函数来实现操作符。

操作

方法定义

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

相关的话题