[locale.syn]

# 28 Text processing library [[text]](./#text)

## 28.3 Localization library [[localization]](localization#locale.syn)

### 28.3.2 Header <locale> synopsis [locale.syn]

[ð](#header:%3clocale%3e)

namespace std {// [[locale]](locale "28.3.3.1 Class locale"), localeclass locale; template<class Facet> const Facet& use_facet(const locale&); template<class Facet> bool has_facet(const locale&) noexcept; // [[locale.convenience]](locale.convenience "28.3.3.3 Convenience interfaces"), convenience interfacestemplate<class charT> bool isspace (charT c, const locale& loc); template<class charT> bool isprint (charT c, const locale& loc); template<class charT> bool iscntrl (charT c, const locale& loc); template<class charT> bool isupper (charT c, const locale& loc); template<class charT> bool islower (charT c, const locale& loc); template<class charT> bool isalpha (charT c, const locale& loc); template<class charT> bool isdigit (charT c, const locale& loc); template<class charT> bool ispunct (charT c, const locale& loc); template<class charT> bool isxdigit(charT c, const locale& loc); template<class charT> bool isalnum (charT c, const locale& loc); template<class charT> bool isgraph (charT c, const locale& loc); template<class charT> bool isblank (charT c, const locale& loc); template<class charT> charT toupper(charT c, const locale& loc); template<class charT> charT tolower(charT c, const locale& loc); // [[category.ctype]](category.ctype "28.3.4.2 The ctype category"), ctypeclass ctype_base; template<class charT> class ctype; template<> class ctype<char>; // specializationtemplate<class charT> class ctype_byname; class codecvt_base; template<class internT, class externT, class stateT> class codecvt; template<class internT, class externT, class stateT> class codecvt_byname; // [[category.numeric]](category.numeric "28.3.4.3 The numeric category"), numerictemplate<class charT, class InputIterator = istreambuf_iterator<charT>>class num_get; template<class charT, class OutputIterator = ostreambuf_iterator<charT>>class num_put; template<class charT>class numpunct; template<class charT>class numpunct_byname; // [[category.collate]](category.collate "28.3.4.5 The collate category"), collationtemplate<class charT> class collate; template<class charT> class collate_byname; // [[category.time]](category.time "28.3.4.6 The time category"), date and timeclass time_base; template<class charT, class InputIterator = istreambuf_iterator<charT>>class time_get; template<class charT, class InputIterator = istreambuf_iterator<charT>>class time_get_byname; template<class charT, class OutputIterator = ostreambuf_iterator<charT>>class time_put; template<class charT, class OutputIterator = ostreambuf_iterator<charT>>class time_put_byname; // [[category.monetary]](category.monetary "28.3.4.7 The monetary category"), moneyclass money_base; template<class charT, class InputIterator = istreambuf_iterator<charT>>class money_get; template<class charT, class OutputIterator = ostreambuf_iterator<charT>>class money_put; template<class charT, bool Intl = false>class moneypunct; template<class charT, bool Intl = false>class moneypunct_byname; // [[category.messages]](category.messages "28.3.4.8 The message retrieval category"), message retrievalclass messages_base; template<class charT> class messages; template<class charT> class messages_byname;}

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L457)

The header [<locale>](#header:%3clocale%3e "28.3.2 Header <locale> synopsis [locale.syn]") defines classes and declares functions
that encapsulate and manipulate the information peculiar to a locale[.](#1.sentence-1)[213](#footnote-213 "In this subclause, the type name tm is an incomplete type that is defined in <ctime>.")

[213)](#footnote-213)[213)](#footnoteref-213)

In this subclause, the type name tm is an incomplete type that is defined in [<ctime>](ctime.syn#header:%3cctime%3e "30.15 Header <ctime> synopsis [ctime.syn]")[.](#footnote-213.sentence-1)
