mirror of
https://github.com/boostorg/python.git
synced 2026-01-26 06:42:27 +00:00
This commit was manufactured by cvs2svn to create branch 'RC_1_33_0'.
[SVN r31393]
This commit is contained in:
6
test/polymorphism2_auto_ptr.cpp
Executable file
6
test/polymorphism2_auto_ptr.cpp
Executable file
@@ -0,0 +1,6 @@
|
||||
// Copyright David Abrahams 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)
|
||||
|
||||
#define HELD_BY_AUTO_PTR
|
||||
#include "polymorphism2.cpp"
|
||||
5
test/polymorphism2_auto_ptr.py
Normal file
5
test/polymorphism2_auto_ptr.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# Copyright David Abrahams 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)
|
||||
import polymorphism2
|
||||
polymorphism2.test()
|
||||
68
test/wrapper_held_type.cpp
Executable file
68
test/wrapper_held_type.cpp
Executable file
@@ -0,0 +1,68 @@
|
||||
// Copyright David Abrahams 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/register_ptr_to_python.hpp>
|
||||
#include <boost/python/def.hpp>
|
||||
#include <boost/python/class.hpp>
|
||||
#include <boost/python/wrapper.hpp>
|
||||
#include <boost/python/module.hpp>
|
||||
#include <boost/python/implicit.hpp>
|
||||
|
||||
#include <memory>
|
||||
|
||||
struct data
|
||||
{
|
||||
virtual int id() const
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
};
|
||||
|
||||
std::auto_ptr<data> create_data()
|
||||
{
|
||||
return std::auto_ptr<data>( new data );
|
||||
}
|
||||
|
||||
void do_nothing( std::auto_ptr<data>& ){}
|
||||
|
||||
|
||||
namespace bp = boost::python;
|
||||
|
||||
struct data_wrapper : data, bp::wrapper< data >
|
||||
{
|
||||
data_wrapper(data const & arg )
|
||||
: data( arg )
|
||||
, bp::wrapper< data >()
|
||||
{}
|
||||
|
||||
data_wrapper()
|
||||
: data()
|
||||
, bp::wrapper< data >()
|
||||
{}
|
||||
|
||||
virtual int id() const
|
||||
{
|
||||
if( bp::override id = this->get_override( "id" ) )
|
||||
return bp::call<int>(id.ptr()); // id();
|
||||
else
|
||||
return data::id( );
|
||||
}
|
||||
|
||||
virtual int default_id( ) const
|
||||
{
|
||||
return this->data::id( );
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
BOOST_PYTHON_MODULE(wrapper_held_type_ext)
|
||||
{
|
||||
bp::class_< data_wrapper, std::auto_ptr< data > >( "data" )
|
||||
.def( "id", &data::id, &::data_wrapper::default_id );
|
||||
|
||||
bp::def( "do_nothing", &do_nothing );
|
||||
bp::def( "create_data", &create_data );
|
||||
}
|
||||
|
||||
#include "module_tail.cpp"
|
||||
34
test/wrapper_held_type.py
Normal file
34
test/wrapper_held_type.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# Copyright David Abrahams 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)
|
||||
'''
|
||||
>>> from wrapper_held_type_ext import *
|
||||
>>> d = data()
|
||||
>>> print d.id()
|
||||
42
|
||||
>>> do_nothing( d )
|
||||
>>> print d.id()
|
||||
42
|
||||
>>> d = create_data()
|
||||
>>> print d.id()
|
||||
42
|
||||
>>> do_nothing( d )
|
||||
>>> print d.id()
|
||||
42
|
||||
'''
|
||||
|
||||
def run(args = None):
|
||||
import sys
|
||||
import doctest
|
||||
|
||||
if args is not None:
|
||||
sys.argv = args
|
||||
return doctest.testmod(sys.modules.get(__name__))
|
||||
|
||||
if __name__ == '__main__':
|
||||
print "running..."
|
||||
import sys
|
||||
status = run()[0]
|
||||
if (status == 0): print "Done."
|
||||
sys.exit(status)
|
||||
|
||||
Reference in New Issue
Block a user