Boost logo

Boost-Commit :

From: boost_at_[hidden]
Date: 2008-05-17 18:26:17


Author: matthiasschabel
Date: 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
New Revision: 45457
URL: http://svn.boost.org/trac/boost/changeset/45457

Log:
*** UNSTABLE *** modify non-SI units substantially
Added:
   sandbox/units/boost/units/systems/angle/base_units/
   sandbox/units/boost/units/systems/angle/base_units/arcminute.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/arcsecond.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/degree.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/gradian.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/radian.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/revolution.hpp (contents, props changed)
   sandbox/units/boost/units/systems/angle/base_units/steradian.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/
   sandbox/units/boost/units/systems/astronomical/base_units/astronomical_unit.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/light_day.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/light_hour.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/light_minute.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/light_second.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/light_year.hpp (contents, props changed)
   sandbox/units/boost/units/systems/astronomical/base_units/parsec.hpp (contents, props changed)
   sandbox/units/boost/units/systems/cgs/base_units/
   sandbox/units/boost/units/systems/cgs/base_units/biot.hpp (contents, props changed)
   sandbox/units/boost/units/systems/cgs/base_units/centimeter.hpp (contents, props changed)
   sandbox/units/boost/units/systems/cgs/base_units/gram.hpp (contents, props changed)
   sandbox/units/boost/units/systems/cgs/current.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/
   sandbox/units/boost/units/systems/imperial/base_units/drachm.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/fluid_ounce.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/foot.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/furlong.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/gallon.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/gill.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/grain.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/hundredweight.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/inch.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/league.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/mile.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/ounce.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/pint.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/pound.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/quart.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/quarter.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/stone.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/thou.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/ton.hpp (contents, props changed)
   sandbox/units/boost/units/systems/imperial/base_units/yard.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/
   sandbox/units/boost/units/systems/metric/base_units/angstrom.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/are.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/atmosphere.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/bar.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/barn.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/day.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/fermi.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/hectare.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/hour.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/liter.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/micron.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/minute.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/ton.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/torr.hpp (contents, props changed)
   sandbox/units/boost/units/systems/metric/base_units/year.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/
   sandbox/units/boost/units/systems/si/base_units/ampere.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/candela.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/kelvin.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/kilogram.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/meter.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/mole.hpp (contents, props changed)
   sandbox/units/boost/units/systems/si/base_units/second.hpp (contents, props changed)
   sandbox/units/boost/units/systems/temperature/base_units/
   sandbox/units/boost/units/systems/temperature/base_units/celsius.hpp (contents, props changed)
   sandbox/units/boost/units/systems/temperature/base_units/conversions.hpp (contents, props changed)
   sandbox/units/boost/units/systems/temperature/base_units/fahrenheit.hpp (contents, props changed)
   sandbox/units/libs/units/example/systems.cpp (contents, props changed)
Removed:
   sandbox/units/boost/units/systems/astronomical/astronomical_unit.hpp
   sandbox/units/boost/units/systems/astronomical/light_day.hpp
   sandbox/units/boost/units/systems/astronomical/light_hour.hpp
   sandbox/units/boost/units/systems/astronomical/light_minute.hpp
   sandbox/units/boost/units/systems/astronomical/light_second.hpp
   sandbox/units/boost/units/systems/astronomical/light_year.hpp
   sandbox/units/boost/units/systems/astronomical/parsec.hpp
   sandbox/units/boost/units/systems/base_units/ampere.hpp
   sandbox/units/boost/units/systems/base_units/biot.hpp
   sandbox/units/boost/units/systems/base_units/candela.hpp
   sandbox/units/boost/units/systems/base_units/celsius.hpp
   sandbox/units/boost/units/systems/base_units/centimeter.hpp
   sandbox/units/boost/units/systems/base_units/degree.hpp
   sandbox/units/boost/units/systems/base_units/fahrenheit.hpp
   sandbox/units/boost/units/systems/base_units/foot.hpp
   sandbox/units/boost/units/systems/base_units/gradian.hpp
   sandbox/units/boost/units/systems/base_units/gram.hpp
   sandbox/units/boost/units/systems/base_units/hour.hpp
   sandbox/units/boost/units/systems/base_units/inch.hpp
   sandbox/units/boost/units/systems/base_units/kelvin.hpp
   sandbox/units/boost/units/systems/base_units/kilogram.hpp
   sandbox/units/boost/units/systems/base_units/meter.hpp
   sandbox/units/boost/units/systems/base_units/mile.hpp
   sandbox/units/boost/units/systems/base_units/minute.hpp
   sandbox/units/boost/units/systems/base_units/mole.hpp
   sandbox/units/boost/units/systems/base_units/radian.hpp
   sandbox/units/boost/units/systems/base_units/revolution.hpp
   sandbox/units/boost/units/systems/base_units/second.hpp
   sandbox/units/boost/units/systems/base_units/steradian.hpp
   sandbox/units/boost/units/systems/base_units/yard.hpp
   sandbox/units/boost/units/systems/imperial/drachm.hpp
   sandbox/units/boost/units/systems/imperial/fluid_ounce.hpp
   sandbox/units/boost/units/systems/imperial/gallon.hpp
   sandbox/units/boost/units/systems/imperial/gill.hpp
   sandbox/units/boost/units/systems/imperial/grain.hpp
   sandbox/units/boost/units/systems/imperial/hundredweight.hpp
   sandbox/units/boost/units/systems/imperial/ounce.hpp
   sandbox/units/boost/units/systems/imperial/pint.hpp
   sandbox/units/boost/units/systems/imperial/pound.hpp
   sandbox/units/boost/units/systems/imperial/quart.hpp
   sandbox/units/boost/units/systems/imperial/quarter.hpp
   sandbox/units/boost/units/systems/imperial/stone.hpp
   sandbox/units/boost/units/systems/imperial/ton.hpp
   sandbox/units/boost/units/systems/metric/angstrom.hpp
   sandbox/units/boost/units/systems/metric/arcminute.hpp
   sandbox/units/boost/units/systems/metric/arcsecond.hpp
   sandbox/units/boost/units/systems/metric/are.hpp
   sandbox/units/boost/units/systems/metric/atmosphere.hpp
   sandbox/units/boost/units/systems/metric/bar.hpp
   sandbox/units/boost/units/systems/metric/barn.hpp
   sandbox/units/boost/units/systems/metric/day.hpp
   sandbox/units/boost/units/systems/metric/fermi.hpp
   sandbox/units/boost/units/systems/metric/hectare.hpp
   sandbox/units/boost/units/systems/metric/hour.hpp
   sandbox/units/boost/units/systems/metric/liter.hpp
   sandbox/units/boost/units/systems/metric/micron.hpp
   sandbox/units/boost/units/systems/metric/minute.hpp
   sandbox/units/boost/units/systems/metric/ton.hpp
   sandbox/units/boost/units/systems/metric/year.hpp
Text files modified:
   sandbox/units/boost/units/systems/angle/degrees.hpp | 10 ++++----
   sandbox/units/boost/units/systems/angle/gradians.hpp | 10 ++++----
   sandbox/units/boost/units/systems/angle/revolutions.hpp | 10 ++++----
   sandbox/units/boost/units/systems/base_units.hpp | 46 ++++++++++++++++++++--------------------
   sandbox/units/boost/units/systems/cgs/base.hpp | 12 ++++++---
   sandbox/units/boost/units/systems/detail/non_si_unit.hpp | 6 ++--
   sandbox/units/boost/units/systems/nautical/fathom.hpp | 2
   sandbox/units/boost/units/systems/nautical/knot.hpp | 2
   sandbox/units/boost/units/systems/nautical/league.hpp | 2
   sandbox/units/boost/units/systems/nautical/nautical_mile.hpp | 2
   sandbox/units/boost/units/systems/si/base.hpp | 28 +++++++++++++++--------
   sandbox/units/boost/units/systems/survey/acre.hpp | 2
   sandbox/units/boost/units/systems/survey/chain.hpp | 2
   sandbox/units/boost/units/systems/survey/foot.hpp | 2
   sandbox/units/boost/units/systems/survey/link.hpp | 2
   sandbox/units/boost/units/systems/survey/mile.hpp | 2
   sandbox/units/boost/units/systems/survey/rod.hpp | 2
   sandbox/units/boost/units/systems/temperature/celsius.hpp | 10 ++++----
   sandbox/units/boost/units/systems/temperature/fahrenheit.hpp | 10 ++++----
   sandbox/units/boost/units/systems/us/avoirdupois_dram.hpp | 2
   sandbox/units/boost/units/systems/us/dry_pint.hpp | 2
   sandbox/units/boost/units/systems/us/grain.hpp | 2
   sandbox/units/boost/units/systems/us/long_ton.hpp | 2
   sandbox/units/boost/units/systems/us/minim.hpp | 2
   sandbox/units/libs/units/example/radar_beam_height.cpp | 4 +-
   sandbox/units/libs/units/example/temperature.cpp | 8 +++---
   26 files changed, 98 insertions(+), 86 deletions(-)

