- Title
- Non-function-call xvalues and decltype
- Status
- c++11
- Section
- 9.2.9.3 [dcl.type.simple]
- Submitter
- Daniel Krügler
Created on 2010-10-21.00:00:00 last changed 152 months ago
Messages
Date: 2011-03-15.00:00:00
[Voted into the WP at the March, 2011 meeting as part of paper N3262.]
Date: 2010-11-15.00:00:00
Proposed resolution (November, 2010) [SUPERSEDED]: Change 9.2.9.3 [dcl.type.simple] paragraph 4 as follows: The type denoted by decltype(e) is defined as follows: if e is an unparenthesized id-expression or
a class member access (7.6.1.5 [expr.ref]),
decltype(e) is the type of the entity named by e .
If there is no such entity, or if e names a set of overloaded
functions, the program is ill-formed; otherwise, if e is otherwise, if e is an lvalue, decltype(e) is
T& , where T is the type of e ; otherwise, decltype(e) is the type of
e .
a function call (7.6.1.3 [expr.call]) or an invocation of an overloaded operator (parentheses
around e are ignored), decltype(e) is the return
type of the statically chosen function an xvalue,
decltype(e) is T&& , where T is the
type of e ;
Date: 2010-10-21.00:00:00
Given it is surprising that decltype(f()) and
decltype(static_cast<int&&>(i)) are not the
same type.
int&& f();
int i;
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-03-03 00:00:00 | admin | set | status: fdis -> c++11 |
| 2011-04-10 00:00:00 | admin | set | messages: + msg3333 |
| 2011-04-10 00:00:00 | admin | set | status: review -> fdis |
| 2010-11-29 00:00:00 | admin | set | messages: + msg3089 |
| 2010-10-21 00:00:00 | admin | create | |