stl_alloc.h: Add extern implicit allocator instantiations.
2002-03-07 Benjamin Kosnik <bkoz@redhat.com> * include/bits/stl_alloc.h: Add extern implicit allocator instantiations. * include/bits/basic_string.tcc: Tweak. * include/bits/locale_facets.tcc: Remove default args. Add has_facet, use_facet extern instantiations. * src/stl-inst.cc: Add explicit instantiation. * src/locale-inst.cc: Clean. Remove locale member template instantiations. * testsuite/22_locale/operators.cc (test02): Enable. From-SVN: r50426
This commit is contained in:
parent
5faae4f779
commit
41b4d44bac
9 changed files with 462 additions and 149 deletions
|
@ -1,3 +1,16 @@
|
||||||
|
2002-03-07 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
|
* include/bits/stl_alloc.h: Add extern implicit allocator
|
||||||
|
instantiations.
|
||||||
|
* include/bits/basic_string.tcc: Tweak.
|
||||||
|
* include/bits/locale_facets.tcc: Remove default args. Add
|
||||||
|
has_facet, use_facet extern instantiations.
|
||||||
|
* src/stl-inst.cc: Add explicit instantiation.
|
||||||
|
* src/locale-inst.cc: Clean. Remove locale member template
|
||||||
|
instantiations.
|
||||||
|
|
||||||
|
* testsuite/22_locale/operators.cc (test02): Enable.
|
||||||
|
|
||||||
2002-03-06 Benjamin Kosnik <bkoz@redhat.com>
|
2002-03-06 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
Stephen M. Webb <stephen.webb@bregmasoft.com>
|
Stephen M. Webb <stephen.webb@bregmasoft.com>
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@ GLIBCPP_3.1 {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Names not in an 'extern' block are mangled names.
|
# Names not in an 'extern' block are mangled names.
|
||||||
|
_ZSt9has_facet*;
|
||||||
|
|
||||||
# operator new(unsigned)
|
# operator new(unsigned)
|
||||||
_Znwj;
|
_Znwj;
|
||||||
|
@ -101,4 +102,3 @@ CXXABI_1 {
|
||||||
local:
|
local:
|
||||||
*;
|
*;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2061,36 +2061,38 @@ namespace std
|
||||||
// Inhibit implicit instantiations for required instantiations,
|
// Inhibit implicit instantiations for required instantiations,
|
||||||
// which are defined via explicit instantiations elsewhere.
|
// which are defined via explicit instantiations elsewhere.
|
||||||
// NB: This syntax is a GNU extension.
|
// NB: This syntax is a GNU extension.
|
||||||
|
extern template class vector<locale::facet*>;
|
||||||
|
|
||||||
extern template class moneypunct<char, false>;
|
extern template class moneypunct<char, false>;
|
||||||
extern template class moneypunct<char, true>;
|
extern template class moneypunct<char, true>;
|
||||||
extern template class moneypunct_byname<char, false>;
|
extern template class moneypunct_byname<char, false>;
|
||||||
extern template class moneypunct_byname<char, true>;
|
extern template class moneypunct_byname<char, true>;
|
||||||
extern template class money_get<char, istreambuf_iterator<char> >;
|
extern template class money_get<char>;
|
||||||
extern template class money_put<char, ostreambuf_iterator<char> >;
|
extern template class money_put<char>;
|
||||||
extern template class moneypunct<wchar_t, false>;
|
extern template class moneypunct<wchar_t, false>;
|
||||||
extern template class moneypunct<wchar_t, true>;
|
extern template class moneypunct<wchar_t, true>;
|
||||||
extern template class moneypunct_byname<wchar_t, false>;
|
extern template class moneypunct_byname<wchar_t, false>;
|
||||||
extern template class moneypunct_byname<wchar_t, true>;
|
extern template class moneypunct_byname<wchar_t, true>;
|
||||||
extern template class money_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
extern template class money_get<wchar_t>;
|
||||||
extern template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
extern template class money_put<wchar_t>;
|
||||||
extern template class numpunct<char>;
|
extern template class numpunct<char>;
|
||||||
extern template class numpunct_byname<char>;
|
extern template class numpunct_byname<char>;
|
||||||
extern template class num_get<char, istreambuf_iterator<char> >;
|
extern template class num_get<char>;
|
||||||
extern template class num_put<char, ostreambuf_iterator<char> >;
|
extern template class num_put<char>;
|
||||||
extern template class numpunct<wchar_t>;
|
extern template class numpunct<wchar_t>;
|
||||||
extern template class numpunct_byname<wchar_t>;
|
extern template class numpunct_byname<wchar_t>;
|
||||||
extern template class num_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
extern template class num_get<wchar_t>;
|
||||||
extern template class num_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
extern template class num_put<wchar_t>;
|
||||||
extern template class __timepunct<char>;
|
extern template class __timepunct<char>;
|
||||||
extern template class time_put<char, ostreambuf_iterator<char> >;
|
extern template class time_put<char>;
|
||||||
extern template class time_put_byname<char, ostreambuf_iterator<char> >;
|
extern template class time_put_byname<char>;
|
||||||
extern template class time_get<char, istreambuf_iterator<char> >;
|
extern template class time_get<char>;
|
||||||
extern template class time_get_byname<char, istreambuf_iterator<char> >;
|
extern template class time_get_byname<char>;
|
||||||
extern template class __timepunct<wchar_t>;
|
extern template class __timepunct<wchar_t>;
|
||||||
extern template class time_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
extern template class time_put<wchar_t>;
|
||||||
extern template class time_put_byname<wchar_t, ostreambuf_iterator<wchar_t> >;
|
extern template class time_put_byname<wchar_t>;
|
||||||
extern template class time_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
extern template class time_get<wchar_t>;
|
||||||
extern template class time_get_byname<wchar_t, istreambuf_iterator<wchar_t> >;
|
extern template class time_get_byname<wchar_t>;
|
||||||
extern template class messages<char>;
|
extern template class messages<char>;
|
||||||
extern template class messages_byname<char>;
|
extern template class messages_byname<char>;
|
||||||
extern template class messages<wchar_t>;
|
extern template class messages<wchar_t>;
|
||||||
|
@ -2103,13 +2105,217 @@ namespace std
|
||||||
extern template class collate_byname<char>;
|
extern template class collate_byname<char>;
|
||||||
extern template class collate<wchar_t>;
|
extern template class collate<wchar_t>;
|
||||||
extern template class collate_byname<wchar_t>;
|
extern template class collate_byname<wchar_t>;
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const codecvt<char, char, mbstate_t>&
|
||||||
|
use_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const collate<char>&
|
||||||
|
use_facet<collate<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const numpunct<char>&
|
||||||
|
use_facet<numpunct<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const num_put<char>&
|
||||||
|
use_facet<num_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const num_get<char>&
|
||||||
|
use_facet<num_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const moneypunct<char, true>&
|
||||||
|
use_facet<moneypunct<char, true> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const moneypunct<char, false>&
|
||||||
|
use_facet<moneypunct<char, false> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const money_put<char>&
|
||||||
|
use_facet<money_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const money_get<char>&
|
||||||
|
use_facet<money_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const __timepunct<char>&
|
||||||
|
use_facet<__timepunct<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const time_put<char>&
|
||||||
|
use_facet<time_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const time_get<char>&
|
||||||
|
use_facet<time_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const messages<char>&
|
||||||
|
use_facet<messages<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const codecvt<wchar_t, char, mbstate_t>&
|
||||||
|
use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const collate<wchar_t>&
|
||||||
|
use_facet<collate<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const numpunct<wchar_t>&
|
||||||
|
use_facet<numpunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const num_put<wchar_t>&
|
||||||
|
use_facet<num_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const num_get<wchar_t>&
|
||||||
|
use_facet<num_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const moneypunct<wchar_t, true>&
|
||||||
|
use_facet<moneypunct<wchar_t, true> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const moneypunct<wchar_t, false>&
|
||||||
|
use_facet<moneypunct<wchar_t, false> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const money_put<wchar_t>&
|
||||||
|
use_facet<money_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const money_get<wchar_t>&
|
||||||
|
use_facet<money_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const __timepunct<wchar_t>&
|
||||||
|
use_facet<__timepunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const time_put<wchar_t>&
|
||||||
|
use_facet<time_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const time_get<wchar_t>&
|
||||||
|
use_facet<time_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
const messages<wchar_t>&
|
||||||
|
use_facet<messages<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<ctype<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<collate<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<numpunct<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<num_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<num_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<moneypunct<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<money_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<money_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<__timepunct<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<time_put<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<time_get<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<messages<char> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<ctype<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<collate<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<numpunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<num_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<num_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<moneypunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<money_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<money_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<__timepunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<time_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<time_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
extern template
|
||||||
|
bool
|
||||||
|
has_facet<messages<wchar_t> >(const locale&);
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -922,6 +922,11 @@ struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > >
|
||||||
};
|
};
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
// Inhibit implicit instantiations for required instantiations,
|
||||||
|
// which are defined via explicit instantiations elsewhere.
|
||||||
|
// NB: This syntax is a GNU extension.
|
||||||
|
extern template class allocator<char>;
|
||||||
|
extern template class allocator<wchar_t>;
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
|
||||||
#endif /* __GLIBCPP_INTERNAL_ALLOC_H */
|
#endif /* __GLIBCPP_INTERNAL_ALLOC_H */
|
||||||
|
|
|
@ -43,126 +43,124 @@
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
typedef ostreambuf_iterator<char> obuf_iterator;
|
|
||||||
typedef istreambuf_iterator<char> ibuf_iterator;
|
|
||||||
typedef ostreambuf_iterator<wchar_t> wobuf_iterator;
|
|
||||||
typedef istreambuf_iterator<wchar_t> wibuf_iterator;
|
|
||||||
|
|
||||||
// moneypunct, money_get, and money_put
|
// moneypunct, money_get, and money_put
|
||||||
template class moneypunct<char, false>;
|
template class moneypunct<char, false>;
|
||||||
template class moneypunct<char, true>;
|
template class moneypunct<char, true>;
|
||||||
template class moneypunct_byname<char, false>;
|
template class moneypunct_byname<char, false>;
|
||||||
template class moneypunct_byname<char, true>;
|
template class moneypunct_byname<char, true>;
|
||||||
template class money_get<char, ibuf_iterator>;
|
template class money_get<char, istreambuf_iterator<char> >;
|
||||||
template class money_put<char, obuf_iterator>;
|
template class money_put<char, ostreambuf_iterator<char> >;
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template class moneypunct<wchar_t, false>;
|
template class moneypunct<wchar_t, false>;
|
||||||
template class moneypunct<wchar_t, true>;
|
template class moneypunct<wchar_t, true>;
|
||||||
template class moneypunct_byname<wchar_t, false>;
|
template class moneypunct_byname<wchar_t, false>;
|
||||||
template class moneypunct_byname<wchar_t, true>;
|
template class moneypunct_byname<wchar_t, true>;
|
||||||
template class money_get<wchar_t, wibuf_iterator>;
|
template class money_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
||||||
template class money_put<wchar_t, wobuf_iterator>;
|
template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// numpunct, numpunct_byname, num_get, and num_put
|
// numpunct, numpunct_byname, num_get, and num_put
|
||||||
template class numpunct<char>;
|
template class numpunct<char>;
|
||||||
template class numpunct_byname<char>;
|
template class numpunct_byname<char>;
|
||||||
template class num_get<char, ibuf_iterator>;
|
template class num_get<char, istreambuf_iterator<char> >;
|
||||||
template class num_put<char, obuf_iterator>;
|
template class num_put<char, ostreambuf_iterator<char> >;
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_int(obuf_iterator, ios_base&, char, char, char, long) const;
|
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
|
||||||
|
long) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_int(obuf_iterator, ios_base&, char, char, char,
|
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
|
||||||
unsigned long) const;
|
unsigned long) const;
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_LONG_LONG
|
#ifdef _GLIBCPP_USE_LONG_LONG
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_int(obuf_iterator, ios_base&, char, char, char,
|
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
|
||||||
long long) const;
|
long long) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_int(obuf_iterator, ios_base&, char, char, char,
|
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
|
||||||
unsigned long long) const;
|
unsigned long long) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_float(obuf_iterator, ios_base&, char, char, double) const;
|
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
|
||||||
|
double) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
obuf_iterator
|
ostreambuf_iterator<char>
|
||||||
num_put<char, obuf_iterator>::
|
num_put<char, ostreambuf_iterator<char> >::
|
||||||
_M_convert_float(obuf_iterator, ios_base&, char, char,
|
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
|
||||||
long double) const;
|
long double) const;
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template class numpunct<wchar_t>;
|
template class numpunct<wchar_t>;
|
||||||
template class numpunct_byname<wchar_t>;
|
template class numpunct_byname<wchar_t>;
|
||||||
template class num_get<wchar_t, wibuf_iterator>;
|
template class num_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
||||||
template class num_put<wchar_t, wobuf_iterator>;
|
template class num_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
||||||
|
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_int(wobuf_iterator, ios_base&, wchar_t, char, char, long) const;
|
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
|
char, long) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_int(wobuf_iterator, ios_base&, wchar_t, char, char,
|
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
unsigned long) const;
|
char, unsigned long) const;
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_LONG_LONG
|
#ifdef _GLIBCPP_USE_LONG_LONG
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_int(wobuf_iterator, ios_base&, wchar_t, char, char,
|
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
long long) const;
|
char, long long) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_int(wobuf_iterator, ios_base&, wchar_t, char, char,
|
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
unsigned long long) const;
|
char, unsigned long long) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_float(wobuf_iterator, ios_base&, wchar_t, char,
|
_M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
double) const;
|
double) const;
|
||||||
|
|
||||||
template
|
template
|
||||||
wobuf_iterator
|
ostreambuf_iterator<wchar_t>
|
||||||
num_put<wchar_t, wobuf_iterator>::
|
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
|
||||||
_M_convert_float(wobuf_iterator, ios_base&, wchar_t, char,
|
_M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
|
||||||
long double) const;
|
long double) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// time_get and time_put
|
// time_get and time_put
|
||||||
template class __timepunct<char>;
|
template class __timepunct<char>;
|
||||||
template class time_put<char, obuf_iterator>;
|
template class time_put<char, ostreambuf_iterator<char> >;
|
||||||
template class time_put_byname<char, obuf_iterator>;
|
template class time_put_byname<char, ostreambuf_iterator<char> >;
|
||||||
template class time_get<char, ibuf_iterator>;
|
template class time_get<char, istreambuf_iterator<char> >;
|
||||||
template class time_get_byname<char, ibuf_iterator>;
|
template class time_get_byname<char, istreambuf_iterator<char> >;
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template class __timepunct<wchar_t>;
|
template class __timepunct<wchar_t>;
|
||||||
template class time_put<wchar_t, wobuf_iterator>;
|
template class time_put<wchar_t, ostreambuf_iterator<wchar_t> >;
|
||||||
template class time_put_byname<wchar_t, wobuf_iterator>;
|
template class time_put_byname<wchar_t, ostreambuf_iterator<wchar_t> >;
|
||||||
template class time_get<wchar_t, wibuf_iterator>;
|
template class time_get<wchar_t, istreambuf_iterator<wchar_t> >;
|
||||||
template class time_get_byname<wchar_t, wibuf_iterator>;
|
template class time_get_byname<wchar_t, istreambuf_iterator<wchar_t> >;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// messages
|
// messages
|
||||||
|
@ -198,18 +196,7 @@ namespace std
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// use_facet
|
// use_facet
|
||||||
template
|
// NB: use_facet<ctype> is specialized
|
||||||
const numpunct<char>&
|
|
||||||
use_facet<numpunct<char> >(const locale&);
|
|
||||||
|
|
||||||
template
|
|
||||||
const num_put<char, obuf_iterator >&
|
|
||||||
use_facet<num_put<char, obuf_iterator> >(const locale&);
|
|
||||||
|
|
||||||
template
|
|
||||||
const num_get<char, ibuf_iterator >&
|
|
||||||
use_facet<num_get<char, ibuf_iterator> >(const locale&);
|
|
||||||
|
|
||||||
template
|
template
|
||||||
const codecvt<char, char, mbstate_t>&
|
const codecvt<char, char, mbstate_t>&
|
||||||
use_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
use_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||||
|
@ -218,6 +205,18 @@ namespace std
|
||||||
const collate<char>&
|
const collate<char>&
|
||||||
use_facet<collate<char> >(const locale&);
|
use_facet<collate<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const numpunct<char>&
|
||||||
|
use_facet<numpunct<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const num_put<char>&
|
||||||
|
use_facet<num_put<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const num_get<char>&
|
||||||
|
use_facet<num_get<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
const moneypunct<char, true>&
|
const moneypunct<char, true>&
|
||||||
use_facet<moneypunct<char, true> >(const locale&);
|
use_facet<moneypunct<char, true> >(const locale&);
|
||||||
|
@ -226,23 +225,31 @@ namespace std
|
||||||
const moneypunct<char, false>&
|
const moneypunct<char, false>&
|
||||||
use_facet<moneypunct<char, false> >(const locale&);
|
use_facet<moneypunct<char, false> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const money_put<char>&
|
||||||
|
use_facet<money_put<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const money_get<char>&
|
||||||
|
use_facet<money_get<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
const __timepunct<char>&
|
const __timepunct<char>&
|
||||||
use_facet<__timepunct<char> >(const locale&);
|
use_facet<__timepunct<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const time_put<char>&
|
||||||
|
use_facet<time_put<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const time_get<char>&
|
||||||
|
use_facet<time_get<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const messages<char>&
|
||||||
|
use_facet<messages<char> >(const locale&);
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template
|
|
||||||
const numpunct<wchar_t>&
|
|
||||||
use_facet<numpunct<wchar_t> >(const locale&);
|
|
||||||
|
|
||||||
template
|
|
||||||
const num_put<wchar_t, wobuf_iterator>&
|
|
||||||
use_facet<num_put<wchar_t, wobuf_iterator> >(const locale&);
|
|
||||||
|
|
||||||
template
|
|
||||||
const num_get<wchar_t, wibuf_iterator>&
|
|
||||||
use_facet<num_get<wchar_t, wibuf_iterator> >(const locale&);
|
|
||||||
|
|
||||||
template
|
template
|
||||||
const codecvt<wchar_t, char, mbstate_t>&
|
const codecvt<wchar_t, char, mbstate_t>&
|
||||||
use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
|
use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
|
||||||
|
@ -251,6 +258,18 @@ namespace std
|
||||||
const collate<wchar_t>&
|
const collate<wchar_t>&
|
||||||
use_facet<collate<wchar_t> >(const locale&);
|
use_facet<collate<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const numpunct<wchar_t>&
|
||||||
|
use_facet<numpunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const num_put<wchar_t>&
|
||||||
|
use_facet<num_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const num_get<wchar_t>&
|
||||||
|
use_facet<num_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
const moneypunct<wchar_t, true>&
|
const moneypunct<wchar_t, true>&
|
||||||
use_facet<moneypunct<wchar_t, true> >(const locale&);
|
use_facet<moneypunct<wchar_t, true> >(const locale&);
|
||||||
|
@ -259,71 +278,146 @@ namespace std
|
||||||
const moneypunct<wchar_t, false>&
|
const moneypunct<wchar_t, false>&
|
||||||
use_facet<moneypunct<wchar_t, false> >(const locale&);
|
use_facet<moneypunct<wchar_t, false> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const money_put<wchar_t>&
|
||||||
|
use_facet<money_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const money_get<wchar_t>&
|
||||||
|
use_facet<money_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
const __timepunct<wchar_t>&
|
const __timepunct<wchar_t>&
|
||||||
use_facet<__timepunct<wchar_t> >(const locale&);
|
use_facet<__timepunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const time_put<wchar_t>&
|
||||||
|
use_facet<time_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const time_get<wchar_t>&
|
||||||
|
use_facet<time_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
const messages<wchar_t>&
|
||||||
|
use_facet<messages<wchar_t> >(const locale&);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// has_facet
|
// has_facet
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<ctype<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<collate<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
has_facet<numpunct<char> >(const locale&);
|
has_facet<numpunct<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
has_facet<num_put<char> >(const locale&);
|
has_facet<num_put<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
has_facet<num_get<char> >(const locale&);
|
has_facet<num_get<char> >(const locale&);
|
||||||
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
has_facet<ctype<char> >(const locale&);
|
has_facet<moneypunct<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<money_put<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<money_get<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<__timepunct<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<time_put<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<time_get<char> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<messages<char> >(const locale&);
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template
|
|
||||||
bool
|
|
||||||
has_facet<numpunct<wchar_t> >(const locale&);
|
|
||||||
template
|
|
||||||
bool
|
|
||||||
has_facet<num_put<wchar_t> >(const locale&);
|
|
||||||
template
|
|
||||||
bool
|
|
||||||
has_facet<num_get<wchar_t> >(const locale&);
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
has_facet<ctype<wchar_t> >(const locale&);
|
has_facet<ctype<wchar_t> >(const locale&);
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// iterator
|
|
||||||
//
|
|
||||||
typedef vector<locale::facet*> vec_pfacet;
|
|
||||||
template
|
|
||||||
void
|
|
||||||
vec_pfacet::
|
|
||||||
insert(vec_pfacet::iterator, vec_pfacet::size_type,
|
|
||||||
const vec_pfacet::value_type&);
|
|
||||||
template
|
|
||||||
void
|
|
||||||
vec_pfacet::
|
|
||||||
_M_fill_insert(vec_pfacet::iterator, vec_pfacet::size_type,
|
|
||||||
const vec_pfacet::value_type&);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// locale
|
|
||||||
//
|
|
||||||
typedef istreambuf_iterator<char, char_traits<char> > istreambuf_iter;
|
|
||||||
typedef ostreambuf_iterator<char, char_traits<char> > ostreambuf_iter;
|
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
|
||||||
typedef istreambuf_iterator<wchar_t, char_traits<wchar_t> > wistreambuf_iter;
|
|
||||||
typedef ostreambuf_iterator<wchar_t, char_traits<wchar_t> > wostreambuf_iter;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template
|
template
|
||||||
bool
|
bool
|
||||||
locale::operator()(const string&, const string&) const;
|
has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<collate<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<numpunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<num_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<num_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<moneypunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<money_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<money_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<__timepunct<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<time_put<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<time_get<wchar_t> >(const locale&);
|
||||||
|
|
||||||
|
template
|
||||||
|
bool
|
||||||
|
has_facet<messages<wchar_t> >(const locale&);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// iterator
|
||||||
|
typedef vector<locale::facet*> vec_pfacet;
|
||||||
|
template class vector<locale::facet*>;
|
||||||
|
template class __normal_iterator<locale::facet**, vector<locale::facet*> >;
|
||||||
|
template class __normal_iterator<locale::facet* const*,
|
||||||
|
vector<locale::facet*> >;
|
||||||
|
|
||||||
|
// locale
|
||||||
template
|
template
|
||||||
char*
|
char*
|
||||||
__add_grouping<char>(char*, char, char const*, char const*,
|
__add_grouping<char>(char*, char, char const*, char const*,
|
||||||
|
@ -344,12 +438,6 @@ namespace std
|
||||||
streamsize, streamsize, const bool);
|
streamsize, streamsize, const bool);
|
||||||
|
|
||||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||||
template
|
|
||||||
bool
|
|
||||||
locale::operator()(const wstring&, const wstring&) const;
|
|
||||||
|
|
||||||
typedef ostreambuf_iterator<wchar_t> wostreambuf_iter;
|
|
||||||
|
|
||||||
template
|
template
|
||||||
wchar_t*
|
wchar_t*
|
||||||
__add_grouping<wchar_t>(wchar_t*, wchar_t, char const*, char const*,
|
__add_grouping<wchar_t>(wchar_t*, wchar_t, char const*, char const*,
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace std
|
||||||
const size_t locale::_S_num_categories;
|
const size_t locale::_S_num_categories;
|
||||||
const size_t locale::_S_num_facets;
|
const size_t locale::_S_num_facets;
|
||||||
|
|
||||||
// Definitions for locale::id of standard facets.
|
// Definitions for locale::id of standard facets that are specialized.
|
||||||
locale::id ctype<char>::id;
|
locale::id ctype<char>::id;
|
||||||
locale::id codecvt<char, char, mbstate_t>::id;
|
locale::id codecvt<char, char, mbstate_t>::id;
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,12 @@
|
||||||
#include <bits/c++config.h>
|
#include <bits/c++config.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <ostream>
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
template class allocator<char>;
|
||||||
|
template class allocator<wchar_t>;
|
||||||
|
|
||||||
template class __malloc_alloc_template<0>;
|
template class __malloc_alloc_template<0>;
|
||||||
|
|
||||||
#ifndef __USE_MALLOC
|
#ifndef __USE_MALLOC
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// 2000-09-11 Benjamin Kosnik <bkoz@redhat.com>
|
// 2000-09-11 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
// Copyright (C) 2000, 2001 Free Software Foundation
|
// Copyright (C) 2000, 2001, 2002 Free Software Foundation
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
// software; you can redistribute it and/or modify it under the
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
@ -47,9 +47,9 @@ void test01()
|
||||||
}
|
}
|
||||||
|
|
||||||
// bool operator()(const string_type&, const string_type&) const
|
// bool operator()(const string_type&, const string_type&) const
|
||||||
typedef std::collate<char> ccollate;
|
|
||||||
long gnu_count;
|
long gnu_count;
|
||||||
class gnu_collate: public ccollate
|
|
||||||
|
class gnu_collate: public std::collate<char>
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual int
|
virtual int
|
||||||
|
@ -79,7 +79,7 @@ void test02()
|
||||||
int main ()
|
int main ()
|
||||||
{
|
{
|
||||||
test01();
|
test01();
|
||||||
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue