diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-03-07 03:05:06 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-03-07 03:05:06 +0100 |
commit | 3653815f3cd12291790180456fe18df9e95f82ab (patch) | |
tree | d2f483df170a3c9a32649e072f69002718452ff0 | |
parent | 8b1a6de795523156a5a74dd2a544d866a8beeb53 (diff) | |
parent | 275ed191e6452d7e623cff0cde0beb9e416a8e46 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta2
Change-Id: I7e181efc5b004eb2bcf951c011861abd258cd700
-rw-r--r-- | src/serialbus/qmodbuspdu.h | 9 |
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]; |