• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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