Title
Incomplete list of char_traits specializations
Status
nad editorial
Section
[char.traits]
Submitter
Dietmar Kühl

Created on 2008-04-23.00:00:00 last changed 164 months ago

Messages

Date: 2010-10-21.18:28:33

Proposed resolution:

Change Forward declarations [iostream.forward]:

Header <iosfwd> synopsis

namespace std {
   template<class charT> class char_traits;
   template<> class char_traits<char>;
   template<> class char_traits<char16_t>;
   template<> class char_traits<char32_t>;
   template<> class char_traits<wchar_t>;
...
}
Date: 2010-10-21.18:28:33

[ Batavia (2009-05): ]

We agree. Move to NAD Editorial.

Date: 2010-10-21.18:28:33

[ Original proposed wording. ]

Replace paragraph 4 of [char.traits] by:

This subclause specifies a struct template, char_traits<charT>, and four explicit specializations of it, char_traits<char>, char_traits<char16_t>, char_traits<char32_t>, and char_traits<wchar_t>, all of which appear in the header <string> and satisfy the requirements below.

Date: 2009-05-04.00:00:00

[ 2009-05-04 Alisdair adds: ]

The main point of the issue was resolved editorially in N2723, so we are close to NAD Editorial. However, exploring the issue we found a second tweak was necessary for <iosfwd> and that is still outstanding, so here are the words I am long overdue delivering:

Howard: I've put Alisdair's words into the proposed wording section and moved the issue to Review.
Date: 2010-10-21.18:28:33

[ Sophia Antipolis: ]

Idea of the issue is ok.

Alisdair to provide wording, once that wording arrives, move to review.

Date: 2010-10-21.18:28:33

[ Alisdair adds: ]

char_traits< char16/32_t > should also be added to <ios_fwd> in [iostream.forward], and all the specializations taking a char_traits parameter in that header.

Date: 2008-04-23.00:00:00

Paragraph 4 of [char.traits] mentions that this section specifies two specializations (char_traits<char> and (char_traits<wchar_t>). However, there are actually four specializations provided, i.e. in addition to the two above also char_traits<char16_t> and char_traits<char32_t>). I guess this was just an oversight and there is nothing wrong with just fixing this.

History
Date User Action Args
2010-10-21 18:28:33adminsetmessages: + msg3965
2010-10-21 18:28:33adminsetmessages: + msg3964
2010-10-21 18:28:33adminsetmessages: + msg3963
2010-10-21 18:28:33adminsetmessages: + msg3962
2010-10-21 18:28:33adminsetmessages: + msg3961
2010-10-21 18:28:33adminsetmessages: + msg3960
2008-04-23 00:00:00admincreate