$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2006-03-09 08:36:11
I was playing around with Dave's and Aleksey's dimensional analysis example, and
I decided that I couldn't leave well enough alone.  To that end, I decided to
reimplement it so that combining units could be written using infix operator
notation.  Anyway, the attached file implements it so the following works (on
EDG).
#include "dim.hpp"
#include <iostream>
int main(void) {
    using namespace dim;
    using dim::time; // annoying names from C headers!
    DIM( length / time ) velocity;
    DIM( velocity / time ) acceleration;
    DIM( mass * acceleration ) force;
    quantity<float, DIM(mass)> m = 5.0f;
    quantity<float, DIM(acceleration)> a = 9.8f;
    quantity<float, DIM(force)> f = m * a;
    std::cout << "force = " << f.value() << '\n';
    return 0;
}
I find the syntax like
    DIM( mass * length / (time * time) ) force;
mildly amusing, so I thought I'd share.
Regards,
Paul Mensonides