[Python-Dev] Re: About Pyrex

David Abrahams David Abrahams" <david.abrahams@rcn.com
2002年4月10日 01:00:09 -0500


----- Original Message -----
From: "Ralf W. Grosse-Kunstleve" <rwgk@cci.lbl.gov>
> The most important feature for me is that both the compiled code and
> the interpreted code look nice and are extensible.
> The second most important feature is that all you need is Python
> and C++. There is no third (little) language to learn (as with
> SWIG).

As libraries start to take more advantage of template metaprogramming
techniques, their interface starts to approach a language definition.
How different, really, is the following from being an IDL?
BOOST_PYTHON_MODULE_INIT(back_reference_ext)
{
 module("back_reference_ext")
 .def("copy_Y", copy_Y,
return_value_policy<copy_const_reference>())
 .def("copy_Z", copy_Z,
return_value_policy<copy_const_reference>())
 .def("x_instances", &X::count)
 .add(
 class_<Y>("Y")
 .def_init(args<int>())
 .def("value", &Y::value)
 .def("set", &Y::set)
 )
 .add(
 class_<Z,std::auto_ptr<Z> >("Z")
 .def_init(args<int>())
 .def("value", &Z::value)
 .def("set", &Z::set)
 )
 ;
}
The real advantage to using the C++ compiler as opposed to intermediate
language is that we can be sure it is up to the job of dealing with any
C/C++ language constructs we throw at it.
-Dave

AltStyle によって変換されたページ (->オリジナル) /