Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > C++ code > Generating C++ code > Generating C++ code > Concepts > Overview of modeling C++ code (C++ code)
  
Overview of modeling C++ code (C++ code)
In addition to the standard modeling techniques in Modeler, you can use the supplied C++ Profile package to record information that is specific to C++.
The C++ Profile package contains Stereotypes and Tag Definitions required for modeling C++ code in the model. Through the Tag Definitions in the C++ profile, you can model information such as array specs, CV qualifiers and indirection.
If you reverse engineer C++ code to a model that does not contain the C++ profile, the Reverser creates a C++ Profile in the Model; however, the C++ profile it creates may contain only the Stereotypes and Tag Definitions required for the code you reverse engineered, and each Stereotype and Tag Definition of the C++ Profile package will not include a description of its purpose:
If you want to add a complete and documented C++ profile to a Model that does not contain the C++ Profile package, see Adding the C++ profile package in a model.
If the Reverser has created a C++ profile in your Model and you want to update it so that it is complete and includes the Stereotype and Tag Definition descriptions, see Updating the C++ profile package in a model.
* 
If you want to add additional Tag Definitions to items in the Model, do not do so through the supplied C++ Profile package. If you add Tag Definitions to the supplied Stereotypes, they may be unlinked when reverse engineering code. In addition, if you import the C++ Profile package again or upgrade Modeler, the C++ Profile package will be overwritten.
For information about generating C++ code for systems that can work with ThingWorx Mashups and systems that can communicate using the ThingWorx AlwaysOn protocol, see Overview of integration for ThingWorx.