Geoff Chappell - Software Analyst
SKETCH OF HOW RESEARCH MIGHT CONTINUE AND RESULTS BE PRESENTED - PREVIEW ONLY
In the general form
?name[@][scope@]@parameters
of a C++ decorated name, the name is in general the identifier that serves to name the object at its natural scope. In this general case, an @ sign (shown as optional in the general form above) is appended to ensure that the name will be well-separated from whatever follows.
An important special case is made for the very many objects that are built in to the language (typically with names more complex than a single identifier) or are generated by the compiler (typically with names that perhaps aren’t intended for much exposure). For these, the name is a code, consisting of a question mark, some number of underscores, including none, and finally a digit or an upper-case letter. Since the name has a known extent, it needs no signifier at its end, and no @ sign is appended.
?0 | constructor | |
?1 | destructor | |
?2 | operator new | |
?3 | operator delete | |
?4 | operator = | |
?5 | operator >> | |
?6 | operator << | |
?7 | operator ! | |
?8 | operator == | |
?9 | operator != | |
?A | operator [] | |
?B | operator type | |
?C | operator -> | |
?D | operator * | |
?E | operator ++ | |
?F | operator -- | |
?G | operator - | |
?H | operator + | |
?I | operator & | |
?J | operator ->* | |
?K | operator / | |
?L | operator % | |
?M | operator < | |
?N | operator <= | |
?O | operator > | |
?P | operator >= | |
?Q | operator , | |
?R | operator () | |
?S | operator ~ | |
?T | operator ^ | |
?U | operator | | |
?V | operator && | |
?W | operator || | |
?X | operator *= | |
?Y | operator += | |
?Z | operator -= | |
?_0 | operator /= | |
?_1 | operator %= | |
?_2 | operator >>= | |
?_3 | operator <<= | |
?_4 | operator &= | |
?_5 | operator |= | |
?_6 | operator ^= | |
?_7 | $vftable | compiler-generated “vftable” |
?_8 | $vbtable | compiler-generated “vbtable” |
?_9 | “vcall” | |
?_A | “typeof” | |
?_B | compiler-generated “local static guard” | |
?_C | compiler-generated string literal | |
?_D | __vbaseDtor | compiler-generated “vbase destructor” |
?_E | __vecDelDtor | compiler-generated “vector deleting destructor” |
?_F | __dflt_ctor_closure | compiler-generated “default constructor closure” |
?_G | __delDtor | compiler-generated “scalar deleting destructor” |
?_H | __vec_ctor | compiler-generated “vector constructor iterator” |
?_I | __vec_dtor | compiler-generated “vector destructor iterator” |
?_J | __vec_ctor_vb | compiler-generated “vector vbase constructor iterator” |
?_K | $vdispmap | compiler-generated “virtual displacement map” |
?_L | __ehvec_ctor | compiler-generated “eh vector constructor iterator” |
?_M | __ehvec_dtor | compiler-generated “eh vector destructor iterator” |
?_N | __ehvec_ctor_vb | compiler-generated “eh vector vbase constructor iterator” |
?_O | __copy_ctor_closure | compiler-generated “copy constructor closure” |
?_P | “udt returning” | |
?_Q | “EH” | |
?_R | “RTTI” | |
?_S | $locvftable | compiler-generated “local vftable” |
?_T | __local_vftable_ctor_closure | compiler-generated “local vftable constructor closure” |
?_U | operator new [] | |
?_V | operator delete [] | |
?_W | “omni callsig” | |
?_X | __placement_delete_closure | compiler-generated “placement delete closure” |
?_Y | __placement_arrayDelete_closure | compiler-generated “placement delete [] closure” |
?__A | __man_vec_ctor | compiler-generated “managed vector constructoro iterator” |
?__B | __man_vec_dtor | compiler-generated “managed vector destructor iterator” |
?__C | __ehvec_copy_ctor | compiler-generated “eh vector copy constructor iterator” |
?__D | __ehvec_copy_ctor_vb | compiler-generated “eh vector vbase copy constructor iterator” |