Chris@16
|
1 // Boost.Units - A C++ library for zero-overhead dimensional analysis and
|
Chris@16
|
2 // unit/quantity manipulation and conversion
|
Chris@16
|
3 //
|
Chris@16
|
4 // Copyright (C) 2003-2008 Matthias Christian Schabel
|
Chris@16
|
5 // Copyright (C) 2008 Steven Watanabe
|
Chris@16
|
6 //
|
Chris@16
|
7 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
8 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
9 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
10
|
Chris@16
|
11 #ifndef BOOST_UNITS_SI_IO_HPP
|
Chris@16
|
12 #define BOOST_UNITS_SI_IO_HPP
|
Chris@16
|
13
|
Chris@16
|
14 #include <boost/units/io.hpp>
|
Chris@16
|
15 #include <boost/units/reduce_unit.hpp>
|
Chris@16
|
16
|
Chris@16
|
17 #include <boost/units/systems/si.hpp>
|
Chris@16
|
18
|
Chris@16
|
19 namespace boost {
|
Chris@16
|
20
|
Chris@16
|
21 namespace units {
|
Chris@16
|
22
|
Chris@16
|
23 // gray and sievert are indistinguishable
|
Chris@16
|
24 inline std::string name_string(const reduce_unit<si::absorbed_dose>::type&) { return "gray"; }
|
Chris@16
|
25 inline std::string symbol_string(const reduce_unit<si::absorbed_dose>::type&) { return "Gy"; }
|
Chris@16
|
26
|
Chris@16
|
27 // activity and frequency are indistinguishable - would need a "decays" base unit
|
Chris@16
|
28 //inline std::string name_string(const si::activity&) { return "becquerel"; }
|
Chris@16
|
29 //inline std::string symbol_string(const si::activity&) { return "Bq"; }
|
Chris@16
|
30
|
Chris@16
|
31 inline std::string name_string(const reduce_unit<si::capacitance>::type&) { return "farad"; }
|
Chris@16
|
32 inline std::string symbol_string(const reduce_unit<si::capacitance>::type&) { return "F"; }
|
Chris@16
|
33
|
Chris@16
|
34 inline std::string name_string(const reduce_unit<si::catalytic_activity>::type&) { return "katal"; }
|
Chris@16
|
35 inline std::string symbol_string(const reduce_unit<si::catalytic_activity>::type&) { return "kat"; }
|
Chris@16
|
36
|
Chris@16
|
37 inline std::string name_string(const reduce_unit<si::conductance>::type&) { return "siemen"; }
|
Chris@16
|
38 inline std::string symbol_string(const reduce_unit<si::conductance>::type&) { return "S"; }
|
Chris@16
|
39
|
Chris@16
|
40 // gray and sievert are indistinguishable
|
Chris@16
|
41 //inline std::string name_string(const si::dose_equivalent&) { return "sievert"; }
|
Chris@16
|
42 //inline std::string symbol_string(const si::dose_equivalent&) { return "Sv"; }
|
Chris@16
|
43
|
Chris@16
|
44 inline std::string name_string(const reduce_unit<si::electric_charge>::type&) { return "coulomb"; }
|
Chris@16
|
45 inline std::string symbol_string(const reduce_unit<si::electric_charge>::type&) { return "C"; }
|
Chris@16
|
46
|
Chris@16
|
47 inline std::string name_string(const reduce_unit<si::electric_potential>::type&) { return "volt"; }
|
Chris@16
|
48 inline std::string symbol_string(const reduce_unit<si::electric_potential>::type&) { return "V"; }
|
Chris@16
|
49
|
Chris@16
|
50 inline std::string name_string(const reduce_unit<si::energy>::type&) { return "joule"; }
|
Chris@16
|
51 inline std::string symbol_string(const reduce_unit<si::energy>::type&) { return "J"; }
|
Chris@16
|
52
|
Chris@16
|
53 inline std::string name_string(const reduce_unit<si::force>::type&) { return "newton"; }
|
Chris@16
|
54 inline std::string symbol_string(const reduce_unit<si::force>::type&) { return "N"; }
|
Chris@16
|
55
|
Chris@16
|
56 inline std::string name_string(const reduce_unit<si::frequency>::type&) { return "hertz"; }
|
Chris@16
|
57 inline std::string symbol_string(const reduce_unit<si::frequency>::type&) { return "Hz"; }
|
Chris@16
|
58
|
Chris@16
|
59 inline std::string name_string(const reduce_unit<si::illuminance>::type&) { return "lux"; }
|
Chris@16
|
60 inline std::string symbol_string(const reduce_unit<si::illuminance>::type&) { return "lx"; }
|
Chris@16
|
61
|
Chris@16
|
62 inline std::string name_string(const reduce_unit<si::inductance>::type&) { return "henry"; }
|
Chris@16
|
63 inline std::string symbol_string(const reduce_unit<si::inductance>::type&) { return "H"; }
|
Chris@16
|
64
|
Chris@16
|
65 inline std::string name_string(const reduce_unit<si::luminous_flux>::type&) { return "lumen"; }
|
Chris@16
|
66 inline std::string symbol_string(const reduce_unit<si::luminous_flux>::type&) { return "lm"; }
|
Chris@16
|
67
|
Chris@16
|
68 inline std::string name_string(const reduce_unit<si::magnetic_flux>::type&) { return "weber"; }
|
Chris@16
|
69 inline std::string symbol_string(const reduce_unit<si::magnetic_flux>::type&) { return "Wb"; }
|
Chris@16
|
70
|
Chris@16
|
71 inline std::string name_string(const reduce_unit<si::magnetic_flux_density>::type&) { return "tesla"; }
|
Chris@16
|
72 inline std::string symbol_string(const reduce_unit<si::magnetic_flux_density>::type&) { return "T"; }
|
Chris@16
|
73
|
Chris@16
|
74 inline std::string name_string(const reduce_unit<si::power>::type&) { return "watt"; }
|
Chris@16
|
75 inline std::string symbol_string(const reduce_unit<si::power>::type&) { return "W"; }
|
Chris@16
|
76
|
Chris@16
|
77 inline std::string name_string(const reduce_unit<si::pressure>::type&) { return "pascal"; }
|
Chris@16
|
78 inline std::string symbol_string(const reduce_unit<si::pressure>::type&) { return "Pa"; }
|
Chris@16
|
79
|
Chris@16
|
80 inline std::string name_string(const reduce_unit<si::resistance>::type&) { return "ohm"; }
|
Chris@16
|
81 inline std::string symbol_string(const reduce_unit<si::resistance>::type&) { return "Ohm"; }
|
Chris@16
|
82
|
Chris@16
|
83
|
Chris@16
|
84 } // namespace units
|
Chris@16
|
85
|
Chris@16
|
86 } // namespace boost
|
Chris@16
|
87
|
Chris@16
|
88 #endif // BOOST_UNITS_SI_IO_HPP
|