Title
messages_base::catalog overspecified
Status
c++14
Section
[locale.messages]
Submitter
Howard Hinnant

Created on 2011-02-14.00:00:00 last changed 123 months ago

Messages

Date: 2011-03-24.16:58:37

Proposed resolution:

  1. Modify [locale.messages]:

    namespace std {
      class messages_base {
      public:
        typedef intunspecified signed integer type catalog;
      };
      ...
    }
    
Date: 2011-03-24.00:00:00

[ 2011-03-24 Madrid meeting ]

Consensus that this resolution is the direction we would like to see.

Date: 2011-03-02.00:00:00

[ 2011-03-02: Daniel updates the proposed wording, changing unspecified signed integral type to unspecified signed integer type (We don't want to allow for bool or char) ]

Date: 2011-02-24.00:00:00

[ 2011-02-24: Chris Jefferson updates the proposed wording, changing unspecified to unspecified signed integral type ]

Date: 2011-02-14.00:00:00

In [locale.messages], messages_base::catalog is specified to be a typedef to int. This type is subsequently used to open, access and close catalogs.

However, an OS may have catalog/messaging services that are indexed and managed by types other than int. For example POSIX, publishes the following messaging API:

typedef unspecified nl_catd;

nl_catd catopen(const char* name , int oflag);
char*   catgets(nl_catd catd, int set_id, int msg_id, const char* s);
int     catclose(nl_catd catd);

I.e., the catalog is managed with an unspecified type, not necessarily an int. Mac OS uses a void* for nl_catd (which is conforming to the POSIX standard). The current messages_base spec effectively outlaws using the built-in OS messaging service supplied for this very purpose!

History
Date User Action Args
2014-02-20 13:20:35adminsetstatus: wp -> c++14
2012-02-12 18:36:43adminsetstatus: voting -> wp
2012-02-09 04:07:48adminsetstatus: ready -> voting
2011-09-06 13:05:28adminsetstatus: voting -> ready
2011-08-16 10:45:53adminsetstatus: ready -> voting
2011-03-24 16:58:37adminsetmessages: + msg5690
2011-03-24 16:58:37adminsetstatus: new -> ready
2011-03-02 23:24:12adminsetmessages: + msg5570
2011-02-24 21:52:13adminsetmessages: + msg5541
2011-02-14 18:18:25adminsetmessages: + msg5485
2011-02-14 00:00:00admincreate