Hi, I'm trying to use boost::tokenizer to tokenize colon-separated strings of the form "path1:path2:path3...". I wrote the following simple test program: #include <string> #include "boost/tokenizer.hpp" void func() { std::string s("abc:def:ghi"); boost::char_delimiters_separator<char> tokenizerFunc(false, "", ":"); boost::tokenizer<boost::char_delimiters_separator<char> > tokenizer(s, tokenizerFunc); } However, this fails to compile with the Sun Forte 6U2 compiler. It spews out the following error messages: "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/detail/ob_compressed_pair.hpp", line 416: Warning (Anachronism): Type names qualified by template parameters require "typename". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/detail/ob_compressed_pair.hpp", line 416: Warning (Anachronism): Type names qualified by template parameters require "typename". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/detail/iterator.hpp", line 382: Warning (Anachronism): Type names qualified by template parameters require "typename". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/detail/iterator.hpp", line 382: Warning (Anachronism): Type names qualified by template parameters require "typename". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 922: Error: Invalid template parameter default. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 925: Error: Invalid template parameter default. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 1116: Warning (Anachronism): Type names qualified by template parameters require "typename". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 1133: Error: value is not a member of boost::is_convertible<boost::detail::reduce_to_base_class<std::forward_iterator_tag, boost::detail::iterator_traits<boost::detail::Iterator>::iterator_category>::type*, std::bidirectional_iterator_tag*>. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: While specializing "boost::detail::non_bidirectional_category<const char*>". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: Specialized in boost::token_iterator_generator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp", line 37: Where: Specialized in boost::tokenizer<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "boostTest.cc", line 10: Where: Specialized in non-template code. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 1133: Error: An integer constant expression is required here. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: While specializing "boost::detail::non_bidirectional_category<const char*>". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: Specialized in boost::token_iterator_generator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp", line 37: Where: Specialized in boost::tokenizer<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "boostTest.cc", line 10: Where: Specialized in non-template code. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/iterator_adaptors.hpp", line 1134: Error: The type "boost::STATIC_ASSERTION_FAILURE<0>" is incomplete. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: While specializing "boost::detail::non_bidirectional_category<const char*>". "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp", line 90: Where: Specialized in boost::token_iterator_generator<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp", line 37: Where: Specialized in boost::tokenizer<boost::char_delimiters_separator<char, std::char_traits<char>>, const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>. "boostTest.cc", line 10: Where: Specialized in non-template code. 5 Error(s) and 7 Warning(s) detected. *** Error code 5 Am I using the class incorrectly, or is this a genuine problem? Jules d'Entremont -- Jules d'Entremont jules.dentremont@alcatel.com Alcatel Canada http://batai.ca.newbridge.com/~julesd 600 March Road 613-784-6633 Kanata ON, K2K 2E6