Boost logo

Boost :

From: Dean Foster (foster_at_[hidden])
Date: 2001-09-14 08:48:33

> From: Deane_Yang_at_[hidden]
> My gut instinct is that formulas that mix one object measured in
> inches and another measured in centimeters should not occur
> very often even in physics software and should be made as
> explicit as possible.

I too am curious how this would come up. I can think of function that
would have a signature of:

        mass/volumn density(mass m, distance r)

but why would you want two fuctions:

        kg/m^3 density(kg m, m r)
        kg/cm^3 density(kg m, cm r)

or heaven forbid:

        kg/m^3 density(lbs m, yard r)

The fact that C++ wouldn't allow them anyway suggests that it doesn't
make sense.

So, why would "density" want to know what units m or r was measured
in? Why would this function ever have units attached to it?

Now I can see that constants (c, G, h-bar, etc) all would have to be
defined with units. But once inside an actual function, I would hope
they would simply be called c, G or h-bar and not 2.99x10^8 cm/s,
etc. Thus, the units would be user invisable.

So I see the need for having IO from and into various units. But once
inside C++, I'm not sure why you would mix units.

Can someone provide a code snipet that shows why this is important?



P.S. Just checking if anyone was awake: 10^8 should of course be
10^10. :-) The point being, that these constants should never be
listed with units attached to them anywhere except in a file of

Boost list run by bdawes at, gregod at, cpdaniel at, john at