1 // Boost.Units - A C++ library for zero-overhead dimensional analysis and
2 // unit/quantity manipulation and conversion
3 //
4 // Copyright (C) 2003-2008 Matthias Christian Schabel
5 // Copyright (C) 2008 Steven Watanabe
6 //
7 // Distributed under the Boost Software License, Version 1.0. (See
8 // accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
10 
11 #ifndef BOOST_UNITS_UNITS_FWD_HPP
12 #define BOOST_UNITS_UNITS_FWD_HPP
13 
14 ///
15 /// \file
16 /// \brief Forward declarations of library components.
17 /// \details Forward declarations of units library - dimensions, systems, quantity and string components.
18 ///
19 
20 #ifndef BOOST_UNITS_DOXYGEN
21 
22 #include <string>
23 
24 namespace boost {
25 
26 namespace units {
27 
28 template<typename T,typename V> struct dim;
29 template<typename T> struct is_dim;
30 
31 struct dimensionless_type;
32 template<class Item,class Next> struct list;
33 template<typename Seq> struct make_dimension_list;
34 
35 template<class T> struct is_dimensionless;
36 template<class S1,class S2> struct is_implicitly_convertible;
37 template<class T> struct get_dimension;
38 template<class T> struct get_system;
39 
40 template<class Y> class absolute;
41 
42 template<class Dim,class System, class Enable=void> class unit;
43 
44 template<long Base, class Exponent> struct scale;
45 
46 template<class BaseUnitTag> struct base_unit_info;
47 template<class System> struct dimensionless_unit;
48 template<class T> struct is_unit;
49 template<class T,class Dim> struct is_unit_of_dimension;
50 template<class T,class System> struct is_unit_of_system;
51 
52 template<class Unit,class Y = double> class quantity;
53 
54 template<class System,class Y> struct dimensionless_quantity;
55 template<class T> struct is_quantity;
56 template<class T,class Dim> struct is_quantity_of_dimension;
57 template<class T,class System> struct is_quantity_of_system;
58 
59 template<class From,class To> struct conversion_helper;
60 
61 template<class T> std::string to_string(const T&);
62 template<class T> std::string name_string(const T&);
63 template<class T> std::string symbol_string(const T&);
64 template<class T> std::string raw_string(const T&);
65 template<class T> std::string typename_string(const T&);
66 
67 } // namespace units
68 
69 } // namespace boost
70 
71 #endif
72 
73 #endif // BOOST_UNITS_UNITS_FWD_HPP
74