
For the following code: // start of code #include <iostream> #include <string> #include <boost/tokenizer.hpp> int main() { using namespace std; using namespace boost; string s = "first second third"; tokenizer<> tok(s); for(tokenizer<>::iterator i = tok.begin(); i != tok.end(); ++i) cout << *i << "\n"; } // end of code With the Sun CC compiler (Sun WorkShop 6 update 2 C++ 5.3), I get the following error message: "/usr/include/boost/iterator/iterator_facade.hpp", line 623: Error: Could not find a match for boost::iterator_core_access::equal<boost::iterator_core_access::Facade1, boost::iterator_core_access::Facade2>(const boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, const boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, boost::is_convertible<boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>). "t.cpp", line 15: Where: While instantiating "boost::operator!=<boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::forward_traversal_tag, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int, boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::forward_traversal_tag, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int>(const boost::iterator_facade<boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::forward_traversal_tag, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int>&, const boost::iterator_facade<boost::token_iterator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, boost::forward_traversal_tag, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int>&)". "t.cpp", line 15: Where: Instantiated from non-template code. 1 Error(s) detected. What could be the problem here? If Sun CC 5.3 doesnt support boost::tokenizer at all, are there any workarounds that I could use?