Поделиться через


locale Class

Класс, который описывает объект языковой стандарт, который инкапсулирует сведения о культуре ряд аспектов, которые вместе определяют определенный локализованной среде.

class locale {
public:
    class facet;
    class id;
    typedef int category;
    static const category none, collate, ctype, monetary,
        numeric, time, messages, all;
    locale();
    explicit locale(
        const char *_Locname
);
    explicit locale(
        const string& _Locname
);
    locale(
        const locale& _Loc, 
        const locale& _Other,
        category cat
    );
    locale(
        const locale& _Loc, 
        const char *_Locname, 
        category cat
    );
    locale(
        const locale& _Loc, 
        const string& _Locname, 
        category _Cat
    );
    template<class Facet>
        locale(
            const locale& _Loc, 
            Facet *_Fac
        );
    template<class Facet>
        locale combine(
            const locale& _Loc
) const;
    template<class Elem, class Tr, class Alloc>
        bool operator()(
            const basic_string<Elem, Tr, Alloc>& _Left,
            const basic_string<Elem, Tr, Alloc>& _Right
        ) const;
    string name() const;
    bool operator== (
        const locale& _Right
    ) const;
    bool operator!=(
        const locale& _Right
    ) const;
    static locale global(
        const locale& _Right
    );
    static const locale& classic();
    };

Заметки

Аспект — это указатель на объект класса, производного от класса аспекта , имеет открытый объект формы:

static locale::id id;

Можно задать неограниченного набора этих аспектов.Можно также создать объект языковой стандарт, определяющий произвольное число аспектов.

Стандартные группы эти аспекты представляют собой категории языка традиционно управляемой стандартной библиотеки C, с помощью функции setlocale.

Категория копиям (LC_COLLATE) включает в себя аспекты:

collate<char>
collate<wchar_t>

Категория ctype (LC_CTYPE) включает в себя аспекты:

ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>

Денежный (LC_MONETARY) включает аспекты:

moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >

Числовой категории (LC_NUMERIC) включает в себя аспекты:

num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>

Категория времени (LC_TIME) включает в себя аспекты:

time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >

Категория сообщения (LC_MESSAGES) включает в себя аспекты:

messages<char>
messages<wchar_t>

(Последней категории является обязательным для Posix, но не стандарту).

Некоторые из этих предварительно определенных аспектов используются классами iostreams при преобразовании числовых значений и из последовательности текста.

Объект класса языка также сохраняет имя языкового стандарта как объекта класса строка.Использование имени Недопустимый язык для создания аспекта язык или языковой стандарт объекта создает объект класса runtime_error.Имя сохраненной языка — "*" Если языковой стандарт объекта нельзя быть уверенным в точности соответствует языка C-style, представленного данным объектом.В противном случае можно установить соответствующий языковой стандарт в рамках стандартной библиотеки C, язык объекта _Loc, вызвав setlocale(LC_ALL, _Loc.имя().c_str()).

В этой реализации можно также вызвать статическая функция-член:

static locale empty( );

для создания объекта языка, которая имеет не аспекты.Он также является прозрачным язык; Если функции шаблона has_facet и use_facet не удалось найти запрошенный аспекта прозрачный языка они обращаются сначала глобальной национальной и затем, если прозрачный, классический язык.Таким образом можно написать:

cout.imbue(locale::empty( ));

Последующие операции вставки для cout Опосредованная по текущему состоянию глобальной национальной настройки.Можно даже написать:

locale loc(locale::empty( ), locale::classic( ),
    locale::numeric);
cout.imbue(loc);

Правила для последующих вставок для форматирования числовых cout остаются такими же, как в язык C, даже как глобальный языковой стандарт предоставляет Изменение правила для вставки даты и денежные суммы.

1w3527e2.collapse_all(ru-ru,VS.110).gifКонструкторы

языковой стандарт

Создание языкового стандарта, или копирование языкового стандарта или копирование языкового стандарта, где аспект или категория была заменена аспекта или категории из другого языка.

1w3527e2.collapse_all(ru-ru,VS.110).gifОпределения типов

категория

Целочисленный тип, предоставляющий значения битовой маски для обозначения стандартных аспекта семейств.

1w3527e2.collapse_all(ru-ru,VS.110).gifФункции-члены

combine

Вставляет в целевой язык аспект из указанного языкового стандарта.

имя

Возвращает имя хранимой языкового стандарта.

1w3527e2.collapse_all(ru-ru,VS.110).gifСтатические функции

классический

Статическая функция-член возвращает объект языковой стандарт, который представляет классическое языка C.

"Глобальный элемент"

Восстановление локальной программы по умолчанию.

1w3527e2.collapse_all(ru-ru,VS.110).gifОператоры

оператор! =

Проверяет неравенство двух языков.

(оператор)

Сравнивает два объекта basic_string.

оператор ==

Проверяет равенство двух языков.

1w3527e2.collapse_all(ru-ru,VS.110).gifКлассы

facet (аспект)

Класс, который служит базовым классом для всех аспектов языка.

id

Член класса обеспечивает идентификацию уникальный аспект используется в качестве индекса для поиска аспекты в языка.

Требования

Заголовок: <locale>

Пространство имен: std

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Другие ресурсы

элементы языкового стандарта

члены<языковой стандарт>