Локальные контексты в С++
Локальные контексты в С++
В стандартной библиотеке С++ локальный контекст не является глобальной структурой данных, запрятанной где-то в недрах реализации библиотеки. Это объект типа std::locale, который можно создать и передать его другой функции, как любой другой объект. Пример создания объекта для стандартного локального контекста:
std::locale L = std::locale::classic():
Локальный контекст немецкого языка создается командой
std::locale L("de");
Имена локальных контекстов, как и в библиотеке С, не стандартизованы. Список имен локальных контекстов, доступных в вашей реализации, следует искать в документации.
Локальные контексты С++ делятся на фасеты (facets), связанные с разными аспектами интернационализации. Для извлечения заданного фасета из объекта локального контекста используется функция std:: use_facet[6]. Фасет ctype отвечает за классификацию символов, в том числе и преобразования типа. Если c1 и с2 относятся к типу char, следующий фрагмент сравнивает их без учета регистра по правилам локального контекста L.
const std::ctype<char>& ct = std::use_facet<std::ctype<char> > (L);
bool result = ct-toupper(cl)<ct.toupper(c2);
Предусмотрена особая сокращенная запись: std:: toupper (с, L), эквивалентная
std::use_facet<std::ctype<char> >(L).toupper(c)
Использование use_facet стоит свести к минимуму, поскольку оно связано с заметными затратами.
По аналогии с тем, как лексикографическое сравнение оказывается неподходящим в некоторых ситуациях, преобразования символов «один-в-один» тоже годятся не всегда (например, в немецком языке символ (3 нижнего регистра соответствует последовательности «SS» в верхнем регистре). К сожалению, средства преобразования регистра в стандартных библиотеках С и С++ работают только с отдельными символами. Если это ограничение вас не устраивает, решение со стандартными библиотеками отпадает.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Локальные стили
Локальные стили То, что у каждого элемента-разделителя есть свое собственное содержание, делает эти элементы прекрасно подходящими для решений на Ajax. И снова HTML5 показывает свое происхождение из спецификации для веб-приложений.Однако если вы попытаетесь перенести
4.10 Локальные сети
4.10 Локальные сети Рассмотрим, как IP и другие протоколы пакетируют кадры для пересылки по локальным сетям. Классическая локальная сеть предполагает следующие свойства:? Станции совместно используют физический носитель.? Существуют правила управления доступом к
Локальные политики
Локальные политики Раздел Локальные политики содержит три политики: Политика аудита, Назначение прав пользователя и Параметры безопасности.? Политика аудита — позволяет определить события, факты происхождения которых будут записываться в журнал Безопасность
§ 73. Культурные контексты
§ 73. Культурные контексты 27 октября 2001Отсутствие единых стандартов всегда будет преследовать человечество. Только примут один стандарт, появляется еще более правильный, но первым-то уже все пользуются. Так было с измерением времени — вроде все договорились про
ГЛАВА 13. Процессы, домены приложений, контексты и хосты CLR
ГЛАВА 13. Процессы, домены приложений, контексты и хосты CLR В предыдущих двух главах мы рассмотрели шаги, которые предпринимаются в среде CLR при выяснении параметров размещения внешних компоновочных блоков, а также роль метаданных .NET. В этой главе мы рассмотрим подробности
Локальные контексты
Локальные контексты В совете 35 приведена реализация сравнения строк без учета регистра символов с применением алгоритмов mismatch и lexicographical_compare, но в нем также указано, что полноценное решение должно учитывать локальный контекст. Книга посвящена STL, а не вопросам
ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ
ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ Мы уже несколько раз касались вопроса о том, что переменные в функции являются ее внутренними переменными и "не известны" вызывающей функции. Аналогично переменные вызывающей функции не известны вызываемой функции. Вот почему для связи с ней, т.
5.5.4. Локальные сокеты
5.5.4. Локальные сокеты Сокеты, соединяющие процессы в пределах одного компьютера, работают в локальном пространстве имен (PF_LOCAL или PF_UNIX, это синонимы). Такие сокеты называются локальными или UNIX-сокетами. Их адресами являются имена файлов, указываемые только при создании
8.3. Локальные объекты
8.3. Локальные объекты Объявление переменной в локальной области видимости вводит локальный объект. Существует три вида таких объектов: автоматические, регистровые и статические, различающиеся временем жизни и характеристиками занимаемой памяти. Автоматический
13.12. Локальные классы A
13.12. Локальные классы A Класс, определенный внутри тела функции, называется локальным. Он виден только в той локальной области, где определен. Не существует синтаксиса, позволяющего обратиться к члену такого класса, в отличие от вложенного, извне локальной области
22.2. Локальные переменные
22.2. Локальные переменные Что такое "локальная" переменная?локальные переменныеПеременные, объявленные как локальные, имеют ограниченную область видимости, и доступны только в пределах блока, в котором они были объявлены. Для функций это означает, что локальная
14.2. Локальные переменные
14.2. Локальные переменные Переменные интерпретатора shell могут использоваться сценариями в период функционирования интерпретатора shell. После завершения выполнения интерпретатора действие этих переменных прекращается. Например, локальная переменная имя_файла может
10.4. Локальные сети
10.4. Локальные сети Локальная сеть создается, как правило, для совместного использования ресурсов ЭВМ или данных (обычно в одной организации). С технической точки зрения локальная сеть – совокупность компьютеров и каналов связи, объединяющих компьютеры в структуру с
Контексты безопасности
Контексты безопасности Контексты безопасности (Security Associations) образуют основу криптографических сервисов безопасности на базе протоколов IPsec. Для защиты двусторонней связи между узлами сети необходимы два контекста безопасности: один - для входящих потоков, другой - для