id summary reporter owner description type status milestone component version severity resolution keywords cc 3746 list_iterator::operator == fails to accept a non-const var to the left and a const one to the right gvlad@… Ion Gaztañaga "The following code fails to compile (msvc 9): using namespace boost::intrusive; struct my_struct : list_base_hook<> {}; typedef list my_list; my_list l; my_list::const_iterator it = l.begin(); if (l.end() == it) {} // fails if (it == l.end()) {} // succeeds If to use std::list there is no such problem because std::list::iterator is derived from std::list::const_iterator. My suggesion is to use template ""operator =="" for list_iterator that accepts both const and non-const interator. For example: (""list_node.hpp"") template bool operator== (const list_iterator& i) const { return members_.nodeptr_ == i.pointed_node(); }" Bugs closed Boost 1.45.0 intrusive Boost 1.41.0 Problem fixed