typedefs.hpp 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. #ifndef BOOST_UNITS_CODATA_TYPEDEFS_HPP
  11. #define BOOST_UNITS_CODATA_TYPEDEFS_HPP
  12. #include <boost/units/operators.hpp>
  13. #include <boost/units/systems/si/amount.hpp>
  14. #include <boost/units/systems/si/area.hpp>
  15. #include <boost/units/systems/si/capacitance.hpp>
  16. #include <boost/units/systems/si/electric_charge.hpp>
  17. #include <boost/units/systems/si/current.hpp>
  18. #include <boost/units/systems/si/electric_potential.hpp>
  19. #include <boost/units/systems/si/energy.hpp>
  20. #include <boost/units/systems/si/force.hpp>
  21. #include <boost/units/systems/si/frequency.hpp>
  22. #include <boost/units/systems/si/magnetic_flux_density.hpp>
  23. #include <boost/units/systems/si/mass.hpp>
  24. #include <boost/units/systems/si/length.hpp>
  25. #include <boost/units/systems/si/power.hpp>
  26. #include <boost/units/systems/si/solid_angle.hpp>
  27. #include <boost/units/systems/si/temperature.hpp>
  28. #include <boost/units/systems/si/time.hpp>
  29. #include <boost/units/systems/si/volume.hpp>
  30. namespace boost {
  31. namespace units {
  32. namespace si {
  33. namespace constants {
  34. namespace codata {
  35. typedef divide_typeof_helper<frequency,electric_potential>::type frequency_over_electric_potential;
  36. typedef divide_typeof_helper<electric_charge,mass>::type electric_charge_over_mass;
  37. typedef divide_typeof_helper<mass,amount>::type mass_over_amount;
  38. typedef divide_typeof_helper<energy,magnetic_flux_density>::type energy_over_magnetic_flux_density;
  39. typedef divide_typeof_helper<frequency,magnetic_flux_density>::type frequency_over_magnetic_flux_density;
  40. typedef divide_typeof_helper<current,energy>::type current_over_energy;
  41. typedef divide_typeof_helper<dimensionless,amount>::type inverse_amount;
  42. typedef divide_typeof_helper<energy,temperature>::type energy_over_temperature;
  43. typedef divide_typeof_helper<energy_over_temperature,amount>::type energy_over_temperature_amount;
  44. typedef divide_typeof_helper<
  45. divide_typeof_helper<power,area>::type,
  46. power_typeof_helper<temperature,static_rational<4> >::type
  47. >::type power_over_area_temperature_4;
  48. typedef multiply_typeof_helper<power,area>::type power_area;
  49. typedef divide_typeof_helper<power_area,solid_angle>::type power_area_over_solid_angle;
  50. typedef multiply_typeof_helper<length,temperature>::type length_temperature;
  51. typedef divide_typeof_helper<frequency,temperature>::type frequency_over_temperature;
  52. typedef divide_typeof_helper<divide_typeof_helper<force,current>::type,current>::type force_over_current_squared;
  53. typedef divide_typeof_helper<capacitance,length>::type capacitance_over_length;
  54. typedef divide_typeof_helper<
  55. divide_typeof_helper<divide_typeof_helper<volume,mass>::type,time>::type,
  56. time
  57. >::type volume_over_mass_time_squared;
  58. typedef multiply_typeof_helper<energy,time>::type energy_time;
  59. typedef divide_typeof_helper<electric_charge,amount>::type electric_charge_over_amount;
  60. } // namespace codata
  61. } // namespace constants
  62. } // namespace si
  63. } // namespace units
  64. } // namespace boost
  65. #endif