Proposed clarification

Mark Mitchell mark at codesourcery.com
Fri Feb 20 08:48:00 UTC 2004


Presently, the ABI is not 100% clear about whether two member function 
types for non-static member functions of different classes can be 
substitution candidates.  For example, given:

  struct S {  };
  struct T { };

would the function types pointed to be "void (S::*)()" and "void 
(T::*)()" be the same type, for the purposes of substitution.

The EDG front end and G++ agree that they are not the same type, for the 
purposes of substitution, and I believe that is consistent with the 
spirit of the ABI, which already says that the types pointed to be "void 
(*)()" and "void (S::*)()" are not the same type for the purposes of 
substitution.

Therefore, I intend to update the ABI document with the attached change, 
unless anyone objects.

Are there any objections?

--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark at codesourcery.com

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diffs
URL: <http://sourcerytools.com/pipermail/cxx-abi-dev/attachments/20040220/3312e8e2/attachment.ksh>


More information about the cxx-abi-dev mailing list