Browse Source

Math: make Unit operator*(T, Unit) an inline friend.

That accesses the data member directly, similarly to what was done for
Vector in 8b1026d457.
pull/638/head
Vladimír Vondruš 2 years ago
parent
commit
dec3bdff16
  1. 23
      src/Magnum/Math/Unit.h

23
src/Magnum/Math/Unit.h

@ -144,6 +144,22 @@ template<template<class> class Derived, class T> class Unit {
return Unit<Derived, T>(_value*number);
}
/**
* @brief Multiply a number with a value
*
* Same as @ref operator*(T) const.
*/
constexpr friend Unit<Derived, T> operator*(
#ifdef DOXYGEN_GENERATING_OUTPUT
T
#else
typename std::common_type<T>::type
#endif
number, Unit<Derived, T> value)
{
return Unit<Derived, T>{value._value*number};
}
/** @brief Divide with a number and assign */
Unit<Derived, T>& operator/=(T number) {
_value /= number;
@ -164,13 +180,6 @@ template<template<class> class Derived, class T> class Unit {
T _value;
};
/** @relates Unit
@brief Multiply number with value
*/
template<template<class> class Derived, class T> constexpr Unit<Derived, T> operator*(typename std::common_type<T>::type number, const Unit<Derived, T>& value) {
return value*number;
}
}}
#endif

Loading…
Cancel
Save