This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 117b. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-08-11
2109. Value dependence underspecifiedSection: 13.8.3.4 [temp.dep.constexpr] Status: CD4 Submitter: Maxim Kartashev Date: 2015-03-26[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.
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 type type-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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4