corelib/global/*.h: use static_assert instead of Q_STATIC_ASSERT_X

qtconfigmacros:
Otherwise we'd need to include <QtCore/qassert.h> before using
QT_REQUIRE_CONFIG. It cannot be added here as qassert.h itself uses
QT_CONFIG, i.e. qassert.h needs to include this header. And
Q_STATIC_ASSERT_X is only kept around to keep old code working.

_Static_assert is deprecated in C23:
https://en.cppreference.com/w/c/language/_Static_assert

Change-Id: Ie60a02274cc5be8bd1c6dc3819ccfbc2e7864a21
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Ahmad Samir 2023-02-13 14:42:50 +02:00
parent 3b81d04bc6
commit 044a29bc66
2 changed files with 6 additions and 2 deletions

View File

@ -10,6 +10,8 @@
#include <QtCore/qtconfiginclude.h>
#include <assert.h>
/*
The Qt modules' export macros.
The options are:
@ -58,7 +60,7 @@
1: The feature is available
*/
#define QT_CONFIG(feature) (1/QT_FEATURE_##feature == 1)
#define QT_REQUIRE_CONFIG(feature) Q_STATIC_ASSERT_X(QT_FEATURE_##feature == 1, "Required feature " #feature " for file " __FILE__ " not available.")
#define QT_REQUIRE_CONFIG(feature) static_assert(QT_FEATURE_##feature == 1, "Required feature " #feature " for file " __FILE__ " not available.")
/* moc compats (signals/slots) */
#ifndef QT_MOC_COMPAT

View File

@ -11,6 +11,8 @@
#ifdef __cplusplus
# include <cstddef>
# include <cstdint>
#else
# include <assert.h>
#endif
#if 0
@ -58,7 +60,7 @@ typedef quint64 qulonglong;
#ifndef __cplusplus
// In C++ mode, we define below using QIntegerForSize template
Q_STATIC_ASSERT_X(sizeof(ptrdiff_t) == sizeof(size_t), "Weird ptrdiff_t and size_t definitions");
static_assert(sizeof(ptrdiff_t) == sizeof(size_t), "Weird ptrdiff_t and size_t definitions");
typedef ptrdiff_t qptrdiff;
typedef ptrdiff_t qsizetype;
typedef ptrdiff_t qintptr;