« Return to Thread: Units of data

Re: Units of data

by Steven Watanabe-4 :: Rate this Message:

Reply to Author | View in Thread

AMDG

Zachary Turner wrote:

> Thanks for your response.  I got this working mostly, but I'm still
> having difficulty seeing how to tie it all together.  I added the
> following:
>
> typedef boost::units::make_system<bit_base_unit>::type data_system;
> typedef boost::units::unit<data_base_dimension::dimension_type,
> data_system> capacity;
>
> But I'm still not sure how to create and manipulate values with these
> units.  For example, I can do:
>
> quantity<capacity> compressed_size;
>
> but if I try to assign it to anything I get errors.  I tried using the
> BOOST_UNITS_STATIC_CONSTANT macro to create aliases such as bytes,
> megabytes, etc but I think this is the wrong approach, is it because
> all the units above are defined as base units?
>
> Ideally I want to be able to type:
>
> quantity<capacity> compressed_size = 10000 * bytes;
>  

That won't quite work.  Implicit conversions are banned.

typedef byte_base_unit::unit_type bytes;

quantity<capacity> compressed_size(10000 * bytes());

You can also use
BOOST_UNITS_STATIC_CONSTANT(bytes, byte_base_unit::unit_type);

to allow
10000 * bytes;

> quantity<capacity> total_size = 400000 * bytes;
>
> float ratio = compressed_size / total_size;  //should be dimensionless
>  

This ought to work.

> quantity<time> duration = 300 * seconds;
>
> quantity<data_rate> = total_size / duration;  //has dimensions capacity/tim

This should work if data_rate is defined correctly.

In Christ,
Steven Watanabe

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

 « Return to Thread: Units of data