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

#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 . . .


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at