// 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 unit.cpp \details Test unit algebra. Output: @verbatim //[unit_output L = m L+L = m L-L = m L/L = dimensionless meter*meter = m^2 M*(L/T)*(L/T) = m^2 kg s^-2 M*(L/T)^2 = m^2 kg s^-2 L^3 = m^3 L^(3/2) = m^(3/2) 2vM = kg^(1/2) (3/2)vM = kg^(2/3) //] @endverbatim **/ #include #include "test_system.hpp" #include int main() { using namespace boost::units; using namespace boost::units::test; //[unit_snippet_1 const length L; const mass M; // needs to be namespace-qualified because of global time definition const boost::units::test::time T; const energy E; //] std::cout << "L = " << L << std::endl << "L+L = " << L+L << std::endl << "L-L = " << L-L << std::endl << "L/L = " << L/L << std::endl << "meter*meter = " << meter*meter << std::endl << "M*(L/T)*(L/T) = " << M*(L/T)*(L/T) << std::endl << "M*(L/T)^2 = " << M*pow<2>(L/T) << std::endl << "L^3 = " << pow<3>(L) << std::endl << "L^(3/2) = " << pow >(L) << std::endl << "2vM = " << root<2>(M) << std::endl << "(3/2)vM = " << root >(M) << std::endl; return 0; }