This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: num_get<>::do_get patch



1999-04-23  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>

	* bits/locfacets.tcc (num_get<>::do_get):
	  Fix the sscanf format parameter for long long 'L' instead of 'l'.
          Fix the order of sscanf format parameters: "%dL" --> "%Ld".
	  Change the type of the local variable '__conv' from 'string'
	  to 'const char*' and adapt the change.

See attachment.

BTW. The implementation of num_get<> uses a lot of string objects.
A byte array (char buf[256] or so) would be enough for the numeric types.


Ryszard Kabatek
Martin-Luther University Halle-Wittenberg, Department of Physical Chemistry
Geusaer Str. 88, 06217 Merseburg, Germany
Tel. +49 3461 46 2487 Fax. +49 3461 46 2129
*** lib3-cvs/libstdc++/bits/locfacets.tcc	Thu Apr 22 10:43:44 1999
--- locfacets1.tcc	Fri Apr 23 11:56:41 1999
*************** namespace std
*** 366,381 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 366,386 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%ho";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%hX";
  
        else if (__basefield == 0)
! 	__conv = "%hi";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 383,402 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%d";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'h';
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 388,401 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%hd";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 416,422 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
--- 415,421 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
*************** namespace std
*** 440,446 ****
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 439,445 ----
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 461,476 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 460,480 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%lo";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%lX";
  
        else if (__basefield == 0)
! 	__conv = "%li";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 478,497 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%d";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'l';
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 482,495 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%ld";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 512,527 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 510,530 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%Lo";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%LX";
  
        else if (__basefield == 0)
! 	__conv = "%Li";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 529,548 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%d";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'l'; // XXX ?
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 532,545 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%Ld";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 563,578 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 560,580 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%ho";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%hX";
  
        else if (__basefield == 0)
! 	__conv = "%hi";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 580,599 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%u";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'h';
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 582,595 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%hu";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 613,619 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
--- 609,615 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
*************** namespace std
*** 637,643 ****
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 633,639 ----
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 657,672 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 653,673 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%lo";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%lX";
  
        else if (__basefield == 0)
! 	__conv = "%li";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 674,693 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%u";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'l';
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 675,688 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%lu";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 708,723 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 703,723 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%Lo";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%LX";
  
        else if (__basefield == 0)
! 	__conv = "%Li";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 725,744 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%u";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'l'; // XXX ?
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 725,738 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%Lu";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 759,765 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
--- 753,759 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
*************** namespace std
*** 783,789 ****
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 777,783 ----
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 803,809 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
--- 797,803 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
*************** namespace std
*** 827,833 ****
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 821,827 ----
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 847,862 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
! 	__conv = "%o";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%X";
  
        else if (__basefield == 0)
! 	__conv = "%i";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
--- 841,861 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double || long long = L
  
        if (__basefield == ios_base::oct)
! 	__conv = "%Lo";
  
        else if (__basefield == ios_base::hex)
! 	__conv = "%LX";
  
        else if (__basefield == 0)
! 	__conv = "%Li";
  
        // Add this in for each overloaded mf. Choices are:
        // = %d for signed ints
*************** namespace std
*** 864,883 ****
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%g";
! 
!       // Add a length modifier, if necessary for this mf. Choices are:
!       // short || unsigned short = h
!       // long || unsigned long  = l
!       // long double = L
!       __conv += 'L';
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 863,876 ----
        // = %g for floats
        // = %p for void*
        else
! 	__conv = "%Lg";
  
        // Stage 2: extract
        string __xtrc;
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
*************** namespace std
*** 897,903 ****
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       string __conv;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
--- 890,896 ----
        ios_base::fmtflags __basefield = __flags & ios_base::basefield;
        ios_base::fmtflags __uppercase = __flags & ios_base::uppercase;
        ios_base::fmtflags __boolalpha = __flags & ios_base::boolalpha;
!       const char* __conv = 0;
  
        if (__basefield == ios_base::oct)
  	__conv = "%o";
*************** namespace std
*** 921,927 ****
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv.c_str(), &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else
--- 914,920 ----
        _M_extract(__beg, __end, __io, __err, __xtrc);
  
        // Stage 3: store results.
!       int __ok = sscanf(__xtrc.c_str(), __conv, &__v);
        if (__ok && __ok != __traits_type::eof())
  	__err = ios_base::goodbit;
        else

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]