diff --git a/src/sfizz/Macros.h b/src/sfizz/Macros.h index 31f60de2..fd2225c1 100644 --- a/src/sfizz/Macros.h +++ b/src/sfizz/Macros.h @@ -17,3 +17,9 @@ #else #define SFIZZ_EXPORTED_API #endif + +#if __cplusplus > 201103L +#define CONSTEXPR_OR_INLINE constexpr +#else +#define CONSTEXPR_OR_INLINE inline +#endif diff --git a/src/sfizz/MathHelpers.h b/src/sfizz/MathHelpers.h index ac755a11..ca58b62e 100644 --- a/src/sfizz/MathHelpers.h +++ b/src/sfizz/MathHelpers.h @@ -10,6 +10,7 @@ */ #pragma once #include "Config.h" +#include "Macros.h" #include #include #include @@ -128,13 +129,13 @@ constexpr T clamp( T v, T lo, T hi ) } template -constexpr void incrementAll(T& only) +CONSTEXPR_OR_INLINE void incrementAll(T& only) { only += Increment; } template -constexpr void incrementAll(T& first, Args&... rest) +CONSTEXPR_OR_INLINE void incrementAll(T& first, Args&... rest) { first += Increment; incrementAll(rest...); diff --git a/src/sfizz/SfzHelpers.h b/src/sfizz/SfzHelpers.h index bbf89ae6..10ddcbe3 100644 --- a/src/sfizz/SfzHelpers.h +++ b/src/sfizz/SfzHelpers.h @@ -10,6 +10,7 @@ //#include #include #include +#include "Macros.h" #include "Config.h" #include "MathHelpers.h" @@ -230,7 +231,7 @@ using modFunction = std::function; * @param modifier the modifier value */ template -constexpr void addToBase(T& base, T modifier) +CONSTEXPR_OR_INLINE void addToBase(T& base, T modifier) { base += modifier; } @@ -241,7 +242,7 @@ constexpr void addToBase(T& base, T modifier) * @param base * @param modifier */ -inline void multiplyByCents(float& base, int modifier) +CONSTEXPR_OR_INLINE void multiplyByCents(float& base, int modifier) { base *= centsFactor(modifier); }