From a7a845a803eaedf07ba228e2a80b1f66e86d0925 Mon Sep 17 00:00:00 2001 From: Richard Roberts Date: Thu, 26 Jan 2012 06:04:55 +0000 Subject: [PATCH] (in branch) Fixed some compile errors --- gtsam/nonlinear/DynamicValues-inl.h | 2 +- gtsam/nonlinear/DynamicValues.cpp | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gtsam/nonlinear/DynamicValues-inl.h b/gtsam/nonlinear/DynamicValues-inl.h index deb81d567..b1d67de08 100644 --- a/gtsam/nonlinear/DynamicValues-inl.h +++ b/gtsam/nonlinear/DynamicValues-inl.h @@ -96,7 +96,7 @@ namespace gtsam { /* ************************************************************************* */ template void DynamicValues::insert(const Symbol& j, const ValueType& val) { - std::pair insertResult = values_.insert(make_pair(j, ValuePtr(new ValueType(val)))); + std::pair insertResult = values_.insert(make_pair(j, new ValueType(val))); if(!insertResult.second) throw DynamicValuesKeyAlreadyExists(j); } diff --git a/gtsam/nonlinear/DynamicValues.cpp b/gtsam/nonlinear/DynamicValues.cpp index 1901ab40e..1e7996788 100644 --- a/gtsam/nonlinear/DynamicValues.cpp +++ b/gtsam/nonlinear/DynamicValues.cpp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace std; @@ -79,7 +80,7 @@ namespace gtsam { BOOST_FOREACH(const KeyValuePair& key_value, values_) { const SubVector& singleDelta = delta[ordering[key_value.first]]; // Delta for this value ValuePtr retractedValue(key_value.second->retract_(singleDelta)); // Retract - result.values_.insert(make_pair(key_value.first, retractedValue)); // Add retracted result directly to result values + result.values_[key_value.first] = retractedValue; // Add retracted result directly to result values } return result; @@ -105,8 +106,8 @@ namespace gtsam { /* ************************************************************************* */ void DynamicValues::insert(const DynamicValues& values) { - BOOST_FOREACH(const KeyValuePair& key_value, values) { - insert(key_value.first, key_value.second); + BOOST_FOREACH(const KeyValuePair& key_value, values.values_) { + values_.insert(make_pair(key_value.first, key_value.second->clone_())); } } @@ -128,8 +129,8 @@ namespace gtsam { /* ************************************************************************* */ FastList DynamicValues::keys() const { return FastList( - boost::make_transform_iterator(values_.begin(), &KeyValuePair::first), - boost::make_transform_iterator(values_.end(), &KeyValuePair::first)); + boost::make_transform_iterator(values_.begin(), boost::bind(&KeyValuePair::first, _1)), + boost::make_transform_iterator(values_.end(), boost::bind(&KeyValuePair::first, _1))); } /* ************************************************************************* */ @@ -145,14 +146,14 @@ namespace gtsam { // Transform with Value::dim(auto_ptr::get(KeyValuePair::second)) result.assign( boost::make_transform_iterator(values_.begin(), - boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second)))), + boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second, _1)))), boost::make_transform_iterator(values_.begin(), - boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second))))); + boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second, _1))))); return result; } /* ************************************************************************* */ - Ordering::shared_ptr DynamicValues::orderingArbitrary(Index firstVar = 0) const { + Ordering::shared_ptr DynamicValues::orderingArbitrary(Index firstVar) const { Ordering::shared_ptr ordering(new Ordering); BOOST_FOREACH(const KeyValuePair& key_value, values_) { ordering->insert(key_value.first, firstVar++);