C++ code generation: is it possible to put struct declaration in a namespace?
6 views (last 30 days)
Show older comments
Hello,
I am generating C++ code using Embedded Coder in v2021b. I am able to put the generated class in my chosen namespace via the Code Interface dialog:
But in my model i am using various buses, which are translated in C++ structs, which in turn reside in the global namespace.
Is there a way to specify a namespace for these structs too?
0 Comments
Answers (1)
Yoga
on 10 Sep 2023
I understand that you want to specify a namespace for structs that result out of the various buses you use in the model. This is possible by interactively configuring the C++ resultant code.
Please refer to the following link - https://www.mathworks.com/help/ecoder/ug/interactively-configure-cpp-interface.html.
I hope this helps resolve your issue.
2 Comments
Daniel Paukner
on 9 Aug 2024
I have a similar problem.
I define a class namespace using the interactive method stated on the site mentioned by Yoga, and it is used for the generated code of the model class.
But i also define input & output busses, and in those, i reference external enum definitions. I converted the enums from my C++ header using simulink.importExternalCTypes() and the enums work when i test my model in simulink. But when i code the model, the bus definitions get written into codermodel_types.h and are not nested within the namespace of the parent model. My external enum definition did however specify the enums in a namespace for name collision reasons.
When i add the line "using namespace <mynamespace>" in codermodel_types.h, it compiles without a hitch, but i need to manually add that. How do i get simulink embedded coder to add that line for me, or even better, drop ALL the code it creates into the namespace i give it?
See Also
Categories
Find more on Simulink 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!