diff options
| author | Benjamin Kosnik <bkoz@redhat.com> | 2001-12-12 23:16:35 +0000 |
|---|---|---|
| committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2001-12-12 23:16:35 +0000 |
| commit | 9e5c7dba50d3ad60d6920b76c1e20e0e401927e6 (patch) | |
| tree | 730003a3ac41256c22a9fa2ccf2908348ac6572c /libstdc++-v3/src | |
| parent | 63de15a4b4f6f9e9422f21289ebe12a06c8fe30a (diff) | |
| download | gcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.tar.gz gcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.tar.bz2 gcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.zip | |
Named locale support for ctype<char>.
2001-12-12 Benjamin Kosnik <bkoz@redhat.com>
Named locale support for ctype<char>.
* config/locale/c_locale_gnu.h (_GLIBCPP_C_LOCALE_GNU): New.
* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>): Add
definitions for alternate constructor.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/irix6.5/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/irix5.2/bits/ctype_noninline.h (ctype): Same.
* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
* config/os/generic/bits/ctype_noninline.h (ctype): Same.
* config/os/djgpp/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
* config/os/aix/bits/ctype_noninline.h (ctype): Same.
* include/bits/locale_facets.h (ctype<_CharT>): Remove dummy
definitions for all virtual functions. These are now explicitly
undefined for non-required factets, ie any non-char, non-wchar_t
instantiations.
* src/localename.cc (locale::_Impl::_Impl(string, size_t): Named
locales use alternate constructor for ctype facet.
* include/bits/locale_facets.h (ctype<char>::ctype(__c_locale, const
mask*, bool, size_t): Add.
(ctype<wchar_t>::ctype(__c_locale, size_t): Add.
* src/locale.cc (ctype<wchar_t>::ctype(__c_locale, size_t)): Add
definition.
* testsuite/22_locale/ctype_members_char.cc (test02): Add, mark
XFAIL for non-gnu locale models.
From-SVN: r47953
Diffstat (limited to 'libstdc++-v3/src')
| -rw-r--r-- | libstdc++-v3/src/locale.cc | 7 | ||||
| -rw-r--r-- | libstdc++-v3/src/localename.cc | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc index 14938d9d730..d827a256436 100644 --- a/libstdc++-v3/src/locale.cc +++ b/libstdc++-v3/src/locale.cc @@ -484,8 +484,11 @@ namespace std // NB: These ctype<wchar_t> methods are not configuration-specific, // unlike the ctype<char> bits. - ctype<wchar_t>::ctype(size_t __refs) : __ctype_abstract_base<wchar_t>(__refs) - { } + ctype<wchar_t>::ctype(size_t __refs) + : __ctype_abstract_base<wchar_t>(__refs) { } + + ctype<wchar_t>::ctype(__c_locale /*__cloc*/, size_t __refs) + : __ctype_abstract_base<wchar_t>(__refs) { } wchar_t ctype<wchar_t>::do_toupper(wchar_t __c) const diff --git a/libstdc++-v3/src/localename.cc b/libstdc++-v3/src/localename.cc index 738acdef203..2bd34cd4ac8 100644 --- a/libstdc++-v3/src/localename.cc +++ b/libstdc++-v3/src/localename.cc @@ -92,7 +92,7 @@ namespace std // Construct all standard facets and add them to _M_facets. // XXX How to deal cleanly, consistently with null ("C") __cloc? _M_init_facet(new std::collate<char>(__cloc)); - _M_init_facet(new std::ctype<char>); + _M_init_facet(new std::ctype<char>(__cloc)); _M_init_facet(new codecvt<char, char, mbstate_t>); _M_init_facet(new moneypunct<char, false>(__cloc)); _M_init_facet(new moneypunct<char, true>(__cloc)); @@ -108,7 +108,7 @@ namespace std #ifdef _GLIBCPP_USE_WCHAR_T _M_init_facet(new std::collate<wchar_t>(__cloc)); - _M_init_facet(new std::ctype<wchar_t>); + _M_init_facet(new std::ctype<wchar_t>(__cloc)); _M_init_facet(new codecvt<wchar_t, char, mbstate_t>); _M_init_facet(new moneypunct<wchar_t, false>(__cloc)); _M_init_facet(new moneypunct<wchar_t, true>(__cloc)); |
