#ifndef BOOST_RATIO_DETAIL_GCD_LCM_HPP #define BOOST_RATIO_DETAIL_GCD_LCM_HPP // Copyright 2023 Peter Dimov // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include namespace boost { namespace ratio_detail { template struct abs_: std::integral_constant { }; template<> struct abs_: std::integral_constant { }; template struct gcd_: public gcd_ { }; template struct gcd_: std::integral_constant { }; template struct lcm_: std::integral_constant::value) * B> { }; template<> struct lcm_<0, 0>: std::integral_constant { }; // template struct gcd: abs_< gcd_::value > { }; template struct lcm: abs_< lcm_::value > { }; } // namespace ratio_detail } // namespace boost #endif // BOOST_RATIO_DETAIL_GCD_LCM_HPP