In C++ friend functions does not become methods. They just take params of that 
type.
Move your friend function’s from class declaration and you will be fine.

On 16 Jul 2014, at 15:52, Kv Gopalkrishnan <kvgopalkrishn...@gmail.com> wrote:

> I want to expose a C++ friend functions to python using Python boost.
>   class Turtle{
>                    friend const PV& GetHeading(const Turtle& t);
>                    friend const PV& GetLeft(const Turtle& t);
>                    friend const P& GetPoint(const Turtle& t);
>                    friend void SetPoint(Turtle& t, const P& p);
>                    public:
>                     
>                    ...  
>                 
>                    private:
>                    PV h; 
>                    PV l; 
> 
>               };
> 
> 
> Here I have wrapped the classes PV and P so no problem there. I tried to wrap 
> the friend functions like regular functions. Like
> 
>               BOOST_PYTHON_MODULE(TurtleWrapper)
>                   {
>                      class_<Turtle>("Turtle") 
>                        .def("GetHeading",&Turtle::GetHeading) 
>                        .def("GetLeft",&Turtle::GetLeft)
>                        .add_property("h",&Turtle::GetHeading)
>                        .add_property("l",&Turtle::GetLeft);
>                  }
> When i run the code i get error messages.
> 
>                error: ‘GetHeading’ is not a member of ‘Turtle’
>                error: ‘GetLeft’ is not a member of ‘Turtle’
> 
> This error is seen for add_property and also .def.
> So I assume that this is not the way to declare a friend function and the 
> documentation of python boost does not seem (or at least I did not see a note 
> about friend functions). Any help is much appreciated. 
> 
>     
> 
> Kind Regards
> K.V.
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> https://mail.python.org/mailman/listinfo/cplusplus-sig

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to