The compiler is available under the GNU GPL, though some extensions specific to Microsoft Windows are only available through pure-systems GmbH.
Aspect-oriented programming allows modularizing cross-cutting concerns in a single module, an aspect.
All calls to a specific function can be traced using an aspect, rather than inserting 'cerr' or print statements in many places: The Tracer aspect will print out a message before any call to %Iter::Reset.
AspectC++ provides a join point API to provide and access to information about the join point.
The join point API also provides compile-time type information that can be used within an aspect to access the type or the value of the arguments and the return type and return value of a method or function.