Локалы имеют очень тесную связь с обработкой строк. Они содержат информацию о наборах персонажей и используются, например, для изменения случая персонажей и классификации персонажей.
C++ позволяет работать с несколькими различными экземплярами локализаций одновременно. Если алгоритм манипулирует некоторыми данными таким образом, который требует использования локалов, должен быть способ их уточнения. Однако для большинства приложений достаточно одного экземпляра локализации, и пользователю может быть очень утомительно указывать, какие локализации использовать в каждом месте, где это необходимо.
К счастью, стандарт C++ позволяет указать глобальные локали (используя статическую функцию члена std:locale::global()
). При инстанцировании класса std::locale
без явной информации экземпляр будет инициализирован с локализацией global. Это означает, что если алгоритму нужна локализация, он должен иметь параметр std::locale
по умолчанию до std::locale()
. Если пользователю необходимо четко указать местоположение, он может это сделать. В противном случае используются локальные значения global.
Регулярные выражения являются неотъемлемой частью обработки текста. По этой причине библиотека также предоставляет варианты регекса некоторых алгоритмов. Библиотека не пытается заменить Буст. Regex просто заворачивает свою функциональность в новый интерфейс. В рамках этой библиотеки алгоритмы регекса плавно интегрируются с другими компонентами, что приносит дополнительную ценность.