Boost.Tokenizer / Sep - Compile-time errors ...
Hi,
Here is a piece of code that _only_ works when I provide it a hard-coded
constant ";":
typedef boost::char_separator
Hi,
Here is a piece of code that _only_ works when I provide it a hard-coded constant ";":
typedef boost::char_separator
sep_type_t; typedef boost::tokenizer tokenizer_t; sep_(pa_->separator_.c_str()), t_(messageString,sep_), i_(t_.begin())
It wouldn't work with the separator passed in a variable (pa_->separator.c_str()). Tokenizer wouldn't work even if I initialize a const char* with a ";" and then pass that const char *variable to sep_ above. It gives me the following errors on if I pass separator in a variable:
error C2780: 'bool boost::char_separator<Char>::operator ()(InputIterator &,InputIterator,Token &)' : expects 3 arguments - 1 provided
Any idea how I can pass it a separator in a variable?
The following code compiles fine with MSVC10 and gcc:
#include
Thanks, Nate. Instead of writing "const std::string& separator", I wrote
"std::string separator" - missed this somehow. can't believe it. Thank you,
again.
On Wed, Aug 3, 2011 at 4:07 AM, Nathan Ridge
Hi,
Here is a piece of code that _only_ works when I provide it a hard-coded constant ";":
typedef boost::char_separator
sep_type_t; typedef boost::tokenizer tokenizer_t; sep_(pa_->separator_.c_str()), t_(messageString,sep_), i_(t_.begin())
It wouldn't work with the separator passed in a variable (pa_->separator.c_str()). Tokenizer wouldn't work even if I initialize a const char* with a ";" and then pass that const char *variable to sep_ above. It gives me the following errors on if I pass separator in a variable:
error C2780: 'bool boost::char_separator<Char>::operator ()(InputIterator &,InputIterator,Token &)' : expects 3 arguments - 1 provided
Any idea how I can pass it a separator in a variable?
The following code compiles fine with MSVC10 and gcc:
#include
template <typename char_type_t> struct S { typedef boost::char_separator
sep_type_t; typedef boost::tokenizer tokenizer_t; S(const std::string& messageString, const std::string& separator) : sep_(separator.c_str()), t_(messageString, sep_), i_(t_.begin()) {}
sep_type_t sep_; tokenizer_t t_; typename tokenizer_t::iterator i_; };
int main() { S<char> s("foo bar", " "); }
participants (2)
-
asif saeed
-
Nathan Ridge