This chapter describes all constraints added by the ANSI profile.
Operation
- isQuery set to true only applies to a member operation (non global).
 - virtual tag set to true only applies to a non static member operation.
 
Constructor
- operation with «C++Constructor» stereotype.
 - Name should be the same as the owner’s name.
 
Destructor
- operation with «C++Destructor» stereotype.
 - Name should be ‘~’ + the same name as the owner’s name.
 
Global
Class with «C++Global» stereotype:
- Name length should be 0.
 - All operations and attributes should be public.
 - There can be only one global class by namespace.
 - Owner of a global class can only be a package
 
Typedef
Class with «C++Typedef» stereotype:
- One and only one «C++BaseType» dependency from a «C++Typedef» class.
 - «C++BaseType» supplier dependency can only be a Classifier or Operation.
 - «C++Typedef» class cannot contain an attribute and operation.
 - Only one inner Class or inner Enumeration is valid.
 
Friend
Dependency with «C++Friend» stereotype:
- «C++Friend» client dependency can only be Class or Operation.
 - «C++Friend» supplier dependency can only be Class.