[C++-sig] Nesting classes in boost::python

Hans Meine meine at informatik.uni-hamburg.de
Wed Jun 4 17:31:22 CEST 2008


Hi again,

[note: this is not really about py++!] I wondered why py++ does not properly 
scope the nested classes.  For example, in order to expose a nested class 
Foo::Bar, I use bp::scope in my own code like this:

{
  scope foo(
    class_<Foo>("Foo")
      .def ...
  ); // normal class export decl.

  class_<Bar>("Bar")
    .def ...
  ;
} // close scope foo (i.e. "Foo")

The only reason why I could imagine that py++ does not do so is that AFAIK 
this breaks pickling (and possibly more things?), since Foo.Bar.__name__ 
is "Bar" in Python, which does not allow the pickle module to locate the 
class correctly. :-(

This is the reason for the more general subject I chose, because this may 
deserve a discussion and/or fix within the BPL?!

-- 
Ciao, /  /
     /--/
    /  / ANS



More information about the Cplusplus-sig mailing list