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:
 locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
   // 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.
 catch(std::runtime_error ex){

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
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to