// 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 \detailed 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 #include #include #include #include #include #include #include #include #include using namespace boost::units; namespace boost { namespace units { namespace fahrenheit { //[temperature_snippet_1 typedef temperature::fahrenheit_base_unit::unit_type temperature; typedef get_system::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 > T1p( 32.0*absolute()); quantity T1v( 32.0*fahrenheit::degrees); quantity > T2p(T1p); quantity T2v(T1v); //] typedef conversion_helper< quantity >, quantity > > absolute_conv_type; typedef conversion_helper< quantity, quantity > 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; }