4

is的 size 方法QVector属于 type int,但 is 中的方法std::vector相同unsigned。为什么有区别。无符号类型不是保持大小的正确方法,因为它不能为负数吗?

4

1 回答 1

6

因为他们在 1999 年对其进行了讨论,并得出了int一个更好的选择的结论,因为返回的函数数量uint相对较少,并且他们对警告感到不满:

Subject: Re: killing uint as return type in Qt.
From: Alex Sandro Queiroz e Silva <asandro@xxxxxxxxxxxxx>
Date: Wed, 17 Mar 1999 15:29:37 -0300 (EST)
Cc: qt-interest@xxxxxxxx
To: Arnt Gulbrandsen <arnt@xxxxxxxx>

1999 年 3 月 17 日,Arnt Gulbrandsen 写道:

Qt 中大约 0.15% 的函数返回 uint。其中大部分被称为 QMumble::size() 或 QMumble::count()。这些函数永远不需要返回负数,所以实际上,uint 是它们返回的正确类型。

但这很麻烦,至少对我来说。我一直将它们与整数进行比较,将它们放入可以包含负数的变量中,等等。我写过

 if ( blah->count() < i )

并且已经多次收到编译器警告。

所以我正在考虑在 Qt 2.0 中将这些函数的返回类型更改为 int。你怎么看?你是用户——你想要正确性和完全向后兼容性还是更方便?

--Arnt

我认为这次的便利性更好,我们现在都可能从这种方法中得到什么样的结果,所以...

-- 亚历克斯 asandro@lcg.dc.ufc.br

于 2013-04-18T17:02:34.790 回答