diff options
Diffstat (limited to 'src/boost/libs/units/example/temperature.cpp')
-rw-r--r-- | src/boost/libs/units/example/temperature.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/boost/libs/units/example/temperature.cpp b/src/boost/libs/units/example/temperature.cpp new file mode 100644 index 00000000..f6b43421 --- /dev/null +++ b/src/boost/libs/units/example/temperature.cpp @@ -0,0 +1,98 @@ +// 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 temperature.cpp + +\details +Conversions between Fahrenheit and Kelvin for absolute temperatures and +temperature differences. + +Output: +@verbatim + +//[ temperature_output_1 +{ 32 } F +{ 273.15 } K +{ 273.15 } K +[ 32 ] F +[ 17.7778 ] K +[ 17.7778 ] K +//] + +@endverbatim +**/ + +#include <iomanip> +#include <iostream> + +#include <boost/units/absolute.hpp> +#include <boost/units/get_system.hpp> +#include <boost/units/io.hpp> +#include <boost/units/unit.hpp> +#include <boost/units/quantity.hpp> +#include <boost/units/systems/si/temperature.hpp> +#include <boost/units/detail/utility.hpp> + +#include <boost/units/base_units/temperature/fahrenheit.hpp> + +using namespace boost::units; + +namespace boost { + +namespace units { + +namespace fahrenheit { + +//[temperature_snippet_1 +typedef temperature::fahrenheit_base_unit::unit_type temperature; +typedef get_system<temperature>::type system; + +BOOST_UNITS_STATIC_CONSTANT(degree,temperature); +BOOST_UNITS_STATIC_CONSTANT(degrees,temperature); +//] + +} // fahrenheit + +} // namespace units + +} // namespace boost + +int main() +{ + //[temperature_snippet_3 + quantity<absolute<fahrenheit::temperature> > T1p( + 32.0*absolute<fahrenheit::temperature>()); + quantity<fahrenheit::temperature> T1v( + 32.0*fahrenheit::degrees); + + quantity<absolute<si::temperature> > T2p(T1p); + quantity<si::temperature> T2v(T1v); + //] + + typedef conversion_helper< + quantity<absolute<fahrenheit::temperature> >, + quantity<absolute<si::temperature> > > absolute_conv_type; + typedef conversion_helper< + quantity<fahrenheit::temperature>, + quantity<si::temperature> > relative_conv_type; + + std::cout << T1p << std::endl + << absolute_conv_type::convert(T1p) << std::endl + << T2p << std::endl + << T1v << std::endl + << relative_conv_type::convert(T1v) << std::endl + << T2v << std::endl + << std::endl; + + return 0; +} |