numericfield: cleanup for floating point types

Rework so floating point values are supported to the same degree as
integer values.

Closes #214
This commit is contained in:
Peter A. Bigot 2018-04-20 20:20:47 -05:00
parent d0a56f4235
commit 4d34c582d0
1 changed files with 4 additions and 3 deletions

View File

@ -30,8 +30,7 @@ namespace AMQP {
template<
typename T,
char F,
typename = typename std::enable_if<std::is_arithmetic<T>::value, T>,
typename = typename std::enable_if<std::is_integral<T>::value, T>
typename = typename std::enable_if<std::is_arithmetic<T>::value, T>
>
class NumericField : public Field
{
@ -126,6 +125,8 @@ public:
operator int16_t () const override { return (int16_t)_value; }
operator int32_t () const override { return (int32_t)_value; }
operator int64_t () const override { return (int64_t)_value; }
operator float () const override { return (float)_value; }
operator double () const override { return (double)_value; }
/**
* Get the value
@ -144,7 +145,7 @@ public:
*/
bool isInteger() const override
{
return true;
return std::is_integral<T>::value;
}
/**