From e7a7931ba1e4fd6d80674c73e6e9e9a8099b9391 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 28 Mar 2017 15:03:50 +0200 Subject: [PATCH] QtGlobal: add qssize_t It replaces Posix' ssize_t in cross-platform code. Most importantly, it allows QStringView users to refer to QStringView::size_type by a shorter, less intimidating name. Change-Id: I2128fefd2ffdd258b0b55cd90802a23c6bc033f6 Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Edward Welbourne Reviewed-by: Thiago Macieira --- src/corelib/global/qglobal.cpp | 15 +++++++++++++++ src/corelib/global/qglobal.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 871810e5a34..4ff27f14a8a 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -773,6 +773,21 @@ Q_STATIC_ASSERT_X(QT_POINTER_SIZE == sizeof(void *), "QT_POINTER_SIZE defined in \sa quintptr, qint32, qint64 */ +/*! + \typedef qssize_t + \relates + \since 5.10 + + Integral type providing Posix' \c ssize_t for all platforms. + + This type is guaranteed to be the same size as a \c size_t on all + platforms supported by Qt. + + Note that qssize_t is signed. Use \c size_t for unsigned values. + + \sa qptrdiff +*/ + /*! \enum QtMsgType \relates diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 12220e10b5c..3dfbf2fb2db 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -451,6 +451,7 @@ typedef QIntegerForSize::Unsigned qregisteruint; typedef QIntegerForSizeof::Unsigned quintptr; typedef QIntegerForSizeof::Signed qptrdiff; typedef qptrdiff qintptr; +using qssize_t = QIntegerForSizeof::Signed; /* moc compats (signals/slots) */ #ifndef QT_MOC_COMPAT