summaryrefslogtreecommitdiff
path: root/boost/units/base_units/imperial
diff options
context:
space:
mode:
Diffstat (limited to 'boost/units/base_units/imperial')
-rw-r--r--boost/units/base_units/imperial/conversions.hpp46
-rw-r--r--boost/units/base_units/imperial/drachm.hpp39
-rw-r--r--boost/units/base_units/imperial/fluid_ounce.hpp39
-rw-r--r--boost/units/base_units/imperial/foot.hpp39
-rw-r--r--boost/units/base_units/imperial/furlong.hpp39
-rw-r--r--boost/units/base_units/imperial/gallon.hpp40
-rw-r--r--boost/units/base_units/imperial/gill.hpp40
-rw-r--r--boost/units/base_units/imperial/grain.hpp39
-rw-r--r--boost/units/base_units/imperial/hundredweight.hpp39
-rw-r--r--boost/units/base_units/imperial/inch.hpp39
-rw-r--r--boost/units/base_units/imperial/league.hpp39
-rw-r--r--boost/units/base_units/imperial/mile.hpp39
-rw-r--r--boost/units/base_units/imperial/ounce.hpp39
-rw-r--r--boost/units/base_units/imperial/pint.hpp29
-rw-r--r--boost/units/base_units/imperial/pound.hpp34
-rw-r--r--boost/units/base_units/imperial/quart.hpp40
-rw-r--r--boost/units/base_units/imperial/quarter.hpp39
-rw-r--r--boost/units/base_units/imperial/stone.hpp39
-rw-r--r--boost/units/base_units/imperial/thou.hpp39
-rw-r--r--boost/units/base_units/imperial/ton.hpp40
-rw-r--r--boost/units/base_units/imperial/yard.hpp32
21 files changed, 808 insertions, 0 deletions
diff --git a/boost/units/base_units/imperial/conversions.hpp b/boost/units/base_units/imperial/conversions.hpp
new file mode 100644
index 0000000..54cf638
--- /dev/null
+++ b/boost/units/base_units/imperial/conversions.hpp
@@ -0,0 +1,46 @@
+// 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.
+
+// imperial units
+
+#if 0
+
+#if defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED) && defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_GALLON_HPP_INCLUDED) &&\
+ !defined(BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_GALLON_CONVERSION_DEFINED)
+ #define BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_GALLON_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::pint_base_unit,boost::units::imperial::gallon_base_unit, double, 1./8.);
+#endif
+
+#if defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED) && defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_QUART_HPP_INCLUDED) &&\
+ !defined(BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_QUART_CONVERSION_DEFINED)
+ #define BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_QUART_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::pint_base_unit,boost::units::imperial::quart_base_unit, double, 1./2.);
+#endif
+
+#if defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED) && defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_GILL_HPP_INCLUDED) &&\
+ !defined(BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_GILL_CONVERSION_DEFINED)
+ #define BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_GILL_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::pint_base_unit,boost::units::imperial::gill_base_unit, double, 4.);
+#endif
+
+#if defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED) && defined(BOOST_UNITS_BASE_UNITS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED) &&\
+ !defined(BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_FLUID_OUNCE_CONVERSION_DEFINED)
+ #define BOOST_BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_TO_FLUID_OUNCE_CONVERSION_DEFINED
+ #include <boost/units/conversion.hpp>
+ BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::pint_base_unit,boost::units::imperial::fluid_ounce_base_unit, double, 20.);
+#endif
+
+#endif
diff --git a/boost/units/base_units/imperial/drachm.hpp b/boost/units/base_units/imperial/drachm.hpp
new file mode 100644
index 0000000..3dcc024
--- /dev/null
+++ b/boost/units/base_units/imperial/drachm.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/fluid_ounce.hpp b/boost/units/base_units/imperial/fluid_ounce.hpp
new file mode 100644
index 0000000..8bab33e
--- /dev/null
+++ b/boost/units/base_units/imperial/fluid_ounce.hpp
@@ -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_BASE_UNITS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
+#define BOOST_UNITS_BASE_UNITS_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/base_units/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;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::fluid_ounce_base_unit> {
+ static const char* name() { return("fluid ounce (imp.)"); }
+ static const char* symbol() { return("fl oz"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_BASE_UNITS_IMPERIAL_FLUID_OUNCE_HPP_INCLUDED
diff --git a/boost/units/base_units/imperial/foot.hpp b/boost/units/base_units/imperial/foot.hpp
new file mode 100644
index 0000000..149985e
--- /dev/null
+++ b/boost/units/base_units/imperial/foot.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/furlong.hpp b/boost/units/base_units/imperial/furlong.hpp
new file mode 100644
index 0000000..1d98821
--- /dev/null
+++ b/boost/units/base_units/imperial/furlong.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/gallon.hpp b/boost/units/base_units/imperial/gallon.hpp
new file mode 100644
index 0000000..6fd4653
--- /dev/null
+++ b/boost/units/base_units/imperial/gallon.hpp
@@ -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_UNITS_BASE_UNITS_IMPERIAL_GALLON_HPP_INCLUDED
+#define BOOST_UNITS_BASE_UNITS_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/base_units/imperial/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+//typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<3> > > gallon_base_unit;
+typedef scaled_base_unit<pint_base_unit, scale<8, static_rational<1> > > gallon_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::gallon_base_unit> {
+ static const char* name() { return("gallon (imp.)"); }
+ static const char* symbol() { return("gal"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_BASE_UNITS_IMPERIAL_GALLON_HPP_INCLUDED
diff --git a/boost/units/base_units/imperial/gill.hpp b/boost/units/base_units/imperial/gill.hpp
new file mode 100644
index 0000000..3e5b83a
--- /dev/null
+++ b/boost/units/base_units/imperial/gill.hpp
@@ -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_UNITS_BASE_UNITS_IMPERIAL_GILL_HPP_INCLUDED
+#define BOOST_UNITS_BASE_UNITS_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/base_units/imperial/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+//typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<-2> > > gill_base_unit;
+typedef scaled_base_unit<pint_base_unit, scale<4, static_rational<-1> > > gill_base_unit;
+
+} // namespace imperial
+
+template<>
+struct base_unit_info<imperial::gill_base_unit> {
+ static const char* name() { return("gill (imp.)"); }
+ static const char* symbol() { return("gill"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_BASE_UNITS_IMPERIAL_GILL_HPP_INCLUDED
diff --git a/boost/units/base_units/imperial/grain.hpp b/boost/units/base_units/imperial/grain.hpp
new file mode 100644
index 0000000..a36b4a4
--- /dev/null
+++ b/boost/units/base_units/imperial/grain.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/hundredweight.hpp b/boost/units/base_units/imperial/hundredweight.hpp
new file mode 100644
index 0000000..6709a78
--- /dev/null
+++ b/boost/units/base_units/imperial/hundredweight.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/inch.hpp b/boost/units/base_units/imperial/inch.hpp
new file mode 100644
index 0000000..048d8c6
--- /dev/null
+++ b/boost/units/base_units/imperial/inch.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/league.hpp b/boost/units/base_units/imperial/league.hpp
new file mode 100644
index 0000000..991e4b6
--- /dev/null
+++ b/boost/units/base_units/imperial/league.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/mile.hpp b/boost/units/base_units/imperial/mile.hpp
new file mode 100644
index 0000000..d0d0fb5
--- /dev/null
+++ b/boost/units/base_units/imperial/mile.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/ounce.hpp b/boost/units/base_units/imperial/ounce.hpp
new file mode 100644
index 0000000..8b9e33a
--- /dev/null
+++ b/boost/units/base_units/imperial/ounce.hpp
@@ -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/base_units/imperial/pound.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+typedef scaled_base_unit<pound_base_unit, scale<2, static_rational<-4> > > 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
diff --git a/boost/units/base_units/imperial/pint.hpp b/boost/units/base_units/imperial/pint.hpp
new file mode 100644
index 0000000..1a1440f
--- /dev/null
+++ b/boost/units/base_units/imperial/pint.hpp
@@ -0,0 +1,29 @@
+// 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_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED
+#define BOOST_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED
+
+#include <string>
+
+#include <boost/units/systems/si/volume.hpp>
+#include <boost/units/conversion.hpp>
+
+BOOST_UNITS_DEFINE_BASE_UNIT_WITH_CONVERSIONS(imperial, pint, "pint (imp.)", "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_UNITS_BASE_UNITS_IMPERIAL_PINT_HPP_INCLUDED
diff --git a/boost/units/base_units/imperial/pound.hpp b/boost/units/base_units/imperial/pound.hpp
new file mode 100644
index 0000000..c586e6d
--- /dev/null
+++ b/boost/units/base_units/imperial/pound.hpp
@@ -0,0 +1,34 @@
+// 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/physical_dimensions/mass.hpp>
+#include <boost/units/base_units/cgs/gram.hpp>
+#include <boost/units/conversion.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
diff --git a/boost/units/base_units/imperial/quart.hpp b/boost/units/base_units/imperial/quart.hpp
new file mode 100644
index 0000000..723ce0b
--- /dev/null
+++ b/boost/units/base_units/imperial/quart.hpp
@@ -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_UNITS_BASE_UNITS_IMPERIAL_QUART_HPP_INCLUDED
+#define BOOST_UNITS_BASE_UNITS_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/base_units/imperial/pint.hpp>
+
+namespace boost {
+
+namespace units {
+
+namespace imperial {
+
+//typedef scaled_base_unit<pint_base_unit, scale<2, static_rational<1> > > quart_base_unit;
+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 (imp.)"); }
+ static const char* symbol() { return("qt"); }
+};
+
+} // namespace units
+
+} // namespace boost
+
+#endif // BOOST_UNITS_BASE_UNITS_IMPERIAL_QUART_HPP_INCLUDED
diff --git a/boost/units/base_units/imperial/quarter.hpp b/boost/units/base_units/imperial/quarter.hpp
new file mode 100644
index 0000000..30f0594
--- /dev/null
+++ b/boost/units/base_units/imperial/quarter.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/stone.hpp b/boost/units/base_units/imperial/stone.hpp
new file mode 100644
index 0000000..b4ce433
--- /dev/null
+++ b/boost/units/base_units/imperial/stone.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/thou.hpp b/boost/units/base_units/imperial/thou.hpp
new file mode 100644
index 0000000..eab2ac9
--- /dev/null
+++ b/boost/units/base_units/imperial/thou.hpp
@@ -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/base_units/imperial/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
diff --git a/boost/units/base_units/imperial/ton.hpp b/boost/units/base_units/imperial/ton.hpp
new file mode 100644
index 0000000..867f147
--- /dev/null
+++ b/boost/units/base_units/imperial/ton.hpp
@@ -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/base_units/imperial/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
+
diff --git a/boost/units/base_units/imperial/yard.hpp b/boost/units/base_units/imperial/yard.hpp
new file mode 100644
index 0000000..d15b99d
--- /dev/null
+++ b/boost/units/base_units/imperial/yard.hpp
@@ -0,0 +1,32 @@
+// 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/physical_dimensions/length.hpp>
+#include <boost/units/base_units/si/meter.hpp>
+#include <boost/units/conversion.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