>From: <[EMAIL PROTECTED]> > > Even if angle is added as a dimension, to an implementation using an > > integer vector, it still wouldn't accommodate any other dimensions > > added later, without rewriting the library and unit definitions. > > how about having the basic SI dimensions and a couple of extra > "to-be-defined-by-the-developer" dimensions. In that case, full > SI "compliance" and for those who want something extra they can have > it. I saw one of the discussed unit libraries provided something > like a dimension to be defined by the user/developer.
I think I know a way this may be done, now: Default parameters. There's several ways of specifying a unit; one is to use a typelist, such as "typedef mpl::vector_c<1,0,0,0,0,0,0> kg" (Dave Abrahams also showed this approach at the recent ACCU conference), or use template parameters for the dimensions. In both ways, defaults may be used (it's used internally for mpl::vector, anyway). In fact, all could be defaulted (like mpl::vector<>), giving in this case a dimensionless unit. Named template parameters could be a possibility, as well, so you could do "typedef unit<kg<>, m<>, s<-2> > newton". Regards, Terje _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost