25 Localization library [localization]

25.3 Locales [locales]

25.3.1 Class locale [locale]

25.3.1.2 locale constructors and destructor [locale.cons]

locale() noexcept;

Конструктор по умолчанию: снимок текущего глобального языкового стандарта.

Effects: Создает копию последнего переданного аргумента locale​::​global(locale&), если он был вызван; иначе, результирующие фасеты имеют семантику виртуальных функций, идентичную семантике locale​::​classic(). [ Note: Этот конструктор обычно используется в качестве значения по умолчанию для аргументов функций, которые принимают const locale& аргумент. ] end note

locale(const locale& other) noexcept;

Effects: Создает локаль, являющуюся копией other.

explicit locale(const char* std_name);

Effects: Создает языковой стандарт с использованием стандартных имен языковых стандартов C, например "POSIX". Результирующий языковой стандарт реализует семантику, связанную с этим именем.

Throws: runtime_­error если аргумент недействителен или имеет значение null.

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

explicit locale(const string& std_name);

Effects: То же, что и locale(std_­name.c_­str()).

locale(const locale& other, const char* std_name, category);

Effects: Создает локаль как копию, за other исключением аспектов, определенных category аргументом, которые вместо этого реализуют ту же семантику, что и locale(std_­name).

Throws: runtime_­error если аргумент недействителен или имеет значение null.

Remarks: Языковой стандарт имеет имя тогда и только тогда, когда он other имеет имя.

locale(const locale& other, const string& std_name, category cat);

Effects: То же, что и locale(other, std_­name.c_­str(), cat).

template <class Facet> locale(const locale& other, Facet* f);

Effects: Создает локаль, включающую все фасеты из первого аргумента, кромеFacetфасета типа , и устанавливает второй аргумент как оставшийся фасет. Если f имеет значение null, результирующий объект является копией other.

Remarks: Полученный языковой стандарт не имеет названия.

locale(const locale& other, const locale& one, category cats);

Effects: Создает локаль, включающую все фасеты из первого аргумента, кроме тех, которые реализуют cats, которые вместо этого включены из второго аргумента.

Remarks: Результирующая локаль имеет имя тогда и только тогда, когда у первых двух аргументов есть имена.

const locale& operator=(const locale& other) noexcept;

Effects: Создает копию other, заменяя текущее значение.

Returns: *this.

~locale();

Не виртуальный деструктор, не вызывающий исключений.