你可以创建一个MATLAB®接口到基于c++ 98和常见的c++ 11特性的64位共享库。但是,如果一个库包含以下数据类型或语言特性,则该功能不会包含在该库的MATLAB接口中。您可以通过创建包装头文件来包含此功能。有关更多信息,请参见c++限制工作区示例.
例如,任何大小大于64位的类型长两倍
字符类型数组(wchar_t
,char16_t
,char32_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::函数
如果一个库使用这些数据类型,那么该功能就不包含在该库的MATLAB接口中,并且MATLAB会显示如下消息:
没有在HeaderFile.h:290中添加成员“methodName”到类“ClassName”。'long double'不是受支持的类型。金宝app
要查看这些消息,请使用“详细”
选项clibgen.generateLibraryDefinition
或clibgen.buildInterface
功能。
移动
构造函数
重载的运算符函数
未命名的名称空间和类
宏常量
全局变量
可变的函数
未完成或没有实例化的函数模板
中创建类的对象性病
名称空间,包括自定义类。
智能指针语义。只有std::要
是支持金宝app的。MATLAB不支持操作符重载、移金宝app动语义和智能指针类定义中的成员函数,这可能会限制它们的有效性。相反,一个std::要查看< T >
行为类型T
在MATLAB。类型T
可以作为输入传递给std::要查看< T >
和类型T
收到的输出为std::要查看< T >
.
命名空间别名。请使用原始命名空间名称。
当你构建一个包含这些特性或用法的库时,MATLAB显示:
警告:头文件中的一些c++语言结构不受支持,也不被导入。金宝app
请注意
不支持将c++对象保存到mat文件中。金宝app
MATLAB不支持创建继承c++金宝app接口类的MATLAB类。
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) |