Angus Leeming <[EMAIL PROTECTED]> writes:

| Lars, what the fuck have you done to getVectorFromString?

:-)

The fuctions description is completely bogus then, and behaves
differently from _all_ similiar functions that I have ever seen.

Delim is used in a really magic way... the function need to be
renamed and documented properly.

Turn the #if on!
On second thought, don't! I'd rather go through the sources and fix up
the cases that expects this behaviour from getVectorFromString.

| 
|       vector<string> const authors = getVectorFromString(author, " and ");

I'd also say that this is misuse of this function.

delim should not be "string to split on" -> use split for that, it is
"chars to use as delimiters".
 
|       vector<string>::const_iterator cit = authors.begin();
|       vector<string>::const_iterator end = authors.end();
|       for (; cit != end; ++cit) {
|               std::cerr << "*it = \"" << *cit << '\"' << std::endl;
|       }
| 
| author = "J.P. Butler and A. Tsuda"
| *it = "J.P."
| *it = "Butler"
| *it = "A."
| *it = "Tsu"
| 
| author = "A. Wonhas and J.C. Vassilicos"
| *it = "A."
| *it = "Wo"
| *it = "h"
| *it = "s"
| *it = "J.C."
| *it = "V"
| *it = "ssilicos"
| 
| I think that this test confirms that this:
| 
| vector<string> const getVectorFromString(string const & str,
|                                        string const & delim)
| {
|       boost::char_separator<char> sep(delim.c_str());
|       boost::tokenizer<boost::char_separator<char> > tokens(str, sep);
|       return vector<string>(tokens.begin(), tokens.end());
| }
| 
| is absolutely, totally, buggered.

actually it is working just as I planned it to work.

-- 
        Lgb

Reply via email to