Can anyone explain to me why the code below prints:
Token: A1B21
Token: A1B
Token: :
Token: 12
Instead of printing:
Token: A1B2
Token: :
Token: 12
Token: A1B
Token: :
Token: 12
Using boost 1.31.0
Thanks!
---Cut here---
#include
On Sat, 21 Feb 2004 03:31:49 -0800, Thomas Johnson wrote:
boost::tokenizer< boost::char_separator<char> > stringTok(std::string("A1B2:12"),sep);
you have undefined behaviour here. Tokenizer does not store copy of string it was initialized with, it only stores its iterators. These iterators are invalid when above expression is evaluated, because string you used to initialize tokenizer was temporary variable. B. -- Popieram program obniżenia podatków: www.odpowiedzialnosc.org
participants (2)
-
Bronek Kozicki
-
Thomas Johnson