A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.github.io/CWG/issues/2109.html below:

CWG Issue 2109

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:

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