summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-08-12 10:30:54 +0000
committerGordon Sim <gsim@apache.org>2010-08-12 10:30:54 +0000
commit5f2377a366fbfbc4f025378d2f3838e8447a3b4c (patch)
tree240b0863d69e7941367effed6f3b0e503ad2ea19 /cpp
parentba7f39e1ebd845018cb8c658716f7fb1e9f3ff10 (diff)
downloadqpid-python-5f2377a366fbfbc4f025378d2f3838e8447a3b4c.tar.gz
Fix some compilation errors
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@984714 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/types/Variant.cpp40
-rw-r--r--cpp/src/tests/Variant.cpp36
2 files changed, 35 insertions, 41 deletions
diff --git a/cpp/src/qpid/types/Variant.cpp b/cpp/src/qpid/types/Variant.cpp
index e43b9997f3..bf255b4423 100644
--- a/cpp/src/qpid/types/Variant.cpp
+++ b/cpp/src/qpid/types/Variant.cpp
@@ -24,6 +24,7 @@
#include <boost/format.hpp>
#include <boost/lexical_cast.hpp>
#include <algorithm>
+#include <limits>
#include <sstream>
namespace qpid {
@@ -343,43 +344,36 @@ uint64_t VariantImpl::asUint64() const
throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64)));
}
-#define I8_MIN -128
-#define I8_MAX 127
-#define I16_MIN -32768
-#define I16_MAX 32767
-#define I32_MIN -2147483648
-#define I32_MAX 2147483647
-
int8_t VariantImpl::asInt8() const
{
switch(type) {
case VAR_INT8: return value.i8;
case VAR_INT16:
- if ((value.i16 >= I8_MIN) && (value.i16 <= I8_MAX))
+ if ((value.i16 >= std::numeric_limits<int8_t>::min()) && (value.i16 <= std::numeric_limits<int8_t>::max()))
return int8_t(value.i16);
break;
case VAR_INT32:
- if ((value.i32 >= I8_MIN) && (value.i32 <= I8_MAX))
+ if ((value.i32 >= std::numeric_limits<int8_t>::min()) && (value.i32 <= std::numeric_limits<int8_t>::max()))
return int8_t(value.i32);
break;
case VAR_INT64:
- if ((value.i64 >= I8_MIN) && (value.i64 <= I8_MAX))
+ if ((value.i64 >= std::numeric_limits<int8_t>::min()) && (value.i64 <= std::numeric_limits<int8_t>::max()))
return int8_t(value.i64);
break;
case VAR_UINT8:
- if (value.ui8 <= I8_MAX)
+ if (value.ui8 <= std::numeric_limits<int8_t>::max())
return int8_t(value.ui8);
break;
case VAR_UINT16:
- if (value.ui16 <= I8_MAX)
+ if (value.ui16 <= std::numeric_limits<int8_t>::max())
return int8_t(value.ui16);
break;
case VAR_UINT32:
- if (value.ui32 <= I8_MAX)
+ if (value.ui32 <= (uint) std::numeric_limits<int8_t>::max())
return int8_t(value.ui32);
break;
case VAR_UINT64:
- if (value.ui64 <= I8_MAX)
+ if (value.ui64 <= (uint) std::numeric_limits<int8_t>::max())
return int8_t(value.ui64);
break;
case VAR_STRING: return convertFromString<int8_t>();
@@ -393,24 +387,24 @@ int16_t VariantImpl::asInt16() const
case VAR_INT8: return value.i8;
case VAR_INT16: return value.i16;
case VAR_INT32:
- if ((value.i32 >= I16_MIN) && (value.i32 <= I16_MAX))
+ if ((value.i32 >= std::numeric_limits<int16_t>::min()) && (value.i32 <= std::numeric_limits<int16_t>::max()))
return int16_t(value.i32);
break;
case VAR_INT64:
- if ((value.i64 >= I16_MIN) && (value.i64 <= I16_MAX))
+ if ((value.i64 >= std::numeric_limits<int16_t>::min()) && (value.i64 <= std::numeric_limits<int16_t>::max()))
return int16_t(value.i64);
break;
case VAR_UINT8: return int16_t(value.ui8);
case VAR_UINT16:
- if (value.ui16 <= I16_MAX)
+ if (value.ui16 <= std::numeric_limits<int16_t>::max())
return int16_t(value.ui16);
break;
case VAR_UINT32:
- if (value.ui32 <= I16_MAX)
+ if (value.ui32 <= (uint) std::numeric_limits<int16_t>::max())
return int16_t(value.ui32);
break;
case VAR_UINT64:
- if (value.ui64 <= I16_MAX)
+ if (value.ui64 <= (uint) std::numeric_limits<int16_t>::max())
return int16_t(value.ui64);
break;
case VAR_STRING: return convertFromString<int16_t>();
@@ -425,17 +419,17 @@ int32_t VariantImpl::asInt32() const
case VAR_INT16: return value.i16;
case VAR_INT32: return value.i32;
case VAR_INT64:
- if ((value.i64 >= I32_MIN) && (value.i64 <= I32_MAX))
+ if ((value.i64 >= std::numeric_limits<int32_t>::min()) && (value.i64 <= std::numeric_limits<int32_t>::max()))
return int32_t(value.i64);
break;
case VAR_UINT8: return int32_t(value.ui8);
case VAR_UINT16: return int32_t(value.ui16);
case VAR_UINT32:
- if (value.ui32 <= I32_MAX)
+ if (value.ui32 <= (uint32_t) std::numeric_limits<int32_t>::max())
return int32_t(value.ui32);
break;
case VAR_UINT64:
- if (value.ui64 <= I32_MAX)
+ if (value.ui64 <= (uint32_t) std::numeric_limits<int32_t>::max())
return int32_t(value.ui64);
break;
case VAR_STRING: return convertFromString<int32_t>();
@@ -454,7 +448,7 @@ int64_t VariantImpl::asInt64() const
case VAR_UINT16: return int64_t(value.ui16);
case VAR_UINT32: return int64_t(value.ui32);
case VAR_UINT64:
- if (value.ui64 <= 0x7fffffffffffffff)
+ if (value.ui64 <= (uint64_t) std::numeric_limits<int64_t>::max())
return int64_t(value.ui64);
break;
case VAR_STRING: return convertFromString<int64_t>();
diff --git a/cpp/src/tests/Variant.cpp b/cpp/src/tests/Variant.cpp
index 17ec997928..596bde36de 100644
--- a/cpp/src/tests/Variant.cpp
+++ b/cpp/src/tests/Variant.cpp
@@ -271,33 +271,33 @@ QPID_AUTO_TEST_CASE(testSizeConversionsUint)
BOOST_CHECK_EQUAL((int64_t) 66000, value.asInt64());
//uint64 (more than 31 bits) to other uints, ints
- value = (uint64_t) 3000000000;
+ value = (uint64_t) 3000000000ul;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
- BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32());
- BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64());
+ BOOST_CHECK_EQUAL((uint32_t) 3000000000ul, value.asUint32());
+ BOOST_CHECK_EQUAL((uint64_t) 3000000000ul, value.asUint64());
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
- BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64());
+ BOOST_CHECK_EQUAL((int64_t) 3000000000ul, value.asInt64());
//uint64 (more than 32 bits) to other uints, ints
- value = (uint64_t) 7000000000;
+ value = (uint64_t) 7000000000ull;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint32(), InvalidConversion);
- BOOST_CHECK_EQUAL((uint64_t) 7000000000, value.asUint64());
+ BOOST_CHECK_EQUAL((uint64_t) 7000000000ull, value.asUint64());
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
- BOOST_CHECK_EQUAL((int64_t) 7000000000, value.asInt64());
+ BOOST_CHECK_EQUAL((int64_t) 7000000000ull, value.asInt64());
//uint64 (more than 63 bits) to other uints, ints
- value = (uint64_t) 0x8000000000000000;
+ value = (uint64_t) 0x8000000000000000ull;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint32(), InvalidConversion);
- BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000, value.asUint64());
+ BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000ull, value.asUint64());
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
@@ -513,26 +513,26 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt)
BOOST_CHECK_EQUAL((int64_t) 40000, value.asInt64());
//int64 (positive in more than 31 bits)
- value = (int64_t) 3000000000;
+ value = (int64_t) 3000000000ll;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
- BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32());
- BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64());
+ BOOST_CHECK_EQUAL((uint32_t) 3000000000ll, value.asUint32());
+ BOOST_CHECK_EQUAL((uint64_t) 3000000000ll, value.asUint64());
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
- BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64());
+ BOOST_CHECK_EQUAL((int64_t) 3000000000ll, value.asInt64());
//int64 (positive in more than 32 bits)
- value = (int64_t) 5000000000;
+ value = (int64_t) 5000000000ll;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint32(), InvalidConversion);
- BOOST_CHECK_EQUAL((uint64_t) 5000000000, value.asUint64());
+ BOOST_CHECK_EQUAL((uint64_t) 5000000000ll, value.asUint64());
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
- BOOST_CHECK_EQUAL((int64_t) 5000000000, value.asInt64());
+ BOOST_CHECK_EQUAL((int64_t) 5000000000ll, value.asInt64());
//int64 (negative in 7 bits)
value = (int64_t) -100;
@@ -568,7 +568,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt)
BOOST_CHECK_EQUAL((int64_t) -40000, value.asInt64());
//int64 (negative in more than 31 bits)
- value = (int64_t) -3000000000;
+ value = (int64_t) -3000000000ll;
BOOST_CHECK_THROW(value.asUint8(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint16(), InvalidConversion);
BOOST_CHECK_THROW(value.asUint32(), InvalidConversion);
@@ -576,7 +576,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt)
BOOST_CHECK_THROW(value.asInt8(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt16(), InvalidConversion);
BOOST_CHECK_THROW(value.asInt32(), InvalidConversion);
- BOOST_CHECK_EQUAL((int64_t) -3000000000, value.asInt64());
+ BOOST_CHECK_EQUAL((int64_t) -3000000000ll, value.asInt64());
}
QPID_AUTO_TEST_CASE(testAssignment)