Created on 2015-03-26.00:00:00 last changed 94 months ago
Proposed resolution (September, 2015):
Change 13.8.3.4 [temp.dep.constexpr] paragraph 2 as follows:
An id-expression is value-dependent if:
it is
a name declared with a dependent typetype-dependent,it is the name of a non-type template parameter,
it names a member of an unknown specialization,...
This resolution also resolves issue 2066.
[Adopted at the February, 2016 meeting.]
In the following example,
struct A {}; struct X { template <typename Q> int memfunc(); }; template <int (X::* P) ()> int foo(...); template<class T> struct B { static int bar() { A a; return foo<&X::memfunc<T> >(a); } }; template <int (X::* P) ()> int foo(A a) { return 0; } int main() { return B<int>::bar(); }
the call foo<&X::memfunc<T> >(a); is dependent only if the template argument is dependent, which is only true because of the use of the template parameter T. Implementations generally agree that this is dependent, but there does not appear to be wording to support this determination.
History | |||
---|---|---|---|
Date | User | Action | Args |
2017-02-06 00:00:00 | admin | set | status: tentatively ready -> cd4 |
2015-11-10 00:00:00 | admin | set | messages: + msg5612 |
2015-11-10 00:00:00 | admin | set | status: drafting -> tentatively ready |
2015-03-26 00:00:00 | admin | create |