From a7c69ec12aec23036bfdb6447e7c38b001a40f3d Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Mon, 15 Oct 2012 11:45:31 +1100 Subject: Fix up to build with clang (and fix another bug) - Remove exceptions - Remove dynamic casts The bug was relating to MaxStrategy not cleaning up the influence sets after propagating changes. I just added a call to .clear() and it seems fine. --- impl/MaxStrategy.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'impl/MaxStrategy.hpp') diff --git a/impl/MaxStrategy.hpp b/impl/MaxStrategy.hpp index 667c127..f330f3b 100644 --- a/impl/MaxStrategy.hpp +++ b/impl/MaxStrategy.hpp @@ -61,6 +61,7 @@ struct DynamicMaxStrategy : public MaxStrategy { ++it) { solve(_system.maxExpression(*it)); } + _var_influence[v].clear(); } private: @@ -93,10 +94,12 @@ private: solve(_system.maxExpression(*it)); } } else { - log::strategy << indent() << x << " did not change" << std::endl; + log::strategy << indent() << x << " did not change: " + << x << " => " << *x.arguments()[val] << std::endl; } } else { - log::strategy << indent() << x << " is stable" << std::endl; + log::strategy << indent() << x << " is stable: " + << x << " => " << *x.arguments()[_values[x]] << std::endl; } } -- cgit v1.2.3