summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-03-05 16:06:41 +0100
committerMarc Mutz <marc.mutz@kdab.com>2020-03-06 16:48:21 +0100
commit275ed191e6452d7e623cff0cde0beb9e416a8e46 (patch)
tree34df82adbbea6545985a5c36547ad2227558083c
parentb63877157c2c9681ced1efbfefe1d2d1debf812e (diff)
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 <lars.knoll@qt.io>
-rw-r--r--src/serialbus/qmodbuspdu.h9
1 files 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<T, T1>::value || IsType<T, Ts...>::value };
};
+ template <typename T>
+ using is_pod = std::integral_constant<bool, std::is_trivial<T>::value && std::is_standard_layout<T>::value>;
+
template <typename T> void encode(QDataStream *stream, const T &t) {
- static_assert(std::is_pod<T>::value, "Only POD types supported.");
+ static_assert(is_pod<T>::value, "Only POD types supported.");
static_assert(IsType<T, quint8, quint16>::value, "Only quint8 and quint16 supported.");
(*stream) << t;
}
template <typename T> void decode(QDataStream *stream, T &t) const {
- static_assert(std::is_pod<T>::value, "Only POD types supported.");
+ static_assert(is_pod<T>::value, "Only POD types supported.");
static_assert(IsType<T, quint8 *, quint16 *>::value, "Only quint8* and quint16* supported.");
(*stream) >> *t;
}
template <typename T> void encode(QDataStream *stream, const QVector<T> &vector) {
- static_assert(std::is_pod<T>::value, "Only POD types supported.");
+ static_assert(is_pod<T>::value, "Only POD types supported.");
static_assert(IsType<T, quint8, quint16>::value, "Only quint8 and quint16 supported.");
for (int i = 0; i < vector.count(); ++i)
(*stream) << vector[i];