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());