Lets suppose we have class Test that we want export to python:
class CustomType { public: int m_value; }; class Test { public: const CustomType & get_value() const { return m_value; } CustomType & get_value() { return m_value; } private: CustomType m_value; };The piece of code that is below binds both overloads of get_value method:
void add_python_bidings_test( ) { class_< Test >( "Test" ) .def( "get_value_const", ( const CustomType & (Test::*)() const) &Test::get_value, boost::python::return_value_policy<boost::python::copy_const_reference>( )) .def( "get_value", ( CustomType & (Test::*)() ) &Test::get_value, boost::python::return_value_policy<boost::python::copy_non_const_reference>( ) ); }I compiled this only on Visual Studio compiler and didn't check inside python, however, I believe it should work. Please, let me know if you find any issues.