From eeec0ee804b25278ad6e39c45990cb7c12bc8e6d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 7 May 2020 13:30:20 +0200 Subject: [PATCH] dsd/Dsd2Pcm: convert struct GenerateCtableValue to lambda Since we have dropped support for GCC 6 a while ago, we can use constexpr lambdas now. --- src/pcm/Dsd2Pcm.cxx | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/pcm/Dsd2Pcm.cxx b/src/pcm/Dsd2Pcm.cxx index 4ccbfa199..b9efb3ccf 100644 --- a/src/pcm/Dsd2Pcm.cxx +++ b/src/pcm/Dsd2Pcm.cxx @@ -130,24 +130,17 @@ CalculateCtableValue(size_t t, int k, int e) noexcept return float(acc); } -/* this needs to be a struct because GCC 6 doesn't have constexpr - lambdas (C++17) */ -struct GenerateCtableValue { - size_t t; - int k; - - constexpr auto operator()(int e) const noexcept { - return CalculateCtableValue(t, k, e); - } -}; - static constexpr auto GenerateCtable(int t) noexcept { int k = HTAPS - t*8; if (k>8) k=8; - return GenerateArray<256>(GenerateCtableValue{CTABLES - 1 - t, k}); + const size_t t_ = CTABLES - 1 - t; + + return GenerateArray<256>([t_, k](int e){ + return CalculateCtableValue(t_, k, e); + }); } static constexpr auto ctables = GenerateArray(GenerateCtable);