id summary reporter owner description type status milestone component version severity resolution keywords cc 5191 intrusive unordered_set: const version of iterator_to() won't compile paul.d.rose@… Ion Gaztañaga "Discovered on 1_38_0 using g++ 4.3.2 on SuSE Linux Reproduced on 1_45_0 using g++ 4.2.1 on Macintosh (XCode) Reproduce by adding {{{ MyClass const &cr = values[0]; base_set.iterator_to(cr); }}} to the bottom of the documentation example for unordered_set. iterator_to is trying to construct a const_iterator from a const bucket iterator, but this isn't supported by the iterator constructor. That lack of support by the iterator constructor seems to be by design (the internal bucket iterator is a non-const slist iterator). It appears that iterator_to is trying to call the non-cost priv_value_to_node by casting away the constness of the value param, but since the 'this' pointer is still const, the const version of priv_value_to_node is called instead. Removing the const_cast of hte value param, and adding a const_cast to the return value of priv_value_to_node seems to fix things just fine in 1_38_0. I tried changing: {{{ return const_iterator(bucket_type::s_iterator_to( priv_value_to_node(const_cast(value))), this); }}} to: {{{ return const_iterator(bucket_type::s_iterator_to( const_cast(priv_value_to_node(value))), this); }}} in iterator_to in file boost/intrusive/hashtable.hpp (near line 1682 in 1_38_0) and it seems to be working just fine." Bugs closed To Be Determined intrusive Boost 1.45.0 Problem fixed