RE:Re: Pointer-to-member operator and me

Masaharu Goto (MXJ02154@nifty.ne.jp)
Thu, 23 Jul 1998 22:10:00 +0900


Rooters,

I do not recall whether I already answered the Pointer-To-Member issue,
I'll repeat my information.

Reason of not supporting Pointer-to-Member is portability. I could not find
portable way of handing Pointer-to-Member in seamless interpreter/compiler
environment. The fundamental problem is that Pointer-To-Function is NOT A
POINTER. It is implemented like below in actuall C++ compiler.

struct VTBL { void* p2vf, short offset, short flag };
struct pointer_to_member {
struct VTBL *vtbl;
short index;
short flag;
};

This struct is compiler dependent. There is no way to get this information
in platform independent way.

>From user's point of view, Pointer-To-Member looks just like an ordinary
pointer, but for C++ implementer, it is a hidious beast.

If anybody can think of platform independent way of handling Pointer-To-Member
,
I really appreciate.

Masaharu Goto

>Pasha Murat has generously assisted me in checking the standards compliance
>of my code. Even after I correct the syntactic errors that Pasha pointed
>out, the pointer-to-member and address-of-member operators do not seem to
>work in CINT. This may not be an easy thing to fix, but in the long run
>these are important language features, so I hope that eventually these
>operators will be incorporated into CINT. Perhaps now that the ISO has
>accepted the C++ standard, at least the target will be stationary.
>
>Thanks again to everyone who has contributed to writing ROOT for providing
>such a useful and powerful tool.
>
>At 11:46 AM 7/21/98 -0500, Pasha Murat wrote:
>>
>>
>> I suspect that 2 out of 3 problems you reported are due to you
>>are using Microsoft "dialect" of C++ and are not related to CINT.
>
>Jonathan