Подробности

[В начало]

Проблема в реализации № S0742

Краткое описание

locale(locale const&, char cosnt*, locale::category) создает нерабочую локаль

Подробное описание

Конструктор locale(locale const&, char cosnt*, locale::category) создает локаль, у которой фасеты, соответствующие категории cat, не функционируют. Приведенный ниже пример приводит к SEGFAULT'у на некоторых системах (например: SLES10, Open SUSE 11, Ubuntu 8.10).

Раздел стандарта

Linux Standard Base C++ Specification 3.2, Chapter 9. Libraries, 9.1. Interfaces for libstdcxx, который ссылается на ISO/IEC 14882: 2003 Programming languages --C++, section 22.1.1.2

Пример

#include <locale>
using namespace std;

int main()
{
    locale loc(locale("C"), "en_US", locale::monetary);
    use_facet<moneypunct<char> >(loc).grouping();
    return 0;
}

Компонент

libstdc++

Принято

GCC Bugzilla 40712

Статус

Исправлено в gcc-4.5.0

[В начало]