Freyr Magnússon wrote:
I trying to create an interface wrapper for a class and I get an error:

cannot convert from 'boost::python::detail::method_result' to 'MMOT::Geometry &'


Checking the code, I see method_result has a workaround for the conversion-operator-to-reference:

class method_result {
  // ...
# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) || BOOST_WORKAROUND(BOOST_INTEL_WIN, >= 900)
      // No operator T&
#  else

      template <class T>
      operator T&() const
      {
          converter::return_from_python<T&> converter;
          return converter(const_cast<handle<>&>(m_obj).release());
      }
#  endif
};

If this is why this:

    Geometry& getGeometry()
    {
        return this->get_override("getGeometry")();
    }

Doesn't work (I don't know what that workaround means offhand but I'm going to guess it refers to old MSVC platforms), you could try

   Geometry* result = this->get_override("getGeometry")();
   return *result;

So... what compiler are you using?

-t

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

Reply via email to