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

### 640. 27.6.2.5.2 does not handle `(unsigned) long long`

Section: 29.7.5.3.2 [ostream.inserters.arithmetic] Status: CD1 Submitter: Daniel Krügler Opened: 2007-02-17 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [ostream.inserters.arithmetic].

View all issues with CD1 status.

Discussion:

The arithmetic inserters are described in 29.7.5.3.2 [ostream.inserters.arithmetic]. Although the section starts with a listing of the inserters including the new ones:

>     operator<<(long long val );
>     operator<<(unsigned long long val );

the text in paragraph 1, which describes the corresponding effects of the inserters, depending on the actual type of val, does not handle the types `long long` and `unsigned long long`.

[ Alisdair: In addition to the (unsigned) long long problem, that whole paragraph misses any reference to extended integral types supplied by the implementation - one of the additions by core a couple of working papers back. ]

Proposed resolution:

In 29.7.5.3.2 [ostream.inserters.arithmetic]/1 change the third sentence

> When val is of type `bool`, `long`, `unsigned long`, long long, unsigned long long, `double`, `long double`, or `const void*`, the formatting conversion occurs as if it performed the following code fragment: