[C++-sig] Re: pyste: current cvs/1_30_00 difference in treatment of overloaded members

Nicodemus nicodemus at globalite.com.br
Thu May 15 20:59:42 CEST 2003


David Abrahams wrote:

>So? It can be accessed from A_Wrapper, where you need to declare the
>default implementation.
>  
>

Yes, but you can't tell Boost.Python about the default implementation, 
so just declaring a function "default_name" in the wrapper will have no 
effect:

    const char * default_name() {
        return A::name();
    }

... unless we also expose it in the class_ declaration:

    .def("name", &A::name, &A_Wrapper::default_name)

Which, besides making the function public, can't be done because A::name 
is protected. Or am I missing something?

>Private virtual functions are a bigger problem; the best you can do
>is to break the C++ rules by replicating the base class declaration
>with the private function declared protected.
>  
>

I believe the problem persists: you still must tell Boost.Python about 
the default implementation.

>HTH,
>Dave
>

Thanks Dave,
Nicodemus.





More information about the Cplusplus-sig mailing list