From 3e1d03b1eaf6a5e842bed4ae4f9bb8cca05e5b31 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Thu, 11 Jun 2020 11:35:19 +0200 Subject: Port Q_STATIC_ASSERT(_X) to static_assert There is no reason for keep using our macro now that we have C++17. The macro itself is left in for the moment being, as well as its detection logic, because it's needed for C code (not everything supports C11 yet). A few more cleanups will arrive in the next few patches. Note that this is a mere search/replace; some places were using double braces to work around the presence of commas in a macro, no attempt has been done to fix those. tst_qglobal had just some minor changes to keep testing the macro. Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639 Reviewed-by: Lars Knoll --- src/gui/math3d/qvector2d.cpp | 14 +++++++------- src/gui/math3d/qvector3d.cpp | 16 ++++++++-------- src/gui/math3d/qvector4d.cpp | 18 +++++++++--------- 3 files changed, 24 insertions(+), 24 deletions(-) (limited to 'src/gui/math3d') diff --git a/src/gui/math3d/qvector2d.cpp b/src/gui/math3d/qvector2d.cpp index 5f651cf376..9cd4b5924a 100644 --- a/src/gui/math3d/qvector2d.cpp +++ b/src/gui/math3d/qvector2d.cpp @@ -49,8 +49,8 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_VECTOR2D -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "QVector2D is supposed to be standard layout"); -Q_STATIC_ASSERT_X(sizeof(QVector2D) == sizeof(float) * 2, "QVector2D is not supposed to have padding at the end"); +static_assert(std::is_standard_layout::value, "QVector2D is supposed to be standard layout"); +static_assert(sizeof(QVector2D) == sizeof(float) * 2, "QVector2D is not supposed to have padding at the end"); // QVector2D used to be defined as class QVector2D { float x, y; };, // now instead it is defined as classs QVector2D { float v[2]; };. @@ -69,15 +69,15 @@ struct QVector2DNew float v[2]; }; -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector2D"); -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector2D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector2D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector2D"); -Q_STATIC_ASSERT_X(sizeof(QVector2DOld) == sizeof(QVector2DNew), "Binary compatibility break in QVector2D"); +static_assert(sizeof(QVector2DOld) == sizeof(QVector2DNew), "Binary compatibility break in QVector2D"); // requires a constexpr offsetof #if !defined(Q_CC_MSVC) || (_MSC_VER >= 1910) -Q_STATIC_ASSERT_X(offsetof(QVector2DOld, x) == offsetof(QVector2DNew, v) + sizeof(QVector2DNew::v[0]) * 0, "Binary compatibility break in QVector2D"); -Q_STATIC_ASSERT_X(offsetof(QVector2DOld, y) == offsetof(QVector2DNew, v) + sizeof(QVector2DNew::v[0]) * 1, "Binary compatibility break in QVector2D"); +static_assert(offsetof(QVector2DOld, x) == offsetof(QVector2DNew, v) + sizeof(QVector2DNew::v[0]) * 0, "Binary compatibility break in QVector2D"); +static_assert(offsetof(QVector2DOld, y) == offsetof(QVector2DNew, v) + sizeof(QVector2DNew::v[0]) * 1, "Binary compatibility break in QVector2D"); #endif } // anonymous namespace diff --git a/src/gui/math3d/qvector3d.cpp b/src/gui/math3d/qvector3d.cpp index 08c3de99d2..afe1e4789a 100644 --- a/src/gui/math3d/qvector3d.cpp +++ b/src/gui/math3d/qvector3d.cpp @@ -51,8 +51,8 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_VECTOR3D -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "QVector3D is supposed to be standard layout"); -Q_STATIC_ASSERT_X(sizeof(QVector3D) == sizeof(float) * 3, "QVector3D is not supposed to have padding at the end"); +static_assert(std::is_standard_layout::value, "QVector3D is supposed to be standard layout"); +static_assert(sizeof(QVector3D) == sizeof(float) * 3, "QVector3D is not supposed to have padding at the end"); // QVector3D used to be defined as class QVector3D { float x, y, z; };, // now instead it is defined as classs QVector3D { float v[3]; };. @@ -71,16 +71,16 @@ struct QVector3DNew float v[3]; }; -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector3D"); -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector3D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector3D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector3D"); -Q_STATIC_ASSERT_X(sizeof(QVector3DOld) == sizeof(QVector3DNew), "Binary compatibility break in QVector3D"); +static_assert(sizeof(QVector3DOld) == sizeof(QVector3DNew), "Binary compatibility break in QVector3D"); // requires a constexpr offsetof #if !defined(Q_CC_MSVC) || (_MSC_VER >= 1910) -Q_STATIC_ASSERT_X(offsetof(QVector3DOld, x) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 0, "Binary compatibility break in QVector3D"); -Q_STATIC_ASSERT_X(offsetof(QVector3DOld, y) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 1, "Binary compatibility break in QVector3D"); -Q_STATIC_ASSERT_X(offsetof(QVector3DOld, z) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 2, "Binary compatibility break in QVector3D"); +static_assert(offsetof(QVector3DOld, x) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 0, "Binary compatibility break in QVector3D"); +static_assert(offsetof(QVector3DOld, y) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 1, "Binary compatibility break in QVector3D"); +static_assert(offsetof(QVector3DOld, z) == offsetof(QVector3DNew, v) + sizeof(QVector3DNew::v[0]) * 2, "Binary compatibility break in QVector3D"); #endif diff --git a/src/gui/math3d/qvector4d.cpp b/src/gui/math3d/qvector4d.cpp index 070ea7454e..43cfb0c61c 100644 --- a/src/gui/math3d/qvector4d.cpp +++ b/src/gui/math3d/qvector4d.cpp @@ -49,8 +49,8 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_VECTOR4D -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "QVector4D is supposed to be standard layout"); -Q_STATIC_ASSERT_X(sizeof(QVector4D) == sizeof(float) * 4, "QVector4D is not supposed to have padding at the end"); +static_assert(std::is_standard_layout::value, "QVector4D is supposed to be standard layout"); +static_assert(sizeof(QVector4D) == sizeof(float) * 4, "QVector4D is not supposed to have padding at the end"); // QVector4D used to be defined as class QVector4D { float x, y, z, w; };, // now instead it is defined as classs QVector4D { float v[4]; };. @@ -69,17 +69,17 @@ struct QVector4DNew float v[4]; }; -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector4D"); -Q_STATIC_ASSERT_X(std::is_standard_layout::value, "Binary compatibility break in QVector4D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector4D"); +static_assert(std::is_standard_layout::value, "Binary compatibility break in QVector4D"); -Q_STATIC_ASSERT_X(sizeof(QVector4DOld) == sizeof(QVector4DNew), "Binary compatibility break in QVector4D"); +static_assert(sizeof(QVector4DOld) == sizeof(QVector4DNew), "Binary compatibility break in QVector4D"); // requires a constexpr offsetof #if !defined(Q_CC_MSVC) || (_MSC_VER >= 1910) -Q_STATIC_ASSERT_X(offsetof(QVector4DOld, x) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 0, "Binary compatibility break in QVector4D"); -Q_STATIC_ASSERT_X(offsetof(QVector4DOld, y) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 1, "Binary compatibility break in QVector4D"); -Q_STATIC_ASSERT_X(offsetof(QVector4DOld, z) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 2, "Binary compatibility break in QVector4D"); -Q_STATIC_ASSERT_X(offsetof(QVector4DOld, w) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 3, "Binary compatibility break in QVector4D"); +static_assert(offsetof(QVector4DOld, x) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 0, "Binary compatibility break in QVector4D"); +static_assert(offsetof(QVector4DOld, y) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 1, "Binary compatibility break in QVector4D"); +static_assert(offsetof(QVector4DOld, z) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 2, "Binary compatibility break in QVector4D"); +static_assert(offsetof(QVector4DOld, w) == offsetof(QVector4DNew, v) + sizeof(QVector4DNew::v[0]) * 3, "Binary compatibility break in QVector4D"); #endif -- cgit v1.2.3