Title
COMMON_REF is unimplementable as specified
Status
c++20
Section
[meta.trans.other]
Submitter
Casey Carter

Created on 2018-07-07.00:00:00 last changed 37 months ago

Messages

Date: 2018-11-12.04:39:29

Proposed resolution:

This wording is relative to N4762.

Change [meta.trans.other] as indicated:

-3- Let:

(3.1) — CREF(A) be add_lvalue_reference_t<const remove_reference_t<A>>,

(3.2) — XREF(A) denote a unary classalias template T such that T<U> denotes the same type as U with the addition of A’s cv and reference qualifiers, for a non-reference cv-unqualified type U,

(3.3) — COPYCV(FROM, TO) be an alias for type TO with the addition of FROM’s top-level cv-qualifiers. [Example: COPYCV(const int, volatile short) is an alias for const volatile short. —end example]

Date: 2018-11-12.04:39:29

[ 2018-11, Adopted in San Diego ]

Date: 2018-09-15.00:00:00

[ 2018-09-11; Status set to Tentatively Ready after five positive votes on the reflector ]

Date: 2018-07-07.00:00:00

[meta.trans.other]/3.2 states:

[Let] XREF(A) denote a unary class template T such that T<U> denotes the same type as U with the addition of A’s cv and reference qualifiers, for a non-reference cv-unqualified type U,
which is nonsensical: a specialization of a class template cannot possibly be a cv-qualified type or reference type. XREF(A) must be a unary alias template.

History
Date User Action Args
2021-02-25 10:48:01adminsetstatus: wp -> c++20
2018-11-12 04:39:29adminsetmessages: + msg10203
2018-11-12 04:39:29adminsetstatus: voting -> wp
2018-10-08 05:13:59adminsetstatus: ready -> voting
2018-09-11 18:27:10adminsetmessages: + msg10146
2018-09-11 18:27:10adminsetstatus: new -> ready
2018-07-10 23:59:55adminsetmessages: + msg10024
2018-07-07 00:00:00admincreate