
This 2-liner: --------------------------- #include <boost/algorithm/string.hpp> #include <boost/range/iterator_range.hpp> --------------------------- produces error with Intel C++ 7.0 for Windows (plugged in VC6 IDE, old Dinkumware): P:\N\src\boost_1_32_0\boost/range/iterator_range.hpp(78): error: class template "boost::algorithm::iterator_range" may not be redeclared in the current scope class iterator_range ^ P:\N\src\boost_1_32_0\boost/range/iterator_range.hpp(78): error: class template "boost::algorithm::iterator_range" has already been defined class iterator_range ------ Comment on this from Eric Niebler: it's a compiler bug, algorithm/string.hpp causes iterator_range to be declared in boost::algorithm namespace, and range/iterator_range.hpp causes a different iterator_range to be defined in the boost namespace. That's fine, but your compiler doesn't seem to like it. The fix is probably to make the string algorithms use boost::iterator_range instead of defining its own version. ------ /Pavel