MEX files support all C++ language standards. This topic discusses specific C++ language issues to consider when creating and using MEX files.
Use the C syntax statements in the MATLAB® API libraries in your C++ applications. You can also copy MATLAB C code examples into C++ applications. For example, see the
mexcpp.cpp file that contains both C and C++
The C++ source code for the examples provided by MATLAB use the
.cpp file extension. The extension
.cpp is unambiguous and recognized by C++ compilers. Other
possible extensions include
To build a C++ MEX file, type:
filename is the name of the source file.
You can run a C++ MEX file only on systems with the same version of MATLAB that the file was compiled on.
Do not use the
in a C++ destructor of a class used in a MEX-function. If the MEX-function
throws an error, MATLAB cleans up MEX-file variables, as described
in Automatic Cleanup of Temporary Arrays.
If an error occurs that causes the object to go out of scope, MATLAB calls the C++ destructor. Freeing memory directly in the destructor means both MATLAB and the destructor free the same memory, which can corrupt memory.
cout or the C-language
does not work as expected in C++ MEX files. Use the