
Le 10/01/15 15:14, Peter Dimov a écrit :
John Maddock wrote:
This does look to me like a good idea, but to remain coherent, all of http://www.boost.org/doc/libs/1_57_0/libs/math/doc/html/gcd_lcm.html should move, which means:
common_factor.hpp common_factor_rt.hpp common_factor_ct.hpp
Plus docs and tests.
One problem I see here is that the compile-time templates derive from mpl::integral_c, which means a dependency on MPL. I doubt that anyone is actually using anything besides ::value, but in principle, the base class can't be removed without potentially breaking code. So, to be on the safe side, boost/math/common_factor_ct.hpp should probably contain
using boost::integer::static_gcd_type;
template < static_gcd_type Value1, static_gcd_type Value2 > struct boost::math::static_gcd : public mpl::integral_c
::value> { }; And, for reasons well outlined in your other post, the boost/math headers should remain in Math.
+1 for this split of responsibilities. Vicente