I think that's because FreeBSD is building gcc with
--enable-clocale=generic and the generic code for _S_create_c_locale is
as such:
void
locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
__c_locale)
{
// Currently, the generic model only supports the "C" locale.
// See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html
__cloc = NULL;
if (strcmp(__s, "C"))
__throw_runtime_error(__N("locale::facet::_S_create_c_locale "
"name not valid"));
}
So even if the simplest (e.g. the following one) code will always catch
a failure.
try{
std::locale::global(std::locale(""));
}
catch(std::runtime_error ex){
//fail...
std::locale::global(std::locale("C"));
}
Indeed,std::locale("") will return the default locale setting of native
environment(similar as setlocale("") ),but now it may always throw an
error of "name not valid".It's badly.
what should I do?
install another gcc from ports?
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"