From 98c15a235653f6bd21fcd9816fe4fc7a9c9f5015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johel=20Ernesto=20Guerrero=20Pe=C3=B1a?= Date: Mon, 18 Jan 2021 15:55:55 -0400 Subject: [PATCH] fix: quantity_cast between different, equivalent dimensions --- src/include/units/quantity_cast.h | 2 +- test/unit_test/static/quantity_test.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/include/units/quantity_cast.h b/src/include/units/quantity_cast.h index d98eb0a8..582cfb38 100644 --- a/src/include/units/quantity_cast.h +++ b/src/include/units/quantity_cast.h @@ -145,7 +145,7 @@ template requires equivalent [[nodiscard]] constexpr auto quantity_cast(const quantity& q) { - return quantity_cast, Rep>>(q); + return quantity_cast, Rep>>(q); } /** diff --git a/test/unit_test/static/quantity_test.cpp b/test/unit_test/static/quantity_test.cpp index bb2820c5..be52bc9a 100644 --- a/test/unit_test/static/quantity_test.cpp +++ b/test/unit_test/static/quantity_test.cpp @@ -37,7 +37,11 @@ namespace { using namespace units; -using namespace units::physical::si; +namespace si = physical::si; +using namespace si; +using namespace unit_constants; + +constexpr auto cgs_cm = cgs::unit_constants::cm; ////////////////////////////// @@ -685,6 +689,8 @@ static_assert(quantity_cast(2000_q_m).count() == 2); static_assert(quantity_cast(1.23_q_m).count() == 1); static_assert(quantity_cast(2000.0_q_m / 3600.0_q_s).count() == 2); +static_assert(quantity_cast(1 * cgs_cm) == 1 * cm); + static_assert(is_same_v(2_q_dm3)), volume>); static_assert(!is_same_v(2_q_dm3)), volume>);