diff options
author | Andrew Stitcher <astitcher@apache.org> | 2011-05-09 19:56:11 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2011-05-09 19:56:11 +0000 |
commit | 0a103a150a50c5e233f29b69db79cac884925e58 (patch) | |
tree | 4efe0fef321cb69e26ecc652c887af33b6062c8b /cpp/include | |
parent | d5dfdb1858be769350ada946df7c3b03db1564b3 (diff) | |
download | qpid-python-0a103a150a50c5e233f29b69db79cac884925e58.tar.gz |
QPID-3004: Get Clang to compile qpid c++
- Add new template function for FieldValue::getIntegerValue() to avoid
compile error when extracting into 1 byte ints.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1101183 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/include')
-rw-r--r-- | cpp/include/qpid/framing/FieldValue.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/include/qpid/framing/FieldValue.h b/cpp/include/qpid/framing/FieldValue.h index 19220e74d5..e6255066c4 100644 --- a/cpp/include/qpid/framing/FieldValue.h +++ b/cpp/include/qpid/framing/FieldValue.h @@ -98,6 +98,7 @@ class FieldValue { template <typename T> T get() const { throw InvalidConversionException(); } template <class T, int W> T getIntegerValue() const; + template <class T> T getIntegerValue() const; template <class T, int W> T getFloatingPointValue() const; template <int W> void getFixedWidthValue(unsigned char*) const; template <class T> bool get(T&) const; @@ -196,6 +197,18 @@ inline T FieldValue::getIntegerValue() const } } +template <class T> +inline T FieldValue::getIntegerValue() const +{ + FixedWidthValue<1>* const fwv = dynamic_cast< FixedWidthValue<1>* const>(data.get()); + if (fwv) { + uint8_t* octets = fwv->rawOctets(); + return octets[0]; + } else { + throw InvalidConversionException(); + } +} + template <class T, int W> inline T FieldValue::getFloatingPointValue() const { FixedWidthValue<W>* const fwv = dynamic_cast< FixedWidthValue<W>* const>(data.get()); |