[locale.messages.general]

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

## 28.3 Localization library [[localization]](localization#locale.messages.general)

### 28.3.4 Standard locale categories [[locale.categories]](locale.categories#locale.messages.general)

#### 28.3.4.8 The message retrieval category [[category.messages]](category.messages#locale.messages.general)

#### 28.3.4.8.2 Class template messages [[locale.messages]](locale.messages#general)

#### 28.3.4.8.2.1 General [locale.messages.general]

[ð](#lib:messages)

namespace std {class messages_base {public:using catalog = *unspecified signed integer type*; }; template<class charT>class messages : public locale::facet, public messages_base {public:using char_type = charT; using string_type = basic_string<charT>; explicit messages(size_t refs = 0);

 catalog open(const string& fn, const locale&) const;
 string_type get(catalog c, int set, int msgid, const string_type& dfault) const; void close(catalog c) const; static locale::id id; protected:~messages(); virtual catalog do_open(const string&, const locale&) const; virtual string_type do_get(catalog, int set, int msgid, const string_type& dfault) const; virtual void do_close(catalog) const; };}

[1](#1)

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

Values of type messages_base​::​catalog usable as arguments to members get and close can be obtained only by calling member open[.](#1.sentence-1)
