[C++-sig] Re: implicit_convertible extension
David Abrahams
dave at boost-consulting.com
Wed Jul 16 18:07:27 CEST 2003
Stefan Seefeld <stefan.seefeld at orthosoft.ca> writes:
> hi there,
>
> I'm browsing through the documentation as well as
> the mailing list archive to find the best way to
> convert between a C++ type (boost::posix_time::time_duration)
> and a python type (double).
>
> Conversion should happen implicitely, i.e. I have a bunch
> of functions taking a time_duration argument, which I want
> to be able to call in python passing simple doubles.
You mean floats, I think. That's the name of the Python
floating-point type.
> Looking at the documentation for implicit_convertible,
> I find the requirements a bit restrictive.
>
> I think it may be convenient to be able to provide converter
> functions that do the conversion even if the two types themselfs
> are totally unaware of each other (i.e. no cast operators, no
> special constructors required).
That's what explicit converter registration is for. You want an
rvalue from-python converter for time_duration which accepts Python
floats.
This is an undocumented feature, but if you investigate,
http://www.boost.org/libs/python/doc/v2/faq.html#question2 will tell
you how to go about doing it.
> Does this make any sense ? Does something like this already exist ?
Sorta. See above.
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
More information about the Cplusplus-sig
mailing list