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