From 804ccddf7e08b7bac5121ed2b6f8c7fb9e5f3ed6 Mon Sep 17 00:00:00 2001 From: Max Kellermann <max@musicpd.org> Date: Tue, 30 Oct 2018 00:06:48 +0100 Subject: [PATCH] pcm/Clamp: convert to `constexpr` --- src/pcm/Clamp.hxx | 3 +-- src/pcm/FloatConvert.hxx | 3 +-- src/pcm/PcmMix.cxx | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/pcm/Clamp.hxx b/src/pcm/Clamp.hxx index 2461ba2a9..6d94f3b7c 100644 --- a/src/pcm/Clamp.hxx +++ b/src/pcm/Clamp.hxx @@ -34,8 +34,7 @@ template<SampleFormat F> struct SampleTraits; * and caps it if necessary. */ template<SampleFormat F, class Traits=SampleTraits<F>> -gcc_const -static inline typename Traits::value_type +constexpr typename Traits::value_type PcmClamp(typename Traits::long_type x) noexcept { typedef typename Traits::value_type T; diff --git a/src/pcm/FloatConvert.hxx b/src/pcm/FloatConvert.hxx index 8f77227ec..1fa275427 100644 --- a/src/pcm/FloatConvert.hxx +++ b/src/pcm/FloatConvert.hxx @@ -37,8 +37,7 @@ struct FloatToIntegerSampleConvert { static constexpr SV factor = uintmax_t(1) << (DstTraits::BITS - 1); static_assert(factor > 0, "Wrong factor"); - gcc_const - static DV Convert(SV src) noexcept { + static constexpr DV Convert(SV src) noexcept { return PcmClamp<F, Traits>(SL(src * factor)); } }; diff --git a/src/pcm/PcmMix.cxx b/src/pcm/PcmMix.cxx index 09b374b9b..bbbf0c3ec 100644 --- a/src/pcm/PcmMix.cxx +++ b/src/pcm/PcmMix.cxx @@ -134,7 +134,7 @@ pcm_add_vol(PcmDither &dither, void *buffer1, const void *buffer2, size_t size, } template<SampleFormat F, class Traits=SampleTraits<F>> -static typename Traits::value_type +static constexpr typename Traits::value_type PcmAdd(typename Traits::value_type _a, typename Traits::value_type _b) noexcept { typename Traits::sum_type a(_a), b(_b);