[prev in list] [next in list] [prev in thread] [next in thread]
List: boost-commit
Subject: [Boost-commit] svn:boost r39080 - sandbox/units/boost/units
From: steven () providere-consulting ! com
Date: 2007-08-31 2:00:39
Message-ID: 20070831020039.9C7B32F8101 () wowbagger ! osl ! iu ! edu
[Download RAW message or body]
Author: steven_watanabe
Date: 2007-08-30 22:00:38 EDT (Thu, 30 Aug 2007)
New Revision: 39080
URL: http://svn.boost.org/trac/boost/changeset/39080
Log:
Convinced doxygen that the two overloads of conversion_factor are distinct
Text files modified:
sandbox/units/boost/units/conversion.hpp | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
Modified: sandbox/units/boost/units/conversion.hpp
==============================================================================
--- sandbox/units/boost/units/conversion.hpp (original)
+++ sandbox/units/boost/units/conversion.hpp 2007-08-30 22:00:38 EDT (Thu, 30 Aug 2007)
@@ -385,7 +385,7 @@
/// Defines the conversion factor from a base unit to any other base
/// unit with the same dimensions. Must appear at global scope.
-/// The reverse need not be defined. Does not work with scaling. Sigh.
+/// The reverse need not be defined. Neither base unit may be scaled.
#define BOOST_UNITS_DEFINE_BASE_CONVERSION_TEMPLATE(Params, Source, Destination, type_, value_) \
namespace boost { \
namespace units { \
@@ -433,7 +433,10 @@
/// with the correct dimensions. Must appear at global scope.
/// If the destination unit is a unit that contains only one
/// base unit which is raised to the first power (e.g. feet->meters)
-/// the reverse need not be defined. Does not work with scaling. Sigh.
+/// the reverse need not be defined. Neither unit may be scaled.
+/// The destination must be a heterogeneous unit. These requirements
+/// are rather difficult to check. If they are not met the specialization
+/// will probably vanish silently.
#define BOOST_UNITS_DEFINE_CONVERSION_TEMPLATE(Params, Source, Destination, type_, value_) \
namespace boost { \
namespace units { \
@@ -467,7 +470,8 @@
/// no direct conversion is available.
/// Params is a PP Sequence of template arguments.
/// Source is a base unit. Dest is any unit with the
-/// same dimensions.
+/// same dimensions. The source must not be a scaled
+/// base unit.
#define BOOST_UNITS_DEFAULT_CONVERSION_TEMPLATE(Params, Source, Dest) \
namespace boost { \
namespace units { \
@@ -709,6 +713,8 @@
return(detail::conversion_factor_helper<FromUnit, ToUnit>::value());
}
+#ifndef BOOST_UNITS_DOXYGEN
+
/// Find the conversion factor between two units with an explicit return type.
/// e.g. conversion_factor<int>(newton, dyne) returns 100000
template<class Y, class FromUnit,class ToUnit>
@@ -719,6 +725,20 @@
return(static_cast<Y>(detail::conversion_factor_helper<FromUnit, ToUnit>::value()));
}
+#else
+
+/// Find the conversion factor between two units with an explicit return type.
+/// e.g. conversion_factor<int>(newton, dyne) returns 100000
+template<class Y, class FromUnit,class ToUnit>
+inline
+Y
+conversion_factor<Y>(const FromUnit&,const ToUnit&)
+{
+ return(static_cast<Y>(detail::conversion_factor_helper<FromUnit, ToUnit>::value()));
+}
+
+#endif
+
} // namespace units
} // namespace boost
_______________________________________________
Boost-commit mailing list
Boost-commit@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-commit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic