Установка локалей в OS X приводит к сбою

Следующий код отлично работает в Linux, но вызывает исключение в OS X 10.7:

#include 
#include 
#include 

int main() try {
    std::locale::global(std::locale(""));
    std::cout << "Using locale: " << std::locale().name() << "\n";
}
catch (std::runtime_error const& e) {
    std::cout << e.what() << "\n";
    return 1;
}

Вывод в ОС X is:

locale::facet::_S_create_c_localeимя недействительно

Однако в стандарте явно указано, что

Набор допустимых строковых значений аргументов "C", "", и любые значения, определенные реализацией.

Таким образом, все, что вызывает описанное выше поведение, нарушает стандарт.

Используемый компилятор clang++ 3.1 (tags/Apple/clang-318.0.58) ; Я также пробовал это с GCC 4.7, установленным через Homebrew, с тем же результатом.

Могут ли другие люди проверить эту проблему? Что ее вызывает? Я делаю что-то не так? Это ошибка в OS X?

(Возможно, это относится к другой проблеме xlocale, но на самом деле ошибки совершенно другие.)

8
задан Community 23 May 2017 в 12:23
поделиться