1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
// -*- Mode: C++; c-file-style: "stroustrup"; indent-tabs-mode:nil; -*-
#include "testapi.h"
#include <boost/python.hpp>
using namespace boost::python;
void (Multiplier::*factor1) () = &Multiplier::SetFactor;
void (Multiplier::*factor2) (double) = &Multiplier::SetFactor;
struct MultiplierWrap : Multiplier, wrapper<Multiplier>
{
MultiplierWrap () : Multiplier ()
{
}
MultiplierWrap (double factor) : Multiplier (factor)
{
}
double Multiply (double value) const
{
return this->get_override("Multiply") (value);
}
double default_Multiply (double value) const
{
return this->Multiplier::Multiply (value);
}
};
BOOST_PYTHON_MODULE(testapi_boost)
{
def("func1", func1);
def("func2", func2);
def("call_virtual_from_cpp", call_virtual_from_cpp);
class_<MultiplierWrap, boost::noncopyable>("Multiplier")
.def(init<double>())
.def("GetFactor", &Multiplier::GetFactor)
.def("SetFactor", factor1)
.def("SetFactor", factor2)
.def("Multiply", &Multiplier::Multiply, &MultiplierWrap::default_Multiply)
;
}
|