File tree Expand file tree Collapse file tree 2 files changed +17
-6
lines changed
Expand file tree Collapse file tree 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)
410410}
411411
412412template <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 ());
415416}
416417
417418template <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 ());
420422}
421423
422424template <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 ());
425428}
426429
427430template <isQuantity Q1, isQuantity Q2>
Original file line number Diff line number Diff line change @@ -28,6 +28,14 @@ void initialize() {
2828 ab *= a;
2929}
3030
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+
3139constexpr void miscTests () {
3240 units::AccelerationPose a (1_mps2, 2_mps2);
3341 Number num = Number (1.0 );
You can’t perform that action at this time.
0 commit comments