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 basic_string<char>& 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 basic_string<char>&, const locale&) const;
virtual string_type do_get(catalog, int set, int msgid,
const string_type& dfault) const;
virtual void do_close(catalog) const;
};
}
Values of type messages_base::catalog usable as arguments to members get and close can be obtained only by calling member open.
catalog open(const basic_string<char>& name, const locale& loc) const;
Returns: do_open(name, loc).
string_type get(catalog cat, int set, int msgid,
const string_type& dfault) const;
Returns: do_get(cat, set, msgid, dfault).
void close(catalog cat) const;
Effects: Calls do_close(cat).
catalog do_open(const basic_string<char>& name,
const locale& loc) const;
Returns a value less than 0 if no such catalog can be opened.
Remarks: The locale argument loc is used for character set code conversion when retrieving messages, if needed.
string_type do_get(catalog cat, int set, int msgid,
const string_type& dfault) const;
Requires: cat shall be a catalog obtained from open() and not yet closed.
void do_close(catalog cat) const;
Requires: cat shall be a catalog obtained from open() and not yet closed.
Effects: Releases unspecified resources associated with cat.