Created on 1998-09-29.00:00:00 last changed 196 months ago
[Moved to DR at 4/01 meeting.]
[Moved to DR at 4/01 meeting.]
Paragraph 4 lists contexts in which template formals are not deduced. Were template formals in an expression in the array bound of an array type specification intentionally left out of this list? Or was the intent that such formals always be explicitly specified? Otherwise I believe the following should be valid:
template <int I> class IntArr {}; template <int I, int J> void concat( int (&d)[I+J], const IntArr<I>& a, const IntArr<J>& b ) {} int testing() { IntArr<2> a; IntArr<3> b; int d[5]; concat( d, a, b ); }Can anybody shed some light on this?
From John Spicer:
Expressions involving nontype template parameters are nondeduced contexts, even though they are omitted from the list in 13.10.3.6 [temp.deduct.type] paragraph 4. See 13.10.3.6 [temp.deduct.type] paragraphs 12-14:
...
Proposed resolution (04/01): In 13.10.3.6 [temp.deduct.type] paragraph 4, add a third bullet:
History | |||
---|---|---|---|
Date | User | Action | Args |
2008-10-05 00:00:00 | admin | set | status: wp -> cd1 |
2003-04-25 00:00:00 | admin | set | status: dr -> wp |
2002-05-10 00:00:00 | admin | set | messages: + msg696 |
2001-05-20 00:00:00 | admin | set | status: ready -> dr |
2000-11-18 00:00:00 | admin | set | status: review -> ready |
2000-02-23 00:00:00 | admin | set | messages: + msg235 |
2000-02-23 00:00:00 | admin | set | status: open -> review |
1998-09-29 00:00:00 | admin | create |