Boost.Ratio/Chrono: Update reference structure

[SVN r68189]
This commit is contained in:
Vicente J. Botet Escriba 2011-01-16 16:21:41 +00:00
parent 27841a060c
commit 7cd1f04f51
3 changed files with 431 additions and 56 deletions

View File

@ -71,3 +71,5 @@ boostbook standalone
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/regex/doc/html
;
install pdf-install : standalone : <location>. <install-type>PDF ;

Binary file not shown.

View File

@ -32,56 +32,60 @@
[def __hours `hours`]
[/===============================================]
[def __ratio [link boost_ratio.reference.ratio_hpp.ratio `ratio`]]
[def __ratio [link boost_ratio.reference.std.ratio_hpp.ratio `ratio`]]
[template ratio_conf[link_text] [link boost_ratio.reference.ratio_hpp.conf [link_text]]]
[template ratio_conf[link_text] [link boost_ratio.reference.std.ratio_hpp.conf [link_text]]]
[def __BOOST_RATIO_USES_STATIC_ASSERT [link boost_ratio.reference.ratio_hpp.conf `BOOST_RATIO_USES_STATIC_ASSERT`]]
[def __BOOST_RATIO_USES_MPL_ASSERT [link boost_ratio.reference.ratio_hpp.conf `BOOST_RATIO_USES_MPL_ASSERT`]]
[def __BOOST_RATIO_USES_ARRAY_ASSERT [link boost_ratio.reference.ratio_hpp.conf `BOOST_RATIO_USES_ARRAY_ASSERT`]]
[def __BOOST_RATIO_USES_STATIC_ASSERT [link boost_ratio.reference.std.ratio_hpp.conf `BOOST_RATIO_USES_STATIC_ASSERT`]]
[def __BOOST_RATIO_USES_MPL_ASSERT [link boost_ratio.reference.std.ratio_hpp.conf `BOOST_RATIO_USES_MPL_ASSERT`]]
[def __BOOST_RATIO_USES_ARRAY_ASSERT [link boost_ratio.reference.std.ratio_hpp.conf `BOOST_RATIO_USES_ARRAY_ASSERT`]]
[template ratio_arithmetic[link_text] [link boost_ratio.reference.ratio_hpp.ratio_arithmetic [link_text]]]
[def __ratio_add [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_add`]]
[def __ratio_subtract [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_subtract`]]
[def __ratio_multiply [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_multiply`]]
[def __ratio_divide [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_divide`]]
[def __ratio_negate [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_negate`]]
[def __ratio_abs [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_abs`]]
[def __ratio_sign [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_sign`]]
[def __ratio_gcd [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_gcd`]]
[def __ratio_lcm [link boost_ratio.reference.ratio_hpp.ratio_arithmetic `ratio_lcm`]]
[def __BOOST_RATIO_EXTENSIONS [link boost_ratio.reference.std.ratio_hpp.extensions `BOOST_RATIO_EXTENSIONS`]]
[template ratio_comparison[link_text] [link boost_ratio.reference.ratio_hpp.ratio_comparison [link_text]]]
[def __ratio_equal [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_equal`]]
[def __ratio_not_equal [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_not_equal`]]
[def __ratio_less [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_less`]]
[def __ratio_less_equal [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_less_equal`]]
[def __ratio_greater [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_greater`]]
[def __ratio_greater_equal [link boost_ratio.reference.ratio_hpp.ratio_comparison `ratio_greater_equal`]]
[template ratio_arithmetic[link_text] [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic [link_text]]]
[def __ratio_add [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_add`]]
[def __ratio_subtract [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_subtract`]]
[def __ratio_multiply [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_multiply`]]
[def __ratio_divide [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_divide`]]
[def __ratio_negate [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_negate`]]
[def __ratio_abs [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_abs`]]
[def __ratio_sign [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_sign`]]
[def __ratio_gcd [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_gcd`]]
[def __ratio_lcm [link boost_ratio.reference.std.ratio_hpp.ratio_arithmetic `ratio_lcm`]]
[template ratio_si_typedefs[link_text] [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs [link_text]]]
[def __atto [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `atto`]]
[def __femto [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `femto`]]
[def __pico [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `pico`]]
[def __nano [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `nano`]]
[def __micro [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `micro`]]
[def __milli [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `milli`]]
[def __centi [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `centi`]]
[def __deci [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `deci`]]
[def __deca [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `deca`]]
[def __hecto [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `hecto`]]
[def __kilo [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `kilo`]]
[def __mega [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `mega`]]
[def __giga [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `giga`]]
[def __tera [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `tera`]]
[def __peta [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `peta`]]
[def __exa [link boost_ratio.reference.ratio_hpp.ratio_si_typedefs `exa`]]
[template ratio_comparison[link_text] [link boost_ratio.reference.std.ratio_hpp.ratio_comparison [link_text]]]
[def __ratio_equal [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_equal`]]
[def __ratio_not_equal [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_not_equal`]]
[def __ratio_less [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_less`]]
[def __ratio_less_equal [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_less_equal`]]
[def __ratio_greater [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_greater`]]
[def __ratio_greater_equal [link boost_ratio.reference.std.ratio_hpp.ratio_comparison `ratio_greater_equal`]]
[template ratio_si_typedefs[link_text] [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs [link_text]]]
[def __atto [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `atto`]]
[def __femto [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `femto`]]
[def __pico [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `pico`]]
[def __nano [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `nano`]]
[def __micro [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `micro`]]
[def __milli [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `milli`]]
[def __centi [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `centi`]]
[def __deci [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `deci`]]
[def __deca [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `deca`]]
[def __hecto [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `hecto`]]
[def __kilo [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `kilo`]]
[def __mega [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `mega`]]
[def __giga [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `giga`]]
[def __tera [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `tera`]]
[def __peta [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `peta`]]
[def __exa [link boost_ratio.reference.std.ratio_hpp.ratio_si_typedefs `exa`]]
[template mu[]'''&#x3BC;'''] [/ µ Greek small letter mu]
[def __Rational_Constant [link boost_ratio.reference.rational_constant Rational Constant]]
[def __Rational_Constant [link boost_ratio.reference.mpl.rational_constant Rational Constant]]
[/warning Ratio is not part of the Boost libraries.]
@ -621,6 +625,10 @@ Finally, we can exercise what we've created, even using custom time durations (`
[section:reference Reference ]
[/=================]
[/=================================================]
[section:std C++0x Recommendation]
[/=================================================]
[/=================================================]
[section:ratio_ratio_hpp Header `<boost/ratio.hpp>`]
[/=================================================]
@ -976,19 +984,29 @@ The [@http://en.wikipedia.org/wiki/SI_prefix#List_of_SI_prefixes International S
[endsect]
[section:limitations Limitations and Extensions]
[section:limitations Limitations]
The following are limitations of Boost.Ratio relative to the specification in the C++0x draft standard:
* Four of the SI units typedefs -- `yocto`, `zepto`, `zetta`, and `yotta` -- are to be conditionally supported, if the range of `intmax_t` allows, but are not supported by __Boost_Ratio.
* Ratio values should be of type static `constexpr intmax_t` (see [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3135.html#1122 Ratio values should be constexpr]), but for compiler not supporting `constexpr` today, __Boost_Ratio uses `static const intmax_t` instead.
* Rational arithmetic should use template aliases (see [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3134.html#921 Rational Arithmetic should use template aliases]), but those are not available in C++03, so inheritance is used instead.
The current implementation extends the requirements of the C++0x draft standard by making the copy constructor and copy assignment operator have the same normalized form (see [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3133.html#1281 copy constructor and assignment between ratios having the same normalized form]).
[endsect]
[section:extensions Extensions]
When __BOOST_RATIO_EXTENSIONS is defined __Boost_Ratio provides the following extensions:
* Extends the requirements of the C++0x draft standard by making the copy constructor and copy assignment operator have the same normalized form (see [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3133.html#1281 copy constructor and assignment between ratios having the same normalized form]).
* More C++ standard like metafunctions applied to ratio types, like __static_abs or __static_negate.
* An __Boost_Mpl rational constant concept and the associated __Boost_Mpl arithmetic and comparison specializations including __numeric_cast, __plus, __equal_to between others.
[endsect]
[endsect]
[endsect]
[section:io Ratio I/O]
[/=======================================================]
[section:ratio_io_hpp Header `<boost/ratio/ratio_io.hpp>`]
@ -1006,6 +1024,8 @@ This header provides `ratio_string<>` which can generate a textual representatio
}
[endsect]
[endsect]
[section:mpl Rational Constant]
[/===========================================]
[section:rational_constant Rational Constant Concept]
@ -1052,10 +1072,10 @@ In the following table and subsequent specifications, r is a model of __Rational
[endsect]
[/===========================================]
[section:rational_constant_hpp Header `<boost/ratio/rational_constant.hpp>`]
[section:rational_constant_hpp Header `<boost/ratio/mpl/rational_constant.hpp>`]
[/===========================================]
This header includes all the rational constant related header files
This header includes all the rational constant related header files
#include <boost/ratio/mpl/rational_c_tag.hpp>
#include <boost/ratio/mpl/numeric_cast.hpp>
@ -1103,7 +1123,7 @@ A Integral Constant is seen as a ratio with numerator the Integral Constant valu
};
};
[endsect]
[endsect] [/section:numeric_cast `mpl::numeric_cast<>` Specialization]
[endsect] [/section:mpl_numeric_cast_hpp Header `<boost/ratio/mpl/numeric_cast.hpp>`]
@ -1132,7 +1152,6 @@ This header includes all the rational constant arithmetic MPL specializations.
namespace boost {
namespace mpl {
template<>
struct plus_impl< rational_c_tag,rational_c_tag >;
}
@ -1140,19 +1159,236 @@ This header includes all the rational constant arithmetic MPL specializations.
[section:plus_impl `mpl::plus_impl<>` Specialization]
The specialization relays on the __ratio_add template class.
template<>
struct plus_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_add<R1, R2>
: __ratio_add<R1, R2>
{
};
};
[endsect]
[endsect] [/section:plus_impl `mpl::plus_impl<>` Specialization]
[endsect] [/section:mpl_plus_hpp Header `<boost/ratio/mpl/plus.hpp>`]
[/===========================================]
[section:mpl_minus_hpp Header `<boost/ratio/mpl/minus.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct minus_impl< rational_c_tag,rational_c_tag >;
}
}
[section:minus_impl `mpl::minus_impl<>` Specialization]
The specialization relays on the __ratio_subtract template class.
template<>
struct plus_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_subtract<R1, R2>
{
};
};
[endsect] [/section:minus_impl `mpl::minus_impl<>` Specialization]
[endsect] [/section:mpl_minus_hpp Header `<boost/ratio/mpl/minus.hpp>`]
[/===========================================]
[section:mpl_times_hpp Header `<boost/ratio/mpl/times.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct times_impl< rational_c_tag,rational_c_tag >;
}
}
[section:times_impl `mpl::times_impl<>` Specialization]
The specialization relays on the __ratio_multiply template class.
template<>
struct times_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_multiply<R1, R2>
{
};
};
[endsect] [/section:times_impl `mpl::times_impl<>` Specialization]
[endsect] [/section:mpl_times_hpp Header `<boost/ratio/mpl/times.hpp>`]
[/===========================================]
[section:mpl_divides_hpp Header `<boost/ratio/mpl/divides.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct divides_impl< rational_c_tag,rational_c_tag >;
}
}
[section:divides_impl `mpl::divides_impl<>` Specialization]
The specialization relays on the __ratio_divide template class.
template<>
struct divides_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_divide<R1, R2>
{
};
};
[endsect] [/section:divides_impl `mpl::divides_impl<>` Specialization]
[endsect] [/section:mpl_divides_hpp Header `<boost/ratio/mpl/divides.hpp>`]
[/===========================================]
[section:mpl_gcd_hpp Header `<boost/ratio/mpl/gcd.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct gcd_impl< rational_c_tag,rational_c_tag >;
}
}
[section:gcd_impl `mpl::gcd_impl<>` Specialization]
The specialization relays on the __ratio_gcd template class.
template<>
struct gcd_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_gcd<R1, R2>
{
};
};
[endsect] [/section:gcd_impl `mpl::gcd_impl<>` Specialization]
[endsect] [/section:mpl_gcd_hpp Header `<boost/ratio/mpl/gcd.hpp>`]
[/===========================================]
[section:mpl_lcm_hpp Header `<boost/ratio/mpl/lcm.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct lcm_impl< rational_c_tag,rational_c_tag >;
}
}
[section:lcm_impl `mpl::lcm_impl<>` Specialization]
The specialization relays on the __ratio_lcm template class.
template<>
struct lcm_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_lcm<R1, R2>
{
};
};
[endsect] [/section:lcm_impl `mpl::lcm_impl<>` Specialization]
[endsect] [/section:mpl_lcm_hpp Header `<boost/ratio/mpl/lcm.hpp>`]
[/===========================================]
[section:mpl_negate_hpp Header `<boost/ratio/mpl/negate.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct negate_impl< rational_c_tag >;
}
}
[section:negate_impl `mpl::negate_impl<>` Specialization]
The specialization relays on the __ratio_negate template class.
template<>
struct negate_impl< rational_c_tag >
{
template< typename R > struct apply
: __ratio_negate<R>
{
};
};
[endsect] [/section:negate_impl `mpl::negate_impl<>` Specialization]
[endsect] [/section:mpl_negate_hpp Header `<boost/ratio/mpl/negate.hpp>`]
[/===========================================]
[section:mpl_abs_hpp Header `<boost/ratio/mpl/abs.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct abs_impl< rational_c_tag >;
}
}
[section:abs_impl `mpl::abs_impl<>` Specialization]
The specialization relays on the __ratio_abs template class.
template<>
struct abs_impl< rational_c_tag >
{
template< typename R > struct apply
: __ratio_abs<R>
{
};
};
[endsect] [/section:abs_impl `mpl::abs_impl<>` Specialization]
[endsect] [/section:mpl_abs_hpp Header `<boost/ratio/mpl/abs.hpp>`]
[/===========================================]
[section:mpl_sign_hpp Header `<boost/ratio/mpl/sign.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct sign_impl< rational_c_tag >;
}
}
[section:sign_impl `mpl::sign_impl<>` Specialization]
The specialization relays on the __ratio_sign template class.
template<>
struct sign_impl< rational_c_tag >
{
template< typename R > struct apply
: __ratio_sign<R>
{
};
};
[endsect] [/section:sign_impl `mpl::sign_impl<>` Specialization]
[endsect] [/section:mpl_sign_hpp Header `<boost/ratio/mpl/sign.hpp>`]
[/===========================================]
[section:mpl_comparison_hpp Header `<boost/ratio/mpl/comparison.hpp>`]
[/===========================================]
@ -1175,28 +1411,165 @@ This header includes all the rational constant comparison MPL specializations.
namespace boost {
namespace mpl {
template<>
struct equal_to_impl< rational_c_tag,rational_c_tag >;
template<>
struct equal_to_impl< rational_c_tag,rational_c_tag >;
}
}
[section:equal_to `mpl::equal_to_impl<>` Specialization]
The specialization relays on the __ratio_equal template class.
template<>
struct equal_to_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_equal<R1, R2>
: __ratio_equal<R1, R2>
{
};
};
[endsect]
[endsect] [/section:equal_to `mpl::equal_to_impl<>` Specialization]
[endsect] [/section:mpl_equal_to_hpp Header `<boost/ratio/mpl/equal_to.hpp>`]
[/===========================================]
[section:mpl_not_equal_to_hpp Header `<boost/ratio/mpl/not_equal_to.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct not_equal_to_impl< rational_c_tag,rational_c_tag >;
}
}
[section:not_equal_to `mpl::not_equal_to_impl<>` Specialization]
The specialization relays on the __ratio_not_equal template class.
template<>
struct not_equal_to_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: __ratio_not_equal<R1, R2>
{
};
};
[endsect] [/section:not_equal_to `mpl::not_equal_to_impl<>` Specialization]
[endsect] [/section:mpl_not_equal_to_hpp Header `<boost/ratio/mpl/not_equal_to.hpp>`]
[/===========================================]
[section:mpl_less_hpp Header `<boost/ratio/mpl/less.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct less_impl< rational_c_tag,rational_c_tag >;
}
}
[section:less `mpl::less_impl<>` Specialization]
The specialization relays on the __ratio_less template class.
template<>
struct less_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_less<R1, R2>
{
};
};
[endsect] [/section:less `mpl::less_impl<>` Specialization]
[endsect] [/section:mpl_less_hpp Header `<boost/ratio/mpl/less.hpp>`]
[/===========================================]
[section:mpl_less_equal_hpp Header `<boost/ratio/mpl/less_equal.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct less_equal_impl< rational_c_tag,rational_c_tag >;
}
}
[section:less_equal `mpl::less_equal_impl<>` Specialization]
The specialization relays on the __ratio_less_equal template class.
template<>
struct less_equal_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_less_equal<R1, R2>
{
};
};
[endsect] [/section:less_equal `mpl::less_equal_impl<>` Specialization]
[endsect] [/section:mpl_less_equal_hpp Header `<boost/ratio/mpl/less_equal.hpp>`]
[/===========================================]
[section:mpl_greater_hpp Header `<boost/ratio/mpl/greater.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct greater_impl< rational_c_tag,rational_c_tag >;
}
}
[section:greater `mpl::greater_impl<>` Specialization]
The specialization relays on the __ratio_greater template class.
template<>
struct greater_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_greater<R1, R2>
{
};
};
[endsect] [/section:greater `mpl::greater_impl<>` Specialization]
[endsect] [/section:mpl_greater_hpp Header `<boost/ratio/mpl/greater.hpp>`]
[/===========================================]
[section:mpl_greater_equal_hpp Header `<boost/ratio/mpl/greater_equal.hpp>`]
[/===========================================]
namespace boost {
namespace mpl {
template<>
struct greater_equal_impl< rational_c_tag,rational_c_tag >;
}
}
[section:greater_equal `mpl::greater_equal_impl<>` Specialization]
The specialization relays on the __ratio_greater_equal template class.
template<>
struct greater_equal_impl< rational_c_tag,rational_c_tag >
{
template< typename R1, typename R2 > struct apply
: ratio_greater_equal<R1, R2>
{
};
};
[endsect] [/section:greater_equal `mpl::greater_equal_impl<>` Specialization]
[endsect] [/section:mpl_greater_equal_hpp Header `<boost/ratio/mpl/greater_equal.hpp>`]
[endsect]
[endsect]