From mboxrd@z Thu Jan 1 00:00:00 1970 From: brendan@zen.org To: gcc-gnats@gcc.gnu.org Subject: libstdc++/3017: locale_facets.h is missing some methods Date: Thu, 31 May 2001 15:06:00 -0000 Message-id: <20010531215614.28327.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg01066.html List-Id: >Number: 3017 >Category: libstdc++ >Synopsis: locale_facets.h is missing some methods >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu May 31 15:06:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: brendan@zen.org >Release: egcs3 src tree >Organization: >Environment: >Description: Attached is a tweak to make locale_facets.h remember to declare some methods that are required to be present for the general ctype class. The change isn't necessarily complete, however. This quiets down compile-time issues, yet at link time many of them come up as undefined due to their absence in the appropriate instantiation files. That's probably the second half of really fixing this. But this is at least a piece of the puzzle. :) B >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/plain; name="diffs-charfacets.txt" Content-Disposition: inline; filename="diffs-charfacets.txt" 2001-05-31 Brendan Kehoe * include/bits/locale_facets.h (class ctype<_CharT>): For generic type, remember to include declarations for do_is, do_scan_is, do_scan_not, do_toupper, do_tolower, do_widen, and do_narrow. *** locale_facets.h.~1~ Mon Feb 19 18:57:40 2001 --- locale_facets.h Sat May 19 22:13:40 2001 *************** namespace std *** 173,176 **** --- 173,218 ---- static locale::id id; + protected: + virtual bool + do_is(mask __m, char_type __c) const; + + virtual const char_type* + do_is(const char_type* __lo, const char_type* __hi, + mask* __vec) const; + + virtual const char_type* + do_scan_is(mask __m, const char_type* __lo, + const char_type* __hi) const; + + virtual const char_type* + do_scan_not(mask __m, const char_type* __lo, + const char_type* __hi) const; + + virtual char_type + do_toupper(char_type) const; + + virtual const char_type* + do_toupper(char_type* __low, const char_type* __high) const; + + virtual char_type + do_tolower(char_type) const; + + virtual const char_type* + do_tolower(char_type* __low, const char_type* __high) const; + + virtual char_type + do_widen(char) const; + + virtual const char* + do_widen(const char* __low, const char* __high, + char_type* __dest) const; + + virtual char + do_narrow(char_type, char __dfault) const; + + virtual const char_type* + do_narrow(const char_type* __low, const char_type* __high, + char __dfault, char* __dest) const; + protected: virtual