diff options
Diffstat (limited to 'boost/units/dimensionless_type.hpp')
-rw-r--r-- | boost/units/dimensionless_type.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/boost/units/dimensionless_type.hpp b/boost/units/dimensionless_type.hpp new file mode 100644 index 0000000..c8dae9f --- /dev/null +++ b/boost/units/dimensionless_type.hpp @@ -0,0 +1,55 @@ +// 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) 2007-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) + +#ifndef BOOST_UNITS_DIMENSIONLESS_TYPE_HPP +#define BOOST_UNITS_DIMENSIONLESS_TYPE_HPP + +/// +/// \file +/// \brief Dimension lists in which all exponents resolve to zero reduce to @c dimensionless_type. +/// + +#include <boost/mpl/long.hpp> +#include <boost/mpl/deref.hpp> +#include <boost/mpl/arithmetic.hpp> + +#include <boost/units/config.hpp> + +namespace boost { + +namespace units { + +namespace detail { + +struct dimension_list_tag; + +} + +/// Dimension lists in which all exponents resolve to zero reduce to @c dimensionless_type. +struct dimensionless_type +{ + typedef dimensionless_type type; + typedef detail::dimension_list_tag tag; + typedef mpl::long_<0> size; +}; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::dimensionless_type) + +#endif + +#endif // BOOST_UNITS_DIMENSIONLESS_TYPE_HPP |