Архив категории ‘Библиотека STL’

Числовое форматирование. Форматирование времени и даты (общие сведения)

    На этом шаге мы перечислим некоторые параметры, используемые для форматирования даты и времени.     Фацеты time_get и time_put из категории time предоставляют средства разбора и форматирования времени и даты. Функции, выполняющие эти операции, работают с объектами типа tm, определяемого в заголовочном файле <ctime>. Объекты не передаются напрямую; в аргументах передаются указатели на них.     […]

Числовое форматирование. Лексический разбор

    На этом шаге мы рассмотрим средства работы с числами, которые представлены строкой.     Фацет num_get предназначен для лексического разбора текстовых представлений чисел. По аналогии с num_put он оформляется в виде шаблона с двумя аргументами: типом символов charT и типом итератора ввода InIt, который по умолчанию равен istreambuf_iterator<charT>. Фацет поддерживает набор функций get(), различающихся только […]

Числовое форматирование. Форматирование

    На этом шаге мы рассмотрим определение способов форматирования.     Фацет num_put обеспечивает текстовое форматирование чисел. Он представляет собой шаблон класса с двумя аргументами: тип charT определяет символы, создаваемые при выводе, а тип OutIt определяет итератор вывода для записи сгенерированных символов. По умолчанию итератор вывода относится к типу ostreambuf_ iterator<charT>. Фацет num_put поддерживает семейство функций, […]

Числовое форматирование. Оформление

    На этом шаге мы рассмотрим определение различных способов представления чисел.     Фацет numpunct определяет символ, используемый в качестве десятичной точки, управляет вставкой необязательных разделителей групп разрядов, а также задает текстовые представления логических значений. Функции фацета numpunct перечислены в таблице 1. Таблица 1. Функции фацета numpunct Выражение Описание np.decimal_point() Возвращает символ, используемый в качестве десятичной […]

Интернационализация. Числовое форматирование (общие сведения)

    На этом шаге мы приведем некоторые сведения о числовом форматировании.     Средства числового форматирования преобразуют числа из внутреннего представления в соответствующее текстовое представление. Операторы потоков данных поручают работу по непосредственному преобразованию фацетам категории locale::numeric. Эта категория состоит из трех фацетов: numpunct - правила оформления, используемые при форматировании и лексическом разборе чисел; num_put - форматирование […]

Интернационализация. Строение фацетов

    На этом шаге мы приведем требования и рекомендации по созданию собственных фацетов.     Возможности локального контекста определяются содержащимися в нем фацетами. Все локальные контексты заведомо содержат минимальный набор стандартных фацетов. В описаниях отдельных фацетов, приведенных далее, указано, какие специализации гарантированно присутствуют в контексте. Помимо перечисленных реализация стандартной библиотеки C++ может включить в локальный контекст […]

Интернационализация. Строение объекта локального контекста

    На этом шаге мы рассмотрим строение и использование объекта локального контекста.     Локальный контекст C++ представляет собой неизменяемый контейнер для фацетов. Класс locale определяется в заголовочном файле <locale> следующим образом: namespace std { class locale { public: // Глобальные объекты локальных контекстов static const locale& classic(); // Классический локальный контекст C static locale global(const […]

Интернационализация. Фацеты

    На этом шаге мы рассмотрим фацеты и их использование.     На функциональном уровне локальный контекст делится на несколько специальных объектов. Объект, обеспечивающий работу некоторого аспекта интернационализации, называется фацетом. Это означает, что объект локального контекста может рассматриваться как контейнер для различных фацетов. Для обращения к некоторому аспекту локального контекста тип соответствующего фацета передается в аргументе […]

Интернационализация. Использование локальных контекстов (окончание)

    На этом шаге мы закончим изучение особенностей использования локальных контекстов.     Как правило, программы не определяют свои локальные контексты, кроме случаев, когда чтение и запись данных производятся в фиксированном формате. Вместо этого локальный контекст определяется по значению переменной окружения LANG. Имя локального контекста также может вводиться из других источников, как показано в следующем примере: […]

Интернационализация. Использование локальных контекстов

    На этом шаге мы рассмотрим некоторые особенности использования локальных контекстов.     Полноценная интернационализация обычно не ограничивается преобразованием текстовых сообщений. Например, необходимо также позаботиться об использовании разных стандартов форматирования чисел, денежных величин и дат. Если некоторая функция работает с буквами, она должна на основании данных локального контекста обеспечить корректную обработку всех букв данного языка.     […]