From 6dcd43f1e4f2f3ec0bd844cd45e011e9c4d16e38 Mon Sep 17 00:00:00 2001 From: Stephan Hartmann Date: Fri, 8 Jul 2022 14:37:32 +0200 Subject: [PATCH] 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 Reviewed-by: Sebastian Jansson Reviewed-by: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#37495} --- rtc_base/units/unit_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtc_base/units/unit_base.h b/rtc_base/units/unit_base.h index bbf7300a16..e0a926fb8d 100644 --- a/rtc_base/units/unit_base.h +++ b/rtc_base/units/unit_base.h @@ -268,7 +268,7 @@ class RelativeUnit : public UnitBase { } template >* = nullptr> - Unit_T operator/(T scalar) const { + constexpr Unit_T operator/(T scalar) const { return UnitBase::FromValue(std::llround(this->ToValue() / scalar)); } template { constexpr Unit_T operator/(T scalar) const { return UnitBase::FromValue(this->ToValue() / scalar); } - Unit_T operator*(double scalar) const { + constexpr Unit_T operator*(double scalar) const { return UnitBase::FromValue(std::llround(this->ToValue() * scalar)); } constexpr Unit_T operator*(int64_t scalar) const {