Boost logo

Boost Users :

Subject: Re: [Boost-users] [units] How to multiply a quantity with a dimensionless factor
From: Nathan Crookston (nathan.crookston_at_[hidden])
Date: 2011-07-31 13:13:03


Hi Marcel,

On Sat, Jul 30, 2011 at 2:25 PM, Marcel <minusdreidb+boost_at_[hidden]> wrote:
> Hi,
>
> I'm new to boost and units and hope this is not too trivial. If I try to
> multiply a quantity with a
> dimensionless factor like
>
> quantity<length> a;
> quantity<length> b = 2.0 * b;
>
> I get compiler errors due to missing operator*. So I worked around this
> by using
>
> quantity<length> b = quantity<dimensionless>(2.0) * b;
>
> But I'm wondering if there is a easier and better readable way to do
> this?

Your first example should work -- in fact, the following works for me
on g++4 and VC10 (using boost trunk, but should work with all units
versions):

#include <boost/units/quantity.hpp>
#include <boost/units/systems/si.hpp>

using namespace boost::units;

int main()
{
  quantity<si::length> a;
  quantity<si::length> b = 2.0 * a;

  return 0;
}

Perhaps a compilable example, boost version, and compiler would aid
diagnosis . . .

HTH,
Nate


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