I didn't have many problems with the docs, though I didn't dig very deeply.
I did, however, find it to be rather clunky compared to, say, SWIG (which serves nearly the same purpose, and with which I have more experience). I think that B:: P handles Boost:: shared_ptr better than SWIG, but otherwise they're pretty even functionality-wise. And B:: P requires far more typing, and the templates take forever to compile. I also find SWIG to be cleaner since it doesn't rely on confusing template black magic. On the other hand, SWIG is an additional step in your toolchain that might not be worth it.
So I can't contrast them technically very well, but I can give you the general impression that I got, which is that you should look at SWIG as a possibility if B:: P isn't doing it for you. Hope that helps.
Yes, it has, thankyou.
Interesting. I do use shared_ptr rather extensively already, but I *also* use SWIG a little bit- mostly to export some segments of code that can be run in Ruby scripts- ie. extending rather than embedding. What I'd like to do is the other way around though- embedding a script into my code, rather than setting code up to be called from a script.
Basically if I can do a call from A (C/C++) to B (eg. Python) back to a different function in A (C/C++) that I pushed into the scripting environment somehow, then it's doing what I'm after. Anyway, is this the kind of thing that you worked with? A quick skim of the swig docs seems to give the typical "extending" examples, but skimps on the "embedding". I find that enormously frustrating, and it's why I have to ask rather than just being able to look up the docs for a solution.