
On Tue, Sep 30, 2008 at 4:05 PM, Robert Dailey <rcdailey@gmail.com> wrote:
On Tue, Sep 30, 2008 at 3:14 PM, David Abrahams <dave@boostpro.com> wrote:
Just wrap the class without exposing any of its interesting parts and you should be fine:
class_<SomeClassOfMine>("SomeClassOfMine");
Thanks David.
After I posted my original inquiry I found out through PyErr_Print() that it needed the class to be exposed to Python. However, I no longer wish to expose the class, but instead I want to define a global function in a python script that I'm loading.
For example, I would add this function to the namespace that I pass into exec_file().
The C++ function I want to expose looks like:
static Rocket::Core::Context* GetContext( std::string const& context_name );
All I'm doing is this:
boost::python::object MyNewFunction( &GetContext );
However, when I compile this I get:
error C2027: use of undefined type 'boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning<T>' with [ T=result_t ]
I can't exactly use return policies here since I'm not using def(). How can I make this work?
After a lot more research, I found out about make_function(). This is what def() uses and seems to be exactly what I"m looking for.