diff --git a/example/measurement.cpp b/example/measurement.cpp index 5e1e5419..2aca3077 100644 --- a/example/measurement.cpp +++ b/example/measurement.cpp @@ -151,7 +151,7 @@ void example() const auto acceleration = isq::acceleration(measurement{9.8, 0.1} * m / s2); const auto time = measurement{1.2, 0.1} * s; - const MP_UNITS_CONSTRAINED_AUTO_WORKAROUND(QuantityOf) auto velocity = acceleration * time; + const QuantityOf<(isq::velocity)> auto velocity = acceleration * time; std::cout << acceleration << " * " << time << " = " << velocity << " = " << velocity.in(km / h) << '\n'; const auto length = measurement{123., 1.} * m; diff --git a/src/core/include/mp-units/bits/hacks.h b/src/core/include/mp-units/bits/hacks.h index 80b597ac..6b95c371 100644 --- a/src/core/include/mp-units/bits/hacks.h +++ b/src/core/include/mp-units/bits/hacks.h @@ -76,7 +76,6 @@ #if !defined MP_UNITS_HOSTED && defined __STDC_HOSTED__ #define MP_UNITS_HOSTED __STDC_HOSTED__ #endif - #if MP_UNITS_COMP_GCC #define MP_UNITS_REMOVE_CONST(expr) std::remove_const_t @@ -112,7 +111,6 @@ inline constexpr from_range_t from_range{}; #if MP_UNITS_COMP_MSVC -#define MP_UNITS_CONSTRAINED_AUTO_WORKAROUND(X) #define MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(X) #define MP_UNITS_EXPRESSION_WORKAROUND(x) (x) #define MP_UNITS_IS_VALUE_WORKAROUND(x) (x) @@ -121,8 +119,7 @@ inline constexpr from_range_t from_range{}; #else -#define MP_UNITS_CONSTRAINED_AUTO_WORKAROUND(X) X -#define MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(X) X' +#define MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(X) X #define MP_UNITS_EXPRESSION_WORKAROUND(x) x #define MP_UNITS_IS_VALUE_WORKAROUND(x) x #define MP_UNITS_IS_CONST_EXPR_WORKAROUND(x) x diff --git a/src/core/include/mp-units/framework/unit.h b/src/core/include/mp-units/framework/unit.h index d5e61c5f..f49dcd9b 100644 --- a/src/core/include/mp-units/framework/unit.h +++ b/src/core/include/mp-units/framework/unit.h @@ -220,7 +220,7 @@ struct propagate_point_origin { template struct scaled_unit_impl : detail::unit_interface, detail::propagate_point_origin { using _base_type_ = scaled_unit_impl; // exposition only - static constexpr MP_UNITS_CONSTRAINED_AUTO_WORKAROUND(Magnitude) auto mag = M; + static constexpr Magnitude auto mag = M; static constexpr U reference_unit{}; };