From 275ed191e6452d7e623cff0cde0beb9e416a8e46 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 5 Mar 2020 16:06:41 +0100 Subject: Port from deprecated std::is_pod to is_trivial + is_standard_layout The std::is_pod trait is deprecated in C++20; is_trivial and is_standard_layout exist since C++11. Change-Id: I81610c85df059d398b1f7094a037c4e28dfcc41f Reviewed-by: Lars Knoll --- src/serialbus/qmodbuspdu.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/serialbus/qmodbuspdu.h b/src/serialbus/qmodbuspdu.h index 30904a7..e93ec4c 100644 --- a/src/serialbus/qmodbuspdu.h +++ b/src/serialbus/qmodbuspdu.h @@ -141,18 +141,21 @@ private: enum { value = std::is_same::value || IsType::value }; }; + template + using is_pod = std::integral_constant::value && std::is_standard_layout::value>; + template void encode(QDataStream *stream, const T &t) { - static_assert(std::is_pod::value, "Only POD types supported."); + static_assert(is_pod::value, "Only POD types supported."); static_assert(IsType::value, "Only quint8 and quint16 supported."); (*stream) << t; } template void decode(QDataStream *stream, T &t) const { - static_assert(std::is_pod::value, "Only POD types supported."); + static_assert(is_pod::value, "Only POD types supported."); static_assert(IsType::value, "Only quint8* and quint16* supported."); (*stream) >> *t; } template void encode(QDataStream *stream, const QVector &vector) { - static_assert(std::is_pod::value, "Only POD types supported."); + static_assert(is_pod::value, "Only POD types supported."); static_assert(IsType::value, "Only quint8 and quint16 supported."); for (int i = 0; i < vector.count(); ++i) (*stream) << vector[i]; -- cgit v1.2.3