http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51142
Bug #: 51142 Summary: [C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG. Classification: Unclassified Product: gcc Version: 4.6.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pl...@agmk.net Created attachment 25828 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25828 testcase $ LANG=C make g++ -Wall -std=c++0x t.cpp -c --save-temps -D_GLIBCXX_DEBUG In file included from /usr/include/c++/4.6.2/debug/map:34:0, from /usr/include/c++/4.6.2/map:66, from t.cpp:2: /usr/include/c++/4.6.2/debug/map.h: In member function 'std::__debug::map<_Key, _Tp, _Compare, _Allocator>::size_type std::__debug::map<_Key, _Tp, _Compare, _Allocator>::erase(const key_type&) [with _Key = boost::variant<bool>, _Tp = unsigned int, _Compare = std::less<boost::variant<bool> >, _Allocator = std::allocator<std::pair<const boost::variant<bool>, unsigned int> >, std::__debug::map<_Key, _Tp, _Compare, _Allocator>::size_type = long unsigned int, std::__debug::map<_Key, _Tp, _Compare, _Allocator>::key_type = boost::variant<bool>]': t.cpp:10:15: instantiated from here /usr/include/c++/4.6.2/debug/map.h:295:6: error: call of overloaded 'erase(std::__debug::map<boost::variant<bool>, unsigned int>::_Base_iterator&)' is ambiguous /usr/include/c++/4.6.2/debug/map.h:295:6: note: candidates are: /usr/include/c++/4.6.2/bits/stl_map.h:613:7: note: std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::iterator std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::erase(std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::const_iterator) [with _Key = boost::variant<bool>, _Tp = unsigned int, _Compare = std::less<boost::variant<bool> >, _Alloc = std::allocator<std::pair<const boost::variant<bool>, unsigned int> >, std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const boost::variant<bool>, unsigned int> >, std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const boost::variant<bool>, unsigned int> >] /usr/include/c++/4.6.2/bits/stl_map.h:643:7: note: std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::size_type std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::erase(const key_type&) [with _Key = boost::variant<bool>, _Tp = unsigned int, _Compare = std::less<boost::variant<bool> >, _Alloc = std::allocator<std::pair<const boost::variant<bool>, unsigned int> >, std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::size_type = long unsigned int, std::__cxx1998::map<_Key, _Tp, _Compare, _Alloc>::key_type = boost::variant<bool>] make: *** [all] Error 1