123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright David Abrahams 2002.
- // 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/module.hpp>
- #include <boost/python/def.hpp>
- #include <boost/python/long.hpp>
- #include <boost/python/class.hpp>
- #define BOOST_ENABLE_ASSERT_HANDLER
- #include <boost/assert.hpp>
- using namespace boost::python;
- object new_long()
- {
- return long_();
- }
- long_ longify(object x)
- {
- return long_(x);
- }
- object longify_string(char const* s)
- {
- return long_(s);
- }
- char const* is_long1(long_& x)
- {
- long_ y = x;
- x += 50;
- BOOST_ASSERT(x == y + 50);
- return "yes";
- }
- int is_long2(char const*)
- {
- return 0;
- }
- // tests for accepting objects (and derived classes) in constructors
- // from "Milind Patil" <milind_patil-at-hotmail.com>
- struct Y
- {
- Y(boost::python::long_) {}
- };
- BOOST_PYTHON_MODULE(long_ext)
- {
- def("new_long", new_long);
- def("longify", longify);
- def("longify_string", longify_string);
- def("is_long", is_long1);
- def("is_long", is_long2);
-
- class_< Y >("Y", init< boost::python::long_ >())
- ;
- }
- #include "module_tail.cpp"
|