I am using std::round
from C++ 11 on a Qt app built for android & iOS. But on android, I get the error that
std::round is not a member of std
in spite of including the cmath
header.
How can I make std::round
work on android ? Is there an alternative to std::round
?
Following is my android environment:
ANDROID_NDK_PLATFORM = android-23
NDK version = r13b
ANDROID_NDK_TOOLCHAIN_VERSION = 4.9
Looks like a few functions from the cmath
header are missing from the Android-NDK, see here for more details.
It's very easy to implement your own round
function however:
template<typename T>
T round(T v) {
return int(v + 0.5);
}
Or check other suggestions/implementations here.
How can I make std::round work on android ?
(EDIT: updated instructions)
Switch to NDK r18 and remove the ANDROID_NDK_TOOLCHAIN_VERSION = 4.9
line since gcc
is now completely removed from NDK, defaulting to clang
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With