www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - Bug or change in the 1.8.1 release of string_tokeniser

reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
I have the following code:

  tokenizer toks(m_line.substr(0, pos), '*');
  tokenizer::const_iterator it(toks.begin());
  assert(it != toks.end());

Where m_line is an std::string member variable, tokenizer is:

typedef stlsoft_ns_qual(string_tokeniser)<
   std::string
 , char
 , stlsoft_ns_qual(string_tokeniser_ignore_blanks)<false>
 tokenizer;
The code used to compile with 1.7.1... and I hadn't recompiled it with 1.8.1 'till today, and found out that I now get an ambiguous constructor call on the first line. I went to the stlsoft_string_tokeniser.h file, and commented out the constructor at line 400, and my code compiles again. BTW, the comments for that constructor seem to be leftover comments from what's probably a file search. Attached is a trimmed down test file compile with: cl -GX test.cpp I'm using MS VC++ 6.0 SP 6 / WinXP SP 2 begin 666 test.cpp M(VEN8VQU9&4 /'-T<FEN9SX-"B-I;F-L=61E(#QC87-S97)T/ T*#0HC:6YC M;'5D92 \<W1L<V]F=%]S=')I;F=?=&]K96YI<V5R+F ^#0H-"G1Y<&5D968 M<W1L<V]F=%]N<U]Q=6%L*'-T<FEN9U]T;VME;FES97(I/ T*(" (" <W1D M.CIS=')I;F<-"B (" L(&-H87(-"B (" L('-T;'-O9G1?;G-?<75A;"AS M=')I;F=?=&]K96YI<V5R7VEG;F]R95]B;&%N:W,I/&9A;'-E/ T*/B!T;VME M;FEZ97([#0H-"G9O:60 ;6%I;B I#0I[#0H (" =6YS:6=N960 <&]S.PT* M(" ('-T9#HZ<W1R:6YG(&U?;&EN93L-" T*(" ('1O:V5N:7IE<B!T;VMS M*&U?;&EN92YS=6)S='(H,"P <&]S*2P )RHG*3L-"B ("!T;VME;FEZ97(Z M.F-O;G-T7VET97)A=&]R(&ET*'1O:W,N8F5G:6XH*2D[#0H (" 87-S97)T :*&ET("$]('1O:W,N96YD*"DI.PT*?0T*#0H` ` end
Sep 29 2004
parent reply "Matthew" <admin.hat stlsoft.dot.org> writes:
Hmmm. That's not good!

I'll investigate.

Sorry for the hassles.


"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:cjf42t$1egi$1 digitaldaemon.com...
I have the following code:

  tokenizer toks(m_line.substr(0, pos), '*');
  tokenizer::const_iterator it(toks.begin());
  assert(it != toks.end());

 Where m_line is an std::string member variable, tokenizer is:

 typedef stlsoft_ns_qual(string_tokeniser)<
   std::string
 , char
 , stlsoft_ns_qual(string_tokeniser_ignore_blanks)<false>
 tokenizer;
The code used to compile with 1.7.1... and I hadn't recompiled it with 1.8.1 'till today, and found out that I now get an ambiguous constructor call on the first line. I went to the stlsoft_string_tokeniser.h file, and commented out the constructor at line 400, and my code compiles again. BTW, the comments for that constructor seem to be leftover comments from what's probably a file search. Attached is a trimmed down test file compile with: cl -GX test.cpp I'm using MS VC++ 6.0 SP 6 / WinXP SP 2
Sep 29 2004
parent reply "Matthew" <admin.hat stlsoft.dot.org> writes:
This is an issue that I've been needing to get sorted in a long while, with a
proper 
STLSOFT_CF_MEMBER_TEMPLATE_OVERLOAD_DISCRIMINATED symbol, or some such, so I
guess now's the time.

I need to release a 1.8.2 shortly, as there've been some other fixes, which
other libs about to be released depend on, 
so hopefully I can roll this all in together.

Thanks again for your excellent spotting and diagnosis skills. ;-)

Matthew



"Matthew" <admin.hat stlsoft.dot.org> wrote in message
news:cjf9jo$1ieo$1 digitaldaemon.com...
 Hmmm. That's not good!

 I'll investigate.

 Sorry for the hassles.


 "Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:cjf42t$1egi$1 digitaldaemon.com...
I have the following code:

  tokenizer toks(m_line.substr(0, pos), '*');
  tokenizer::const_iterator it(toks.begin());
  assert(it != toks.end());

 Where m_line is an std::string member variable, tokenizer is:

 typedef stlsoft_ns_qual(string_tokeniser)<
   std::string
 , char
 , stlsoft_ns_qual(string_tokeniser_ignore_blanks)<false>
 tokenizer;
The code used to compile with 1.7.1... and I hadn't recompiled it with 1.8.1 'till today, and found out that I now get an ambiguous constructor call on the first line. I went to the stlsoft_string_tokeniser.h file, and commented out the constructor at line 400, and my code compiles again. BTW, the comments for that constructor seem to be leftover comments from what's probably a file search. Attached is a trimmed down test file compile with: cl -GX test.cpp I'm using MS VC++ 6.0 SP 6 / WinXP SP 2
Sep 29 2004
parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
 This is an issue that I've been needing to get sorted in a long while, 
 with a proper STLSOFT_CF_MEMBER_TEMPLATE_OVERLOAD_DISCRIMINATED symbol, or 
 some such, so I guess now's the time.

 I need to release a 1.8.2 shortly, as there've been some other fixes, 
 which other libs about to be released depend on, so hopefully I can roll 
 this all in together.

 Thanks again for your excellent spotting and diagnosis skills. ;-)

 Matthew
Skills... hmm... I just press F7 and the bugs come out on their own! ;-)
Sep 29 2004
parent "Matthew" <admin.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:cjfm6k$1nsq$1 digitaldaemon.com...
 This is an issue that I've been needing to get sorted in a long while, with a
proper 
 STLSOFT_CF_MEMBER_TEMPLATE_OVERLOAD_DISCRIMINATED symbol, or some such, so I
guess now's the time.

 I need to release a 1.8.2 shortly, as there've been some other fixes, which
other libs about to be released depend 
 on, so hopefully I can roll this all in together.

 Thanks again for your excellent spotting and diagnosis skills. ;-)

 Matthew
Skills... hmm... I just press F7 and the bugs come out on their own! ;-)
LOL! Ok, I've done the update. I'll attempt to post a patch next week. Thanks again for the feedback. Cheers Matthew
Sep 29 2004