[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Squangling (enabled with the `-fsquangle' option), utilizes the `B' code to indicate reuse of a previously seen type within an indentifier. Types are recognized in a left to right manner and given increasing values, which are appended to the code in the standard manner. Ie, multiple digit numbers are delimited by `_' characters. A type is considered to be any non primitive type, regardless of whether its a parameter, template parameter, or entire template. Certain codes are considered modifiers of a type, and are not included as part of the type. These are the `C', `V', `P', `A', `R', `U' and `u' codes, denoting constant, volatile, pointer, array, reference, unsigned, and restrict. These codes may precede a `B' type in order to make the required modifications to the type.
For example:
template <class T> class class1 { }; template <class T> class class2 { }; class class3 { }; int f(class2<class1<class3> > a ,int b, const class1<class3>&c, class3 *d) { } B0 -> class2<class1<class3> B1 -> class1<class3> B2 -> class3 |