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, даже как глобальный языковой стандарт предоставляет Изменение правила для вставки даты и денежные суммы.
Конструкторы
Создание языкового стандарта, или копирование языкового стандарта или копирование языкового стандарта, где аспект или категория была заменена аспекта или категории из другого языка. |
Определения типов
Целочисленный тип, предоставляющий значения битовой маски для обозначения стандартных аспекта семейств. |
Функции-члены
Вставляет в целевой язык аспект из указанного языкового стандарта. |
|
Возвращает имя хранимой языкового стандарта. |
Статические функции
Статическая функция-член возвращает объект языковой стандарт, который представляет классическое языка C. |
|
Восстановление локальной программы по умолчанию. |
Операторы
Проверяет неравенство двух языков. |
|
Сравнивает два объекта basic_string. |
|
Проверяет равенство двух языков. |
Классы
Класс, который служит базовым классом для всех аспектов языка. |
|
Член класса обеспечивает идентификацию уникальный аспект используется в качестве индекса для поиска аспекты в языка. |
Требования
Заголовок: <locale>
Пространство имен: std
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++