Created on 1999-04-06.00:00:00 last changed 165 months ago
Additional note (February, 2011):
This issue is being reopened for further consideration after
additional discussion
using T::template X; // ill-formed
for a class template member X of base class T, one could write
template<U> using X = typename T::template X<U>;
Rationale (March, 2011):
There was insufficient motivation for a change at this point.
Additional note (February, 2011):
This issue is being reopened for further consideration after
additional discussion
using T::template X; // ill-formed
for a class template member X of base class T, one could write
template<U> using X = typename T::template X<U>;
Rationale (March, 2011):
There was insufficient motivation for a change at this point.
Notes from the April 2003 meeting:
We decided to make no change and to close this issue as not-a-defect. This is not needed functionality; the example above, for example, can be written with ->template. This issue has been on the issues list for years as an extension, and there has been no clamor for it.
It was also noted that knowing that something is a template is not enough; there's still the issue of knowing whether it is a class or function template.
Daveed Vandevoorde : While reading Core issue 11 I thought it implied the following possibility:
template<typename T> struct B { template<int> void f(int); }; template<typename T> struct D: B<T> { using B<T>::template f; void g() { this->f<1>(0); } // OK, f is a template };
However, the grammar for a using-declaration reads:
and nested-name-specifier never ends in "template".
Is that intentional?
Bill Gibbons :
It certainly appears to be, since we have:
Rationale (04/99): Any semantics associated with the template keyword in using-declarations should be considered an extension.
History | |||
---|---|---|---|
Date | User | Action | Args |
2011-04-10 00:00:00 | admin | set | status: open -> nad |
2011-02-28 00:00:00 | admin | set | messages: + msg3248 |
2011-02-28 00:00:00 | admin | set | status: nad -> open |
2003-04-25 00:00:00 | admin | set | messages: + msg880 |
2003-04-25 00:00:00 | admin | set | status: open -> nad |
2002-11-08 00:00:00 | admin | set | status: extension -> open |
1999-09-14 00:00:00 | admin | set | messages: + msg201 |
1999-04-06 00:00:00 | admin | create |