This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
Section: D.27.3 [depr.conversions.buffer] Status: C++11 Submitter: Bo Persson Opened: 2009-10-21 Last modified: 2017-04-22
Priority: Not Prioritized
View other active issues in [depr.conversions.buffer].
View all other issues in [depr.conversions.buffer].
View all issues with C++11 status.
Discussion:
The synopsis for wbuffer_convert [conversions.buffer]/2 contains
typedef typename Tr::state_type state_type;
making state_type a synonym for (possibly) some char_traits<x>::state_type.
However, in paragraph 9 of the same section, we have
typedef typename Codecvt::state_type state_type;The type shall be a synonym for Codecvt::state_type.
From what I can see, it might be hard to implement wbuffer_convert if the types were not both std::mbstate_t, but I cannot find a requirement that they must be the same type.
[ Batavia 2010: ]
Howard to draft wording, move to Review. Run it by Bill. Need to move this in Madrid.
[2011-03-06: Howard drafts wording]
[2011-03-24 Madrid meeting]
Moved to Immediate
Proposed resolution:
Modify the state_type typedef in the synopsis of [conversions.buffer] p.2 as shown [This makes the synopsis consistent with [conversions.buffer] p.9]:
namespace std { template<class Codecvt, class Elem = wchar_t, class Tr = std::char_traits<Elem> > class wbuffer_convert : public std::basic_streambuf<Elem, Tr> { public: typedef typenameTrCodecvt::state_type state_type; […] }; }