123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // Boost.Units - A C++ library for zero-overhead dimensional analysis and
- // unit/quantity manipulation and conversion
- //
- // Copyright (C) 2003-2008 Matthias Christian Schabel
- // Copyright (C) 2008 Steven Watanabe
- //
- // Distributed under the Boost Software License, Version 1.0. (See
- // accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- /**
- \file
-
- \brief heterogeneous_unit.cpp
- \details
- Test heterogeneous units and quantities.
- Output:
- @verbatim
- //[heterogeneous_unit_output_1
- 1.5 m
- 1 g
- 1.5 m g
- 1.5 m g^-1
- 1 N
- 1 kg s^-2
- 1 cm kg s^-2
- 1 cm m^-1 kg s^-2
- //]
- //[heterogeneous_unit_output_2
- 1.5 cm m
- 0.015 m^2
- //]
- @endverbatim
- **/
- #define MCS_USE_DEMANGLING
- //#define MCS_USE_BOOST_REGEX_DEMANGLING
- #include <iostream>
- #include <boost/units/io.hpp>
- #include <boost/units/pow.hpp>
- #include <boost/units/detail/utility.hpp>
- #include <boost/units/systems/cgs.hpp>
- #include <boost/units/systems/si.hpp>
- #include <boost/units/systems/si/io.hpp>
- using namespace boost::units;
- int main()
- {
- //[heterogeneous_unit_snippet_1
- quantity<si::length> L(1.5*si::meter);
- quantity<cgs::mass> M(1.0*cgs::gram);
-
- std::cout << L << std::endl
- << M << std::endl
- << L*M << std::endl
- << L/M << std::endl
- << std::endl;
-
- std::cout << 1.0*si::meter*si::kilogram/pow<2>(si::second) << std::endl
- << 1.0*si::meter*si::kilogram/pow<2>(si::second)/si::meter
- << std::endl << std::endl;
- std::cout << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second) << std::endl
- << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second)/si::meter
- << std::endl << std::endl;
- //]
-
- //[heterogeneous_unit_snippet_2
- quantity<si::area> A(1.5*si::meter*cgs::centimeter);
-
- std::cout << 1.5*si::meter*cgs::centimeter << std::endl
- << A << std::endl
- << std::endl;
- //]
- return 0;
- }
|