25 Localization library [localization]

25.4 Standard locale categories [locale.categories]

25.4.7 The message retrieval category [category.messages]

25.4.7.1 Class template messages [locale.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 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;
    };
}

Значения типа messages_­base​::​catalog могут использоваться в качестве аргументов для членов get и close могут быть получены только путем вызова member open.

25.4.7.1.1 messages members [locale.messages.members]

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: Звонки do_­close(cat).

25.4.7.1.2 messages virtual functions [locale.messages.virtuals]

catalog do_open(const basic_string<char>& name, const locale& loc) const;

Returns: Значение, которое может быть передано для get() извлечения сообщения из каталога сообщений, идентифицированного строкой, в name соответствии с отображением, определяемым реализацией. Результат можно использовать, пока он не будет передан в close().

Возвращает значение меньше 0, если такой каталог не может быть открыт.

Remarks: Аргумент locale loc используется для преобразования кода набора символов при извлечении сообщений, если это необходимо.

string_type do_get(catalog cat, int set, int msgid, const string_type& dfault) const;

Requires: cat должен быть каталогом, полученным из, open() но еще не закрытым.

Returns: Сообщение, идентифицируемое аргументами set, msgidи в dfaultсоответствии с отображением, определяемым реализацией. Если такого сообщения найти не удается, возвращается dfault.

void do_close(catalog cat) const;

Requires: cat должен быть каталогом, полученным из, open() но еще не закрытым.

Effects: Освобождает неопределенные ресурсы, связанные с cat.

Remarks: Ограничение на такие ресурсы, если таковые имеются, определяется реализацией.