// Copyright Niall Douglas 2005. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) # include <boost/python/return_opaque_pointer.hpp> # include <boost/python/def.hpp> # include <boost/python/module.hpp> # include <boost/python/return_value_policy.hpp> static void *test=(void *) 78; void *get() { return test; } void *getnull() { return 0; } void use(void *a) { if(a!=test) throw std::runtime_error(std::string("failed")); } int useany(void *a) { return a ? 1 : 0; } namespace bpl = boost::python; BOOST_PYTHON_MODULE(voidptr_ext) { bpl::def("get", &::get, bpl::return_value_policy<bpl::return_opaque_pointer>()); bpl::def("getnull", &::getnull, bpl::return_value_policy<bpl::return_opaque_pointer>()); bpl::def("use", &::use); bpl::def("useany", &::useany); }