summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-07 03:05:06 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-07 03:05:06 +0100
commit3653815f3cd12291790180456fe18df9e95f82ab (patch)
treed2f483df170a3c9a32649e072f69002718452ff0
parent8b1a6de795523156a5a74dd2a544d866a8beeb53 (diff)
parent275ed191e6452d7e623cff0cde0beb9e416a8e46 (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta2
-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];