GCC: make UnitBase::operator*(double) constexpr

cricket::Interpolate Interpolate is constexpr and therefore requires
UnitBase::operator* to be constexpr too. For consistency mark UnitBase::operator/ constexpr as well.

Bug: chromium:819294
Change-Id: I6f1bf812a452de3307b0720a00b85a127631992e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268186
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37495}
This commit is contained in:
Stephan Hartmann 2022-07-08 14:37:32 +02:00 committed by WebRTC LUCI CQ
parent 2295ddbff9
commit 6dcd43f1e4

View File

@ -268,7 +268,7 @@ class RelativeUnit : public UnitBase<Unit_T> {
}
template <typename T,
typename std::enable_if_t<std::is_floating_point_v<T>>* = nullptr>
Unit_T operator/(T scalar) const {
constexpr Unit_T operator/(T scalar) const {
return UnitBase<Unit_T>::FromValue(std::llround(this->ToValue() / scalar));
}
template <typename T,
@ -276,7 +276,7 @@ class RelativeUnit : public UnitBase<Unit_T> {
constexpr Unit_T operator/(T scalar) const {
return UnitBase<Unit_T>::FromValue(this->ToValue() / scalar);
}
Unit_T operator*(double scalar) const {
constexpr Unit_T operator*(double scalar) const {
return UnitBase<Unit_T>::FromValue(std::llround(this->ToValue() * scalar));
}
constexpr Unit_T operator*(int64_t scalar) const {