Boost logo

Boost :

From: Matthias Schabel (pinhead_at_[hidden])
Date: 2002-09-27 10:40:05

> doing Barton & Nackman's templated approach to tracking m, l, and t? It
> was mentioned in Scott Meyers forward to Andrei Alexandrescu's book.
> Should that be attempted, then we could (of course) include the
> system (and possibly even convert automagically between them).
> That has been a 'dream' of mine ever since I first saw "object oriented"

 This has been done at FermiLab in the SIunits library. It might be
 interesting to see about
 incorporating this into boost - it claims to (and, appears to, from some
 limited experimentation) not incur any
 runtime overhead and correctly resolves units through complex expressions.
 You can find the code at

 It's actually pretty cool - allows definition of new unit systems (and
 provides SI, cosmological, quantum, and
 I think CGS systems) Incorporation of this would allow unit checking when
 using dimensioned physical
 constants. As far as structuring the constants, how about breaking it up
 something like:

 namespace constants
     namespace mathematical
         template<class T> static T e() { return 2.7182; }

     namespace physical
         namespace fundamental
             template<class T> static T c() { return 2.99e5; }

         namespace quantum
         { ... }

     namespace geophysical { }

 This would allow using declarations in sections of code which heavily use
 constants from particular categories and allows
 use of different conventions for say sqrt(-1) ( i() in physics parlance,
 in electrical engineering)...


Boost list run by bdawes at, gregod at, cpdaniel at, john at