Skip to content

Commit 4ce1e90

Browse files
committed
refactor: ValuePreservingScaling concepts renamed
1 parent 93f3be4 commit 4ce1e90

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/core/include/mp-units/framework/quantity.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ template<typename T, typename Arg>
7777
concept ValuePreservingAssignment = std::assignable_from<T&, Arg> && is_value_preserving<std::remove_cvref_t<Arg>, T>;
7878

7979
template<auto FromUnit, auto ToUnit, typename Rep>
80-
concept ValuePreservingScaling1Rep =
80+
concept ValuePreservingScaling =
8181
SaneScaling<FromUnit, ToUnit, Rep> &&
8282
(treat_as_floating_point<Rep> || (integral_conversion_factor(FromUnit, ToUnit)) ||
8383
unsatisfied<"Scaling from '{}' to '{}' is not value-preserving for '{}' representation type">(
8484
unit_symbol(FromUnit), unit_symbol(ToUnit), type_name<Rep>()));
8585

8686
template<auto FromUnit, typename FromRep, auto ToUnit, typename ToRep>
87-
concept ValuePreservingScaling2Reps =
87+
concept ValuePreservingConversion =
8888
// TODO consider providing constraints of sudo_cast to check if representation types can be scaled between each other
8989
// CastableReps<FromRep, ToRep, FromUnit, ToUnit> &&
9090
SaneScaling<FromUnit, ToUnit, ToRep> &&
@@ -97,7 +97,7 @@ template<typename QTo, typename QFrom>
9797
concept QuantityConstructibleFrom =
9898
Quantity<QTo> && Quantity<QFrom> && explicitly_convertible(QFrom::quantity_spec, QTo::quantity_spec) &&
9999
ValuePreservingConstruction<typename QTo::rep, typename QFrom::rep> &&
100-
ValuePreservingScaling2Reps<QFrom::unit, typename QFrom::rep, QTo::unit, typename QTo::rep>;
100+
ValuePreservingConversion<QFrom::unit, typename QFrom::rep, QTo::unit, typename QTo::rep>;
101101

102102
template<typename T, typename Rep>
103103
concept ScalarValuePreservingTo = (!Quantity<T>) && Scalar<T> && is_value_preserving<T, Rep>;
@@ -245,7 +245,7 @@ class quantity {
245245
}
246246

247247
template<detail::WeakUnitOf<quantity_spec> ToU>
248-
requires detail::ValuePreservingScaling1Rep<unit, ToU{}, rep>
248+
requires detail::ValuePreservingScaling<unit, ToU{}, rep>
249249
[[nodiscard]] constexpr QuantityOf<quantity_spec> auto in(ToU) const
250250
{
251251
return quantity<detail::make_reference(quantity_spec, ToU{}), Rep>{*this};
@@ -260,7 +260,7 @@ class quantity {
260260

261261
template<RepresentationOf<quantity_spec> ToRep, detail::WeakUnitOf<quantity_spec> ToU>
262262
requires detail::ValuePreservingConstruction<ToRep, rep> &&
263-
detail::ValuePreservingScaling2Reps<unit, rep, ToU{}, ToRep>
263+
detail::ValuePreservingConversion<unit, rep, ToU{}, ToRep>
264264
[[nodiscard]] constexpr QuantityOf<quantity_spec> auto in(ToU) const
265265
{
266266
return quantity<detail::make_reference(quantity_spec, ToU{}), ToRep>{*this};
@@ -312,7 +312,7 @@ class quantity {
312312
#endif
313313

314314
template<detail::WeakUnitOf<quantity_spec> U>
315-
requires detail::ValuePreservingScaling1Rep<unit, U{}, rep>
315+
requires detail::ValuePreservingScaling<unit, U{}, rep>
316316
[[nodiscard]] constexpr rep numerical_value_in(U) const noexcept
317317
{
318318
return in(U{}).numerical_value_is_an_implementation_detail_;
@@ -400,7 +400,7 @@ class quantity {
400400
// compound assignment operators
401401
template<auto R2, typename Rep2>
402402
requires(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &&
403-
detail::ValuePreservingScaling2Reps<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
403+
detail::ValuePreservingConversion<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
404404
{ a += b } -> std::same_as<rep&>;
405405
}
406406
constexpr quantity& operator+=(const quantity<R2, Rep2>& other) &
@@ -414,7 +414,7 @@ class quantity {
414414

415415
template<auto R2, typename Rep2>
416416
requires(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &&
417-
detail::ValuePreservingScaling2Reps<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
417+
detail::ValuePreservingConversion<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
418418
{ a -= b } -> std::same_as<rep&>;
419419
}
420420
constexpr quantity& operator-=(const quantity<R2, Rep2>& other) &
@@ -428,7 +428,7 @@ class quantity {
428428

429429
template<auto R2, typename Rep2>
430430
requires(!treat_as_floating_point<rep>) && (implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &&
431-
detail::ValuePreservingScaling2Reps<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
431+
detail::ValuePreservingConversion<get_unit(R2), Rep2, unit, rep> && requires(rep& a, const Rep2 b) {
432432
{ a %= b } -> std::same_as<rep&>;
433433
}
434434
constexpr quantity& operator%=(const quantity<R2, Rep2>& other) &

src/core/include/mp-units/framework/quantity_point.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ class quantity_point {
329329

330330
// unit conversions
331331
template<detail::WeakUnitOf<quantity_spec> ToU>
332-
requires detail::ValuePreservingScaling1Rep<unit, ToU{}, rep>
332+
requires detail::ValuePreservingScaling<unit, ToU{}, rep>
333333
[[nodiscard]] constexpr QuantityPointOf<quantity_spec> auto in(ToU) const
334334
{
335335
return ::mp_units::quantity_point{quantity_ref_from(point_origin).in(ToU{}), point_origin};
@@ -344,7 +344,7 @@ class quantity_point {
344344

345345
template<RepresentationOf<quantity_spec> ToRep, detail::WeakUnitOf<quantity_spec> ToU>
346346
requires detail::ValuePreservingConstruction<ToRep, rep> &&
347-
detail::ValuePreservingScaling2Reps<unit, rep, ToU{}, ToRep>
347+
detail::ValuePreservingConversion<unit, rep, ToU{}, ToRep>
348348
[[nodiscard]] constexpr QuantityPointOf<quantity_spec> auto in(ToU) const
349349
{
350350
return ::mp_units::quantity_point{quantity_ref_from(point_origin).template in<ToRep>(ToU{}), point_origin};
@@ -438,7 +438,7 @@ class quantity_point {
438438
// compound assignment operators
439439
template<auto R2, typename Rep2>
440440
requires(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &&
441-
detail::ValuePreservingScaling2Reps<get_unit(R2), Rep2, unit, rep> &&
441+
detail::ValuePreservingConversion<get_unit(R2), Rep2, unit, rep> &&
442442
requires(const quantity_type q) { quantity_from_origin_is_an_implementation_detail_ += q; }
443443
constexpr quantity_point& operator+=(const quantity<R2, Rep2>& q) &
444444
{
@@ -448,7 +448,7 @@ class quantity_point {
448448

449449
template<auto R2, typename Rep2>
450450
requires(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &&
451-
detail::ValuePreservingScaling2Reps<get_unit(R2), Rep2, unit, rep> &&
451+
detail::ValuePreservingConversion<get_unit(R2), Rep2, unit, rep> &&
452452
requires(const quantity_type q) { quantity_from_origin_is_an_implementation_detail_ -= q; }
453453
constexpr quantity_point& operator-=(const quantity<R2, Rep2>& q) &
454454
{

0 commit comments

Comments
 (0)