I'd consider the current boost code a bug. After all, it is templatized on Char/Traits, yet uses a value coming from a (possibly) different instantiation.
Andre' -- Those who desire to give up Freedom in order to gain Security, will not have, nor do they deserve, either one. (T. Jefferson or B. Franklin or both...)
Index: boost/format/parsing.hpp =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/boost/boost/format/parsing.hpp,v retrieving revision 1.4 diff -u -p -r1.4 parsing.hpp --- boost/format/parsing.hpp 20 Mar 2003 23:09:17 -0000 1.4 +++ boost/format/parsing.hpp 30 Jun 2003 11:40:50 -0000 @@ -361,7 +361,7 @@ void basic_format<Ch, Traits> ::parse(co // A: find upper_bound on num_items and allocates arrays i1=0; - while( (i1=buf.find(arg_mark,i1)) != string::npos ) + while( (i1=buf.find(arg_mark,i1)) != string_t::npos ) { if( i1+1 >= buf.size() ) { if(exceptions() & io::bad_format_string_bit) @@ -385,7 +385,7 @@ void basic_format<Ch, Traits> ::parse(co typename string_t::size_type i0 = i1; bool special_things=false; int cur_it=0; - while( (i1=buf.find(arg_mark,i1)) != string::npos ) + while( (i1=buf.find(arg_mark,i1)) != string_t::npos ) { string_t & piece = (cur_it==0) ? prefix_ : items_[cur_it-1].appendix_;