[C++-sig] Virtual Methods + default arguments
Nicodemus
nicodemus at globalite.com.br
Wed Feb 26 05:58:48 CET 2003
David Abrahams wrote:
>Bruno da Silva de Oliveira <bso at inf.ufsc.br> writes:
>
>
>>Hi!
>>
>>Is it possible to indicate default arguments for virtual methods,
>>using the BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS macro?
>>
>>
>>
>
><snip>
>
>
>
>>I also tried to change the second .def to:
>>
>> .def("f", &XWrap::f, f_overloads())
>>
>>and:
>>
>> .def("f", &XWrap::default_f, f_overloads())
>>
>>But with the same results.
>>
>>
>
>This one is on the right track, but you need a separate version of
>f_overloads for the second one. The 2nd argument to def in this case
>just carries type information; it could be a null function pointer
>for all Boost.Python cares. It's the 3rd arg which carries all the
>info about what functions to call.
>
Nice. The solution is define the overloads as:
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_overloads, default_f, 0, 2)
generate the module as:
class_< X, XWrap >("X")
.def("f", &X::f, &XWrap::default_f )
.def("f", &XWrap::default_f, f_overloads())
;
Thanks a lot Dave! (Don't you sleep? 8P)
Farewell,
Nicodemus.
More information about the Cplusplus-sig
mailing list