Added: sandbox/units/boost/units/systems/angle/base_units/arcminute.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/arcminute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,36 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ANGLE_ARCMINUTE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ANGLE_ARCMINUTE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/angle/base_units/degree.hpp>
+
+namespace boost {
+namespace units {
+namespace angle {
+
+typedef scaled_base_unit<degree_base_unit, scale<60, static_rational<-1> > > arcminute_base_unit;
+
+}
+
+template<>
+struct base_unit_info<angle::arcminute_base_unit> {
+ static const char* name() { return("arcminute"); }
+ static const char* symbol() { return("'"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_ANGLE_ARCMINUTE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/angle/base_units/arcsecond.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/arcsecond.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,36 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ANGLE_ARCSECOND_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ANGLE_ARCSECOND_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/angle/base_units/degree.hpp>
+
+namespace boost {
+namespace units {
+namespace angle {
+
+typedef scaled_base_unit<degree_base_unit, scale<60, static_rational<-2> > > arcsecond_base_unit;
+
+}
+
+template<>
+struct base_unit_info<angle::arcsecond_base_unit> {
+ static const char* name() { return("arcsecond"); }
+ static const char* symbol() { return("\""); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_ANGLE_ARCSECOND_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/angle/base_units/degree.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/degree.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_ANGLE_DEGREE_BASE_UNIT_HPP
+#define BOOST_UNITS_ANGLE_DEGREE_BASE_UNIT_HPP
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/angle/base_units/radian.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(angle,degree,"degree","deg",6.28318530718/360.,boost::units::angle::radian_base_unit,-101);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::angle::degree_base_unit)
+
+#endif
+
+#endif // BOOST_UNITS_ANGLE_DEGREE_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/angle/base_units/gradian.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/gradian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_ANGLE_GRADIAN_BASE_UNIT_HPP
+#define BOOST_UNITS_ANGLE_GRADIAN_BASE_UNIT_HPP
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/angle/base_units/radian.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(angle,gradian,"gradian","grad",6.28318530718/400.,boost::units::angle::radian_base_unit,-102);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::angle::gradian_base_unit)
+
+#endif
+
+#endif // BOOST_UNITS_ANGLE_GRADIAN_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/angle/base_units/radian.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/radian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_ANGLE_RADIAN_BASE_UNIT_HPP
+#define BOOST_UNITS_ANGLE_RADIAN_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/plane_angle.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace angle {
+
+struct radian_base_unit : public base_unit<radian_base_unit, plane_angle_dimension, -2>
+{
+ static std::string name() { return("radian"); }
+ static std::string symbol() { return("rad"); }
+};
+
+} // namespace angle
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::angle::radian_base_unit)
+
+#endif
+
+//#include <boost/units/systems/angle/base_units/conversions.hpp>
+
+#endif // BOOST_UNITS_ANGLE_RADIAN_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/angle/base_units/revolution.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/revolution.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_ANGLE_REVOLUTION_BASE_UNIT_HPP
+#define BOOST_UNITS_ANGLE_REVOLUTION_BASE_UNIT_HPP
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/angle/base_units/radian.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(angle,revolution,"revolution","rev",6.28318530718,boost::units::angle::radian_base_unit,-103);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::angle::revolution_base_unit)
+
+#endif
+
+#endif // BOOST_UNITS_ANGLE_REVOLUTION_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/angle/base_units/steradian.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/angle/base_units/steradian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_ANGLE_STERADIAN_BASE_UNIT_HPP
+#define BOOST_UNITS_ANGLE_STERADIAN_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/solid_angle.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace angle {
+
+struct steradian_base_unit : public base_unit<steradian_base_unit, solid_angle_dimension, -1>
+{
+ static std::string name() { return("steradian"); }
+ static std::string symbol() { return("sr"); }
+};
+
+} // namespace angle
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::angle::steradian_base_unit)
+
+#endif
+
+//#include <boost/units/systems/angle/base_units/conversions.hpp>
+
+#endif // BOOST_UNITS_ANGLE_STERADIAN_BASE_UNIT_HPP

Modified: sandbox/units/boost/units/systems/angle/degrees.hpp
==============================================================================
--- sandbox/units/boost/units/systems/angle/degrees.hpp (original)
+++ sandbox/units/boost/units/systems/angle/degrees.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -8,8 +8,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_DEGREE_HPP
-#define BOOST_UNITS_DEGREE_HPP
+#ifndef BOOST_UNITS_ANGLE_DEGREE_HPP
+#define BOOST_UNITS_ANGLE_DEGREE_HPP
 
 #include <cmath>
 
@@ -18,7 +18,7 @@
 #include <boost/units/static_constant.hpp>
 #include <boost/units/unit.hpp>
 #include <boost/units/make_system.hpp>
-#include <boost/units/systems/base_units/degree.hpp>
+#include <boost/units/systems/angle/base_units/degree.hpp>
 
 namespace boost {
 
@@ -26,7 +26,7 @@
 
 namespace degree {
 
-typedef make_system<degree_base_unit>::type system;
+typedef make_system<boost::units::angle::degree_base_unit>::type system;
 
 typedef unit<dimensionless_type,system> dimensionless;
 typedef unit<plane_angle_dimension,system> plane_angle; ///< angle degree unit constant
@@ -40,4 +40,4 @@
 
 } // namespace boost
 
-#endif // BOOST_UNITS_DEGREE_HPP
+#endif // BOOST_UNITS_ANGLE_DEGREE_HPP

Modified: sandbox/units/boost/units/systems/angle/gradians.hpp
==============================================================================
--- sandbox/units/boost/units/systems/angle/gradians.hpp (original)
+++ sandbox/units/boost/units/systems/angle/gradians.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -8,8 +8,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_GRADIANS_HPP
-#define BOOST_UNITS_GRADIANS_HPP
+#ifndef BOOST_UNITS_ANGLE_GRADIANS_HPP
+#define BOOST_UNITS_ANGLE_GRADIANS_HPP
 
 #include <cmath>
 
@@ -18,7 +18,7 @@
 #include <boost/units/quantity.hpp>
 #include <boost/units/static_constant.hpp>
 #include <boost/units/make_system.hpp>
-#include <boost/units/systems/base_units/gradian.hpp>
+#include <boost/units/systems/angle/base_units/gradian.hpp>
 
 namespace boost {
 
@@ -26,7 +26,7 @@
 
 namespace gradian {
 
-typedef make_system<gradian_base_unit>::type system;
+typedef make_system<boost::units::angle::gradian_base_unit>::type system;
 
 typedef unit<dimensionless_type,system> dimensionless;
 typedef unit<plane_angle_dimension,system> plane_angle; ///< angle gradian unit constant
@@ -40,4 +40,4 @@
 
 } // namespace boost
 
-#endif // BOOST_UNITS_GRADIANS_HPP
+#endif // BOOST_UNITS_ANGLE_GRADIANS_HPP

Modified: sandbox/units/boost/units/systems/angle/revolutions.hpp
==============================================================================
--- sandbox/units/boost/units/systems/angle/revolutions.hpp (original)
+++ sandbox/units/boost/units/systems/angle/revolutions.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -8,8 +8,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_REVOLUTIONS_HPP
-#define BOOST_UNITS_REVOLUTIONS_HPP
+#ifndef BOOST_UNITS_ANGLE_REVOLUTIONS_HPP
+#define BOOST_UNITS_ANGLE_REVOLUTIONS_HPP
 
 #include <cmath>
 
@@ -18,7 +18,7 @@
 #include <boost/units/quantity.hpp>
 #include <boost/units/static_constant.hpp>
 #include <boost/units/make_system.hpp>
-#include <boost/units/systems/base_units/revolution.hpp>
+#include <boost/units/systems/angle/base_units/revolution.hpp>
 
 namespace boost {
 
@@ -26,7 +26,7 @@
 
 namespace revolution {
 
-typedef make_system<revolution_base_unit>::type system;
+typedef make_system<boost::units::angle::revolution_base_unit>::type system;
 
 typedef unit<dimensionless_type,system> dimensionless;
 typedef unit<plane_angle_dimension,system> plane_angle; ///< angle revolution unit constant
@@ -40,4 +40,4 @@
 
 } // namespace boost
 
-#endif // BOOST_UNITS_REVOLUTIONS_HPP
+#endif // BOOST_UNITS_ANGLE_REVOLUTIONS_HPP

Deleted: sandbox/units/boost/units/systems/astronomical/astronomical_unit.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/astronomical_unit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ASTRONOMICAL_UNIT_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ASTRONOMICAL_UNIT_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, astronomical_unit, "astronomical unit", "a.u.", 149597870691.0, meter_base_unit, 0);
-
-#endif

Added: sandbox/units/boost/units/systems/astronomical/base_units/astronomical_unit.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/astronomical_unit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_ASTRONOMICAL_UNIT_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_ASTRONOMICAL_UNIT_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(astronomical, astronomical_unit, "astronomical unit", "a.u.", 149597870691.0, boost::units::SI::meter_base_unit, -207);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::astronomical::astronomical_unit_base_unit)
+
+#endif
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_ASTRONOMICAL_UNIT_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/light_day.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/light_day.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_DAY_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_DAY_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/astronomical/base_units/light_second.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace astronomical {
+
+typedef scaled_base_unit<boost::units::astronomical::light_second_base_unit, scale<86400, static_rational<1> > > light_day_base_unit;
+
+} // namespace astronomical
+
+template<>
+struct base_unit_info<astronomical::light_day_base_unit> {
+ static const char* name() { return("light day"); }
+ static const char* symbol() { return("ld"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_DAY_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/light_hour.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/light_hour.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_HOUR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_HOUR_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/astronomical/base_units/light_second.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace astronomical {
+
+typedef scaled_base_unit<boost::units::astronomical::light_second_base_unit, scale<3600, static_rational<1> > > light_hour_base_unit;
+
+} // namespace astronomical
+
+template<>
+struct base_unit_info<astronomical::light_hour_base_unit> {
+ static const char* name() { return("light hour"); }
+ static const char* symbol() { return("lh"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_HOUR_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/light_minute.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/light_minute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_MINUTE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_MINUTE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/astronomical/base_units/light_second.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace astronomical {
+
+typedef scaled_base_unit<boost::units::astronomical::light_second_base_unit, scale<60, static_rational<1> > > light_minute_base_unit;
+
+} // namespace astronomical
+
+template<>
+struct base_unit_info<astronomical::light_minute_base_unit> {
+ static const char* name() { return("light minute"); }
+ static const char* symbol() { return("lm"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_MINUTE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/light_second.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/light_second.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_SECOND_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_SECOND_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(astronomical, light_second, "light second", "ls", 2.99792458e8, boost::units::SI::meter_base_unit, -201);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::astronomical::light_second_base_unit)
+
+#endif
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_SECOND_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/light_year.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/light_year.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_YEAR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_YEAR_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/astronomical/base_units/light_second.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace astronomical {
+
+typedef scaled_base_unit<boost::units::astronomical::light_second_base_unit, scale<31557600, static_rational<1> > > light_year_base_unit;
+
+} // namespace astronomical
+
+template<>
+struct base_unit_info<astronomical::light_year_base_unit> {
+ static const char* name() { return("light year"); }
+ static const char* symbol() { return("ly"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_LIGHT_YEAR_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/astronomical/base_units/parsec.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/astronomical/base_units/parsec.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,27 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_ASTRONOMICAL_PARSEC_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_ASTRONOMICAL_PARSEC_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(astronomical, parsec, "parsec", "psc", 3.0856775813e16, boost::units::SI::meter_base_unit, -206);
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::astronomical::parsec_base_unit)
+
+#endif
+
+#endif // BOOST_UNIT_SYSTEMS_ASTRONOMICAL_PARSEC_HPP_INCLUDED

Deleted: sandbox/units/boost/units/systems/astronomical/light_day.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/light_day.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LIGHT_DAY_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LIGHT_DAY_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, light_day, "light day", "ld", 2.59020683712e13, meter_base_unit, 1);
-
-#endif

Deleted: sandbox/units/boost/units/systems/astronomical/light_hour.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/light_hour.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LIGHT_HOUR_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LIGHT_HOUR_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, light_hour, "light hour", "lh", 1.0792528488e12, meter_base_unit, 2);
-
-#endif

Deleted: sandbox/units/boost/units/systems/astronomical/light_minute.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/light_minute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LIGHT_MINUTE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LIGHT_MINUTE_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, light_minute, "light minute", "lm", 1.798754748e10, meter_base_unit, 3);
-
-#endif

Deleted: sandbox/units/boost/units/systems/astronomical/light_second.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/light_second.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LIGHT_SECOND_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LIGHT_SECOND_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, light_second, "light second", "ls", 2.99792458e8, meter_base_unit, 4);
-
-#endif

Deleted: sandbox/units/boost/units/systems/astronomical/light_year.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/light_year.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LIGHT_YEAR_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LIGHT_YEAR_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, light_year, "light year", "ly", 9.460730472580e15, meter_base_unit, 5);
-
-#endif

Deleted: sandbox/units/boost/units/systems/astronomical/parsec.hpp
==============================================================================
--- sandbox/units/boost/units/systems/astronomical/parsec.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_PARSEC_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_PARSEC_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(astronomical, parsec, "parsec", "parsec", 3.0856775813e16, meter_base_unit, 6);
-
-#endif

Modified: sandbox/units/boost/units/systems/base_units.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units.hpp (original)
+++ sandbox/units/boost/units/systems/base_units.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -17,28 +17,28 @@
 #include <boost/units/base_unit.hpp>
 #include <boost/units/absolute.hpp>
 
-#include <boost/units/systems/base_units/ampere.hpp>
-#include <boost/units/systems/base_units/biot.hpp>
-#include <boost/units/systems/base_units/candela.hpp>
-#include <boost/units/systems/base_units/celsius.hpp>
-#include <boost/units/systems/base_units/centimeter.hpp>
-#include <boost/units/systems/base_units/degree.hpp>
-#include <boost/units/systems/base_units/fahrenheit.hpp>
-#include <boost/units/systems/base_units/foot.hpp>
-#include <boost/units/systems/base_units/gradian.hpp>
-#include <boost/units/systems/base_units/gram.hpp>
-#include <boost/units/systems/base_units/hour.hpp>
-#include <boost/units/systems/base_units/inch.hpp>
-#include <boost/units/systems/base_units/kelvin.hpp>
-#include <boost/units/systems/base_units/kilogram.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-#include <boost/units/systems/base_units/mile.hpp>
-#include <boost/units/systems/base_units/minute.hpp>
-#include <boost/units/systems/base_units/mole.hpp>
-#include <boost/units/systems/base_units/radian.hpp>
-#include <boost/units/systems/base_units/revolution.hpp>
-#include <boost/units/systems/base_units/second.hpp>
-#include <boost/units/systems/base_units/steradian.hpp>
-#include <boost/units/systems/base_units/yard.hpp>
+//#include <boost/units/systems/base_units/ampere.hpp>
+//#include <boost/units/systems/base_units/biot.hpp>
+//#include <boost/units/systems/base_units/candela.hpp>
+//#include <boost/units/systems/base_units/celsius.hpp>
+//#include <boost/units/systems/base_units/centimeter.hpp>
+//#include <boost/units/systems/base_units/degree.hpp>
+//#include <boost/units/systems/base_units/fahrenheit.hpp>
+//#include <boost/units/systems/base_units/foot.hpp>
+//#include <boost/units/systems/base_units/gradian.hpp>
+//#include <boost/units/systems/base_units/gram.hpp>
+//#include <boost/units/systems/base_units/hour.hpp>
+//#include <boost/units/systems/base_units/inch.hpp>
+//#include <boost/units/systems/base_units/kelvin.hpp>
+//#include <boost/units/systems/base_units/kilogram.hpp>
+//#include <boost/units/systems/base_units/meter.hpp>
+//#include <boost/units/systems/base_units/mile.hpp>
+//#include <boost/units/systems/base_units/minute.hpp>
+//#include <boost/units/systems/base_units/mole.hpp>
+//#include <boost/units/systems/base_units/radian.hpp>
+//#include <boost/units/systems/base_units/revolution.hpp>
+//#include <boost/units/systems/base_units/second.hpp>
+//#include <boost/units/systems/base_units/steradian.hpp>
+//#include <boost/units/systems/base_units/yard.hpp>
 
 #endif // BOOST_UNITS_OTHER_UNITS_HPP_INCLUDED

Deleted: sandbox/units/boost/units/systems/base_units/ampere.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/ampere.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_AMPERE_BASE_UNIT_HPP
-#define BOOST_UNITS_AMPERE_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/current.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct ampere_base_unit : public base_unit<ampere_base_unit, current_dimension, -11>
-{
- static std::string name() { return("ampere"); }
- static std::string symbol() { return("A"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::ampere_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_AMPERE_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/biot.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/biot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,27 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_BIOT_BASE_UNIT_HPP
-#define BOOST_UNITS_BIOT_BASE_UNIT_HPP
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/systems/base_units/ampere.hpp>
-
-namespace boost {
-
-namespace units {
-
-typedef scaled_base_unit<ampere_base_unit, scale<10, static_rational<-1> > > biot_base_unit;
-
-} // namespace units
-
-} // namespace boost
-
-#endif // BOOST_UNITS_BIOT_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/candela.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/candela.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_CANDELA_BASE_UNIT_HPP
-#define BOOST_UNITS_CANDELA_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/luminous_intensity.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct candela_base_unit : public base_unit<candela_base_unit, luminous_intensity_dimension, -5>
-{
- static std::string name() { return("candela"); }
- static std::string symbol() { return("cd"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::candela_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_CANDELA_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/celsius.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/celsius.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_CELSIUS_BASE_UNIT_HPP
-#define BOOST_UNITS_CELSIUS_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/temperature.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct celsius_base_unit : public base_unit<celsius_base_unit, temperature_dimension, -8>
-{
- static std::string name() { return("celsius"); }
- static std::string symbol() { return("C"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::celsius_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_CELSIUS_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/centimeter.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/centimeter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,27 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP
-#define BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-namespace boost {
-
-namespace units {
-
-typedef scaled_base_unit<meter_base_unit, scale<10, static_rational<-2> > > centimeter_base_unit;
-
-} // namespace units
-
-} // namespace boost
-
-#endif // BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/degree.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/degree.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_DEGREE_BASE_UNIT_HPP
-#define BOOST_UNITS_DEGREE_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/plane_angle.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct degree_base_unit : public base_unit<degree_base_unit, plane_angle_dimension, -3>
-{
- static std::string name() { return("degree"); }
- static std::string symbol() { return("°"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::degree_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_DEGREE_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/fahrenheit.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/fahrenheit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_FAHRENHEIT_BASE_UNIT_HPP
-#define BOOST_UNITS_FAHRENHEIT_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/temperature.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct fahrenheit_base_unit : public base_unit<fahrenheit_base_unit, temperature_dimension, -7>
-{
- static std::string name() { return("fahrenheit"); }
- static std::string symbol() { return("F"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::fahrenheit_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_FAHRENHEIT_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/foot.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/foot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_FOOT_BASE_UNIT_HPP
-#define BOOST_UNITS_FOOT_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/length.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct foot_base_unit : public base_unit<foot_base_unit, length_dimension, -19>
-{
- static std::string name() { return("foot"); }
- static std::string symbol() { return("ft"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::foot_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_FOOT_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/gradian.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/gradian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_GRADIAN_BASE_UNIT_HPP
-#define BOOST_UNITS_GRADIAN_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/plane_angle.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct gradian_base_unit : public base_unit<gradian_base_unit, plane_angle_dimension, -2>
-{
- static std::string name() { return("gradian"); }
- static std::string symbol() { return("grad"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::gradian_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_GRADIAN_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/gram.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/gram.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,45 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_GRAM_BASE_UNIT_HPP
-#define BOOST_UNITS_GRAM_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/mass.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct gram_base_unit : public base_unit<gram_base_unit, mass_dimension, -15>
-{
- static std::string name() { return("gram"); }
- static std::string symbol() { return("g"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::gram_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_GRAM_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/hour.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/hour.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_HOUR_BASE_UNIT_HPP
-#define BOOST_UNITS_HOUR_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/time.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct hour_base_unit : public base_unit<hour_base_unit, time_dimension, -12>
-{
- static std::string name() { return("hour"); }
- static std::string symbol() { return("hr"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::hour_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_HOUR_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/inch.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/inch.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_INCH_BASE_UNIT_HPP
-#define BOOST_UNITS_INCH_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/length.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct inch_base_unit : public base_unit<inch_base_unit, length_dimension, -18>
-{
- static std::string name() { return("inch"); }
- static std::string symbol() { return("in"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::inch_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_INCH_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/kelvin.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/kelvin.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_KELVIN_BASE_UNIT_HPP
-#define BOOST_UNITS_KELVIN_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/temperature.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct kelvin_base_unit : public base_unit<kelvin_base_unit, temperature_dimension, -9>
-{
- static std::string name() { return("kelvin"); }
- static std::string symbol() { return("K"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::kelvin_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_KELVIN_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/kilogram.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/kilogram.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,27 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_KILOGRAM_BASE_UNIT_HPP
-#define BOOST_UNITS_KILOGRAM_BASE_UNIT_HPP
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/systems/base_units/gram.hpp>
-
-namespace boost {
-
-namespace units {
-
-typedef scaled_base_unit<gram_base_unit, scale<10, static_rational<3> > > kilogram_base_unit;
-
-} // namespace units
-
-} // namespace boost
-
-#endif // BOOST_UNITS_KILOGRAM_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/meter.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/meter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,46 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_METER_BASE_UNIT_HPP
-#define BOOST_UNITS_METER_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/length.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct meter_base_unit : public base_unit<meter_base_unit, length_dimension, -20>
-{
- static std::string name() { return("meter"); }
- static std::string symbol() { return("m"); }
-};
-
-}
-
-}
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::meter_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_METER_BASE_UNIT_HPP
-

Deleted: sandbox/units/boost/units/systems/base_units/mile.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/mile.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_MILE_BASE_UNIT_HPP
-#define BOOST_UNITS_MILE_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/length.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct mile_base_unit : public base_unit<mile_base_unit, length_dimension, -16>
-{
- static std::string name() { return("mile"); }
- static std::string symbol() { return("mi"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::mile_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_MILE_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/minute.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/minute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_MINUTE_BASE_UNIT_HPP
-#define BOOST_UNITS_MINUTE_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/time.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct minute_base_unit : public base_unit<minute_base_unit, time_dimension, -13>
-{
- static std::string name() { return("minute"); }
- static std::string symbol() { return("min"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::minute_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_MINUTE_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/mole.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/mole.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_MOLE_BASE_UNIT_HPP
-#define BOOST_UNITS_MOLE_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/amount.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct mole_base_unit : public base_unit<mole_base_unit, amount_dimension, -6>
-{
- static std::string name() { return("mole"); }
- static std::string symbol() { return("mol"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::mole_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_MOLE_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/radian.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/radian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_RADIAN_BASE_UNIT_HPP
-#define BOOST_UNITS_RADIAN_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/plane_angle.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct radian_base_unit : public base_unit<radian_base_unit, plane_angle_dimension, -4>
-{
- static std::string name() { return("radian"); }
- static std::string symbol() { return("rad"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::radian_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_RADIAN_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/revolution.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/revolution.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_REVOLUTION_BASE_UNIT_HPP
-#define BOOST_UNITS_REVOLUTION_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/plane_angle.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct revolution_base_unit : public base_unit<revolution_base_unit, plane_angle_dimension, -400>
-{
- static std::string name() { return("revolution"); }
- static std::string symbol() { return("rev"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::revolution_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_REVOLUTION_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/second.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/second.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_SECOND_BASE_UNIT_HPP
-#define BOOST_UNITS_SECOND_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/time.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct second_base_unit : public base_unit<second_base_unit, time_dimension, -14>
-{
- static std::string name() { return("second"); }
- static std::string symbol() { return("s"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::second_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_SECOND_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/steradian.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/steradian.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_STERADIAN_BASE_UNIT_HPP
-#define BOOST_UNITS_STERADIAN_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/solid_angle.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct steradian_base_unit : public base_unit<steradian_base_unit, solid_angle_dimension, -1>
-{
- static std::string name() { return("steradian"); }
- static std::string symbol() { return("sr"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::steradian_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_STERADIAN_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/base_units/yard.hpp
==============================================================================
--- sandbox/units/boost/units/systems/base_units/yard.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNITS_YARD_BASE_UNIT_HPP
-#define BOOST_UNITS_YARD_BASE_UNIT_HPP
-
-#include <string>
-
-#include <boost/units/config.hpp>
-#include <boost/units/base_unit.hpp>
-#include <boost/units/systems/physical_dimensions/length.hpp>
-
-namespace boost {
-
-namespace units {
-
-struct yard_base_unit : public base_unit<yard_base_unit, length_dimension, -17>
-{
- static std::string name() { return("yard"); }
- static std::string symbol() { return("yd"); }
-};
-
-} // namespace units
-
-} // namespace boost
-
-#if BOOST_UNITS_HAS_BOOST_TYPEOF
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(boost::units::yard_base_unit)
-
-#endif
-
-#include <boost/units/systems/base_units/detail/conversions.hpp>
-
-#endif // BOOST_UNITS_YARD_BASE_UNIT_HPP

Modified: sandbox/units/boost/units/systems/cgs/base.hpp
==============================================================================
--- sandbox/units/boost/units/systems/cgs/base.hpp (original)
+++ sandbox/units/boost/units/systems/cgs/base.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -18,9 +18,10 @@
 #include <boost/units/unit.hpp>
 #include <boost/units/make_system.hpp>
 
-#include <boost/units/systems/base_units/centimeter.hpp>
-#include <boost/units/systems/base_units/gram.hpp>
-#include <boost/units/systems/base_units/second.hpp>
+#include <boost/units/systems/CGS/base_units/centimeter.hpp>
+#include <boost/units/systems/CGS/base_units/gram.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+#include <boost/units/systems/CGS/base_units/biot.hpp>
 
 namespace boost {
 
@@ -29,7 +30,10 @@
 namespace CGS {
 
 /// placeholder class defining CGS unit system
-typedef make_system<centimeter_base_unit, gram_base_unit, second_base_unit>::type system;
+typedef make_system<centimeter_base_unit,
+ gram_base_unit,
+ boost::units::SI::second_base_unit,
+ biot_base_unit>::type system;
 
 /// various unit typedefs for convenience
 typedef unit<dimensionless_type,system> dimensionless;

Added: sandbox/units/boost/units/systems/cgs/base_units/biot.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/cgs/base_units/biot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,31 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_CGS_BIOT_BASE_UNIT_HPP
+#define BOOST_UNITS_CGS_BIOT_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/systems/SI/base_units/ampere.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace CGS {
+
+typedef scaled_base_unit<boost::units::SI::ampere_base_unit, scale<10, static_rational<-1> > > biot_base_unit;
+
+} // namespace CGS
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_CGS_BIOT_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/cgs/base_units/centimeter.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/cgs/base_units/centimeter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,31 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP
+#define BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/systems/si/base_units/meter.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace CGS {
+
+typedef scaled_base_unit<boost::units::SI::meter_base_unit, scale<10, static_rational<-2> > > centimeter_base_unit;
+
+} // namespace CGS
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_CENTIMETER_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/cgs/base_units/gram.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/cgs/base_units/gram.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,49 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_CGS_GRAM_BASE_UNIT_HPP
+#define BOOST_UNITS_CGS_GRAM_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/mass.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace CGS {
+
+struct gram_base_unit : public base_unit<gram_base_unit, mass_dimension, -8>
+{
+ static std::string name() { return("gram"); }
+ static std::string symbol() { return("g"); }
+};
+
+} // namespace CGS
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::CGS::gram_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_CGS_GRAM_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/cgs/current.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/cgs/current.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,33 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_CGS_CURRENT_HPP
+#define BOOST_UNITS_CGS_CURRENT_HPP
+
+#include <boost/units/systems/cgs/base.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace CGS {
+
+typedef unit<current_dimension,CGS::system> current;
+
+BOOST_UNITS_STATIC_CONSTANT(ampere,current);
+BOOST_UNITS_STATIC_CONSTANT(amperes,current);
+
+} // namespace CGS
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_CGS_CURRENT_HPP

Modified: sandbox/units/boost/units/systems/detail/non_si_unit.hpp
==============================================================================
--- sandbox/units/boost/units/systems/detail/non_si_unit.hpp (original)
+++ sandbox/units/boost/units/systems/detail/non_si_unit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -13,7 +13,7 @@
 
 #include <boost/units/conversion.hpp>
 
-//#define BOOST_UNITS_NON_SI_UNIT(namespace_, name_, symbol_, factor, unit, id)\
+//#define BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(namespace_, name_, symbol_, factor, unit, id)\
 //namespace boost { \
 //namespace units { \
 //namespace namespace_ { \
@@ -28,12 +28,12 @@
 //BOOST_UNITS_DEFINE_CONVERSION_FACTOR(namespace_::name_ ## _base_unit, unit, double, factor); \
 //BOOST_UNITS_DEFAULT_CONVERSION(namespace_::name_ ## _base_unit, unit)
 
-#define BOOST_UNITS_NON_SI_UNIT(namespace_, name_, name_string_, symbol_string_, factor, unit, id)\
+#define BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(namespace_, name_, name_string_, symbol_string_, factor, unit, id)\
 namespace boost { \
 namespace units { \
 namespace namespace_ { \
 struct name_ ## _base_unit \
- : base_unit<name_ ## _base_unit, unit::dimension_type, id - 100> { \
+ : base_unit<name_ ## _base_unit, unit::dimension_type, id> { \
     static const char* name() { return(name_string_); } \
     static const char* symbol() { return(symbol_string_); }; \
 }; \

Added: sandbox/units/boost/units/systems/imperial/base_units/drachm.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/drachm.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_DRACHM_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_DRACHM_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<16, static_rational<-2> > > drachm_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::drachm_base_unit> {
+ static const char* name() { return("drachm"); }
+ static const char* symbol() { return("drachm"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_DRACHM_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/fluid_ounce.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/fluid_ounce.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pint_base_unit, scale<20, static_rational<-1> > > fluid_ounce_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::fluid_ounce_base_unit> {
+ static const char* name() { return("fluid ounce"); }
+ static const char* symbol() { return("fl oz"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/foot.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/foot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_FOOT_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_FOOT_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<3, static_rational<-1> > > foot_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::foot_base_unit> {
+ static const char* name() { return("foot"); }
+ static const char* symbol() { return("ft"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_FOOT_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/furlong.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/furlong.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_FURLONG_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_FURLONG_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<220, static_rational<1> > > furlong_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::furlong_base_unit> {
+ static const char* name() { return("furlong"); }
+ static const char* symbol() { return("furlong"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_FURLONG_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/gallon.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/gallon.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GALLON_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_GALLON_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<3> > > gallon_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::gallon_base_unit> {
+ static const char* name() { return("gallon"); }
+ static const char* symbol() { return("gal"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_GALLON_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/gill.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/gill.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GILL_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_GILL_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<-2> > > gill_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::gill_base_unit> {
+ static const char* name() { return("gill"); }
+ static const char* symbol() { return("gill"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_GILL_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/grain.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/grain.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GRAIN_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_GRAIN_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<7000, static_rational<-1> > > grain_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::grain_base_unit> {
+ static const char* name() { return("grain"); }
+ static const char* symbol() { return("grain"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_GRAIN_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/hundredweight.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/hundredweight.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_HUNDREDWEIGHT_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_HUNDREDWEIGHT_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<112, static_rational<1> > > hundredweight_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::hundredweight_base_unit> {
+ static const char* name() { return("hundredweight"); }
+ static const char* symbol() { return("cwt"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_HUNDREDWEIGHT_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/inch.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/inch.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_INCH_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_INCH_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<36, static_rational<-1> > > inch_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::inch_base_unit> {
+ static const char* name() { return("inch"); }
+ static const char* symbol() { return("in"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_INCH_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/league.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/league.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_LEAGUE_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_LEAGUE_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<5280, static_rational<1> > > league_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::league_base_unit> {
+ static const char* name() { return("league"); }
+ static const char* symbol() { return("league"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_LEAGUE_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/mile.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/mile.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_MILE_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_MILE_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<1760, static_rational<1> > > mile_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::mile_base_unit> {
+ static const char* name() { return("mile"); }
+ static const char* symbol() { return("mi"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_MILE_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/ounce.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/ounce.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_OUNCE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_OUNCE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<16, static_rational<-1> > > ounce_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::ounce_base_unit> {
+ static const char* name() { return("ounce"); }
+ static const char* symbol() { return("oz"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_OUNCE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/pint.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/pint.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,28 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_PINT_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_PINT_HPP_INCLUDED
+
+#include <string>
+
+#include <boost/units/systems/SI/volume.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(imperial, pint, "pint", "pt", 4.54609e-3/8., SI::volume, -303); // exact conversion
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::imperial::pint_base_unit)
+
+#endif
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_PINT_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/pound.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/pound.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,33 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_POUND_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_POUND_HPP_INCLUDED
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/mass.hpp>
+#include <boost/units/systems/CGS/base_units/gram.hpp>
+
+// can't define in terms of kilogram because it is a scaled_base_unit
+//BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(imperial, pound, "pound", "lb", 0.45359237, SI::kilogram_base_unit, -302); // exact conversion
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(imperial, pound, "pound", "lb", 453.59237, CGS::gram_base_unit, -302); // exact conversion
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::imperial::pound_base_unit)
+
+#endif
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_POUND_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/quart.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/quart.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_QUART_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_QUART_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<1> > > quart_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::quart_base_unit> {
+ static const char* name() { return("quart"); }
+ static const char* symbol() { return("qt"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_QUART_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/quarter.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/quarter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_QUARTER_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_QUARTER_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<28, static_rational<1> > > quarter_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::quarter_base_unit> {
+ static const char* name() { return("quarter"); }
+ static const char* symbol() { return("quarter"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_QUARTER_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/stone.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/stone.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_STONE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_STONE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<14, static_rational<1> > > stone_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::stone_base_unit> {
+ static const char* name() { return("stone"); }
+ static const char* symbol() { return("st"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_STONE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/imperial/base_units/thou.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/thou.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_IMPERIAL_THOU_BASE_UNIT_HPP
+#define BOOST_UNITS_IMPERIAL_THOU_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<yard_base_unit, scale<36000, static_rational<-1> > > thou_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::thou_base_unit> {
+ static const char* name() { return("thou"); }
+ static const char* symbol() { return("thou"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_IMPERIAL_THOU_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/imperial/base_units/ton.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/ton.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,40 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_TON_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_IMPERIAL_TON_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<2240, static_rational<1> > > ton_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::ton_base_unit> {
+ static const char* name() { return("long ton"); }
+ static const char* symbol() { return("t"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNIT_SYSTEMS_IMPERIAL_TON_HPP_INCLUDED
+

Added: sandbox/units/boost/units/systems/imperial/base_units/yard.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/imperial/base_units/yard.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,31 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SYSTEMS_IMPERIAL_YARD_BASE_UNIT_HPP
+#define BOOST_UNITS_SYSTEMS_IMPERIAL_YARD_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/length.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(imperial, yard, "yard", "yd", 0.9144, SI::meter_base_unit, -301); // exact conversion
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::imperial::yard_base_unit)
+
+#endif
+
+#endif // BOOST_UNITS_SYSTEMS_IMPERIAL_YARD_BASE_UNIT_HPP

Deleted: sandbox/units/boost/units/systems/imperial/drachm.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/drachm.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_DRACHM_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_DRACHM_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<16, static_rational<-2> > > drachm_base_unit; // ~1.771g
-
-}
-
-template<>
-struct base_unit_info<imperial::drachm_base_unit> {
- static const char* name() { return("drachm"); }
- static const char* symbol() { return("drachm"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/fluid_ounce.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/fluid_ounce.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pint.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pint_base_unit, scale<20, static_rational<-1> > > fluid_ounce_base_unit; // ~28.41 ml
-
-}
-
-template<>
-struct base_unit_info<imperial::fluid_ounce_base_unit> {
- static const char* name() { return("fluid ounce"); }
- static const char* symbol() { return("fl oz"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/gallon.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/gallon.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GALLON_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_GALLON_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pint.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<3> > > gallon_base_unit; // exactly 4.54609 liters
-
-}
-
-template<>
-struct base_unit_info<imperial::gallon_base_unit> {
- static const char* name() { return("gallon"); }
- static const char* symbol() { return("gal"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/gill.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/gill.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GILL_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_GILL_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pint.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<-2> > > gill_base_unit; // ~142.1 ml
-
-}
-
-template<>
-struct base_unit_info<imperial::gill_base_unit> {
- static const char* name() { return("gill"); }
- static const char* symbol() { return("gill"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/grain.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/grain.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_GRAIN_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_GRAIN_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<7000, static_rational<-1> > > grain_base_unit; // ~64.8mg
-
-}
-
-template<>
-struct base_unit_info<imperial::grain_base_unit> {
- static const char* name() { return("grain"); }
- static const char* symbol() { return("grain"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/hundredweight.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/hundredweight.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_HUNDREDWEIGHT_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_HUNDREDWEIGHT_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<112, static_rational<1> > > hundredweight_base_unit; // ~50.8kg
-
-}
-
-template<>
-struct base_unit_info<imperial::hundredweight_base_unit> {
- static const char* name() { return("hundredweight"); }
- static const char* symbol() { return("cwt"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/ounce.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/ounce.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_OUNCE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_OUNCE_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<16, static_rational<-1> > > ounce_base_unit; // ~28.35g
-
-}
-
-template<>
-struct base_unit_info<imperial::ounce_base_unit> {
- static const char* name() { return("ounce"); }
- static const char* symbol() { return("oz"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/pint.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/pint.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_PINT_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_PINT_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/volume.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(imperial, pint, "pint", "pt", 0.56826125, SI::volume, 31); // exact conversion
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/pound.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/pound.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_POUND_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_POUND_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/base_units/kilogram.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(imperial, pound, "pound", "lb", 0.45359237, kilogram_base_unit, 32);
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/quart.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/quart.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_QUART_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_QUART_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pint.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<1> > > quart_base_unit; // ~1.136l
-
-}
-
-template<>
-struct base_unit_info<imperial::quart_base_unit> {
- static const char* name() { return("quart"); }
- static const char* symbol() { return("qt"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/quarter.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/quarter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_QUARTER_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_QUARTER_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<28, static_rational<1> > > quarter_base_unit; // ~12.7kg
-
-}
-
-template<>
-struct base_unit_info<imperial::quarter_base_unit> {
- static const char* name() { return("quarter"); }
- static const char* symbol() { return("quarter"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/stone.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/stone.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_STONE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_STONE_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<14, static_rational<1> > > stone_base_unit; // ~6.35kg
-
-}
-
-template<>
-struct base_unit_info<imperial::stone_base_unit> {
- static const char* name() { return("stone"); }
- static const char* symbol() { return("st"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/imperial/ton.hpp
==============================================================================
--- sandbox/units/boost/units/systems/imperial/ton.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_IMPERIAL_TON_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_IMPERIAL_TON_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/imperial/pound.hpp>
-
-namespace boost {
-namespace units {
-namespace imperial {
-
-typedef scaled_base_unit<pound_base_unit, scale<2240, static_rational<1> > > ton_base_unit; // ~1016kg
-
-}
-
-template<>
-struct base_unit_info<imperial::ton_base_unit> {
- static const char* name() { return("ton"); }
- static const char* symbol() { return("t"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/angstrom.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/angstrom.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ANGSTROM_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ANGSTROM_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<meter_base_unit, scale<10, static_rational<-10> > > angstrom_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::angstrom_base_unit> {
- static const char* name() { return("angstrom"); }
- static const char* symbol() { return(""); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/arcminute.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/arcminute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,36 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ARCMINUTE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ARCMINUTE_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/degree.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<degree_base_unit, scale<60, static_rational<-1> > > arcminute_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::arcminute_base_unit> {
- static const char* name() { return("arcminute"); }
- static const char* symbol() { return("'"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/arcsecond.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/arcsecond.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,36 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ARCSECOND_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ARCSECOND_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/degree.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<degree_base_unit, scale<60, static_rational<-2> > > arcsecond_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::arcsecond_base_unit> {
- static const char* name() { return("arcsecond"); }
- static const char* symbol() { return("\""); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/are.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/are.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ARE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ARE_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/area.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, are, "are", "a", 1.0e2, SI::area, 10);
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/atmosphere.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/atmosphere.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_ATMOSPHERE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_ATMOSPHERE_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/pressure.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, atmosphere, "atmosphere", "atm", 1.01325e5, SI::pressure, 33);
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/bar.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/bar.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_BAR_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_BAR_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/pressure.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, bar, "bar", "bar", 1.0e5, SI::pressure, 14);
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/barn.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/barn.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_BARN_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_BARN_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/area.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, barn, "barn", "b", 1.0e-28, SI::area, 11);
-
-#endif

Added: sandbox/units/boost/units/systems/metric/base_units/angstrom.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/angstrom.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,37 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_ANGSTROM_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_ANGSTROM_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/units_fwd.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::meter_base_unit, scale<10, static_rational<-10> > > angstrom_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::angstrom_base_unit> {
+ static const char* name() { return("angstrom"); }
+ static const char* symbol() { return(""); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_ANGSTROM_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/are.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/are.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_ARE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_ARE_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/area.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, are, "are", "a", 1.0e2, SI::area, 10);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_ARE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/atmosphere.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/atmosphere.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_ATMOSPHERE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_ATMOSPHERE_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/pressure.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, atmosphere, "atmosphere", "atm", 1.01325e5, SI::pressure, 33);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_ATMOSPHERE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/bar.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/bar.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_BAR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_BAR_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/pressure.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, bar, "bar", "bar", 1.0e5, SI::pressure, 14);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_BAR_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/barn.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/barn.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_BARN_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_BARN_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/area.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, barn, "barn", "b", 1.0e-28, SI::area, 11);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_BARN_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/day.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/day.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,39 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_OTHER_DAY_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_OTHER_DAY_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::second_base_unit, scale<86400, static_rational<1> > > day_base_unit;
+
+} // namespace metric
+
+template<>
+struct base_unit_info<metric::day_base_unit> {
+ static const char* name() { return("day"); }
+ static const char* symbol() { return("d"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif

Added: sandbox/units/boost/units/systems/metric/base_units/fermi.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/fermi.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,36 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_FERMI_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_FERMI_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::meter_base_unit, scale<10, static_rational<-15> > > fermi_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::fermi_base_unit> {
+ static const char* name() { return("fermi"); }
+ static const char* symbol() { return("fm"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_FERMI_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/hectare.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/hectare.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_HECTARE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_HECTARE_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/area.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, hectare, "hectare", "ha", 1.0e4, SI::area, 12);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_HECTARE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/hour.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/hour.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,37 @@
+ // Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_HOUR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_HOUR_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/units_fwd.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::second_base_unit, scale<60, static_rational<2> > > hour_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::hour_base_unit> {
+ static const char* name() { return("hour"); }
+ static const char* symbol() { return("h"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_HOUR_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/liter.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/liter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_LITER_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_LITER_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/volume.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, liter, "liter", "L", 1.0e-3, SI::volume, 13);
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_LITER_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/micron.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/micron.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,36 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_MICRON_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_MICRON_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::meter_base_unit, scale<10, static_rational<-6> > > micron_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::micron_base_unit> {
+ static const char* name() { return("micron"); }
+ static const char* symbol() { return("µ"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_MICRON_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/minute.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/minute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,37 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_MINUTE_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_MINUTE_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/units_fwd.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::second_base_unit, scale<60, static_rational<1> > > minute_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::minute_base_unit> {
+ static const char* name() { return("minute"); }
+ static const char* symbol() { return("min"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_MINUTE_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/ton.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/ton.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,37 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_TON_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_TON_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/units_fwd.hpp>
+#include <boost/units/systems/CGS/base_units/gram.hpp>
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::CGS::gram_base_unit, scale<10, static_rational<6> > > ton_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::ton_base_unit> {
+ static const char* name() { return("metric ton"); }
+ static const char* symbol() { return("t"); }
+};
+
+}
+}
+
+#endif // BOOST_UNIT_SYSTEMS_METRIC_TON_HPP_INCLUDED

Added: sandbox/units/boost/units/systems/metric/base_units/torr.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/torr.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,19 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_METRIC_TORR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_METRIC_TORR_HPP_INCLUDED
+
+#include <boost/units/systems/detail/non_si_unit.hpp>
+#include <boost/units/systems/si/pressure.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(metric, torr, "torr", "Torr", 1.01325e5/760.0, SI::pressure, 34);
+
+#endif

Added: sandbox/units/boost/units/systems/metric/base_units/year.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/metric/base_units/year.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,38 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNIT_SYSTEMS_OTHER_YEAR_HPP_INCLUDED
+#define BOOST_UNIT_SYSTEMS_OTHER_YEAR_HPP_INCLUDED
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/static_rational.hpp>
+#include <boost/units/scale.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+
+// Julian year = 365.25 days exactly = 8766 hours exactly
+
+namespace boost {
+namespace units {
+namespace metric {
+
+typedef scaled_base_unit<boost::units::SI::second_base_unit, scale<31557600, static_rational<1> > > year_base_unit;
+
+}
+
+template<>
+struct base_unit_info<metric::year_base_unit> {
+ static const char* name() { return("Julian year"); }
+ static const char* symbol() { return("yr"); }
+};
+
+}
+}
+
+#endif

Deleted: sandbox/units/boost/units/systems/metric/day.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/day.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,36 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_DAY_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_DAY_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/hour.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<units::hour_base_unit, scale<24, static_rational<1> > > day_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::day_base_unit> {
- static const char* name() { return("day"); }
- static const char* symbol() { return("d"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/fermi.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/fermi.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,36 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_FERMI_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_FERMI_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<meter_base_unit, scale<10, static_rational<-15> > > fermi_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::fermi_base_unit> {
- static const char* name() { return("fermi"); }
- static const char* symbol() { return("fm"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/hectare.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/hectare.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_HECTARE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_HECTARE_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/area.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, hectare, "hectare", "ha", 1.0e4, SI::area, 12);
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/hour.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/hour.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
- // Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_HOUR_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_HOUR_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/base_units/second.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<second_base_unit, scale<60, static_rational<2> > > hour_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::hour_base_unit> {
- static const char* name() { return("hour"); }
- static const char* symbol() { return("h"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/liter.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/liter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_LITER_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_LITER_HPP_INCLUDED
-
-#include <boost/units/systems/detail/non_si_unit.hpp>
-#include <boost/units/systems/si/volume.hpp>
-
-BOOST_UNITS_NON_SI_UNIT(metric, liter, "liter", "L", 1.0e-3, SI::volume, 13);
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/micron.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/micron.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,36 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_MICRON_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_MICRON_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/meter.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<meter_base_unit, scale<10, static_rational<-6> > > micron_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::micron_base_unit> {
- static const char* name() { return("micron"); }
- static const char* symbol() { return("µ"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/minute.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/minute.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_MINUTE_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_MINUTE_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/base_units/second.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<second_base_unit, scale<60, static_rational<1> > > minute_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::minute_base_unit> {
- static const char* name() { return("minute"); }
- static const char* symbol() { return("min"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/ton.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/ton.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_TON_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_TON_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/units_fwd.hpp>
-#include <boost/units/systems/base_units/kilogram.hpp>
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<kilogram_base_unit, scale<10, static_rational<3> > > ton_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::ton_base_unit> {
- static const char* name() { return("metric ton"); }
- static const char* symbol() { return("t"); }
-};
-
-}
-}
-
-#endif

Deleted: sandbox/units/boost/units/systems/metric/year.hpp
==============================================================================
--- sandbox/units/boost/units/systems/metric/year.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
+++ (empty file)
@@ -1,38 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2007-2008 Steven Watanabe
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_UNIT_SYSTEMS_OTHER_YEAR_HPP_INCLUDED
-#define BOOST_UNIT_SYSTEMS_OTHER_YEAR_HPP_INCLUDED
-
-#include <boost/units/scaled_base_unit.hpp>
-#include <boost/units/static_rational.hpp>
-#include <boost/units/scale.hpp>
-#include <boost/units/systems/base_units/hour.hpp>
-
-// Julian year = 365.25 days exactly = 8766 hours exactly
-
-namespace boost {
-namespace units {
-namespace metric {
-
-typedef scaled_base_unit<units::hour_base_unit, scale<8766, static_rational<1> > > year_base_unit;
-
-}
-
-template<>
-struct base_unit_info<metric::year_base_unit> {
- static const char* name() { return("Julian year"); }
- static const char* symbol() { return("year"); }
-};
-
-}
-}
-
-#endif

Modified: sandbox/units/boost/units/systems/nautical/fathom.hpp
==============================================================================
--- sandbox/units/boost/units/systems/nautical/fathom.hpp (original)
+++ sandbox/units/boost/units/systems/nautical/fathom.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(nautical, fathom, "fathom", "fathom", 1.852, meter_base_unit, 15);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(nautical, fathom, "fathom", "fathom", 1.852, meter_base_unit, 15);
 
 #endif

Modified: sandbox/units/boost/units/systems/nautical/knot.hpp
==============================================================================
--- sandbox/units/boost/units/systems/nautical/knot.hpp (original)
+++ sandbox/units/boost/units/systems/nautical/knot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/si/velocity.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(nautical, knot, "knot", "knot", (1852.0/3600.0), SI::velocity, 16);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(nautical, knot, "knot", "knot", (1852.0/3600.0), SI::velocity, 16);
 
 #endif

Modified: sandbox/units/boost/units/systems/nautical/league.hpp
==============================================================================
--- sandbox/units/boost/units/systems/nautical/league.hpp (original)
+++ sandbox/units/boost/units/systems/nautical/league.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(nautical, league, "league", "league", 5556.0, meter_base_unit, 17);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(nautical, league, "league", "league", 5556.0, meter_base_unit, 17);
 
 #endif

Modified: sandbox/units/boost/units/systems/nautical/nautical_mile.hpp
==============================================================================
--- sandbox/units/boost/units/systems/nautical/nautical_mile.hpp (original)
+++ sandbox/units/boost/units/systems/nautical/nautical_mile.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(nautical, nautical_mile, "nautical mile", "nautical mile", 1852.0, meter_base_unit, 18);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(nautical, nautical_mile, "nautical mile", "nautical mile", 1852.0, meter_base_unit, 18);
 
 #endif

Modified: sandbox/units/boost/units/systems/si/base.hpp
==============================================================================
--- sandbox/units/boost/units/systems/si/base.hpp (original)
+++ sandbox/units/boost/units/systems/si/base.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -18,15 +18,15 @@
 #include <boost/units/unit.hpp>
 #include <boost/units/make_system.hpp>
 
-#include <boost/units/systems/base_units/meter.hpp>
-#include <boost/units/systems/base_units/kilogram.hpp>
-#include <boost/units/systems/base_units/second.hpp>
-#include <boost/units/systems/base_units/ampere.hpp>
-#include <boost/units/systems/base_units/kelvin.hpp>
-#include <boost/units/systems/base_units/mole.hpp>
-#include <boost/units/systems/base_units/candela.hpp>
-#include <boost/units/systems/base_units/radian.hpp>
-#include <boost/units/systems/base_units/steradian.hpp>
+#include <boost/units/systems/SI/base_units/meter.hpp>
+#include <boost/units/systems/SI/base_units/kilogram.hpp>
+#include <boost/units/systems/SI/base_units/second.hpp>
+#include <boost/units/systems/SI/base_units/ampere.hpp>
+#include <boost/units/systems/SI/base_units/kelvin.hpp>
+#include <boost/units/systems/SI/base_units/mole.hpp>
+#include <boost/units/systems/SI/base_units/candela.hpp>
+#include <boost/units/systems/angle/base_units/radian.hpp>
+#include <boost/units/systems/angle/base_units/steradian.hpp>
 
 namespace boost {
 
@@ -35,7 +35,15 @@
 namespace SI {
 
 /// placeholder class defining SI unit system
-typedef make_system<meter_base_unit, kilogram_base_unit, second_base_unit, ampere_base_unit, kelvin_base_unit, mole_base_unit, candela_base_unit, radian_base_unit, steradian_base_unit>::type system;
+typedef make_system<meter_base_unit,
+ kilogram_base_unit,
+ second_base_unit,
+ ampere_base_unit,
+ kelvin_base_unit,
+ mole_base_unit,
+ candela_base_unit,
+ boost::units::angle::radian_base_unit,
+ boost::units::angle::steradian_base_unit>::type system;
 
 /// dimensionless SI unit
 typedef unit<dimensionless_type,system> dimensionless;

Added: sandbox/units/boost/units/systems/si/base_units/ampere.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/ampere.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_AMPERE_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_AMPERE_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/current.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct ampere_base_unit : public base_unit<ampere_base_unit, current_dimension, -6>
+{
+ static std::string name() { return("ampere"); }
+ static std::string symbol() { return("A"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::ampere_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_AMPERE_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/si/base_units/candela.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/candela.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_CANDELA_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_CANDELA_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/luminous_intensity.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct candela_base_unit : public base_unit<candela_base_unit, luminous_intensity_dimension, -3>
+{
+ static std::string name() { return("candela"); }
+ static std::string symbol() { return("cd"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::candela_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_CANDELA_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/si/base_units/kelvin.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/kelvin.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_KELVIN_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_KELVIN_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/temperature.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct kelvin_base_unit : public base_unit<kelvin_base_unit, temperature_dimension, -5>
+{
+ static std::string name() { return("kelvin"); }
+ static std::string symbol() { return("K"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::kelvin_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_KELVIN_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/si/base_units/kilogram.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/kilogram.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,31 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_KILOGRAM_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_KILOGRAM_BASE_UNIT_HPP
+
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/systems/cgs/base_units/gram.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+typedef scaled_base_unit<boost::units::CGS::gram_base_unit, scale<10, static_rational<3> > > kilogram_base_unit;
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_SI_KILOGRAM_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/si/base_units/meter.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/meter.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,50 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_METER_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_METER_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/scaled_base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/length.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct meter_base_unit : public base_unit<meter_base_unit, length_dimension, -9>
+{
+ static std::string name() { return("meter"); }
+ static std::string symbol() { return("m"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::meter_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_METER_BASE_UNIT_HPP
+

Added: sandbox/units/boost/units/systems/si/base_units/mole.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/mole.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_MOLE_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_MOLE_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/amount.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct mole_base_unit : public base_unit<mole_base_unit, amount_dimension, -4>
+{
+ static std::string name() { return("mole"); }
+ static std::string symbol() { return("mol"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::mole_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_MOLE_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/si/base_units/second.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/si/base_units/second.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_SI_SECOND_BASE_UNIT_HPP
+#define BOOST_UNITS_SI_SECOND_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/time.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace SI {
+
+struct second_base_unit : public base_unit<second_base_unit, time_dimension, -7>
+{
+ static std::string name() { return("second"); }
+ static std::string symbol() { return("s"); }
+};
+
+} // namespace SI
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::SI::second_base_unit)
+
+#endif
+
+//#include <boost/units/systems/base_units/detail/conversions.hpp>
+
+#endif // BOOST_UNITS_SI_SECOND_BASE_UNIT_HPP

Modified: sandbox/units/boost/units/systems/survey/acre.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/acre.hpp (original)
+++ sandbox/units/boost/units/systems/survey/acre.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/si/area.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, acre, "acre", "acre", 4046.873, SI::area, 29);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, acre, "acre", "acre", 4046.873, SI::area, 29);
 
 #endif

Modified: sandbox/units/boost/units/systems/survey/chain.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/chain.hpp (original)
+++ sandbox/units/boost/units/systems/survey/chain.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, chain, "chain", "chain", 20.11684, meter_base_unit, 27);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, chain, "chain", "chain", 20.11684, meter_base_unit, 27);
 
 #endif

Modified: sandbox/units/boost/units/systems/survey/foot.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/foot.hpp (original)
+++ sandbox/units/boost/units/systems/survey/foot.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, foot, "foot", "foot", 0.3048006, meter_base_unit, 25);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, foot, "foot", "foot", 0.3048006, meter_base_unit, 25);
 
 #endif

Modified: sandbox/units/boost/units/systems/survey/link.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/link.hpp (original)
+++ sandbox/units/boost/units/systems/survey/link.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, link, "link", "link", 0.2011684, meter_base_unit, 24);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, link, "link", "link", 0.2011684, meter_base_unit, 24);
 
 #endif

Modified: sandbox/units/boost/units/systems/survey/mile.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/mile.hpp (original)
+++ sandbox/units/boost/units/systems/survey/mile.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, mile, "mile", "mile", 1609.347, meter_base_unit, 28);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, mile, "mile", "mile", 1609.347, meter_base_unit, 28);
 
 #endif

Modified: sandbox/units/boost/units/systems/survey/rod.hpp
==============================================================================
--- sandbox/units/boost/units/systems/survey/rod.hpp (original)
+++ sandbox/units/boost/units/systems/survey/rod.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/meter.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(survey, rod, "rod", "rod", 5.029210, meter_base_unit, 26);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(survey, rod, "rod", "rod", 5.029210, meter_base_unit, 26);
 
 #endif

Added: sandbox/units/boost/units/systems/temperature/base_units/celsius.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/temperature/base_units/celsius.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_TEMPERATURE_CELSIUS_BASE_UNIT_HPP
+#define BOOST_UNITS_TEMPERATURE_CELSIUS_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/temperature.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace temperature {
+
+struct celsius_base_unit : public base_unit<celsius_base_unit, temperature_dimension, -1008>
+{
+ static std::string name() { return("celsius"); }
+ static std::string symbol() { return("C"); }
+};
+
+} // namespace temperature
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::temperature::celsius_base_unit)
+
+#endif
+
+#include <boost/units/systems/temperature/base_units/conversions.hpp>
+
+#endif // BOOST_UNITS_TEMPERATURE_CELSIUS_BASE_UNIT_HPP

Added: sandbox/units/boost/units/systems/temperature/base_units/conversions.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/temperature/base_units/conversions.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,42 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// No include guards. This header is intended to be included
+// multiple times.
+
+// units of temperature
+
+#if defined(BOOST_UNITS_SI_KELVIN_BASE_UNIT_HPP) && defined(BOOST_UNITS_TEMPERATURE_CELSIUS_BASE_UNIT_HPP) &&\
+ !defined(BOOST_UNITS_SYSTEMS_KELVIN_TO_CELSIUS_CONVERSION_DEFINED)
+ #define BOOST_UNITS_SYSTEMS_KELVIN_TO_CELSIUS_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ #include <boost/units/absolute.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::SI::kelvin_base_unit, boost::units::temperature::celsius_base_unit, one, one());
+ BOOST_UNITS_DEFINE_CONVERSION_OFFSET(boost::units::SI::kelvin_base_unit, boost::units::temperature::celsius_base_unit, double, -273.15);
+#endif
+
+#if defined(BOOST_UNITS_SI_KELVIN_BASE_UNIT_HPP) && defined(BOOST_UNITS_TEMPERATURE_FAHRENHEIT_BASE_UNIT_HPP) &&\
+ !defined(BOOST_UNITS_SYSTEMS_KELVIN_TO_FAHRENHEIT_CONVERSION_DEFINED)
+ #define BOOST_UNITS_SYSTEMS_KELVIN_TO_FAHRENHEIT_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ #include <boost/units/absolute.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::SI::kelvin_base_unit, boost::units::temperature::fahrenheit_base_unit, double, 9.0/5.0);
+ BOOST_UNITS_DEFINE_CONVERSION_OFFSET(boost::units::SI::kelvin_base_unit, boost::units::temperature::fahrenheit_base_unit, double, -273.15 * 9.0 / 5.0 + 32.0);
+#endif
+
+#if defined(BOOST_UNITS_TEMPERATURE_CELSIUS_BASE_UNIT_HPP) && defined(BOOST_UNITS_TEMPERATURE_FAHRENHEIT_BASE_UNIT_HPP) &&\
+ !defined(BOOST_UNITS_SYSTEMS_CELSUIS_TO_FAHRENHEIT_CONVERSION_DEFINED)
+ #define BOOST_UNITS_SYSTEMS_CELSUIS_TO_FAHRENHEIT_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ #include <boost/units/absolute.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::temperature::celsius_base_unit, boost::units::temperature::fahrenheit_base_unit, double, 9.0/5.0);
+ BOOST_UNITS_DEFINE_CONVERSION_OFFSET(boost::units::temperature::celsius_base_unit, boost::units::temperature::fahrenheit_base_unit, double, 32.0);
+#endif
+

Added: sandbox/units/boost/units/systems/temperature/base_units/fahrenheit.hpp
==============================================================================
--- (empty file)
+++ sandbox/units/boost/units/systems/temperature/base_units/fahrenheit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,48 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2007-2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_UNITS_TEMPERATURE_FAHRENHEIT_BASE_UNIT_HPP
+#define BOOST_UNITS_TEMPERATURE_FAHRENHEIT_BASE_UNIT_HPP
+
+#include <string>
+
+#include <boost/units/config.hpp>
+#include <boost/units/base_unit.hpp>
+#include <boost/units/systems/physical_dimensions/temperature.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace temperature {
+
+struct fahrenheit_base_unit : public base_unit<fahrenheit_base_unit, temperature_dimension, -1007>
+{
+ static std::string name() { return("fahrenheit"); }
+ static std::string symbol() { return("°F"); }
+};
+
+} // namespace temperature
+
+} // namespace units
+
+} // namespace boost
+
+#if BOOST_UNITS_HAS_BOOST_TYPEOF
+
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
+
+BOOST_TYPEOF_REGISTER_TYPE(boost::units::temperature::fahrenheit_base_unit)
+
+#endif
+
+#include <boost/units/systems/temperature/base_units/conversions.hpp>
+
+#endif // BOOST_UNITS_TEMPERATURE_FAHRENHEIT_BASE_UNIT_HPP

Modified: sandbox/units/boost/units/systems/temperature/celsius.hpp
==============================================================================
--- sandbox/units/boost/units/systems/temperature/celsius.hpp (original)
+++ sandbox/units/boost/units/systems/temperature/celsius.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -8,15 +8,15 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_CELSIUS_HPP
-#define BOOST_UNITS_CELSIUS_HPP
+#ifndef BOOST_UNITS_TEMPERATURE_CELSIUS_HPP
+#define BOOST_UNITS_TEMPERATURE_CELSIUS_HPP
 
 #include <string>
 
 #include <boost/units/absolute.hpp>
 #include <boost/units/static_constant.hpp>
 #include <boost/units/make_system.hpp>
-#include <boost/units/systems/base_units/celsius.hpp>
+#include <boost/units/systems/temperature/base_units/celsius.hpp>
 
 namespace boost {
 
@@ -24,7 +24,7 @@
 
 namespace celsius {
 
-typedef make_system<celsius_base_unit>::type system;
+typedef make_system<boost::units::temperature::celsius_base_unit>::type system;
 
 typedef unit<temperature_dimension,system> temperature;
 
@@ -37,4 +37,4 @@
 
 } // namespace boost
 
-#endif // BOOST_UNITS_CELSIUS_HPP
+#endif // BOOST_UNITS_TEMPERATURE_CELSIUS_HPP

Modified: sandbox/units/boost/units/systems/temperature/fahrenheit.hpp
==============================================================================
--- sandbox/units/boost/units/systems/temperature/fahrenheit.hpp (original)
+++ sandbox/units/boost/units/systems/temperature/fahrenheit.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -8,8 +8,8 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_UNITS_FAHRENHEIT_HPP
-#define BOOST_UNITS_FAHRENHEIT_HPP
+#ifndef BOOST_UNITS_TEMPERATURE_FAHRENHEIT_HPP
+#define BOOST_UNITS_TEMPERATURE_FAHRENHEIT_HPP
 
 #include <string>
 
@@ -17,7 +17,7 @@
 #include <boost/units/io.hpp>
 #include <boost/units/make_system.hpp>
 #include <boost/units/static_constant.hpp>
-#include <boost/units/systems/base_units/fahrenheit.hpp>
+#include <boost/units/systems/temperature/base_units/fahrenheit.hpp>
 
 namespace boost {
 
@@ -25,7 +25,7 @@
 
 namespace fahrenheit {
 
-typedef make_system<fahrenheit_base_unit>::type system;
+typedef make_system<boost::units::temperature::fahrenheit_base_unit>::type system;
 
 typedef unit<temperature_dimension,system> temperature;
 
@@ -38,4 +38,4 @@
 
 } // namespace boost
 
-#endif // BOOST_UNITS_FAHRENHEIT_HPP
+#endif // BOOST_UNITS_TEMPERATURE_FAHRENHEIT_HPP

Modified: sandbox/units/boost/units/systems/us/avoirdupois_dram.hpp
==============================================================================
--- sandbox/units/boost/units/systems/us/avoirdupois_dram.hpp (original)
+++ sandbox/units/boost/units/systems/us/avoirdupois_dram.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/kilogram.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(us, avoirdupois_dram, "avoirdupois_dram", "avoirdupois_dram", 1.7718451953125e-3, kilogram_base_unit, 21);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(us, avoirdupois_dram, "avoirdupois_dram", "avoirdupois_dram", 1.7718451953125e-3, kilogram_base_unit, 21);
 
 #endif

Modified: sandbox/units/boost/units/systems/us/dry_pint.hpp
==============================================================================
--- sandbox/units/boost/units/systems/us/dry_pint.hpp (original)
+++ sandbox/units/boost/units/systems/us/dry_pint.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/si/volume.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(us, dry_pint, "dry pint", "pt", 5.506105e-4, SI::volume, 20);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(us, dry_pint, "dry pint", "pt", 5.506105e-4, SI::volume, 20);
 
 #endif

Modified: sandbox/units/boost/units/systems/us/grain.hpp
==============================================================================
--- sandbox/units/boost/units/systems/us/grain.hpp (original)
+++ sandbox/units/boost/units/systems/us/grain.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,6 +14,6 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/base_units/kilogram.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(us, grain, "grain", "grain", 6.479891e-5, kilogram_base_unit, 23);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(us, grain, "grain", "grain", 6.479891e-5, kilogram_base_unit, 23);
 
 #endif

Modified: sandbox/units/boost/units/systems/us/long_ton.hpp
==============================================================================
--- sandbox/units/boost/units/systems/us/long_ton.hpp (original)
+++ sandbox/units/boost/units/systems/us/long_ton.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,7 +14,7 @@
 //#include <boost/units/systems/detail/non_si_unit.hpp>
 //#include <boost/units/systems/base_units/kilogram.hpp>
 //
-//BOOST_UNITS_NON_SI_UNIT(us, long_ton, long_ton, 1.0160469088e3, kilogram_base_unit, 22);
+//BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(us, long_ton, long_ton, 1.0160469088e3, kilogram_base_unit, 22);
 
 #include <boost/units/scaled_base_unit.hpp>
 #include <boost/units/static_rational.hpp>

Modified: sandbox/units/boost/units/systems/us/minim.hpp
==============================================================================
--- sandbox/units/boost/units/systems/us/minim.hpp (original)
+++ sandbox/units/boost/units/systems/us/minim.hpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -14,7 +14,7 @@
 #include <boost/units/systems/detail/non_si_unit.hpp>
 #include <boost/units/systems/si/volume.hpp>
 
-BOOST_UNITS_NON_SI_UNIT(us, minim, "minim", "minim", 6.161152e-8, SI::volume, 19);
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(us, minim, "minim", "minim", 6.161152e-8, SI::volume, 19);
 
 //#include <boost/units/scaled_base_unit.hpp>
 //#include <boost/units/static_rational.hpp>

Modified: sandbox/units/libs/units/example/radar_beam_height.cpp
==============================================================================
--- sandbox/units/libs/units/example/radar_beam_height.cpp (original)
+++ sandbox/units/libs/units/example/radar_beam_height.cpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -72,7 +72,7 @@
 } // namespace boost
 
 BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::nautical::length_base_unit,
- boost::units::meter_base_unit,
+ boost::units::SI::meter_base_unit,
                                      double, 1.852e3);
 
 namespace boost {
@@ -104,7 +104,7 @@
 } // namespace boost
 
 BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::length_base_unit,
- boost::units::meter_base_unit,
+ boost::units::SI::meter_base_unit,
                                      double, 1.0/3.28083989501312);
 
 namespace boost {

Added: sandbox/units/libs/units/example/systems.cpp
==============================================================================
--- (empty file)
+++ sandbox/units/libs/units/example/systems.cpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -0,0 +1,391 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2008 Steven Watanabe
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+/**
+\file
+
+\brief systems.cpp
+
+\detailed
+Test various non-SI units
+
+Output:
+@verbatim
+
+//[radar_beam_height_output
+***
+//]
+
+@endverbatim
+**/
+
+#include <iostream>
+#include <sstream>
+#include <algorithm>
+
+#include <boost/units/conversion.hpp>
+#include <boost/units/io.hpp>
+#include <boost/units/pow.hpp>
+
+#include <boost/units/systems/si.hpp>
+
+#include <boost/units/systems/angle/base_units/arcminute.hpp>
+#include <boost/units/systems/angle/base_units/arcsecond.hpp>
+#include <boost/units/systems/angle/base_units/degree.hpp>
+#include <boost/units/systems/angle/base_units/gradian.hpp>
+#include <boost/units/systems/angle/base_units/revolution.hpp>
+#include <boost/units/systems/angle/base_units/radian.hpp>
+#include <boost/units/systems/angle/base_units/steradian.hpp>
+
+#include <boost/units/systems/astronomical/base_units/astronomical_unit.hpp>
+#include <boost/units/systems/astronomical/base_units/light_second.hpp>
+#include <boost/units/systems/astronomical/base_units/light_minute.hpp>
+#include <boost/units/systems/astronomical/base_units/light_hour.hpp>
+#include <boost/units/systems/astronomical/base_units/light_day.hpp>
+#include <boost/units/systems/astronomical/base_units/light_year.hpp>
+#include <boost/units/systems/astronomical/base_units/parsec.hpp>
+
+#include <boost/units/systems/imperial/base_units/thou.hpp>
+#include <boost/units/systems/imperial/base_units/inch.hpp>
+#include <boost/units/systems/imperial/base_units/foot.hpp>
+#include <boost/units/systems/imperial/base_units/yard.hpp>
+#include <boost/units/systems/imperial/base_units/furlong.hpp>
+#include <boost/units/systems/imperial/base_units/mile.hpp>
+#include <boost/units/systems/imperial/base_units/league.hpp>
+
+#include <boost/units/systems/imperial/base_units/grain.hpp>
+#include <boost/units/systems/imperial/base_units/drachm.hpp>
+#include <boost/units/systems/imperial/base_units/ounce.hpp>
+#include <boost/units/systems/imperial/base_units/pound.hpp>
+#include <boost/units/systems/imperial/base_units/stone.hpp>
+#include <boost/units/systems/imperial/base_units/quarter.hpp>
+#include <boost/units/systems/imperial/base_units/hundredweight.hpp>
+#include <boost/units/systems/imperial/base_units/ton.hpp>
+
+#include <boost/units/systems/imperial/base_units/fluid_ounce.hpp>
+#include <boost/units/systems/imperial/base_units/gill.hpp>
+#include <boost/units/systems/imperial/base_units/pint.hpp>
+#include <boost/units/systems/imperial/base_units/quart.hpp>
+#include <boost/units/systems/imperial/base_units/gallon.hpp>
+
+#include <boost/units/systems/metric/base_units/angstrom.hpp>
+#include <boost/units/systems/metric/base_units/fermi.hpp>
+#include <boost/units/systems/metric/base_units/micron.hpp>
+
+#include <boost/units/systems/metric/base_units/ton.hpp>
+
+#include <boost/units/systems/metric/base_units/day.hpp>
+#include <boost/units/systems/metric/base_units/hour.hpp>
+#include <boost/units/systems/metric/base_units/minute.hpp>
+#include <boost/units/systems/metric/base_units/year.hpp>
+
+#include <boost/units/systems/metric/base_units/are.hpp>
+#include <boost/units/systems/metric/base_units/barn.hpp>
+#include <boost/units/systems/metric/base_units/hectare.hpp>
+
+#include <boost/units/systems/metric/base_units/liter.hpp>
+
+#include <boost/units/systems/metric/base_units/atmosphere.hpp>
+#include <boost/units/systems/metric/base_units/bar.hpp>
+#include <boost/units/systems/metric/base_units/torr.hpp>
+
+#define BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(namespace_,unit_name_,dimension_) \
+namespace boost { \
+namespace units { \
+namespace namespace_ { \
+typedef make_system<unit_name_ ## _base_unit>::type unit_name_ ## system_; \
+typedef unit<dimension_ ## _dimension,unit_name_ ## system_> unit_name_ ## _ ## dimension_; \
+static const unit_name_ ## _ ## dimension_ unit_name_ ## s; \
+} \
+} \
+} \
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,arcminute,plane_angle)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,arcsecond,plane_angle)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,degree,plane_angle)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,gradian,plane_angle)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,radian,plane_angle)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,revolution,plane_angle)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(angle,steradian,solid_angle)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,astronomical_unit,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,light_second,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,light_minute,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,light_hour,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,light_day,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,light_year,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(astronomical,parsec,length)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,thou,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,inch,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,foot,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,yard,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,furlong,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,mile,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,league,length)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,grain,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,drachm,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,ounce,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,pound,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,stone,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,quarter,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,hundredweight,mass)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,ton,mass)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,fluid_ounce,volume)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,gill,volume)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,pint,volume)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,quart,volume)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(imperial,gallon,volume)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,angstrom,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,fermi,length)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,micron,length)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,ton,mass)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,day,time)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,hour,time)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,minute,time)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,year,time)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,are,area)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,barn,area)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,hectare,area)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,liter,volume)
+
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,atmosphere,pressure)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,bar,pressure)
+BOOST_UNITS_DEFINE_SINGLE_UNIT_SYSTEM(metric,torr,pressure)
+
+int main(void)
+{
+ using namespace boost::units;
+
+ {
+ using namespace boost::units::angle;
+
+ quantity<arcminute_plane_angle> an1(1.0*arcminutes);
+ quantity<arcsecond_plane_angle> an2(1.0*arcseconds);
+ quantity<degree_plane_angle> an3(1.0*degrees);
+ quantity<gradian_plane_angle> an4(1.0*gradians);
+ quantity<radian_plane_angle> an5(1.0*radians);
+ quantity<revolution_plane_angle> an6(1.0*revolutions);
+
+ std::cout << an1 << std::endl
+ << an2 << std::endl
+ << an3 << std::endl
+ << an4 << std::endl
+ << an5 << std::endl
+ << an6 << std::endl
+ << quantity<SI::dimensionless>(an6/an1) << std::endl
+ << quantity<SI::dimensionless>(an6/an2) << std::endl
+ << quantity<SI::dimensionless>(an6/an3) << std::endl
+ << quantity<SI::dimensionless>(an6/an4) << std::endl
+ << quantity<SI::dimensionless>(an6/an5) << std::endl
+ << quantity<SI::plane_angle>(an1) << std::endl
+ << quantity<SI::plane_angle>(an2) << std::endl
+ << quantity<SI::plane_angle>(an3) << std::endl
+ << quantity<SI::plane_angle>(an4) << std::endl
+ << quantity<SI::plane_angle>(an5) << std::endl
+ << quantity<SI::plane_angle>(an6) << std::endl
+ << std::endl;
+
+ quantity<steradian_solid_angle> sa1(1.0*steradians);
+
+ std::cout << sa1 << std::endl
+ << quantity<SI::solid_angle>(sa1) << std::endl
+ << std::endl;
+ }
+
+ {
+ using namespace boost::units::astronomical;
+
+ quantity<astronomical_unit_length> au(1.0*astronomical_units);
+ quantity<light_second_length> ls(1.0*light_seconds);
+ quantity<light_minute_length> lm(1.0*light_minutes);
+ quantity<light_hour_length> lh(1.0*light_hours);
+ quantity<light_day_length> ld(1.0*light_days);
+ quantity<light_year_length> ly(1.0*light_years);
+ quantity<parsec_length> ps(1.0*parsecs);
+
+ std::cout << au << std::endl
+ << ls << std::endl
+ << lm << std::endl
+ << lh << std::endl
+ << ld << std::endl
+ << ly << std::endl
+ << ps << std::endl
+ << quantity<SI::dimensionless>(ly/au) << std::endl
+ << quantity<SI::dimensionless>(ly/ls) << std::endl
+ << quantity<SI::dimensionless>(ly/lm) << std::endl
+ << quantity<SI::dimensionless>(ly/ld) << std::endl
+ << quantity<SI::dimensionless>(ly/lh) << std::endl
+ << quantity<SI::dimensionless>(ly/ps) << std::endl
+ << quantity<SI::length>(au) << std::endl
+ << quantity<SI::length>(ls) << std::endl
+ << quantity<SI::length>(lm) << std::endl
+ << quantity<SI::length>(lh) << std::endl
+ << quantity<SI::length>(ld) << std::endl
+ << quantity<SI::length>(ly) << std::endl
+ << quantity<SI::length>(ps) << std::endl
+ << std::endl;
+ }
+
+ {
+ using namespace boost::units::imperial;
+
+ quantity<thou_length> iml1(1.0*thous);
+ quantity<inch_length> iml2(1.0*inchs);
+ quantity<foot_length> iml3(1.0*foots);
+ quantity<yard_length> iml4(1.0*yards);
+ quantity<furlong_length> iml5(1.0*furlongs);
+ quantity<mile_length> iml6(1.0*miles);
+ quantity<league_length> iml7(1.0*leagues);
+
+ std::cout << iml1 << std::endl
+ << iml2 << std::endl
+ << iml3 << std::endl
+ << iml4 << std::endl
+ << iml5 << std::endl
+ << iml6 << std::endl
+ << iml7 << std::endl
+ << quantity<SI::dimensionless>(iml7/iml1) << std::endl
+ << quantity<SI::dimensionless>(iml7/iml2) << std::endl
+ << quantity<SI::dimensionless>(iml7/iml3) << std::endl
+ << quantity<SI::dimensionless>(iml7/iml4) << std::endl
+ << quantity<SI::dimensionless>(iml7/iml5) << std::endl
+ << quantity<SI::dimensionless>(iml7/iml6) << std::endl
+ << quantity<SI::length>(iml1) << std::endl
+ << quantity<SI::length>(iml2) << std::endl
+ << quantity<SI::length>(iml3) << std::endl
+ << quantity<SI::length>(iml4) << std::endl
+ << quantity<SI::length>(iml5) << std::endl
+ << quantity<SI::length>(iml6) << std::endl
+ << quantity<SI::length>(iml7) << std::endl
+ << std::endl;
+
+ quantity<grain_mass> imm1(1.0*grains);
+ quantity<drachm_mass> imm2(1.0*drachms);
+ quantity<ounce_mass> imm3(1.0*ounces);
+ quantity<pound_mass> imm4(1.0*pounds);
+ quantity<stone_mass> imm5(1.0*stones);
+ quantity<quarter_mass> imm6(1.0*quarters);
+ quantity<hundredweight_mass> imm7(1.0*hundredweights);
+ quantity<ton_mass> imm8(1.0*tons);
+
+ std::cout << imm1 << std::endl
+ << imm2 << std::endl
+ << imm3 << std::endl
+ << imm4 << std::endl
+ << imm5 << std::endl
+ << imm6 << std::endl
+ << imm7 << std::endl
+ << imm8 << std::endl
+ << quantity<SI::dimensionless>(imm8/imm1) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm2) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm3) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm4) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm5) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm6) << std::endl
+ << quantity<SI::dimensionless>(imm8/imm7) << std::endl
+ << quantity<SI::mass>(imm1) << std::endl
+ << quantity<SI::mass>(imm2) << std::endl
+ << quantity<SI::mass>(imm3) << std::endl
+ << quantity<SI::mass>(imm4) << std::endl
+ << quantity<SI::mass>(imm5) << std::endl
+ << quantity<SI::mass>(imm6) << std::endl
+ << quantity<SI::mass>(imm7) << std::endl
+ << quantity<SI::mass>(imm8) << std::endl
+ << std::endl;
+
+ quantity<gallon_volume> imv1(1.0*gallons);
+ quantity<fluid_ounce_volume> imv2(1.0*fluid_ounces);
+ quantity<gill_volume> imv3(1.0*gills);
+ quantity<pint_volume> imv4(1.0*pints);
+ quantity<quart_volume> imv5(1.0*quarts);
+
+ //quantity<fluid_ounce_volume> im6 = 1.0*gallons; // why does this fail?
+
+ std::cout << imv1 << std::endl
+ << imv2 << std::endl
+ << imv3 << std::endl
+ << imv4 << std::endl
+ << imv5 << std::endl
+ << quantity<SI::dimensionless>(imv1/imv2) << std::endl
+ << quantity<SI::dimensionless>(imv1/imv3) << std::endl
+ << quantity<SI::dimensionless>(imv1/imv4) << std::endl
+ << quantity<SI::dimensionless>(imv1/imv5) << std::endl
+ << quantity<SI::volume>(imv1) << std::endl
+ << quantity<SI::volume>(imv2) << std::endl
+ << quantity<SI::volume>(imv3) << std::endl
+ << quantity<SI::volume>(imv4) << std::endl
+ << quantity<SI::volume>(imv5) << std::endl
+ << std::endl;
+ }
+
+ {
+ using namespace boost::units::metric;
+
+ quantity<angstrom_length> ml1(1.0*angstroms);
+ quantity<fermi_length> ml2(1.0*fermis);
+ quantity<micron_length> ml3(1.0*microns);
+
+ std::cout << ml1 << std::endl
+ << ml2 << std::endl
+ << ml3 << std::endl
+ << quantity<SI::dimensionless>(ml3/ml1) << std::endl
+ << quantity<SI::dimensionless>(ml3/ml2) << std::endl
+ << quantity<SI::length>(ml1) << std::endl
+ << quantity<SI::length>(ml2) << std::endl
+ << quantity<SI::length>(ml3) << std::endl
+ << std::endl;
+
+// probably more gram/kilogram business
+// quantity<ton_mass> mm1(1.0*tons);
+//
+// std::cout << mm1 << std::endl
+// << quantity<SI::mass>(mm1) << std::endl
+// << std::endl;
+
+ quantity<day_time> mt1(1.0*days);
+ quantity<hour_time> mt2(1.0*hours);
+ quantity<minute_time> mt3(1.0*minutes);
+ quantity<year_time> mt4(1.0*years);
+
+ std::cout << mt1 << std::endl
+ << mt2 << std::endl
+ << mt3 << std::endl
+ << mt4 << std::endl
+ << quantity<SI::dimensionless>(mt4/mt1) << std::endl
+ << quantity<SI::dimensionless>(mt4/mt2) << std::endl
+ << quantity<SI::dimensionless>(mt4/mt3) << std::endl
+ << quantity<SI::time>(mt1) << std::endl
+ << quantity<SI::time>(mt2) << std::endl
+ << quantity<SI::time>(mt3) << std::endl
+ << quantity<SI::time>(mt4) << std::endl
+ << std::endl;
+
+ quantity<are_area> ma1(1.0*ares);
+ quantity<barn_area> ma2(1.0*barns);
+ quantity<hectare_area> ma3(1.0*hectares);
+
+ quantity<liter_volume> mv1(1.0*liters);
+
+ quantity<atmosphere_pressure> mp1(1.0*atmospheres);
+ quantity<bar_pressure> mp2(1.0*bars);
+ quantity<torr_pressure> mp3(1.0*torrs);
+ }
+
+ return 0;
+}

Modified: sandbox/units/libs/units/example/temperature.cpp
==============================================================================
--- sandbox/units/libs/units/example/temperature.cpp (original)
+++ sandbox/units/libs/units/example/temperature.cpp 2008-05-17 18:26:06 EDT (Sat, 17 May 2008)
@@ -44,7 +44,7 @@
 #include <boost/units/systems/si/temperature.hpp>
 #include <boost/units/detail/utility.hpp>
 
-#include <boost/units/systems/base_units.hpp>
+#include <boost/units/systems/temperature/base_units/fahrenheit.hpp>
 
 using namespace boost::units;
 
@@ -55,7 +55,7 @@
 namespace fahrenheit {
 
 //[temperature_snippet_1
-typedef make_system<fahrenheit_base_unit>::type system;
+typedef make_system<boost::units::temperature::fahrenheit_base_unit>::type system;
 
 typedef unit<temperature_dimension,system> temperature;
 
@@ -117,11 +117,11 @@
               << T3v << std::endl
               << std::endl;
     
- sstream2 << "32 absolute F" << std::endl
+ sstream2 << "32 absolute °F" << std::endl
               << "273.15 absolute K" << std::endl
               << "273.15 absolute K" << std::endl
               << "273.15 absolute K" << std::endl
- << "32 F" << std::endl
+ << "32 °F" << std::endl
               << 17.77777777777 << " K" << std::endl
               << 17.77777777777 << " K" << std::endl
               << 17.77777777777 << " K" << std::endl


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk