SKETCH OF HOW RESEARCH MIGHT CONTINUE AND RESULTS BE PRESENTED - PREVIEW ONLY

The Name in a C++ Name Decoration

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”