diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-03-18 11:51:27 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-03-18 11:51:27 +0100 |
commit | d029646e293ea869201d644aec53a97763513226 (patch) | |
tree | c131750f45094417699b90c340142f2782e3bd1c | |
parent | 927c85b45e6d2ee2e200ecb396ff845f5acfe05a (diff) | |
parent | 3653815f3cd12291790180456fe18df9e95f82ab (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: I5479882ef6e4dbe203411a91fbd9ed8b65499992
-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]; |