Boost logo

Boost Users :

Subject: Re: [Boost-users] [units] unit conversion on construction in relation to argument passing
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-03-25 11:48:56


AMDG

On 03/24/2011 10:04 PM, alfC wrote:
> Hi,
> Boost.Units offers automatic conversion (if conversion factor is
> defined) on construction of variables:
>
> quantity<cgs::lengh> A = 4.*cgs::centimeter;
> quantity<si::length> a(A);
>
> nice! But for some reason I believe this would work for argument
> functions
>
> double f(quantity<si::length> v){ return 1.;}
> ...
> quantity<cgs::lengh> A = 4.*cgs::centimeter
> f(A); // doesn't work! not matching function
>
> why is this? isn't the argument of the call a sort of construction
> argument for the function argument, or is more like a plain
> assignment. Is there a way to force the automatic conversion of the
> function call.
>
> Or I am forced to use this other long call?
>
> f(quantity<si::length>(A));

Yes. The constructor is explicit.

In Christ,
Steven Watanabe


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net