Using shared pointers with MATLAB Coder

5 views (last 30 days)
Pedro Calorio
Pedro Calorio on 12 Apr 2021
Answered: SACHIN KHANDELWAL on 23 Jan 2025
Hello guys,
My question is actually pretty straightforward. How do I use shared_ptr with generated C++ code from MATLAB? For example, I can pass a shared_ptr instead of a regular ptr to MATLAB-generated functions? If yes, how?
My first thinking is that I would have to change it manually in the function declaration, but I believe I could be so susceptible to errors this way.

Answers (1)

SACHIN KHANDELWAL
SACHIN KHANDELWAL on 23 Jan 2025
For smart pointers, while MATLAB Coder doesn't generate shared or unique pointers, it can wrap dynamic memory allocation in a more modern interface that guards calls to "new" with a wrapper called coder::array. This should be safer than emxArrays. You can do this by setting DynamicMemoryAllocationInterface to 'C++' which should be the default when generating C++ code.

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!