This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Dup status.

### 236. ctype<char>::is() member modifies facet

Section: 30.4.2.4.3 [facet.ctype.char.members] Status: Dup Submitter: Dietmar Kühl Opened: 2000-04-24 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [facet.ctype.char.members].

View all issues with Dup status.

Duplicate of: 28

Discussion:

The description of the `is()` member in paragraph 4 of 30.4.2.4.3 [facet.ctype.char.members] is broken: According to this description, the second form of the `is()` method modifies the masks in the `ctype` object. The correct semantics if, of course, to obtain an array of masks. The corresponding method in the general case, ie. the `do_is()` method as described in 30.4.2.2.3 [locale.ctype.virtuals] paragraph 1 does the right thing.

Proposed resolution:

Change paragraph 4 from

> The second form, for all *p in the range [low, high), assigns vec[p-low] to table()[(unsigned char)*p].

to become

> The second form, for all *p in the range [low, high), assigns table()[(unsigned char)*p] to vec[p-low].

Rationale: