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
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_convertibleboost::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".
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp",
line 90: Where: Specialized in
boost::token_iterator_generator, const char*, std::basic_string>.
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp",
line 37: Where: Specialized in
boost::tokenizer, const char*, std::basic_string>.
"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".
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp",
line 90: Where: Specialized in
boost::token_iterator_generator, const char*, std::basic_string>.
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp",
line 37: Where: Specialized in
boost::tokenizer, const char*, std::basic_string>.
"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".
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/token_iterator.hpp",
line 90: Where: Specialized in
boost::token_iterator_generator, const char*, std::basic_string>.
"/nsm/rollsbuild/thirdparty/boost/boost_1_25_0/boost/tokenizer.hpp",
line 37: Where: Specialized in
boost::tokenizer, const char*, std::basic_string>.
"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