
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