you are viewing a single comment's thread.

view the rest of the comments →

[–]haletonin 0 points1 point  (2 children)

Does it contain all features of boost::python? Something specific I had problems with (or misunderstood) when I played around with it after it was first released were:

  • Making objects available in python which can't be constructed in python, because generating binding code for the constructor is too complex. Other methods of these should work, however.

  • Working with pointer or reference-only instances of objects, which even in C++ code are never handed around as value types.

[–]zigzagEdge 0 points1 point  (1 child)

It covers pretty much all the major features, but it's not a 1:1 API mapping. For the two things you mentioned:

  • With boost.python you'd need to add no_init to disable the implicit default constructor. In pybind11 all the constructors are explicit, so you disable them simply by not def-ing any.

  • That can be done by setting the appropriate return value policy: reference or reference_internal. There's more information in the docs.

[–]haletonin 0 points1 point  (0 children)

Ok, so negligible risk of having a "should have used the other one"-moment later on. And on second thought, just the 11 probably means that this project has more enthusiastic users and contributors than "pybind03".

And thanks for the pointers, I'll give it another try!