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” |