1 // Boost.Units - A C++ library for zero-overhead dimensional analysis and 2 // unit/quantity manipulation and conversion 3 // 4 // Copyright (C) 2003-2008 Matthias Christian Schabel 5 // Copyright (C) 2008 Steven Watanabe 6 // 7 // Distributed under the Boost Software License, Version 1.0. (See 8 // accompanying file LICENSE_1_0.txt or copy at 9 // http://www.boost.org/LICENSE_1_0.txt) 10 11 #ifndef BOOST_UNITS_CODATA_TYPEDEFS_HPP 12 #define BOOST_UNITS_CODATA_TYPEDEFS_HPP 13 14 #include <boost/units/operators.hpp> 15 #include <boost/units/systems/si/amount.hpp> 16 #include <boost/units/systems/si/area.hpp> 17 #include <boost/units/systems/si/capacitance.hpp> 18 #include <boost/units/systems/si/electric_charge.hpp> 19 #include <boost/units/systems/si/current.hpp> 20 #include <boost/units/systems/si/electric_potential.hpp> 21 #include <boost/units/systems/si/energy.hpp> 22 #include <boost/units/systems/si/force.hpp> 23 #include <boost/units/systems/si/frequency.hpp> 24 #include <boost/units/systems/si/magnetic_flux_density.hpp> 25 #include <boost/units/systems/si/mass.hpp> 26 #include <boost/units/systems/si/length.hpp> 27 #include <boost/units/systems/si/power.hpp> 28 #include <boost/units/systems/si/solid_angle.hpp> 29 #include <boost/units/systems/si/temperature.hpp> 30 #include <boost/units/systems/si/time.hpp> 31 #include <boost/units/systems/si/volume.hpp> 32 33 namespace boost { 34 35 namespace units { 36 37 namespace si { 38 39 namespace constants { 40 41 namespace codata { 42 43 typedef divide_typeof_helper<frequency,electric_potential>::type frequency_over_electric_potential; 44 typedef divide_typeof_helper<electric_charge,mass>::type electric_charge_over_mass; 45 typedef divide_typeof_helper<mass,amount>::type mass_over_amount; 46 typedef divide_typeof_helper<energy,magnetic_flux_density>::type energy_over_magnetic_flux_density; 47 typedef divide_typeof_helper<frequency,magnetic_flux_density>::type frequency_over_magnetic_flux_density; 48 typedef divide_typeof_helper<current,energy>::type current_over_energy; 49 typedef divide_typeof_helper<dimensionless,amount>::type inverse_amount; 50 typedef divide_typeof_helper<energy,temperature>::type energy_over_temperature; 51 typedef divide_typeof_helper<energy_over_temperature,amount>::type energy_over_temperature_amount; 52 typedef divide_typeof_helper< 53 divide_typeof_helper<power,area>::type, 54 power_typeof_helper<temperature,static_rational<4> >::type 55 >::type power_over_area_temperature_4; 56 typedef multiply_typeof_helper<power,area>::type power_area; 57 typedef divide_typeof_helper<power_area,solid_angle>::type power_area_over_solid_angle; 58 typedef multiply_typeof_helper<length,temperature>::type length_temperature; 59 typedef divide_typeof_helper<frequency,temperature>::type frequency_over_temperature; 60 typedef divide_typeof_helper<divide_typeof_helper<force,current>::type,current>::type force_over_current_squared; 61 typedef divide_typeof_helper<capacitance,length>::type capacitance_over_length; 62 typedef divide_typeof_helper< 63 divide_typeof_helper<divide_typeof_helper<volume,mass>::type,time>::type, 64 time 65 >::type volume_over_mass_time_squared; 66 typedef multiply_typeof_helper<energy,time>::type energy_time; 67 typedef divide_typeof_helper<electric_charge,amount>::type electric_charge_over_amount; 68 69 } // namespace codata 70 71 } // namespace constants 72 73 } // namespace si 74 75 } // namespace units 76 77 } // namespace boost 78 79 #endif 80