
Hi Patrick, On Mon, December 20, 2010 1:52 am, Patrick Horgan wrote:
I get a number of the same failures when doing a clean build of boost trunk with a recent gcc (4.6.0).
libs/signals/src/named_slot_map.cpp:105:23: instantiated from here error: call of overloaded erase(...[snip]...iterator&) is ambiguous
I hit this issue building boost 1.44.0 with gcc trunk last night. The following patch works around the ambiguity by using const_group_iterator instead of just group_iterator. Don't know if this is an issue with boost or gcc but this got it building for me. Note that I don't know about any performance or run-time issues this patch may cause -- I just wanted to get it built. Regards, Adam --- boost_1_44_0/libs/signals/src/named_slot_map.cpp +++ boost_1_44_0/libs/signals/src/named_slot_map.cpp @@ -102,7 +102,7 @@ i->first.disconnect(); i = next; } - groups.erase(group); + groups.erase(const_group_iterator(group)); } } @@ -125,7 +125,7 @@ } // Clear out empty groups - if (empty(g)) groups.erase(g++); + if (empty(g)) groups.erase(const_group_iterator(g++)); else ++g; } }