From db9e0dfb5018a581c2fdcbbb94c59d564591401d Mon Sep 17 00:00:00 2001 From: Andrew1040 Date: Tue, 29 Aug 2023 15:56:54 +0400 Subject: [PATCH] Fixed C++17 compatibility issues --- src/algorithms/highlevel/chromaprinter.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/algorithms/highlevel/chromaprinter.cpp b/src/algorithms/highlevel/chromaprinter.cpp index e9435c04d..536c99553 100644 --- a/src/algorithms/highlevel/chromaprinter.cpp +++ b/src/algorithms/highlevel/chromaprinter.cpp @@ -21,6 +21,10 @@ using namespace std; +#if __cplusplus >= 201103L +using namespace std::placeholders; +#endif + namespace essentia { namespace standard { @@ -53,8 +57,13 @@ void Chromaprinter::compute() { // Copy the signal to new vector to expand it to the int16_t dynamic range before the cast. std::vector signalScaled = signal; +#if __cplusplus >= 201103L + std::transform(signalScaled.begin(), signalScaled.end(), signalScaled.begin(), + std::bind(std::multiplies(), pow(2,15), _1)); +#else std::transform(signalScaled.begin(), signalScaled.end(), signalScaled.begin(), std::bind1st(std::multiplies(), pow(2,15))); +#endif std::vector signalCast(signalScaled.begin(), signalScaled.end()); @@ -159,8 +168,13 @@ AlgorithmStatus Chromaprinter::process() { // Copy the signal to new vector to expand it to the int16_t dynamic range before the cast. std::vector signalScaled = signal; +#if __cplusplus >= 201103L + std::transform(signalScaled.begin(), signalScaled.end(), signalScaled.begin(), + std::bind(std::multiplies(), pow(2,15), _1)); +#else std::transform(signalScaled.begin(), signalScaled.end(), signalScaled.begin(), std::bind1st(std::multiplies(), pow(2,15))); +#endif std::vector signalCast(signalScaled.begin(), signalScaled.end());