summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2012-03-09 03:19:25 -0600
committerJohn Wiegley <johnw@newartisans.com>2012-03-09 03:19:25 -0600
commit628875b33c4f1cd202091c9347ef0176f8b688fa (patch)
treea3de0dc0572a2cced0fb9eabc85b7591da03642c
parentb0cf90ab50ac42d3184d70cb1906778df034ddaa (diff)
downloadfork-ledger-628875b33c4f1cd202091c9347ef0176f8b688fa.tar.gz
fork-ledger-628875b33c4f1cd202091c9347ef0176f8b688fa.tar.bz2
fork-ledger-628875b33c4f1cd202091c9347ef0176f8b688fa.zip
Use Boost.Tuple
-rw-r--r--src/commodity.cc14
-rw-r--r--src/commodity.h8
-rw-r--r--src/system.hh.in5
3 files changed, 14 insertions, 13 deletions
diff --git a/src/commodity.cc b/src/commodity.cc
index dd1b2743..963fb646 100644
--- a/src/commodity.cc
+++ b/src/commodity.cc
@@ -129,16 +129,16 @@ commodity_t::find_price(const optional<commodity_t&>& commodity,
if (target && *this == *target)
return none;
- optional<base_t::time_and_commodity_t> pair =
- base_t::time_and_commodity_t(base_t::optional_time_pair_t(moment, oldest),
- commodity ? &(*commodity) : NULL);
+ optional<base_t::memoized_price_entry>
+ entry(base_t::memoized_price_entry(moment, oldest,
+ commodity ? &(*commodity) : NULL));
DEBUG("commodity.price.find", "looking for memoized args: "
<< (moment ? format_datetime(*moment) : "NONE") << ", "
<< (oldest ? format_datetime(*oldest) : "NONE") << ", "
<< (commodity ? commodity->symbol() : "NONE"));
{
- base_t::memoized_price_map::iterator i = base->price_map.find(*pair);
+ base_t::memoized_price_map::iterator i = base->price_map.find(*entry);
if (i != base->price_map.end()) {
DEBUG("commodity.price.find", "found! returning: "
<< ((*i).second ? (*i).second->price : amount_t(0L)));
@@ -162,7 +162,7 @@ commodity_t::find_price(const optional<commodity_t&>& commodity,
pool().commodity_price_history.find_price(*this, *target, when, oldest) :
pool().commodity_price_history.find_price(*this, when, oldest);
- if (pair) {
+ if (entry) {
if (base->price_map.size() > base_t::max_price_map_size) {
DEBUG("history.find",
"price map has grown too large, clearing it by half");
@@ -172,9 +172,9 @@ commodity_t::find_price(const optional<commodity_t&>& commodity,
DEBUG("history.find",
"remembered: " << (point ? point->price : amount_t(0L)));
- base->price_map.insert
- (base_t::memoized_price_map::value_type(*pair, point));
+ base->price_map.insert(base_t::memoized_price_map::value_type(*entry, point));
}
+
return point;
}
diff --git a/src/commodity.h b/src/commodity.h
index 3f493f8b..1358966e 100644
--- a/src/commodity.h
+++ b/src/commodity.h
@@ -117,11 +117,9 @@ protected:
optional<amount_t> larger;
optional<expr_t> value_expr;
- typedef std::pair<optional<datetime_t>,
- optional<datetime_t> > optional_time_pair_t;
- typedef std::pair<optional_time_pair_t,
- commodity_t *> time_and_commodity_t;
- typedef std::map<time_and_commodity_t,
+ typedef tuple<optional<datetime_t>,
+ optional<datetime_t>, commodity_t *> memoized_price_entry;
+ typedef std::map<memoized_price_entry,
optional<price_point_t> > memoized_price_map;
static const std::size_t max_price_map_size = 16;
diff --git a/src/system.hh.in b/src/system.hh.in
index 5e5a0c1d..fcc8e2ce 100644
--- a/src/system.hh.in
+++ b/src/system.hh.in
@@ -183,8 +183,11 @@ typedef std::ostream::pos_type ostream_pos_type;
#include <boost/regex/icu.hpp>
#else
#include <boost/regex.hpp>
-
#endif // HAVE_BOOST_REGEX_UNICODE
+
+#include <boost/tuple/tuple.hpp>
+#include <boost/tuple/tuple_comparison.hpp>
+
#include <boost/variant.hpp>
#include <boost/version.hpp>