1345
Comment:
|
233
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Boost.Python v2 now supports a free-function version of def which defines its function in the current scope: {{{ #include <boost/python/def.hpp> #include <boost/python/module_init.hpp> BOOST_PYTHON_MODULE_INIT(my_module) { def("name", function_ptr); def("name", function_ptr, call_policies); def("name", function_ptr, "documentation string"); def("name", function_ptr, call_policies, "documentation string"); def("name", function_ptr, default_stubs); } }}} etc. To get access to the current module, you can declare the current scope: {{{ #include <boost/python/scope.hpp> BOOST_PYTHON_MODULE_INIT(my_module) { // set the docstring of the current module scope scope().attr("__doc__") = "my module's docstring"; ... scope current; current.attr("x") = 1; // my_module.x = 1 } }}} Of course, you can also set the current scope to any object: {{{ object some_obj; scope within(some_obj); def("foo", &foo); // define a function within some_obj as a namespace }}} Be warned, however, that although you can set the current scope from a class_<> instance, the class_<>'s def() member function will work properly in some cases where the free-function def() cannot, since the latter is missing information about the class type being wrapped. |
I'm Abdul and I live in Lamain. <<BR>> I'm interested in Environmental Management, RC cars and Chinese art. I like to travel and watching The Vampire Diaries.<<BR>> <<BR>> My homepage [[http://www.opencartfan.cf|opencart theme]] |
I'm Abdul and I live in Lamain.
I'm interested in Environmental Management, RC cars and Chinese art. I like to travel and watching The Vampire Diaries.
My homepage opencart theme