gpt4 book ai didi

qt - 如何定义 qreal 文字

转载 作者:行者123 更新时间:2023-12-04 15:32:08 27 4
gpt4 key购买 nike

在 Qt 文档中,它说 qreal是一个

Typedef for double unless Qt is configured with the -qreal float option.



这基本上意味着几乎总是 double但是 float在 ARM 设备上。

我想用 qreal文字但是我不知道如何写它们。
qreal someValue = calcFunc();
qreal min = qMin(someValue, 0.0);

哪里 0.0double文字和 0.0f将是 float文字。在 ARM 上,这是一个编译错误,因为没有 qMin(float, double)功能。

我可以写 static_cast<qreal>(0.0)但这似乎过于冗长。

那么我如何定义 qreal文字?

最佳答案

您可以使用 C++11 user defined literals :

#include <QtCore>

constexpr qreal operator "" _qr(long double a){ return qreal(a); }

int main() {
qreal a = 3.0_qr;
Q_ASSERT(qMin(a, 4.0_qr) == a);
}

如果它们在您的平台上不可用,您可以在需要时显式构建 qreals:
using _qr  = qreal;

int main() {
qreal a = _qr(3.0);
Q_ASSERT(qMin(a, _qr(4.0)) == a);
}

关于qt - 如何定义 qreal 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37876934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com