Title
Conflicting specifications for dependent decltype-specifiers
Status
cd4
Section
13.6 [temp.type]
Submitter
Richard Smith

Created on 2014-12-27.00:00:00 last changed 49 months ago

Messages

Date: 2016-01-15.00:00:00

Proposed resolution (January, 2016):

Change 13.6 [temp.type] paragraph 2 as follows:

If an expression e involves a template parameter is type-dependent (13.8.3.3 [temp.dep.expr]), decltype(e) denotes a unique dependent type. Two such decltype-specifiers refer to the same type only if their expressions are equivalent (13.7.7.2 [temp.over.link]). [Note: however, it such a type may be aliased, e.g., by a typedef-name. —end note]
Date: 2016-02-15.00:00:00

[Adopted at the February, 2016 meeting.]

According to 13.8.3.2 [temp.dep.type] paragraph 9, a type is dependent if it is

denoted by decltype(expression), where expression is type-dependent (13.8.3.3 [temp.dep.expr]).

However, 13.6 [temp.type] paragraph 2 says,

If an expression e involves a template parameter, decltype(e) denotes a unique dependent type. Two such decltype-specifiers refer to the same type only if their expressions are equivalent (13.7.7.2 [temp.over.link]). [Note: however, it may be aliased, e.g., by a typedef-name. —end note]

These seem to be in need of reconciliation.

History
Date User Action Args
2017-02-06 00:00:00adminsetstatus: tentatively ready -> cd4
2016-02-15 00:00:00adminsetmessages: + msg5708
2016-02-15 00:00:00adminsetstatus: drafting -> tentatively ready
2014-12-27 00:00:00admincreate