Mark the float version of QuicTime::Delta operator* as non-constexpr std::llround is not constexpr in C++ until C++23. PiperOrigin-RevId: 460805233
diff --git a/quiche/quic/core/quic_bandwidth.h b/quiche/quic/core/quic_bandwidth.h index b657228..33356ab 100644 --- a/quiche/quic/core/quic_bandwidth.h +++ b/quiche/quic/core/quic_bandwidth.h
@@ -111,7 +111,7 @@ QuicBandwidth rhs); friend constexpr QuicBandwidth operator-(QuicBandwidth lhs, QuicBandwidth rhs); - friend constexpr QuicBandwidth operator*(QuicBandwidth lhs, float rhs); + friend QuicBandwidth operator*(QuicBandwidth lhs, float rhs); }; // Non-member relational operators for QuicBandwidth. @@ -141,7 +141,7 @@ inline constexpr QuicBandwidth operator-(QuicBandwidth lhs, QuicBandwidth rhs) { return QuicBandwidth(lhs.bits_per_second_ - rhs.bits_per_second_); } -inline constexpr QuicBandwidth operator*(QuicBandwidth lhs, float rhs) { +inline QuicBandwidth operator*(QuicBandwidth lhs, float rhs) { return QuicBandwidth( static_cast<int64_t>(std::llround(lhs.bits_per_second_ * rhs))); }
diff --git a/quiche/quic/core/quic_time.h b/quiche/quic/core/quic_time.h index d6c24b5..21bad68 100644 --- a/quiche/quic/core/quic_time.h +++ b/quiche/quic/core/quic_time.h
@@ -89,8 +89,8 @@ QuicTime::Delta rhs); friend inline constexpr QuicTime::Delta operator*(QuicTime::Delta lhs, int rhs); - friend inline constexpr QuicTime::Delta operator*(QuicTime::Delta lhs, - double rhs); + // Not constexpr since std::llround() is not constexpr. + friend inline QuicTime::Delta operator*(QuicTime::Delta lhs, double rhs); friend inline QuicTime operator+(QuicTime lhs, QuicTime::Delta rhs); friend inline QuicTime operator-(QuicTime lhs, QuicTime::Delta rhs); @@ -257,7 +257,7 @@ inline constexpr QuicTime::Delta operator*(QuicTime::Delta lhs, int rhs) { return QuicTime::Delta(lhs.time_offset_ * rhs); } -inline constexpr QuicTime::Delta operator*(QuicTime::Delta lhs, double rhs) { +inline QuicTime::Delta operator*(QuicTime::Delta lhs, double rhs) { return QuicTime::Delta(static_cast<int64_t>( std::llround(static_cast<double>(lhs.time_offset_) * rhs))); }