Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!shadooby!accuvax.nwu.edu!tank!ncar!unmvax!deimos.cis.ksu.edu!rutgers!att!westmark!mole-end!mat From: mat@mole-end.UUCP (Mark A Terribile) Newsgroups: comp.lang.c++ Subject: Are ::* .* and ->* healthy in 2.0 ? Keywords: ::* Message-ID: <189@mole-end.UUCP> Date: 13 May 89 23:38:23 GMT Organization: mole-end--private system. admin: mole-end!newtnews Lines: 37 Would someone in the know tell me if pointer-to-member will be really healthy in 2.0 ? I've run into a family of bugs in 1.2.1 on the Sun and Glockenspiel's 1.1 for MS-DOS including Failure to insert the virtualization code in inline'd code that uses call by pointer-to-member-function. Failure to properly cast the pointer-to-function found in the vtbl (no inline expansion) when making the call when the vtbl case must be checked. Failure to properly write the dereference in the second case. The functions involved were output functions of the general form virtual ostream& X::put( ostream& ); and ostream& Y::put( ostream& ); where Y is derived from X. The inline that failed was written ostream& X_io::operator()( ostream& o ) { return X_pointer->*put_mem_p( o ); }; In the place where the compiler gave up, the inline was itself called out of an inline (a friend): ostream& operator<<( ostream& o, X_io& x ) { return x( o ); }; -- (This man's opinions are his own.) From mole-end Mark Terribile