@@ -363,31 +363,38 @@ constexpr inline double to_num(Number quantity) { return quantity.internal(); }
363
363
constexpr bool operator op (Number lhs, double rhs) { return (lhs.internal () op rhs); } \
364
364
constexpr bool operator op (double lhs, Number rhs) { return (lhs op rhs.internal ()); }
365
365
366
+ namespace units_double_ops {
366
367
NEW_NUM_TO_DOUBLE_COMPARISON (==)
367
368
NEW_NUM_TO_DOUBLE_COMPARISON (!=)
368
369
NEW_NUM_TO_DOUBLE_COMPARISON (<=)
369
370
NEW_NUM_TO_DOUBLE_COMPARISON (>=)
370
371
NEW_NUM_TO_DOUBLE_COMPARISON (<)
371
372
NEW_NUM_TO_DOUBLE_COMPARISON (>)
373
+ } // namespace units_double_ops
372
374
373
375
#define NEW_NUM_AND_DOUBLE_OPERATION (op ) \
374
376
constexpr Number operator op (Number lhs, double rhs) { return (lhs.internal () op rhs); } \
375
377
constexpr Number operator op (double lhs, Number rhs) { return (lhs op rhs.internal ()); }
376
378
379
+ namespace units_double_ops {
377
380
NEW_NUM_AND_DOUBLE_OPERATION (+)
378
381
NEW_NUM_AND_DOUBLE_OPERATION (-)
379
382
NEW_NUM_AND_DOUBLE_OPERATION (*)
380
383
NEW_NUM_AND_DOUBLE_OPERATION (/)
384
+ } // namespace units_double_ops
381
385
382
386
#define NEW_NUM_AND_DOUBLE_ASSIGNMENT (op ) \
383
387
constexpr void operator op##=(Number& lhs, double rhs) { lhs = lhs.internal () op rhs; } \
384
388
constexpr void operator op##=(double & lhs, Number rhs) { lhs = lhs op rhs.internal (); }
385
389
390
+ namespace units_double_ops {
386
391
NEW_NUM_AND_DOUBLE_ASSIGNMENT (+)
387
392
NEW_NUM_AND_DOUBLE_ASSIGNMENT (-)
388
393
NEW_NUM_AND_DOUBLE_ASSIGNMENT (*)
389
394
NEW_NUM_AND_DOUBLE_ASSIGNMENT (/)
395
+ } // namespace units_double_ops
390
396
397
+ namespace units_double_ops {
391
398
constexpr Number& operator ++(Number& lhs, int ) {
392
399
lhs += 1 ;
393
400
return lhs;
@@ -409,6 +416,7 @@ constexpr Number operator--(Number& lhs) {
409
416
lhs -= 1 ;
410
417
return copy;
411
418
}
419
+ } // namespace units_double_ops
412
420
413
421
NEW_UNIT_LITERAL (Number, percent, num / 100 )
414
422
0 commit comments