Is it possible to call repr from C++ on a C++ object that can be converted to 
python?  Let me explain.

I have an enum that I converted to python using boost::python::enum_().  That 
class already provides a good repr() to python (thanks to the boost::python 
developers for that).  However that enum is used as a type on a member in 
another C++ class that I have where boost::python does not provide a good 
repr().  So I'm trying to provide one and thought, it sure would be nice if I 
could just call repr() on the member.  I assume I have to convert the value on 
that member to python first, some kind of way then call repr?  Is that 
possible?  Or is there a better way?

Example:

Typedef enum
{
   V1 = 0,
   V2 = 5,
   V3 = 6
} values;

Class ValueExample
{
   Public:
      ValueExample(const values& v) {m_value = v};
      Values getValue() const { return m_value };
   Private:
      Values m_value;
}

Std::string
ValueExampleRepr(const ValueExample& object)
{
   Std::stringstream ss;

   // What do I put here?
   // Ss << repr(object.getValue());

   Return ss::str();
}

Boost::python::enum_<values> values("values");
Values.value("V1", V1);
Values.value("V2", V2);
Values.value("V3", V3);

Boost::python::class_<ValueExample> ValueExample("ValueExample");

ValueExample("__repr__", ValueExampleRepr);
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to