| 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 | }
|
|---|