1 | #include <boost/units/base_units/si/kelvin.hpp>
|
---|
2 | #include <boost/units/base_units/temperature/celsius.hpp>
|
---|
3 | #include <boost/units/base_units/temperature/fahrenheit.hpp>
|
---|
4 | #include <boost/units/unit.hpp>
|
---|
5 | #include <boost/units/quantity.hpp>
|
---|
6 | #include <boost/units/systems/si.hpp>
|
---|
7 | #include <boost/units/io.hpp>
|
---|
8 |
|
---|
9 | #include <iostream>
|
---|
10 |
|
---|
11 | typedef boost::units::temperature::celsius_base_unit::unit_type celsius_unit;
|
---|
12 | BOOST_UNITS_STATIC_CONSTANT(celsius, celsius_unit);
|
---|
13 | typedef boost::units::quantity<celsius_unit> celsius_quantity;
|
---|
14 |
|
---|
15 | typedef boost::units::absolute<celsius_unit> celsius_absolute_unit;
|
---|
16 | BOOST_UNITS_STATIC_CONSTANT(celsius_absolute, celsius_absolute_unit);
|
---|
17 | typedef boost::units::quantity<celsius_absolute_unit> celsius_absolute_quantity;
|
---|
18 |
|
---|
19 | // template<class Unit, class T>
|
---|
20 | // std::string unit_name(const boost::units::quantity<boost::units::absolute<Unit>, T>&)
|
---|
21 | // {
|
---|
22 | // return name_string(Unit());
|
---|
23 | // }
|
---|
24 |
|
---|
25 | // template<class Unit, class T>
|
---|
26 | // std::string unit_symbol(const boost::units::quantity<boost::units::absolute<Unit>, T>&)
|
---|
27 | // {
|
---|
28 | // return symbol_string(Unit());
|
---|
29 | // }
|
---|
30 |
|
---|
31 | template<class Unit, class T>
|
---|
32 | std::string unit_name(const boost::units::quantity<Unit, T>&)
|
---|
33 | {
|
---|
34 | return name_string(Unit());
|
---|
35 | }
|
---|
36 |
|
---|
37 | template<class Unit, class T>
|
---|
38 | std::string unit_symbol(const boost::units::quantity<Unit, T>&)
|
---|
39 | {
|
---|
40 | return symbol_string(Unit());
|
---|
41 | }
|
---|
42 |
|
---|
43 | int main()
|
---|
44 | {
|
---|
45 | celsius_quantity c = 54.2 * celsius;
|
---|
46 | std::cout << "Name is " << unit_name(c) << '\n';
|
---|
47 | std::cout << "Name is " << unit_symbol(c) << '\n';
|
---|
48 | std::cout << "Value is " << c << '\n';
|
---|
49 |
|
---|
50 | celsius_absolute_quantity ac = 54.2 * celsius_absolute;
|
---|
51 | std::cout << "Name is " << unit_name(ac) << '\n';
|
---|
52 | std::cout << "Name is " << unit_symbol(ac) << '\n';
|
---|
53 | std::cout << "Value is " << ac << '\n';
|
---|
54 | }
|
---|