From 7bcc5c7b0b0a7cf931d6cd5efdb551e4df866ec3 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 28 May 2019 15:01:50 +0200 Subject: [PATCH] common_ratio refactored --- src/include/units/bits/ratio_tools.h | 19 +++++++++++-------- src/include/units/quantity.h | 2 +- test/unit_test/test_tools.cpp | 8 ++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/include/units/bits/ratio_tools.h b/src/include/units/bits/ratio_tools.h index 2e8bcb90..4c906e7c 100644 --- a/src/include/units/bits/ratio_tools.h +++ b/src/include/units/bits/ratio_tools.h @@ -69,16 +69,19 @@ namespace units { concept bool Ratio = detail::is_ratio; // common_ratio + namespace detail { - // todo: simplified - template - struct common_ratio { - using gcd_num = static_gcd; - using gcd_den = static_gcd; - using type = std::ratio; - }; + // todo: simplified + template + struct common_ratio_impl { + using gcd_num = static_gcd; + using gcd_den = static_gcd; + using type = std::ratio; + }; + + } template - using common_ratio_t = common_ratio::type; + using common_ratio = detail::common_ratio_impl::type; } // namespace units diff --git a/src/include/units/quantity.h b/src/include/units/quantity.h index 82029294..e91d65dd 100644 --- a/src/include/units/quantity.h +++ b/src/include/units/quantity.h @@ -67,7 +67,7 @@ namespace units { template struct common_quantity, quantity, Rep> { - using type = quantity>>, Rep>; + using type = quantity>>, Rep>; }; template> diff --git a/test/unit_test/test_tools.cpp b/test/unit_test/test_tools.cpp index d65b0270..1f3fec6c 100644 --- a/test/unit_test/test_tools.cpp +++ b/test/unit_test/test_tools.cpp @@ -40,9 +40,9 @@ namespace { // common_ratio - static_assert(std::is_same_v, std::kilo>, std::ratio<1>>); - static_assert(std::is_same_v>, std::ratio<1>>); - static_assert(std::is_same_v, std::milli>, std::milli>); - static_assert(std::is_same_v>, std::milli>); + static_assert(std::is_same_v, std::kilo>, std::ratio<1>>); + static_assert(std::is_same_v>, std::ratio<1>>); + static_assert(std::is_same_v, std::milli>, std::milli>); + static_assert(std::is_same_v>, std::milli>); } // namespace \ No newline at end of file