File tree 2 files changed +17
-6
lines changed
2 files changed +17
-6
lines changed Original file line number Diff line number Diff line change @@ -410,18 +410,21 @@ constexpr Q operator-(Q lhs, R rhs)
410
410
}
411
411
412
412
template <isQuantity Q>
413
- constexpr Q operator *(Q quantity, double multiple) {
414
- return Q (quantity.internal () * multiple);
413
+ requires (!std::is_same_v<Q, Number>)
414
+ constexpr Q operator*(Q quantity, Number multiple) {
415
+ return Q (quantity.internal () * multiple.internal ());
415
416
}
416
417
417
418
template <isQuantity Q>
418
- constexpr Q operator *(double multiple, Q quantity) {
419
- return Q (quantity.internal () * multiple);
419
+ requires (!std::is_same_v<Q, Number>)
420
+ constexpr Q operator*(Number multiple, Q quantity) {
421
+ return Q (quantity.internal () * multiple.internal ());
420
422
}
421
423
422
424
template <isQuantity Q>
423
- constexpr Q operator /(Q quantity, double divisor) {
424
- return Q (quantity.internal () / divisor);
425
+ requires (!std::is_same_v<Q, Number>)
426
+ constexpr Q operator/(Q quantity, Number divisor) {
427
+ return Q (quantity.internal () / divisor.internal ());
425
428
}
426
429
427
430
template <isQuantity Q1, isQuantity Q2>
Original file line number Diff line number Diff line change @@ -28,6 +28,14 @@ void initialize() {
28
28
ab *= a;
29
29
}
30
30
31
+ constexpr void numberOperatorTests () {
32
+ Number a = Number (2 ) * 2 ;
33
+ Number b = 2 * Number (2 );
34
+ Number c = 1 / Number (2 );
35
+ Number d = Number (2 ) / 2 ;
36
+ auto e = Number (1 ) / 2_in;
37
+ }
38
+
31
39
constexpr void miscTests () {
32
40
units::AccelerationPose a (1_mps2, 2_mps2);
33
41
Number num = Number (1.0 );
You can’t perform that action at this time.
0 commit comments