Are cv-qualified std::nullptr_t fundamental types?
tentatively ready
6.8.2 [basic.fundamental]
Anoop Rana

Created on 2022-12-08.00:00:00 last changed yesterday


Date: 2023-12-02.13:35:39

Proposed resolution (approved by CWG 2023-12-01):

Change in 6.8.2 [basic.fundamental] paragraph 15 as follows:

The types denoted by cv std::nullptr_t are distinct types. A value of type std::nullptr_t is a null pointer constant (7.3.12 [conv.ptr]). Such values participate in the pointer and the pointer-to-member conversions (7.3.12 [conv.ptr], 7.3.13 [conv.mem]). sizeof(std::nullptr_t) shall be equal to sizeof(void*).

The types described in this subclause are called fundamental types. [Note 11: Even if the implementation defines two or more fundamental types to have the same value representation, they are nevertheless different types. —end note]

Date: 2022-12-08.00:00:00

It is unclear whether cv std::nullptr_t is a fundamental type, given that it is declared in a library header and cv-qualifications are not mentioned in 6.8.2 [basic.fundamental] paragraph 15.

Date User Action Args
2023-12-02 13:35:39adminsetstatus: review -> tentatively ready
2023-06-15 20:13:43adminsetstatus: open -> review
2023-01-17 21:18:52adminsetmessages: + msg7146
2022-12-08 00:00:00admincreate