add static_assert message
diff --git a/lib/cpp/src/thrift/protocol/TBinaryProtocol.tcc b/lib/cpp/src/thrift/protocol/TBinaryProtocol.tcc
index 902ef98..fe73992 100644
--- a/lib/cpp/src/thrift/protocol/TBinaryProtocol.tcc
+++ b/lib/cpp/src/thrift/protocol/TBinaryProtocol.tcc
@@ -165,8 +165,8 @@
template <class Transport_, class ByteOrder_>
uint32_t TBinaryProtocolT<Transport_, ByteOrder_>::writeDouble(const double dub) {
- static_assert(sizeof(double) == sizeof(uint64_t));
- static_assert(std::numeric_limits<double>::is_iec559);
+ static_assert(sizeof(double) == sizeof(uint64_t), "sizeof(double) == sizeof(uint64_t)");
+ static_assert(std::numeric_limits<double>::is_iec559, "std::numeric_limits<double>::is_iec559");
uint64_t bits = bitwise_cast<uint64_t>(dub);
bits = ByteOrder_::toWire64(bits);
@@ -388,8 +388,8 @@
template <class Transport_, class ByteOrder_>
uint32_t TBinaryProtocolT<Transport_, ByteOrder_>::readDouble(double& dub) {
- static_assert(sizeof(double) == sizeof(uint64_t));
- static_assert(std::numeric_limits<double>::is_iec559);
+ static_assert(sizeof(double) == sizeof(uint64_t), "sizeof(double) == sizeof(uint64_t)");
+ static_assert(std::numeric_limits<double>::is_iec559, "std::numeric_limits<double>::is_iec559");
union bytes {
uint8_t b[8];
diff --git a/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc b/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc
index 2b8207a..8efec6e 100644
--- a/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc
+++ b/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc
@@ -253,8 +253,8 @@
*/
template <class Transport_>
uint32_t TCompactProtocolT<Transport_>::writeDouble(const double dub) {
- static_assert(sizeof(double) == sizeof(uint64_t));
- static_assert(std::numeric_limits<double>::is_iec559);
+ static_assert(sizeof(double) == sizeof(uint64_t), "sizeof(double) == sizeof(uint64_t)");
+ static_assert(std::numeric_limits<double>::is_iec559, "std::numeric_limits<double>::is_iec559");
uint64_t bits = bitwise_cast<uint64_t>(dub);
bits = THRIFT_htolell(bits);
@@ -653,8 +653,8 @@
*/
template <class Transport_>
uint32_t TCompactProtocolT<Transport_>::readDouble(double& dub) {
- static_assert(sizeof(double) == sizeof(uint64_t));
- static_assert(std::numeric_limits<double>::is_iec559);
+ static_assert(sizeof(double) == sizeof(uint64_t), "sizeof(double) == sizeof(uint64_t)");
+ static_assert(std::numeric_limits<double>::is_iec559, "std::numeric_limits<double>::is_iec559");
union {
uint64_t bits;
diff --git a/lib/cpp/src/thrift/protocol/TProtocol.h b/lib/cpp/src/thrift/protocol/TProtocol.h
index 746973d..bbc6816 100644
--- a/lib/cpp/src/thrift/protocol/TProtocol.h
+++ b/lib/cpp/src/thrift/protocol/TProtocol.h
@@ -47,7 +47,7 @@
// http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html
template <typename To, typename From>
static inline To bitwise_cast(From from) {
- static_assert(sizeof(From) == sizeof(To));
+ static_assert(sizeof(From) == sizeof(To), "sizeof(From) == sizeof(To)");
// BAD!!! These are all broken with -O2.
//return *reinterpret_cast<To*>(&from); // BAD!!!