On 03/09/2020 06:08, Thiago Macieira wrote:
Because qsizetype is the same type as qint64, which is the same type as qlonglong (which exists for historical reasons, because older VC++ didn't support "long long").
I'm very sorry, I'm lost now -- are you using as a postulate "on 64 bit systems"? I would've expected qsizetype to be 32 bits (on 32 bit systems)...
But while qint64 should not change / still be the same type of qlonglong, why qsizetype has to be the same type qint64 and cannot be a different type (say, ptrdiff_t)?
I don't have a problem changing the actual type those are aliases of. But I do have a problem making them different types. A lot of code assumes that qint64 and qlonglong are the same type. While they're always the same size, having them be different types could result in warnings and problems with overload sets. For example, say I've added QRandomGenerator::bounded(qint64) and quint64. qint64 v = QRandomGenerator::system()->bounded(str.toLongLong()); Does this compile or not?
Devil's advocate: next to "toLongLong", why there isn't also "toInt64"?Or why does bounded() take int64, not long long? Do we have a policy on which one to use where? This smells like we're making the situation worse by increasing the mix&matching types in the APIs rather than streamlining.
My 2 c, -- Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development