[C++-sig] Re: MEMBER_FUNCTION_OVERLOADS doesn't honor virtualness

Jonathan Brandmeyer jbrandmeyer at earthlink.net
Mon Nov 1 12:07:30 CET 2004


On Sun, 2004-10-31 at 23:10 -0500, David Abrahams wrote:
> Jonathan Brandmeyer <jbrandmeyer at earthlink.net> writes:
> 
> > The subject says it all.  Attached is a test case.
> >

> > BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS( print_me, base::print_me, 0, 1)
> This won't compile without an ampersand-------------^

Are you sure?  For me (GCC 3.3.4), it doesn't compile with the
address-of operator.  Tests in libs/python/test/keywords.cpp and
libs/python/test/args.cpp do not use the ampersand.

> What result are you expecting from this?  Can you rewrite the example
> so that it asserts when you don't get the expected result.

Sure.  I have attached a replacement for the Python file.  The problem
is that derived.print_me() prints "base: " some_number, when I expect to
get "derived: " some_number.

-Jonathan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: idontwork.py
Type: application/x-python
Size: 433 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20041101/4d77c9f1/attachment.bin>


More information about the Cplusplus-sig mailing list