summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/units/example/unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/units/example/unit.cpp')
-rw-r--r--src/boost/libs/units/example/unit.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/boost/libs/units/example/unit.cpp b/src/boost/libs/units/example/unit.cpp
new file mode 100644
index 000000000..934d55733
--- /dev/null
+++ b/src/boost/libs/units/example/unit.cpp
@@ -0,0 +1,73 @@
+// 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 <iostream>
+
+#include "test_system.hpp"
+
+#include <boost/units/pow.hpp>
+
+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<static_rational<3,2> >(L)
+ << std::endl
+ << "2vM = " << root<2>(M) << std::endl
+ << "(3/2)vM = " << root<static_rational<3,2> >(M)
+ << std::endl;
+
+ return 0;
+}