c++ - std::round 不是 std on android 的成员

标签 c++ qt c++11 android-ndk

我在为 Android 和 iOS 构建的 Qt 应用程序上使用来自 C++ 11 的 std::round。但是在android上,我得到的错误是 std::round 不是 std 的成员 尽管包含 cmath header 。

如何让 std::round 在 android 上工作?是否有 std::round 的替代方案?

以下是我的android环境:

ANDROID_NDK_PLATFORM = android-23
NDK version          = r13b
ANDROID_NDK_TOOLCHAIN_VERSION = 4.9

最佳答案

Android-NDK 中似乎缺少 cmath header 中的一些函数,请参阅 here了解更多详情。

然而,实现您自己的 round 函数非常容易:

template<typename T>
T round(T v) {
  return int(v + 0.5);
}

或检查其他建议/实现 here .

关于c++ - std::round 不是 std on android 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42460288/

相关文章:

c++ - 从较小类型的指针定义的范围构造 vector

c++ - 重载运算符<<

c++ - 长距离整数乘法

c++ - 将QJson静态编译成Qt Application(多次声明错误)

c++ - QImage 与 QThreads

c++ - 与参数包声明混淆,C++

c++ - 在运行时使用函数转换类型列表

C++模板函数类型推导

c++ - 如果我有 DLL 中未导出方法的符号,如何找到其参数签名并调用该方法?

c++ - 在 QGraphicsScene 中的视频上画一条线