From a4d96f79bfd0d3f1faffcd46c223f63c12a00eb4 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 25 Sep 2004 04:21:28 -0400 Subject: [PATCH] corrected a small problem with conversion of numeric types to amount_t's --- amount.h | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/amount.h b/amount.h index ed1c9bb5..0761c068 100644 --- a/amount.h +++ b/amount.h @@ -184,28 +184,25 @@ class amount_t template void parse_num(T num) { - std::string str; - { std::ostringstream strstr(str); - strstr << num; - } - { std::istringstream strstr(str); - parse(strstr); - } + std::ostringstream temp; + temp << num; + std::istringstream in(temp.str()); + parse(in); } int sign() const; // POD comparisons -#define AMOUNT_CMP_INT(OP) \ - template \ - bool operator OP (T num) const { \ - if (num == 0) { \ - return sign() OP 0; \ - } else { \ - amount_t amt; \ - amt.parse_num(num); \ - return *this OP amt; \ - } \ +#define AMOUNT_CMP_INT(OP) \ + template \ + bool operator OP (T num) const { \ + if (num == 0) { \ + return sign() OP 0; \ + } else { \ + amount_t amt; \ + amt.parse_num(num); \ + return *this OP amt; \ + } \ } AMOUNT_CMP_INT(<)