【问题标题】:Where are the limits for Qt types?Qt 类型的限制在哪里?
【发布时间】:2011-06-14 21:25:42
【问题描述】:

通常,我可以参考 limits.h 来查看特定类型的最大值是多少,例如 int 或 long。

在 Qt 中,有 qlonglong 之类的类型。是否有可以类似方式使用的头文件和/或文档来手动或以编程方式引用这些类型的限制?

【问题讨论】:

  • Qt 类型有可能被提炼成一种基本类型——你试过调用例如 std::numeric_limits::max() 吗?
  • @fbrereto:把它作为答案,因为很可能是这种情况。
  • 即使它们不是标准类型的 typedef,也有可能并且确实打算将 std::numeric_limits<T> 专门用于数字类型。

标签: c++ qt limits numeric-limits


【解决方案1】:

查看QtGlobal 文档。

对于一些不明显的:
qlonglong - 64 位
qptrdiff - 32 位或 64 位,具体取决于平台qreal - 双精度(在 ARM 架构上浮动)
quintptr - 无符号 32 位或 64 位,具体取决于平台
qulonglong - 无符号 64 位
ucharuintulongushort - 无符号的便捷简写类型

【讨论】:

  • 由于标头 已成为标准的一部分,其中一些是否已弃用?或者如果不推荐使用,它们是否只是指定为向后兼容的别名? QtGlobal 页面上的文档对我来说似乎很模糊。
【解决方案2】:

Qt 类型很有可能被提炼为定义numeric_limits 的基本类型之一。您是否尝试过拨打电话,例如std::numeric_limits<qlonglong>::max()

正如 MSalters 指出的那样,如果类型不是内置的,numeric_limits 仍然可以为它们专门化。如果是这样的话,人们希望 Qt 能包含它们。

【讨论】:

  • #include <limits> 这将可以访问std::numeric_limits<qint64>::max() 和其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2018-08-12
  • 2016-05-31
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多